// Package v3 provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.6.1-0.20260403235458-a76544bd16ff DO NOT EDIT. package v3 import ( "bytes" "compress/gzip" "encoding/base64" "encoding/json" "errors" "fmt" "net/http" "net/url" "path" "strings" "time" "github.com/getkin/kin-openapi/openapi3" "github.com/go-chi/chi/v5" "github.com/oapi-codegen/nullable" "github.com/oapi-codegen/runtime" "github.com/openmeterio/openmeter/api/v3/filters" ) // Defines values for AddonInstanceType. const ( AddonInstanceTypeMultiple AddonInstanceType = "multiple" AddonInstanceTypeSingle AddonInstanceType = "single" ) // Valid indicates whether the value is a known member of the AddonInstanceType enum. func (e AddonInstanceType) Valid() bool { switch e { case AddonInstanceTypeMultiple: return true case AddonInstanceTypeSingle: return true default: return false } } // Defines values for AddonStatus. const ( AddonStatusActive AddonStatus = "active" AddonStatusArchived AddonStatus = "archived" AddonStatusDraft AddonStatus = "draft" ) // Valid indicates whether the value is a known member of the AddonStatus enum. func (e AddonStatus) Valid() bool { switch e { case AddonStatusActive: return true case AddonStatusArchived: return true case AddonStatusDraft: return true default: return false } } // Defines values for BillingAppCapabilityType. const ( BillingAppCapabilityTypeCalculateTax BillingAppCapabilityType = "calculate_tax" BillingAppCapabilityTypeCollectPayments BillingAppCapabilityType = "collect_payments" BillingAppCapabilityTypeInvoiceCustomers BillingAppCapabilityType = "invoice_customers" BillingAppCapabilityTypeReportEvents BillingAppCapabilityType = "report_events" BillingAppCapabilityTypeReportUsage BillingAppCapabilityType = "report_usage" ) // Valid indicates whether the value is a known member of the BillingAppCapabilityType enum. func (e BillingAppCapabilityType) Valid() bool { switch e { case BillingAppCapabilityTypeCalculateTax: return true case BillingAppCapabilityTypeCollectPayments: return true case BillingAppCapabilityTypeInvoiceCustomers: return true case BillingAppCapabilityTypeReportEvents: return true case BillingAppCapabilityTypeReportUsage: return true default: return false } } // Defines values for BillingAppExternalInvoicingType. const ( BillingAppExternalInvoicingTypeExternalInvoicing BillingAppExternalInvoicingType = "external_invoicing" ) // Valid indicates whether the value is a known member of the BillingAppExternalInvoicingType enum. func (e BillingAppExternalInvoicingType) Valid() bool { switch e { case BillingAppExternalInvoicingTypeExternalInvoicing: return true default: return false } } // Defines values for BillingAppInstallMethods. const ( BillingAppInstallMethodsNoCredentialsRequired BillingAppInstallMethods = "no_credentials_required" BillingAppInstallMethodsWithApiKey BillingAppInstallMethods = "with_api_key" BillingAppInstallMethodsWithOauth2 BillingAppInstallMethods = "with_oauth2" ) // Valid indicates whether the value is a known member of the BillingAppInstallMethods enum. func (e BillingAppInstallMethods) Valid() bool { switch e { case BillingAppInstallMethodsNoCredentialsRequired: return true case BillingAppInstallMethodsWithApiKey: return true case BillingAppInstallMethodsWithOauth2: return true default: return false } } // Defines values for BillingAppSandboxType. const ( BillingAppSandboxTypeSandbox BillingAppSandboxType = "sandbox" ) // Valid indicates whether the value is a known member of the BillingAppSandboxType enum. func (e BillingAppSandboxType) Valid() bool { switch e { case BillingAppSandboxTypeSandbox: return true default: return false } } // Defines values for BillingAppStatus. const ( BillingAppStatusReady BillingAppStatus = "ready" BillingAppStatusUnauthorized BillingAppStatus = "unauthorized" ) // Valid indicates whether the value is a known member of the BillingAppStatus enum. func (e BillingAppStatus) Valid() bool { switch e { case BillingAppStatusReady: return true case BillingAppStatusUnauthorized: return true default: return false } } // Defines values for BillingAppStripeType. const ( BillingAppStripeTypeStripe BillingAppStripeType = "stripe" ) // Valid indicates whether the value is a known member of the BillingAppStripeType enum. func (e BillingAppStripeType) Valid() bool { switch e { case BillingAppStripeTypeStripe: return true default: return false } } // Defines values for BillingAppStripeCheckoutSessionMode. const ( BillingAppStripeCheckoutSessionModeSetup BillingAppStripeCheckoutSessionMode = "setup" ) // Valid indicates whether the value is a known member of the BillingAppStripeCheckoutSessionMode enum. func (e BillingAppStripeCheckoutSessionMode) Valid() bool { switch e { case BillingAppStripeCheckoutSessionModeSetup: return true default: return false } } // Defines values for BillingAppStripeCheckoutSessionUIMode. const ( BillingAppStripeCheckoutSessionUIModeEmbedded BillingAppStripeCheckoutSessionUIMode = "embedded" BillingAppStripeCheckoutSessionUIModeHosted BillingAppStripeCheckoutSessionUIMode = "hosted" ) // Valid indicates whether the value is a known member of the BillingAppStripeCheckoutSessionUIMode enum. func (e BillingAppStripeCheckoutSessionUIMode) Valid() bool { switch e { case BillingAppStripeCheckoutSessionUIModeEmbedded: return true case BillingAppStripeCheckoutSessionUIModeHosted: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionBillingAddressCollection. const ( BillingAppStripeCreateCheckoutSessionBillingAddressCollectionAuto BillingAppStripeCreateCheckoutSessionBillingAddressCollection = "auto" BillingAppStripeCreateCheckoutSessionBillingAddressCollectionRequired BillingAppStripeCreateCheckoutSessionBillingAddressCollection = "required" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionBillingAddressCollection enum. func (e BillingAppStripeCreateCheckoutSessionBillingAddressCollection) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionBillingAddressCollectionAuto: return true case BillingAppStripeCreateCheckoutSessionBillingAddressCollectionRequired: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition. const ( BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPositionAuto BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition = "auto" BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPositionHidden BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition = "hidden" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition enum. func (e BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPositionAuto: return true case BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPositionHidden: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions. const ( BillingAppStripeCreateCheckoutSessionConsentCollectionPromotionsAuto BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions = "auto" BillingAppStripeCreateCheckoutSessionConsentCollectionPromotionsNone BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions = "none" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions enum. func (e BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionConsentCollectionPromotionsAuto: return true case BillingAppStripeCreateCheckoutSessionConsentCollectionPromotionsNone: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService. const ( BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfServiceNone BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService = "none" BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfServiceRequired BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService = "required" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService enum. func (e BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfServiceNone: return true case BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfServiceRequired: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior. const ( BillingAppStripeCreateCheckoutSessionCustomerUpdateBehaviorAuto BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior = "auto" BillingAppStripeCreateCheckoutSessionCustomerUpdateBehaviorNever BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior = "never" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior enum. func (e BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionCustomerUpdateBehaviorAuto: return true case BillingAppStripeCreateCheckoutSessionCustomerUpdateBehaviorNever: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionRedirectOnCompletion. const ( BillingAppStripeCreateCheckoutSessionRedirectOnCompletionAlways BillingAppStripeCreateCheckoutSessionRedirectOnCompletion = "always" BillingAppStripeCreateCheckoutSessionRedirectOnCompletionIfRequired BillingAppStripeCreateCheckoutSessionRedirectOnCompletion = "if_required" BillingAppStripeCreateCheckoutSessionRedirectOnCompletionNever BillingAppStripeCreateCheckoutSessionRedirectOnCompletion = "never" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionRedirectOnCompletion enum. func (e BillingAppStripeCreateCheckoutSessionRedirectOnCompletion) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionRedirectOnCompletionAlways: return true case BillingAppStripeCreateCheckoutSessionRedirectOnCompletionIfRequired: return true case BillingAppStripeCreateCheckoutSessionRedirectOnCompletionNever: return true default: return false } } // Defines values for BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired. const ( BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequiredIfSupported BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired = "if_supported" BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequiredNever BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired = "never" ) // Valid indicates whether the value is a known member of the BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired enum. func (e BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired) Valid() bool { switch e { case BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequiredIfSupported: return true case BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequiredNever: return true default: return false } } // Defines values for BillingAppType. const ( BillingAppTypeExternalInvoicing BillingAppType = "external_invoicing" BillingAppTypeSandbox BillingAppType = "sandbox" BillingAppTypeStripe BillingAppType = "stripe" ) // Valid indicates whether the value is a known member of the BillingAppType enum. func (e BillingAppType) Valid() bool { switch e { case BillingAppTypeExternalInvoicing: return true case BillingAppTypeSandbox: return true case BillingAppTypeStripe: return true default: return false } } // Defines values for BillingChargeFlatFeeType. const ( BillingChargeFlatFeeTypeFlatFee BillingChargeFlatFeeType = "flat_fee" ) // Valid indicates whether the value is a known member of the BillingChargeFlatFeeType enum. func (e BillingChargeFlatFeeType) Valid() bool { switch e { case BillingChargeFlatFeeTypeFlatFee: return true default: return false } } // Defines values for BillingChargeStatus. const ( BillingChargeStatusActive BillingChargeStatus = "active" BillingChargeStatusCreated BillingChargeStatus = "created" BillingChargeStatusDeleted BillingChargeStatus = "deleted" BillingChargeStatusFinal BillingChargeStatus = "final" ) // Valid indicates whether the value is a known member of the BillingChargeStatus enum. func (e BillingChargeStatus) Valid() bool { switch e { case BillingChargeStatusActive: return true case BillingChargeStatusCreated: return true case BillingChargeStatusDeleted: return true case BillingChargeStatusFinal: return true default: return false } } // Defines values for BillingChargeUsageBasedType. const ( BillingChargeUsageBasedTypeUsageBased BillingChargeUsageBasedType = "usage_based" ) // Valid indicates whether the value is a known member of the BillingChargeUsageBasedType enum. func (e BillingChargeUsageBasedType) Valid() bool { switch e { case BillingChargeUsageBasedTypeUsageBased: return true default: return false } } // Defines values for BillingChargesExpand. const ( BillingChargesExpandRealTimeUsage BillingChargesExpand = "real_time_usage" ) // Valid indicates whether the value is a known member of the BillingChargesExpand enum. func (e BillingChargesExpand) Valid() bool { switch e { case BillingChargesExpandRealTimeUsage: return true default: return false } } // Defines values for BillingCreditAvailabilityPolicy. const ( BillingCreditAvailabilityPolicyOnCreation BillingCreditAvailabilityPolicy = "on_creation" ) // Valid indicates whether the value is a known member of the BillingCreditAvailabilityPolicy enum. func (e BillingCreditAvailabilityPolicy) Valid() bool { switch e { case BillingCreditAvailabilityPolicyOnCreation: return true default: return false } } // Defines values for BillingCreditFundingMethod. const ( BillingCreditFundingMethodExternal BillingCreditFundingMethod = "external" BillingCreditFundingMethodInvoice BillingCreditFundingMethod = "invoice" BillingCreditFundingMethodNone BillingCreditFundingMethod = "none" ) // Valid indicates whether the value is a known member of the BillingCreditFundingMethod enum. func (e BillingCreditFundingMethod) Valid() bool { switch e { case BillingCreditFundingMethodExternal: return true case BillingCreditFundingMethodInvoice: return true case BillingCreditFundingMethodNone: return true default: return false } } // Defines values for BillingCreditGrantStatus. const ( BillingCreditGrantStatusActive BillingCreditGrantStatus = "active" BillingCreditGrantStatusExpired BillingCreditGrantStatus = "expired" BillingCreditGrantStatusPending BillingCreditGrantStatus = "pending" BillingCreditGrantStatusVoided BillingCreditGrantStatus = "voided" ) // Valid indicates whether the value is a known member of the BillingCreditGrantStatus enum. func (e BillingCreditGrantStatus) Valid() bool { switch e { case BillingCreditGrantStatusActive: return true case BillingCreditGrantStatusExpired: return true case BillingCreditGrantStatusPending: return true case BillingCreditGrantStatusVoided: return true default: return false } } // Defines values for BillingCreditGrantVoidPaymentAdjustment. const ( BillingCreditGrantVoidPaymentAdjustmentNone BillingCreditGrantVoidPaymentAdjustment = "none" ) // Valid indicates whether the value is a known member of the BillingCreditGrantVoidPaymentAdjustment enum. func (e BillingCreditGrantVoidPaymentAdjustment) Valid() bool { switch e { case BillingCreditGrantVoidPaymentAdjustmentNone: return true default: return false } } // Defines values for BillingCreditPurchasePaymentSettlementStatus. const ( BillingCreditPurchasePaymentSettlementStatusAuthorized BillingCreditPurchasePaymentSettlementStatus = "authorized" BillingCreditPurchasePaymentSettlementStatusPending BillingCreditPurchasePaymentSettlementStatus = "pending" BillingCreditPurchasePaymentSettlementStatusSettled BillingCreditPurchasePaymentSettlementStatus = "settled" ) // Valid indicates whether the value is a known member of the BillingCreditPurchasePaymentSettlementStatus enum. func (e BillingCreditPurchasePaymentSettlementStatus) Valid() bool { switch e { case BillingCreditPurchasePaymentSettlementStatusAuthorized: return true case BillingCreditPurchasePaymentSettlementStatusPending: return true case BillingCreditPurchasePaymentSettlementStatusSettled: return true default: return false } } // Defines values for BillingCreditTransactionType. const ( BillingCreditTransactionTypeConsumed BillingCreditTransactionType = "consumed" BillingCreditTransactionTypeExpired BillingCreditTransactionType = "expired" BillingCreditTransactionTypeFunded BillingCreditTransactionType = "funded" BillingCreditTransactionTypeVoided BillingCreditTransactionType = "voided" ) // Valid indicates whether the value is a known member of the BillingCreditTransactionType enum. func (e BillingCreditTransactionType) Valid() bool { switch e { case BillingCreditTransactionTypeConsumed: return true case BillingCreditTransactionTypeExpired: return true case BillingCreditTransactionTypeFunded: return true case BillingCreditTransactionTypeVoided: return true default: return false } } // Defines values for BillingCurrencyCustomType. const ( BillingCurrencyCustomTypeCustom BillingCurrencyCustomType = "custom" ) // Valid indicates whether the value is a known member of the BillingCurrencyCustomType enum. func (e BillingCurrencyCustomType) Valid() bool { switch e { case BillingCurrencyCustomTypeCustom: return true default: return false } } // Defines values for BillingCurrencyFiatType. const ( BillingCurrencyFiatTypeFiat BillingCurrencyFiatType = "fiat" ) // Valid indicates whether the value is a known member of the BillingCurrencyFiatType enum. func (e BillingCurrencyFiatType) Valid() bool { switch e { case BillingCurrencyFiatTypeFiat: return true default: return false } } // Defines values for BillingCurrencyType. const ( BillingCurrencyTypeCustom BillingCurrencyType = "custom" BillingCurrencyTypeFiat BillingCurrencyType = "fiat" ) // Valid indicates whether the value is a known member of the BillingCurrencyType enum. func (e BillingCurrencyType) Valid() bool { switch e { case BillingCurrencyTypeCustom: return true case BillingCurrencyTypeFiat: return true default: return false } } // Defines values for BillingEntitlementType. const ( BillingEntitlementTypeBoolean BillingEntitlementType = "boolean" BillingEntitlementTypeMetered BillingEntitlementType = "metered" BillingEntitlementTypeStatic BillingEntitlementType = "static" ) // Valid indicates whether the value is a known member of the BillingEntitlementType enum. func (e BillingEntitlementType) Valid() bool { switch e { case BillingEntitlementTypeBoolean: return true case BillingEntitlementTypeMetered: return true case BillingEntitlementTypeStatic: return true default: return false } } // Defines values for BillingFeatureLLMTokenType. const ( BillingFeatureLLMTokenTypeCacheRead BillingFeatureLLMTokenType = "cache_read" BillingFeatureLLMTokenTypeCacheWrite BillingFeatureLLMTokenType = "cache_write" BillingFeatureLLMTokenTypeInput BillingFeatureLLMTokenType = "input" BillingFeatureLLMTokenTypeOutput BillingFeatureLLMTokenType = "output" BillingFeatureLLMTokenTypeReasoning BillingFeatureLLMTokenType = "reasoning" BillingFeatureLLMTokenTypeRequest BillingFeatureLLMTokenType = "request" BillingFeatureLLMTokenTypeResponse BillingFeatureLLMTokenType = "response" ) // Valid indicates whether the value is a known member of the BillingFeatureLLMTokenType enum. func (e BillingFeatureLLMTokenType) Valid() bool { switch e { case BillingFeatureLLMTokenTypeCacheRead: return true case BillingFeatureLLMTokenTypeCacheWrite: return true case BillingFeatureLLMTokenTypeInput: return true case BillingFeatureLLMTokenTypeOutput: return true case BillingFeatureLLMTokenTypeReasoning: return true case BillingFeatureLLMTokenTypeRequest: return true case BillingFeatureLLMTokenTypeResponse: return true default: return false } } // Defines values for BillingFeatureLLMUnitCostType. const ( BillingFeatureLLMUnitCostTypeLlm BillingFeatureLLMUnitCostType = "llm" ) // Valid indicates whether the value is a known member of the BillingFeatureLLMUnitCostType enum. func (e BillingFeatureLLMUnitCostType) Valid() bool { switch e { case BillingFeatureLLMUnitCostTypeLlm: return true default: return false } } // Defines values for BillingFeatureManualUnitCostType. const ( BillingFeatureManualUnitCostTypeManual BillingFeatureManualUnitCostType = "manual" ) // Valid indicates whether the value is a known member of the BillingFeatureManualUnitCostType enum. func (e BillingFeatureManualUnitCostType) Valid() bool { switch e { case BillingFeatureManualUnitCostTypeManual: return true default: return false } } // Defines values for BillingInstallAppExternalInvoicingType. const ( BillingInstallAppExternalInvoicingTypeExternalInvoicing BillingInstallAppExternalInvoicingType = "external_invoicing" ) // Valid indicates whether the value is a known member of the BillingInstallAppExternalInvoicingType enum. func (e BillingInstallAppExternalInvoicingType) Valid() bool { switch e { case BillingInstallAppExternalInvoicingTypeExternalInvoicing: return true default: return false } } // Defines values for BillingInstallAppSandboxType. const ( BillingInstallAppSandboxTypeSandbox BillingInstallAppSandboxType = "sandbox" ) // Valid indicates whether the value is a known member of the BillingInstallAppSandboxType enum. func (e BillingInstallAppSandboxType) Valid() bool { switch e { case BillingInstallAppSandboxTypeSandbox: return true default: return false } } // Defines values for BillingInstallAppStripeWithApiKeyType. const ( BillingInstallAppStripeWithApiKeyTypeStripe BillingInstallAppStripeWithApiKeyType = "stripe" ) // Valid indicates whether the value is a known member of the BillingInstallAppStripeWithApiKeyType enum. func (e BillingInstallAppStripeWithApiKeyType) Valid() bool { switch e { case BillingInstallAppStripeWithApiKeyTypeStripe: return true default: return false } } // Defines values for BillingInvoiceDetailedLineCostCategory. const ( BillingInvoiceDetailedLineCostCategoryCommitment BillingInvoiceDetailedLineCostCategory = "commitment" BillingInvoiceDetailedLineCostCategoryRegular BillingInvoiceDetailedLineCostCategory = "regular" ) // Valid indicates whether the value is a known member of the BillingInvoiceDetailedLineCostCategory enum. func (e BillingInvoiceDetailedLineCostCategory) Valid() bool { switch e { case BillingInvoiceDetailedLineCostCategoryCommitment: return true case BillingInvoiceDetailedLineCostCategoryRegular: return true default: return false } } // Defines values for BillingInvoiceDiscountReason. const ( BillingInvoiceDiscountReasonMaximumSpend BillingInvoiceDiscountReason = "maximum_spend" BillingInvoiceDiscountReasonRatecardPercentage BillingInvoiceDiscountReason = "ratecard_percentage" BillingInvoiceDiscountReasonRatecardUsage BillingInvoiceDiscountReason = "ratecard_usage" ) // Valid indicates whether the value is a known member of the BillingInvoiceDiscountReason enum. func (e BillingInvoiceDiscountReason) Valid() bool { switch e { case BillingInvoiceDiscountReasonMaximumSpend: return true case BillingInvoiceDiscountReasonRatecardPercentage: return true case BillingInvoiceDiscountReasonRatecardUsage: return true default: return false } } // Defines values for BillingInvoiceStandardType. const ( BillingInvoiceStandardTypeStandard BillingInvoiceStandardType = "standard" ) // Valid indicates whether the value is a known member of the BillingInvoiceStandardType enum. func (e BillingInvoiceStandardType) Valid() bool { switch e { case BillingInvoiceStandardTypeStandard: return true default: return false } } // Defines values for BillingInvoiceStandardLineType. const ( BillingInvoiceStandardLineTypeStandardLine BillingInvoiceStandardLineType = "standard_line" ) // Valid indicates whether the value is a known member of the BillingInvoiceStandardLineType enum. func (e BillingInvoiceStandardLineType) Valid() bool { switch e { case BillingInvoiceStandardLineTypeStandardLine: return true default: return false } } // Defines values for BillingInvoiceStandardStatus. const ( BillingInvoiceStandardStatusDraft BillingInvoiceStandardStatus = "draft" BillingInvoiceStandardStatusIssued BillingInvoiceStandardStatus = "issued" BillingInvoiceStandardStatusIssuing BillingInvoiceStandardStatus = "issuing" BillingInvoiceStandardStatusOverdue BillingInvoiceStandardStatus = "overdue" BillingInvoiceStandardStatusPaid BillingInvoiceStandardStatus = "paid" BillingInvoiceStandardStatusPaymentProcessing BillingInvoiceStandardStatus = "payment_processing" BillingInvoiceStandardStatusUncollectible BillingInvoiceStandardStatus = "uncollectible" BillingInvoiceStandardStatusVoided BillingInvoiceStandardStatus = "voided" ) // Valid indicates whether the value is a known member of the BillingInvoiceStandardStatus enum. func (e BillingInvoiceStandardStatus) Valid() bool { switch e { case BillingInvoiceStandardStatusDraft: return true case BillingInvoiceStandardStatusIssued: return true case BillingInvoiceStandardStatusIssuing: return true case BillingInvoiceStandardStatusOverdue: return true case BillingInvoiceStandardStatusPaid: return true case BillingInvoiceStandardStatusPaymentProcessing: return true case BillingInvoiceStandardStatusUncollectible: return true case BillingInvoiceStandardStatusVoided: return true default: return false } } // Defines values for BillingInvoiceValidationIssueSeverity. const ( BillingInvoiceValidationIssueSeverityCritical BillingInvoiceValidationIssueSeverity = "critical" BillingInvoiceValidationIssueSeverityWarning BillingInvoiceValidationIssueSeverity = "warning" ) // Valid indicates whether the value is a known member of the BillingInvoiceValidationIssueSeverity enum. func (e BillingInvoiceValidationIssueSeverity) Valid() bool { switch e { case BillingInvoiceValidationIssueSeverityCritical: return true case BillingInvoiceValidationIssueSeverityWarning: return true default: return false } } // Defines values for BillingLifecycleController. const ( BillingLifecycleControllerManual BillingLifecycleController = "manual" BillingLifecycleControllerSystem BillingLifecycleController = "system" ) // Valid indicates whether the value is a known member of the BillingLifecycleController enum. func (e BillingLifecycleController) Valid() bool { switch e { case BillingLifecycleControllerManual: return true case BillingLifecycleControllerSystem: return true default: return false } } // Defines values for BillingPlanStatus. const ( BillingPlanStatusActive BillingPlanStatus = "active" BillingPlanStatusArchived BillingPlanStatus = "archived" BillingPlanStatusDraft BillingPlanStatus = "draft" BillingPlanStatusScheduled BillingPlanStatus = "scheduled" ) // Valid indicates whether the value is a known member of the BillingPlanStatus enum. func (e BillingPlanStatus) Valid() bool { switch e { case BillingPlanStatusActive: return true case BillingPlanStatusArchived: return true case BillingPlanStatusDraft: return true case BillingPlanStatusScheduled: return true default: return false } } // Defines values for BillingPriceFlatType. const ( BillingPriceFlatTypeFlat BillingPriceFlatType = "flat" ) // Valid indicates whether the value is a known member of the BillingPriceFlatType enum. func (e BillingPriceFlatType) Valid() bool { switch e { case BillingPriceFlatTypeFlat: return true default: return false } } // Defines values for BillingPriceFreeType. const ( BillingPriceFreeTypeFree BillingPriceFreeType = "free" ) // Valid indicates whether the value is a known member of the BillingPriceFreeType enum. func (e BillingPriceFreeType) Valid() bool { switch e { case BillingPriceFreeTypeFree: return true default: return false } } // Defines values for BillingPriceGraduatedType. const ( BillingPriceGraduatedTypeGraduated BillingPriceGraduatedType = "graduated" ) // Valid indicates whether the value is a known member of the BillingPriceGraduatedType enum. func (e BillingPriceGraduatedType) Valid() bool { switch e { case BillingPriceGraduatedTypeGraduated: return true default: return false } } // Defines values for BillingPricePaymentTerm. const ( BillingPricePaymentTermInAdvance BillingPricePaymentTerm = "in_advance" BillingPricePaymentTermInArrears BillingPricePaymentTerm = "in_arrears" ) // Valid indicates whether the value is a known member of the BillingPricePaymentTerm enum. func (e BillingPricePaymentTerm) Valid() bool { switch e { case BillingPricePaymentTermInAdvance: return true case BillingPricePaymentTermInArrears: return true default: return false } } // Defines values for BillingPriceUnitType. const ( BillingPriceUnitTypeUnit BillingPriceUnitType = "unit" ) // Valid indicates whether the value is a known member of the BillingPriceUnitType enum. func (e BillingPriceUnitType) Valid() bool { switch e { case BillingPriceUnitTypeUnit: return true default: return false } } // Defines values for BillingPriceVolumeType. const ( BillingPriceVolumeTypeVolume BillingPriceVolumeType = "volume" ) // Valid indicates whether the value is a known member of the BillingPriceVolumeType enum. func (e BillingPriceVolumeType) Valid() bool { switch e { case BillingPriceVolumeTypeVolume: return true default: return false } } // Defines values for BillingRateCardBooleanEntitlementType. const ( BillingRateCardBooleanEntitlementTypeBoolean BillingRateCardBooleanEntitlementType = "boolean" ) // Valid indicates whether the value is a known member of the BillingRateCardBooleanEntitlementType enum. func (e BillingRateCardBooleanEntitlementType) Valid() bool { switch e { case BillingRateCardBooleanEntitlementTypeBoolean: return true default: return false } } // Defines values for BillingRateCardMeteredEntitlementType. const ( BillingRateCardMeteredEntitlementTypeMetered BillingRateCardMeteredEntitlementType = "metered" ) // Valid indicates whether the value is a known member of the BillingRateCardMeteredEntitlementType enum. func (e BillingRateCardMeteredEntitlementType) Valid() bool { switch e { case BillingRateCardMeteredEntitlementTypeMetered: return true default: return false } } // Defines values for BillingRateCardProrationMode. const ( BillingRateCardProrationModeNoProration BillingRateCardProrationMode = "no_proration" BillingRateCardProrationModeProratePrices BillingRateCardProrationMode = "prorate_prices" ) // Valid indicates whether the value is a known member of the BillingRateCardProrationMode enum. func (e BillingRateCardProrationMode) Valid() bool { switch e { case BillingRateCardProrationModeNoProration: return true case BillingRateCardProrationModeProratePrices: return true default: return false } } // Defines values for BillingRateCardStaticEntitlementType. const ( BillingRateCardStaticEntitlementTypeStatic BillingRateCardStaticEntitlementType = "static" ) // Valid indicates whether the value is a known member of the BillingRateCardStaticEntitlementType enum. func (e BillingRateCardStaticEntitlementType) Valid() bool { switch e { case BillingRateCardStaticEntitlementTypeStatic: return true default: return false } } // Defines values for BillingSettlementMode. const ( BillingSettlementModeCreditOnly BillingSettlementMode = "credit_only" BillingSettlementModeCreditThenInvoice BillingSettlementMode = "credit_then_invoice" ) // Valid indicates whether the value is a known member of the BillingSettlementMode enum. func (e BillingSettlementMode) Valid() bool { switch e { case BillingSettlementModeCreditOnly: return true case BillingSettlementModeCreditThenInvoice: return true default: return false } } // Defines values for BillingSubscriptionEditTimingEnum. const ( BillingSubscriptionEditTimingEnumImmediate BillingSubscriptionEditTimingEnum = "immediate" BillingSubscriptionEditTimingEnumNextBillingCycle BillingSubscriptionEditTimingEnum = "next_billing_cycle" ) // Valid indicates whether the value is a known member of the BillingSubscriptionEditTimingEnum enum. func (e BillingSubscriptionEditTimingEnum) Valid() bool { switch e { case BillingSubscriptionEditTimingEnumImmediate: return true case BillingSubscriptionEditTimingEnumNextBillingCycle: return true default: return false } } // Defines values for BillingSubscriptionStatus. const ( BillingSubscriptionStatusActive BillingSubscriptionStatus = "active" BillingSubscriptionStatusCanceled BillingSubscriptionStatus = "canceled" BillingSubscriptionStatusInactive BillingSubscriptionStatus = "inactive" BillingSubscriptionStatusScheduled BillingSubscriptionStatus = "scheduled" ) // Valid indicates whether the value is a known member of the BillingSubscriptionStatus enum. func (e BillingSubscriptionStatus) Valid() bool { switch e { case BillingSubscriptionStatusActive: return true case BillingSubscriptionStatusCanceled: return true case BillingSubscriptionStatusInactive: return true case BillingSubscriptionStatusScheduled: return true default: return false } } // Defines values for BillingTaxBehavior. const ( BillingTaxBehaviorExclusive BillingTaxBehavior = "exclusive" BillingTaxBehaviorInclusive BillingTaxBehavior = "inclusive" ) // Valid indicates whether the value is a known member of the BillingTaxBehavior enum. func (e BillingTaxBehavior) Valid() bool { switch e { case BillingTaxBehaviorExclusive: return true case BillingTaxBehaviorInclusive: return true default: return false } } // Defines values for BillingUnitConfigOperation. const ( BillingUnitConfigOperationDivide BillingUnitConfigOperation = "divide" BillingUnitConfigOperationMultiply BillingUnitConfigOperation = "multiply" ) // Valid indicates whether the value is a known member of the BillingUnitConfigOperation enum. func (e BillingUnitConfigOperation) Valid() bool { switch e { case BillingUnitConfigOperationDivide: return true case BillingUnitConfigOperationMultiply: return true default: return false } } // Defines values for BillingUnitConfigRoundingMode. const ( BillingUnitConfigRoundingModeCeiling BillingUnitConfigRoundingMode = "ceiling" BillingUnitConfigRoundingModeFloor BillingUnitConfigRoundingMode = "floor" BillingUnitConfigRoundingModeHalfUp BillingUnitConfigRoundingMode = "half_up" BillingUnitConfigRoundingModeNone BillingUnitConfigRoundingMode = "none" ) // Valid indicates whether the value is a known member of the BillingUnitConfigRoundingMode enum. func (e BillingUnitConfigRoundingMode) Valid() bool { switch e { case BillingUnitConfigRoundingModeCeiling: return true case BillingUnitConfigRoundingModeFloor: return true case BillingUnitConfigRoundingModeHalfUp: return true case BillingUnitConfigRoundingModeNone: return true default: return false } } // Defines values for BillingWorkflowCollectionAlignmentAnchoredType. const ( BillingWorkflowCollectionAlignmentAnchoredTypeAnchored BillingWorkflowCollectionAlignmentAnchoredType = "anchored" ) // Valid indicates whether the value is a known member of the BillingWorkflowCollectionAlignmentAnchoredType enum. func (e BillingWorkflowCollectionAlignmentAnchoredType) Valid() bool { switch e { case BillingWorkflowCollectionAlignmentAnchoredTypeAnchored: return true default: return false } } // Defines values for BillingWorkflowCollectionAlignmentSubscriptionType. const ( BillingWorkflowCollectionAlignmentSubscriptionTypeSubscription BillingWorkflowCollectionAlignmentSubscriptionType = "subscription" ) // Valid indicates whether the value is a known member of the BillingWorkflowCollectionAlignmentSubscriptionType enum. func (e BillingWorkflowCollectionAlignmentSubscriptionType) Valid() bool { switch e { case BillingWorkflowCollectionAlignmentSubscriptionTypeSubscription: return true default: return false } } // Defines values for BillingWorkflowInvoicingSubscriptionEndProrationMode. const ( BillingWorkflowInvoicingSubscriptionEndProrationModeBillActualPeriod BillingWorkflowInvoicingSubscriptionEndProrationMode = "bill_actual_period" BillingWorkflowInvoicingSubscriptionEndProrationModeBillFullPeriod BillingWorkflowInvoicingSubscriptionEndProrationMode = "bill_full_period" ) // Valid indicates whether the value is a known member of the BillingWorkflowInvoicingSubscriptionEndProrationMode enum. func (e BillingWorkflowInvoicingSubscriptionEndProrationMode) Valid() bool { switch e { case BillingWorkflowInvoicingSubscriptionEndProrationModeBillActualPeriod: return true case BillingWorkflowInvoicingSubscriptionEndProrationModeBillFullPeriod: return true default: return false } } // Defines values for BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod. const ( BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethodChargeAutomatically BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod = "charge_automatically" ) // Valid indicates whether the value is a known member of the BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod enum. func (e BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod) Valid() bool { switch e { case BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethodChargeAutomatically: return true default: return false } } // Defines values for BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod. const ( BillingWorkflowPaymentSendInvoiceSettingsCollectionMethodSendInvoice BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod = "send_invoice" ) // Valid indicates whether the value is a known member of the BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod enum. func (e BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod) Valid() bool { switch e { case BillingWorkflowPaymentSendInvoiceSettingsCollectionMethodSendInvoice: return true default: return false } } // Defines values for CreateChargeFlatFeeRequestType. const ( CreateChargeFlatFeeRequestTypeFlatFee CreateChargeFlatFeeRequestType = "flat_fee" ) // Valid indicates whether the value is a known member of the CreateChargeFlatFeeRequestType enum. func (e CreateChargeFlatFeeRequestType) Valid() bool { switch e { case CreateChargeFlatFeeRequestTypeFlatFee: return true default: return false } } // Defines values for CreateChargeUsageBasedRequestType. const ( CreateChargeUsageBasedRequestTypeUsageBased CreateChargeUsageBasedRequestType = "usage_based" ) // Valid indicates whether the value is a known member of the CreateChargeUsageBasedRequestType enum. func (e CreateChargeUsageBasedRequestType) Valid() bool { switch e { case CreateChargeUsageBasedRequestTypeUsageBased: return true default: return false } } // Defines values for GovernanceFeatureAccessReasonCode. const ( GovernanceFeatureAccessReasonCodeFeatureNotFound GovernanceFeatureAccessReasonCode = "feature_not_found" GovernanceFeatureAccessReasonCodeFeatureUnavailable GovernanceFeatureAccessReasonCode = "feature_unavailable" GovernanceFeatureAccessReasonCodeNoCreditAvailable GovernanceFeatureAccessReasonCode = "no_credit_available" GovernanceFeatureAccessReasonCodeUnknown GovernanceFeatureAccessReasonCode = "unknown" GovernanceFeatureAccessReasonCodeUsageLimitReached GovernanceFeatureAccessReasonCode = "usage_limit_reached" ) // Valid indicates whether the value is a known member of the GovernanceFeatureAccessReasonCode enum. func (e GovernanceFeatureAccessReasonCode) Valid() bool { switch e { case GovernanceFeatureAccessReasonCodeFeatureNotFound: return true case GovernanceFeatureAccessReasonCodeFeatureUnavailable: return true case GovernanceFeatureAccessReasonCodeNoCreditAvailable: return true case GovernanceFeatureAccessReasonCodeUnknown: return true case GovernanceFeatureAccessReasonCodeUsageLimitReached: return true default: return false } } // Defines values for GovernanceQueryErrorCode. const ( GovernanceQueryErrorCodeCustomerNotFound GovernanceQueryErrorCode = "customer_not_found" GovernanceQueryErrorCodeUnknown GovernanceQueryErrorCode = "unknown" ) // Valid indicates whether the value is a known member of the GovernanceQueryErrorCode enum. func (e GovernanceQueryErrorCode) Valid() bool { switch e { case GovernanceQueryErrorCodeCustomerNotFound: return true case GovernanceQueryErrorCodeUnknown: return true default: return false } } // Defines values for InvalidParameterChoiceItemRule. const ( InvalidParameterChoiceItemRuleEnum InvalidParameterChoiceItemRule = "enum" ) // Valid indicates whether the value is a known member of the InvalidParameterChoiceItemRule enum. func (e InvalidParameterChoiceItemRule) Valid() bool { switch e { case InvalidParameterChoiceItemRuleEnum: return true default: return false } } // Defines values for InvalidParameterDependentItemRule. const ( InvalidParameterDependentItemRuleDependentFields InvalidParameterDependentItemRule = "dependent_fields" ) // Valid indicates whether the value is a known member of the InvalidParameterDependentItemRule enum. func (e InvalidParameterDependentItemRule) Valid() bool { switch e { case InvalidParameterDependentItemRuleDependentFields: return true default: return false } } // Defines values for InvalidParameterMaximumLengthRule. const ( InvalidParameterMaximumLengthRuleMax InvalidParameterMaximumLengthRule = "max" InvalidParameterMaximumLengthRuleMaxItems InvalidParameterMaximumLengthRule = "max_items" InvalidParameterMaximumLengthRuleMaxLength InvalidParameterMaximumLengthRule = "max_length" ) // Valid indicates whether the value is a known member of the InvalidParameterMaximumLengthRule enum. func (e InvalidParameterMaximumLengthRule) Valid() bool { switch e { case InvalidParameterMaximumLengthRuleMax: return true case InvalidParameterMaximumLengthRuleMaxItems: return true case InvalidParameterMaximumLengthRuleMaxLength: return true default: return false } } // Defines values for InvalidParameterMinimumLengthRule. const ( InvalidParameterMinimumLengthRuleMin InvalidParameterMinimumLengthRule = "min" InvalidParameterMinimumLengthRuleMinDigits InvalidParameterMinimumLengthRule = "min_digits" InvalidParameterMinimumLengthRuleMinItems InvalidParameterMinimumLengthRule = "min_items" InvalidParameterMinimumLengthRuleMinLength InvalidParameterMinimumLengthRule = "min_length" InvalidParameterMinimumLengthRuleMinLowercase InvalidParameterMinimumLengthRule = "min_lowercase" InvalidParameterMinimumLengthRuleMinSymbols InvalidParameterMinimumLengthRule = "min_symbols" InvalidParameterMinimumLengthRuleMinUppercase InvalidParameterMinimumLengthRule = "min_uppercase" ) // Valid indicates whether the value is a known member of the InvalidParameterMinimumLengthRule enum. func (e InvalidParameterMinimumLengthRule) Valid() bool { switch e { case InvalidParameterMinimumLengthRuleMin: return true case InvalidParameterMinimumLengthRuleMinDigits: return true case InvalidParameterMinimumLengthRuleMinItems: return true case InvalidParameterMinimumLengthRuleMinLength: return true case InvalidParameterMinimumLengthRuleMinLowercase: return true case InvalidParameterMinimumLengthRuleMinSymbols: return true case InvalidParameterMinimumLengthRuleMinUppercase: return true default: return false } } // Defines values for InvalidRules. const ( InvalidRulesInvalid InvalidRules = "invalid" InvalidRulesIsArn InvalidRules = "is_arn" InvalidRulesIsArray InvalidRules = "is_array" InvalidRulesIsBase64 InvalidRules = "is_base64" InvalidRulesIsBoolean InvalidRules = "is_boolean" InvalidRulesIsDateTime InvalidRules = "is_date_time" InvalidRulesIsFqdn InvalidRules = "is_fqdn" InvalidRulesIsInteger InvalidRules = "is_integer" InvalidRulesIsLabel InvalidRules = "is_label" InvalidRulesIsNull InvalidRules = "is_null" InvalidRulesIsNumber InvalidRules = "is_number" InvalidRulesIsObject InvalidRules = "is_object" InvalidRulesIsString InvalidRules = "is_string" InvalidRulesIsSupportedNetworkAvailabilityZoneList InvalidRules = "is_supported_network_availability_zone_list" InvalidRulesIsSupportedNetworkCidrBlock InvalidRules = "is_supported_network_cidr_block" InvalidRulesIsSupportedProviderRegion InvalidRules = "is_supported_provider_region" InvalidRulesIsUuid InvalidRules = "is_uuid" InvalidRulesMatchesRegex InvalidRules = "matches_regex" InvalidRulesMissingReference InvalidRules = "missing_reference" InvalidRulesRequired InvalidRules = "required" InvalidRulesType InvalidRules = "type" InvalidRulesUnknownProperty InvalidRules = "unknown_property" ) // Valid indicates whether the value is a known member of the InvalidRules enum. func (e InvalidRules) Valid() bool { switch e { case InvalidRulesInvalid: return true case InvalidRulesIsArn: return true case InvalidRulesIsArray: return true case InvalidRulesIsBase64: return true case InvalidRulesIsBoolean: return true case InvalidRulesIsDateTime: return true case InvalidRulesIsFqdn: return true case InvalidRulesIsInteger: return true case InvalidRulesIsLabel: return true case InvalidRulesIsNull: return true case InvalidRulesIsNumber: return true case InvalidRulesIsObject: return true case InvalidRulesIsString: return true case InvalidRulesIsSupportedNetworkAvailabilityZoneList: return true case InvalidRulesIsSupportedNetworkCidrBlock: return true case InvalidRulesIsSupportedProviderRegion: return true case InvalidRulesIsUuid: return true case InvalidRulesMatchesRegex: return true case InvalidRulesMissingReference: return true case InvalidRulesRequired: return true case InvalidRulesType: return true case InvalidRulesUnknownProperty: return true default: return false } } // Defines values for LLMCostPriceSource. const ( LLMCostPriceSourceManual LLMCostPriceSource = "manual" LLMCostPriceSourceSystem LLMCostPriceSource = "system" ) // Valid indicates whether the value is a known member of the LLMCostPriceSource enum. func (e LLMCostPriceSource) Valid() bool { switch e { case LLMCostPriceSourceManual: return true case LLMCostPriceSourceSystem: return true default: return false } } // Defines values for MeterAggregation. const ( MeterAggregationAvg MeterAggregation = "avg" MeterAggregationCount MeterAggregation = "count" MeterAggregationLatest MeterAggregation = "latest" MeterAggregationMax MeterAggregation = "max" MeterAggregationMin MeterAggregation = "min" MeterAggregationSum MeterAggregation = "sum" MeterAggregationUniqueCount MeterAggregation = "unique_count" ) // Valid indicates whether the value is a known member of the MeterAggregation enum. func (e MeterAggregation) Valid() bool { switch e { case MeterAggregationAvg: return true case MeterAggregationCount: return true case MeterAggregationLatest: return true case MeterAggregationMax: return true case MeterAggregationMin: return true case MeterAggregationSum: return true case MeterAggregationUniqueCount: return true default: return false } } // Defines values for MeterQueryGranularity. const ( MeterQueryGranularityP1D MeterQueryGranularity = "P1D" MeterQueryGranularityP1M MeterQueryGranularity = "P1M" MeterQueryGranularityPT1H MeterQueryGranularity = "PT1H" MeterQueryGranularityPT1M MeterQueryGranularity = "PT1M" ) // Valid indicates whether the value is a known member of the MeterQueryGranularity enum. func (e MeterQueryGranularity) Valid() bool { switch e { case MeterQueryGranularityP1D: return true case MeterQueryGranularityP1M: return true case MeterQueryGranularityPT1H: return true case MeterQueryGranularityPT1M: return true default: return false } } // Defines values for MeteringEventDatacontenttype. const ( MeteringEventDatacontenttypeApplicationjson MeteringEventDatacontenttype = "application/json" ) // Valid indicates whether the value is a known member of the MeteringEventDatacontenttype enum. func (e MeteringEventDatacontenttype) Valid() bool { switch e { case MeteringEventDatacontenttypeApplicationjson: return true default: return false } } // Defines values for UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod. const ( UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethodChargeAutomatically UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod = "charge_automatically" ) // Valid indicates whether the value is a known member of the UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod enum. func (e UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod) Valid() bool { switch e { case UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethodChargeAutomatically: return true default: return false } } // Defines values for UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod. const ( UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethodSendInvoice UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod = "send_invoice" ) // Valid indicates whether the value is a known member of the UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod enum. func (e UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod) Valid() bool { switch e { case UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethodSendInvoice: return true default: return false } } // Defines values for UpdateInvoiceStandardLineType. const ( UpdateInvoiceStandardLineTypeStandardLine UpdateInvoiceStandardLineType = "standard_line" ) // Valid indicates whether the value is a known member of the UpdateInvoiceStandardLineType enum. func (e UpdateInvoiceStandardLineType) Valid() bool { switch e { case UpdateInvoiceStandardLineTypeStandardLine: return true default: return false } } // Defines values for UpdateInvoiceStandardRequestType. const ( UpdateInvoiceStandardRequestTypeStandard UpdateInvoiceStandardRequestType = "standard" ) // Valid indicates whether the value is a known member of the UpdateInvoiceStandardRequestType enum. func (e UpdateInvoiceStandardRequestType) Valid() bool { switch e { case UpdateInvoiceStandardRequestTypeStandard: return true default: return false } } // Defines values for UpdatePriceFlatType. const ( UpdatePriceFlatTypeFlat UpdatePriceFlatType = "flat" ) // Valid indicates whether the value is a known member of the UpdatePriceFlatType enum. func (e UpdatePriceFlatType) Valid() bool { switch e { case UpdatePriceFlatTypeFlat: return true default: return false } } // Defines values for UpdatePriceFreeType. const ( UpdatePriceFreeTypeFree UpdatePriceFreeType = "free" ) // Valid indicates whether the value is a known member of the UpdatePriceFreeType enum. func (e UpdatePriceFreeType) Valid() bool { switch e { case UpdatePriceFreeTypeFree: return true default: return false } } // Defines values for UpdatePriceGraduatedType. const ( UpdatePriceGraduatedTypeGraduated UpdatePriceGraduatedType = "graduated" ) // Valid indicates whether the value is a known member of the UpdatePriceGraduatedType enum. func (e UpdatePriceGraduatedType) Valid() bool { switch e { case UpdatePriceGraduatedTypeGraduated: return true default: return false } } // Defines values for UpdatePriceUnitType. const ( UpdatePriceUnitTypeUnit UpdatePriceUnitType = "unit" ) // Valid indicates whether the value is a known member of the UpdatePriceUnitType enum. func (e UpdatePriceUnitType) Valid() bool { switch e { case UpdatePriceUnitTypeUnit: return true default: return false } } // Defines values for UpdatePriceVolumeType. const ( UpdatePriceVolumeTypeVolume UpdatePriceVolumeType = "volume" ) // Valid indicates whether the value is a known member of the UpdatePriceVolumeType enum. func (e UpdatePriceVolumeType) Valid() bool { switch e { case UpdatePriceVolumeTypeVolume: return true default: return false } } // Addon Add-on allows extending subscriptions with compatible plans with additional // ratecards. type Addon struct { // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency The currency code of the add-on. Currency BillingCurrencyCode `json:"currency"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // EffectiveFrom The date and time when the add-on becomes effective. When not specified, the // add-on is a draft. EffectiveFrom *DateTime `json:"effective_from,omitempty"` // EffectiveTo The date and time when the add-on is no longer effective. When not specified, // the add-on is effective indefinitely. EffectiveTo *DateTime `json:"effective_to,omitempty"` Id ULID `json:"id"` // InstanceType The InstanceType of the add-ons. Can be "single" or "multiple". InstanceType AddonInstanceType `json:"instance_type"` // Key A key is a semi-unique string that is used to identify the add-on. It is used to // reference the latest `active` version of the add-on and is unique with the // version number. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // RateCards The rate cards of the add-on. RateCards []BillingRateCard `json:"rate_cards"` // Status The status of the add-on. Computed based on the effective start and end dates: // // - `draft`: `effective_from` is not set. // - `active`: `effective_from <= now` and (`effective_to` is not set or // `now < effective_to`). // - `archived`: `effective_to <= now`. Status AddonStatus `json:"status"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // ValidationErrors List of validation errors. ValidationErrors *[]ProductCatalogValidationError `json:"validation_errors,omitempty"` // Version Version of the add-on. Incremented when the add-on is updated. Version int `json:"version"` } // AddonInstanceType The instanceType of the add-on. // // - `single`: Can be added to a subscription only once. // - `multiple`: Can be added to a subscription more than once. type AddonInstanceType string // AddonPagePaginatedResponse Page paginated response. type AddonPagePaginatedResponse struct { Data []Addon `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // AddonReference Addon reference. type AddonReference struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } // AddonStatus The status of the add-on defined by the `effective_from` and `effective_to` // properties. // // - `draft`: The add-on has not yet been published and can be edited. // - `active`: The add-on is published and available for use. // - `archived`: The add-on is no longer available for use. type AddonStatus string // Address Address type Address struct { // City City. City *string `json:"city,omitempty"` // Country Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) // alpha-2 format. Country *CountryCode `json:"country,omitempty"` // Line1 First line of the address. Line1 *string `json:"line1,omitempty"` // Line2 Second line of the address. Line2 *string `json:"line2,omitempty"` // PhoneNumber Phone number. PhoneNumber *string `json:"phone_number,omitempty"` // PostalCode Postal code. PostalCode *string `json:"postal_code,omitempty"` // State State or province. State *string `json:"state,omitempty"` } // AppCatalogItemPagePaginatedResponse Page paginated response. type AppCatalogItemPagePaginatedResponse struct { Data []BillingAppCatalogItem `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // AppPagePaginatedResponse Page paginated response. type AppPagePaginatedResponse struct { Data []BillingApp `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // BadRequestError defines model for BadRequestError. type BadRequestError struct { // Detail A human readable explanation specific to this occurence of the problem. // This field may contain request/entity data to help the user understand // what went wrong. Enclose variable values in square brackets. Should be // provided as "Sentence case" for direct use in the UI. Detail string `json:"detail"` // Instance Used to return the correlation ID back to the user, in the format // kong:trace:. This helps us find the relevant logs // when a customer reports an issue. Instance string `json:"instance"` // InvalidParameters invalid parameters InvalidParameters InvalidParameters `json:"invalid_parameters"` // Status The HTTP status code of the error. Useful when passing the response // body to child properties in a frontend UI. Must be returned as an integer. Status int `json:"status"` // Title A short, human-readable summary of the problem. It should not // change between occurences of a problem, except for localization. // Should be provided as "Sentence case" for direct use in the UI. Title string `json:"title"` // Type The error type. Type *string `json:"type,omitempty"` } // BaseError standard error type BaseError struct { // Detail A human readable explanation specific to this occurence of the problem. // This field may contain request/entity data to help the user understand // what went wrong. Enclose variable values in square brackets. Should be // provided as "Sentence case" for direct use in the UI. Detail string `json:"detail"` // Instance Used to return the correlation ID back to the user, in the format // kong:trace:. This helps us find the relevant logs // when a customer reports an issue. Instance string `json:"instance"` // Status The HTTP status code of the error. Useful when passing the response // body to child properties in a frontend UI. Must be returned as an integer. Status int `json:"status"` // Title A short, human-readable summary of the problem. It should not // change between occurences of a problem, except for localization. // Should be provided as "Sentence case" for direct use in the UI. Title string `json:"title"` // Type The error type. Type *string `json:"type,omitempty"` } // BillingApp Installed application. type BillingApp struct { union json.RawMessage } // BillingAppCapability App capability describes a function that an App can perform. type BillingAppCapability struct { // Description Description of the capability. Description string `json:"description"` // Key Key of the capability. Key ResourceKey `json:"key"` // Name Name of the capability. Name string `json:"name"` // Type Type of the capability. Type BillingAppCapabilityType `json:"type"` } // BillingAppCapabilityType Supported capability types for an App. // // Each capability defines an integration function that an App can perform. type BillingAppCapabilityType string // BillingAppCatalogItem Available apps for billing integrations to connect with third-party services. // Apps can have various capabilities like syncing data from or to external // systems, integrating with third-party services for tax calculation, delivery of // invoices, collection of payments, etc. type BillingAppCatalogItem struct { // Capabilities Capabilities of the app. Capabilities []BillingAppCapability `json:"capabilities"` // Description Description of the app. Description string `json:"description"` // InstallMethods Available install methods of the app. InstallMethods []BillingAppInstallMethods `json:"install_methods"` // Name Name of the app. Name string `json:"name"` // Type Type of the app. Type BillingAppType `json:"type"` } // BillingAppCustomerData App customer data. type BillingAppCustomerData struct { // ExternalInvoicing Used if the customer has a linked external invoicing app. ExternalInvoicing *BillingAppCustomerDataExternalInvoicing `json:"external_invoicing,omitempty"` // Stripe Used if the customer has a linked Stripe app. Stripe *BillingAppCustomerDataStripe `json:"stripe,omitempty"` } // BillingAppCustomerDataExternalInvoicing External invoicing customer data. type BillingAppCustomerDataExternalInvoicing struct { // Labels Labels for this external invoicing integration on the customer. Labels *Labels `json:"labels,omitempty"` } // BillingAppCustomerDataStripe Stripe customer data. type BillingAppCustomerDataStripe struct { // CustomerId The Stripe customer ID used. CustomerId *string `json:"customer_id,omitempty"` // DefaultPaymentMethodId The Stripe default payment method ID. DefaultPaymentMethodId *string `json:"default_payment_method_id,omitempty"` // Labels Labels for this Stripe integration on the customer. Labels *Labels `json:"labels,omitempty"` } // BillingAppExternalInvoicing External Invoicing app enables integration with third-party invoicing or payment // system. // // The app supports a bi-directional synchronization pattern where OpenMeter // Billing manages the invoice lifecycle while the external system handles invoice // presentation and payment collection. // // Integration workflow: // // 1. The billing system creates invoices and transitions them through lifecycle // states (draft → issuing → issued) // 2. The integration receives webhook notifications about invoice state changes // 3. The integration calls back to provide external system IDs and metadata // 4. The integration reports payment events back via the payment status API // // State synchronization is controlled by hooks that pause invoice progression // until the external system confirms synchronization via API callbacks. type BillingAppExternalInvoicing struct { // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Definition The app catalog definition that this installed app is based on. Definition BillingAppCatalogItem `json:"definition"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // EnableDraftSyncHook Enable draft synchronization hook. // // When enabled, invoices will pause at the draft state and wait for the // integration to call the draft synchronized endpoint before progressing to the // issuing state. This allows the external system to validate and prepare the // invoice data. // // When disabled, invoices automatically progress through the draft state based on // the configured workflow timing. EnableDraftSyncHook bool `json:"enable_draft_sync_hook"` // EnableIssuingSyncHook Enable issuing synchronization hook. // // When enabled, invoices will pause at the issuing state and wait for the // integration to call the issuing synchronized endpoint before progressing to the // issued state. This ensures the external invoicing system has successfully // created and finalized the invoice before it is marked as issued. // // When disabled, invoices automatically progress through the issuing state and are // immediately marked as issued. EnableIssuingSyncHook bool `json:"enable_issuing_sync_hook"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Status Status of the app connection. Status BillingAppStatus `json:"status"` // Type The app type. Type BillingAppExternalInvoicingType `json:"type"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingAppExternalInvoicingType The app type. type BillingAppExternalInvoicingType string // BillingAppInstallMethods Supported installation methods for an app. type BillingAppInstallMethods string // BillingAppReference App reference. type BillingAppReference struct { // Id The ID of the app. Id ULID `json:"id"` } // BillingAppSandbox Sandbox app can be used for testing billing features. type BillingAppSandbox struct { // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Definition The app catalog definition that this installed app is based on. Definition BillingAppCatalogItem `json:"definition"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Status Status of the app connection. Status BillingAppStatus `json:"status"` // Type The app type. Type BillingAppSandboxType `json:"type"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingAppSandboxType The app type. type BillingAppSandboxType string // BillingAppStatus Connection status of an installed app. type BillingAppStatus string // BillingAppStripe Stripe app. type BillingAppStripe struct { // AccountId The Stripe account ID associated with the connected Stripe account. AccountId string `json:"account_id"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Definition The app catalog definition that this installed app is based on. Definition BillingAppCatalogItem `json:"definition"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Livemode Indicates whether the app is connected to a live Stripe account. Livemode bool `json:"livemode"` // MaskedApiKey The masked Stripe API key that only exposes the first and last few characters. MaskedApiKey string `json:"masked_api_key"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Status Status of the app connection. Status BillingAppStatus `json:"status"` // Type The app type. Type BillingAppStripeType `json:"type"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingAppStripeType The app type. type BillingAppStripeType string // BillingAppStripeCheckoutSessionCustomTextParams Custom text displayed at various stages of the checkout flow. type BillingAppStripeCheckoutSessionCustomTextParams struct { // AfterSubmit Text displayed after the payment confirmation button. AfterSubmit *struct { // Message The custom message text (max 1200 characters). Message *string `json:"message,omitempty"` } `json:"after_submit,omitempty"` // ShippingAddress Text displayed alongside shipping address collection. ShippingAddress *struct { // Message The custom message text (max 1200 characters). Message *string `json:"message,omitempty"` } `json:"shipping_address,omitempty"` // Submit Text displayed alongside the payment confirmation button. Submit *struct { // Message The custom message text (max 1200 characters). Message *string `json:"message,omitempty"` } `json:"submit,omitempty"` // TermsOfServiceAcceptance Text replacing the default terms of service agreement text. TermsOfServiceAcceptance *struct { // Message The custom message text (max 1200 characters). Message *string `json:"message,omitempty"` } `json:"terms_of_service_acceptance,omitempty"` } // BillingAppStripeCheckoutSessionMode Stripe Checkout Session mode. // // Determines the primary purpose of the checkout session. type BillingAppStripeCheckoutSessionMode string // BillingAppStripeCheckoutSessionUIMode Checkout Session UI mode. type BillingAppStripeCheckoutSessionUIMode string // BillingAppStripeCreateCheckoutSessionBillingAddressCollection Controls whether Checkout collects the customer's billing address. type BillingAppStripeCreateCheckoutSessionBillingAddressCollection string // BillingAppStripeCreateCheckoutSessionConsentCollection Checkout Session consent collection configuration. type BillingAppStripeCreateCheckoutSessionConsentCollection struct { // PaymentMethodReuseAgreement Controls the visibility of payment method reuse agreement. PaymentMethodReuseAgreement *BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement `json:"payment_method_reuse_agreement,omitempty"` // Promotions Enables collection of promotional communication consent. // // Only available to US merchants. When set to "auto", Checkout determines whether // to show the option based on the customer's locale. Promotions *BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions `json:"promotions,omitempty"` // TermsOfService Requires customers to accept terms of service before payment. // // Requires a valid terms of service URL in your Stripe Dashboard settings. TermsOfService *BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService `json:"terms_of_service,omitempty"` } // BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement Payment method reuse agreement configuration. type BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement struct { // Position Position and visibility of the payment method reuse agreement. Position *BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition `json:"position,omitempty"` } // BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition Position of payment method reuse agreement in the UI. type BillingAppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreementPosition string // BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions Promotional communication consent collection setting. type BillingAppStripeCreateCheckoutSessionConsentCollectionPromotions string // BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService Terms of service acceptance requirement. type BillingAppStripeCreateCheckoutSessionConsentCollectionTermsOfService string // BillingAppStripeCreateCheckoutSessionCustomerUpdate Controls which customer fields can be updated by the checkout session. type BillingAppStripeCreateCheckoutSessionCustomerUpdate struct { // Address Whether to save the billing address to customer.address. // // Defaults to "never". Address *BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior `json:"address,omitempty"` // Name Whether to save the customer name to customer.name. // // Defaults to "never". Name *BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior `json:"name,omitempty"` // Shipping Whether to save shipping information to customer.shipping. // // Defaults to "never". Shipping *BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior `json:"shipping,omitempty"` } // BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior Behavior for updating customer fields from checkout session. type BillingAppStripeCreateCheckoutSessionCustomerUpdateBehavior string // BillingAppStripeCreateCheckoutSessionRedirectOnCompletion Redirect behavior for embedded checkout sessions. type BillingAppStripeCreateCheckoutSessionRedirectOnCompletion string // BillingAppStripeCreateCheckoutSessionRequestOptions Configuration options for creating a Stripe Checkout Session. // // Based on Stripe's // [Checkout Session API parameters](https://docs.stripe.com/api/checkout/sessions/create). type BillingAppStripeCreateCheckoutSessionRequestOptions struct { // BillingAddressCollection Whether to collect the customer's billing address. // // Defaults to auto, which only collects the address when necessary for tax // calculation. BillingAddressCollection *BillingAppStripeCreateCheckoutSessionBillingAddressCollection `json:"billing_address_collection,omitempty"` // CancelUrl URL to redirect customers who cancel the checkout session. // // Not allowed when ui_mode is "embedded". CancelUrl *string `json:"cancel_url,omitempty"` // ClientReferenceId Unique reference string for reconciling sessions with internal systems. // // Can be a customer ID, cart ID, or any other identifier. ClientReferenceId *string `json:"client_reference_id,omitempty"` // ConsentCollection Configuration for collecting customer consent during checkout. ConsentCollection *BillingAppStripeCreateCheckoutSessionConsentCollection `json:"consent_collection,omitempty"` // Currency Three-letter ISO 4217 currency code in uppercase. // // Required for payment mode sessions. Optional for setup mode sessions. Currency *CurrencyCode `json:"currency,omitempty"` // CustomText Custom text to display during checkout at various stages. CustomText *BillingAppStripeCheckoutSessionCustomTextParams `json:"custom_text,omitempty"` // CustomerUpdate Controls which customer fields can be updated by the checkout session. CustomerUpdate *BillingAppStripeCreateCheckoutSessionCustomerUpdate `json:"customer_update,omitempty"` // ExpiresAt Unix timestamp when the checkout session expires. // // Can be 30 minutes to 24 hours from creation. Defaults to 24 hours. ExpiresAt *int64 `json:"expires_at,omitempty"` // Locale IETF language tag for the checkout UI locale. // // If blank or "auto", uses the browser's locale. Example: "en", "fr", "de". Locale *string `json:"locale,omitempty"` // Metadata Set of key-value pairs to attach to the checkout session. // // Useful for storing additional structured information. Metadata *map[string]string `json:"metadata,omitempty"` // PaymentMethodTypes List of payment method types to enable (e.g., "card", "us_bank_account"). // // If not specified, Stripe enables all relevant payment methods. PaymentMethodTypes *[]string `json:"payment_method_types,omitempty"` // RedirectOnCompletion Redirect behavior for embedded checkout sessions. // // Controls when to redirect users after completion. See: // https://docs.stripe.com/payments/checkout/custom-success-page?payment-ui=embedded-form RedirectOnCompletion *BillingAppStripeCreateCheckoutSessionRedirectOnCompletion `json:"redirect_on_completion,omitempty"` // ReturnUrl Return URL for embedded checkout sessions after payment authentication. // // Required if ui_mode is "embedded" and redirect-based payment methods are // enabled. ReturnUrl *string `json:"return_url,omitempty"` // SuccessUrl Success URL to redirect customers after completing payment or setup. // // Not allowed when ui_mode is "embedded". See: // https://docs.stripe.com/payments/checkout/custom-success-page SuccessUrl *string `json:"success_url,omitempty"` // TaxIdCollection Configuration for collecting tax IDs during checkout. TaxIdCollection *BillingAppStripeCreateCheckoutSessionTaxIdCollection `json:"tax_id_collection,omitempty"` // UiMode The UI mode for the checkout session. // // "hosted" displays a Stripe-hosted page. "embedded" integrates directly into your // app. Defaults to "hosted". UiMode *BillingAppStripeCheckoutSessionUIMode `json:"ui_mode,omitempty"` } // BillingAppStripeCreateCheckoutSessionResult Result of creating a Stripe Checkout Session. // // Contains all the information needed to redirect customers to the checkout or // initialize an embedded checkout flow. type BillingAppStripeCreateCheckoutSessionResult struct { // CancelUrl The cancel URL where customers are redirected if they cancel. CancelUrl *string `json:"cancel_url,omitempty"` // ClientReferenceId The client reference ID provided in the request. // // Useful for reconciling the session with your internal systems. ClientReferenceId *string `json:"client_reference_id,omitempty"` // ClientSecret Client secret for initializing Stripe.js on the client side. // // Required for embedded checkout sessions. See: // https://docs.stripe.com/payments/checkout/custom-success-page ClientSecret *string `json:"client_secret,omitempty"` // CreatedAt Timestamp when the checkout session was created. CreatedAt DateTime `json:"created_at"` // Currency Currency code for the checkout session. Currency *CurrencyCode `json:"currency,omitempty"` // CustomerEmail Customer's email address if provided to Stripe. CustomerEmail *string `json:"customer_email,omitempty"` // CustomerId The customer ID in the billing system. CustomerId ULID `json:"customer_id"` // ExpiresAt Timestamp when the checkout session will expire. ExpiresAt *DateTime `json:"expires_at,omitempty"` // Metadata Metadata attached to the checkout session. Metadata *map[string]string `json:"metadata,omitempty"` // Mode Mode of the checkout session. // // Currently only "setup" mode is supported for collecting payment methods. Mode BillingAppStripeCheckoutSessionMode `json:"mode"` // ReturnUrl The return URL for embedded sessions after authentication. ReturnUrl *string `json:"return_url,omitempty"` // SessionId The Stripe checkout session ID. SessionId string `json:"session_id"` // SetupIntentId The setup intent ID created for collecting the payment method. SetupIntentId string `json:"setup_intent_id"` // Status The status of the checkout session. // // See: // https://docs.stripe.com/api/checkout/sessions/object#checkout_session_object-status Status *string `json:"status,omitempty"` // StripeCustomerId The Stripe customer ID. StripeCustomerId string `json:"stripe_customer_id"` // SuccessUrl The success URL where customers are redirected after completion. SuccessUrl *string `json:"success_url,omitempty"` // Url URL to redirect customers to the checkout page (for hosted mode). Url *string `json:"url,omitempty"` } // BillingAppStripeCreateCheckoutSessionTaxIdCollection Tax ID collection configuration for checkout sessions. type BillingAppStripeCreateCheckoutSessionTaxIdCollection struct { // Enabled Enable tax ID collection during checkout. // // Defaults to false. Enabled *bool `json:"enabled,omitempty"` // Required Whether tax ID collection is required. // // Defaults to "never". Required *BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired `json:"required,omitempty"` } // BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired Tax ID collection requirement level. type BillingAppStripeCreateCheckoutSessionTaxIdCollectionRequired string // BillingAppStripeCreateCustomerPortalSessionOptions Request to create a Stripe Customer Portal Session. type BillingAppStripeCreateCustomerPortalSessionOptions struct { // ConfigurationId The ID of an existing // [Stripe configuration](https://docs.stripe.com/api/customer_portal/configurations) // to use for this session, describing its functionality and features. If not // specified, the session uses the default configuration. ConfigurationId *string `json:"configuration_id,omitempty"` // Locale The IETF // [language tag](https://docs.stripe.com/api/customer_portal/sessions/create#create_portal_session-locale) // of the locale customer portal is displayed in. If blank or `auto`, the // customer's preferred_locales or browser's locale is used. Locale *string `json:"locale,omitempty"` // ReturnUrl The // [URL to redirect](https://docs.stripe.com/api/customer_portal/sessions/create#create_portal_session-return_url) // the customer to after they have completed their requested actions. ReturnUrl *string `json:"return_url,omitempty"` } // BillingAppStripeCreateCustomerPortalSessionResult Result of creating a // [Stripe Customer Portal Session](https://docs.stripe.com/api/customer_portal/sessions/object). // // Contains all the information needed to redirect the customer to the Stripe // Customer Portal. type BillingAppStripeCreateCustomerPortalSessionResult struct { // ConfigurationId Configuration used to customize the customer portal. // // See: // https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-configuration ConfigurationId string `json:"configuration_id"` // CreatedAt Created at. // // See: // https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-created CreatedAt DateTime `json:"created_at"` // Id The ID of the customer portal session. // // See: // https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-id Id string `json:"id"` // Livemode Livemode. // // See: // https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-livemode Livemode bool `json:"livemode"` // Locale The IETF language tag of the locale customer portal is displayed in. // // See: // https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-locale Locale string `json:"locale"` // ReturnUrl Return URL. // // See: // https://docs.stripe.com/api/customer_portal/sessions/object#portal_session_object-return_url ReturnUrl string `json:"return_url"` // StripeCustomerId The ID of the stripe customer. StripeCustomerId string `json:"stripe_customer_id"` // Url The URL to redirect the customer to after they have completed their requested // actions. Url string `json:"url"` } // BillingAppType The type of the app. type BillingAppType string // BillingCharge Customer charge. type BillingCharge struct { union json.RawMessage } // BillingChargeFlatFee A flat fee charge for a customer. type BillingChargeFlatFee struct { // AdvanceAfter The earliest time when the charge should be advanced again by background // processing. AdvanceAfter *DateTime `json:"advance_after,omitempty"` // AmountAfterProration The amount after proration of the charge. AmountAfterProration CurrencyAmount `json:"amount_after_proration"` // BillingPeriod The billing period the charge belongs to. BillingPeriod ClosedPeriod `json:"billing_period"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency The currency of the charge. Currency CurrencyCode `json:"currency"` // Customer The customer owning the charge. Customer BillingCustomerReference `json:"customer"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts The discounts applied to the charge. Discounts *BillingChargeFlatFeeDiscounts `json:"discounts,omitempty"` // FeatureKey The feature associated with the charge, when applicable. FeatureKey *string `json:"feature_key,omitempty"` // FullServicePeriod The full, unprorated service period of the charge. FullServicePeriod ClosedPeriod `json:"full_service_period"` Id ULID `json:"id"` // InvoiceAt The timestamp when the charge is intended to be invoiced. InvoiceAt DateTime `json:"invoice_at"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // LifecycleController Indicates whether the charge lifecycle is controlled by OpenMeter or manually // overridden by the API user. LifecycleController BillingLifecycleController `json:"lifecycle_controller"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PaymentTerm Payment term of the flat fee charge. PaymentTerm BillingPricePaymentTerm `json:"payment_term"` // Price The price of the charge. Price BillingPrice `json:"price"` // ProrationConfiguration The proration configuration of the charge. ProrationConfiguration BillingRateCardProrationConfiguration `json:"proration_configuration"` // ServicePeriod The effective service period covered by the charge. ServicePeriod ClosedPeriod `json:"service_period"` // SettlementMode Settlement mode of the charge. SettlementMode BillingSettlementMode `json:"settlement_mode"` // Status The lifecycle status of the charge. Status BillingChargeStatus `json:"status"` // Subscription The subscription that originated the charge, when the charge was created from a // subscription item. Subscription *BillingSubscriptionReference `json:"subscription,omitempty"` // SystemIntent Current intent from the system lifecycle controller for a charge that has an // active manual override. The top-level charge fields remain the effective // customer-facing intent. SystemIntent *BillingChargeFlatFeeSystemIntent `json:"system_intent,omitempty"` // TaxConfig Tax configuration of the charge. TaxConfig *BillingTaxConfig `json:"tax_config,omitempty"` // Type The type of the charge. Type BillingChargeFlatFeeType `json:"type"` // UniqueReferenceId Unique reference ID of the charge. UniqueReferenceId *string `json:"unique_reference_id,omitempty"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingChargeFlatFeeType The type of the charge. type BillingChargeFlatFeeType string // BillingChargeFlatFeeDiscounts Discounts applicable to flat fee charges. // // This is the same as `ProductCatalog.Discounts` but without the `usage` field, // which is not applicable to flat fee charges. type BillingChargeFlatFeeDiscounts struct { // Percentage Percentage discount applied to the price (0–100). Percentage *float32 `json:"percentage,omitempty"` } // BillingChargeFlatFeeSystemIntent Flat fee intent fields from the system lifecycle controller shadowed by a manual // override. type BillingChargeFlatFeeSystemIntent struct { // AmountBeforeProration The amount before proration of the system lifecycle controller flat fee intent. AmountBeforeProration CurrencyAmount `json:"amount_before_proration"` // BillingPeriod The billing period the charge belongs to. BillingPeriod ClosedPeriod `json:"billing_period"` // DeletedAt The timestamp when the system lifecycle controller intent was deleted. The // effective charge can remain visible while a manual override is active. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts The discounts applied to the charge. Discounts *BillingChargeFlatFeeDiscounts `json:"discounts,omitempty"` // FullServicePeriod The full, unprorated service period of the charge. FullServicePeriod ClosedPeriod `json:"full_service_period"` // InvoiceAt The timestamp when the charge is intended to be invoiced. InvoiceAt DateTime `json:"invoice_at"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PaymentTerm Payment term of the flat fee charge. PaymentTerm BillingPricePaymentTerm `json:"payment_term"` // ProrationConfiguration The proration configuration of the charge. ProrationConfiguration BillingRateCardProrationConfiguration `json:"proration_configuration"` // ServicePeriod The effective service period covered by the charge. ServicePeriod ClosedPeriod `json:"service_period"` } // BillingChargeReference Reference to a charge associated with an invoice line. type BillingChargeReference struct { // Id Unique identifier for the charge. Id ULID `json:"id"` } // BillingChargeStatus Lifecycle status of a charge. // // Values: // // - `created`: The charge has been created but is not active yet. // - `active`: The charge is active. // - `final`: The charge is fully finalized and no further changes are expected. // - `deleted`: The charge has been deleted. type BillingChargeStatus string // BillingChargeTotals The totals of a change. // // RealTime is only expanded when the `real_time_usage` expand is used. type BillingChargeTotals struct { // Booked The amount of the charge already booked to the internal accounting system. Booked BillingTotals `json:"booked"` // Realtime The realtime amount of the charge. // // Requires the `realtime_usage` expand. Realtime *BillingTotals `json:"realtime,omitempty"` } // BillingChargeUsageBased A usage-based charge for a customer. type BillingChargeUsageBased struct { // AdvanceAfter The earliest time when the charge should be advanced again by background // processing. AdvanceAfter *DateTime `json:"advance_after,omitempty"` // BillingPeriod The billing period the charge belongs to. BillingPeriod ClosedPeriod `json:"billing_period"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency The currency of the charge. Currency CurrencyCode `json:"currency"` // Customer The customer owning the charge. Customer BillingCustomerReference `json:"customer"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts Discounts applied to the usage-based charge. Discounts *BillingRateCardDiscounts `json:"discounts,omitempty"` // FeatureKey The feature associated with the charge. FeatureKey string `json:"feature_key"` // FullServicePeriod The full, unprorated service period of the charge. FullServicePeriod ClosedPeriod `json:"full_service_period"` Id ULID `json:"id"` // InvoiceAt The timestamp when the charge is intended to be invoiced. InvoiceAt DateTime `json:"invoice_at"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // LifecycleController Indicates whether the charge lifecycle is controlled by OpenMeter or manually // overridden by the API user. LifecycleController BillingLifecycleController `json:"lifecycle_controller"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Price The price of the charge. Price BillingPrice `json:"price"` // ServicePeriod The effective service period covered by the charge. ServicePeriod ClosedPeriod `json:"service_period"` // SettlementMode Settlement mode of the charge. SettlementMode BillingSettlementMode `json:"settlement_mode"` // Status The lifecycle status of the charge. Status BillingChargeStatus `json:"status"` // Subscription The subscription that originated the charge, when the charge was created from a // subscription item. Subscription *BillingSubscriptionReference `json:"subscription,omitempty"` // SystemIntent Current intent from the system lifecycle controller for a charge that has an // active manual override. The top-level charge fields remain the effective // customer-facing intent. SystemIntent *BillingChargeUsageBasedSystemIntent `json:"system_intent,omitempty"` // TaxConfig Tax configuration of the charge. TaxConfig *BillingTaxConfig `json:"tax_config,omitempty"` // Totals Aggregated booked and realtime totals for the charge. Totals BillingChargeTotals `json:"totals"` // Type The type of the charge. Type BillingChargeUsageBasedType `json:"type"` // UniqueReferenceId Unique reference ID of the charge. UniqueReferenceId *string `json:"unique_reference_id,omitempty"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingChargeUsageBasedType The type of the charge. type BillingChargeUsageBasedType string // BillingChargeUsageBasedSystemIntent Usage-based intent fields from the system lifecycle controller shadowed by a // manual override. type BillingChargeUsageBasedSystemIntent struct { // BillingPeriod The billing period the charge belongs to. BillingPeriod ClosedPeriod `json:"billing_period"` // DeletedAt The timestamp when the system lifecycle controller intent was deleted. The // effective charge can remain visible while a manual override is active. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts Discounts applied to the usage-based charge. Discounts *BillingRateCardDiscounts `json:"discounts,omitempty"` // FullServicePeriod The full, unprorated service period of the charge. FullServicePeriod ClosedPeriod `json:"full_service_period"` // InvoiceAt The timestamp when the charge is intended to be invoiced. InvoiceAt DateTime `json:"invoice_at"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Price The price of the charge. Price BillingPrice `json:"price"` // ServicePeriod The effective service period covered by the charge. ServicePeriod ClosedPeriod `json:"service_period"` } // BillingChargesExpand Expands for customer charges. // // Values: // // - `real_time_usage`: The charge's real-time usage. type BillingChargesExpand string // BillingCostBasis Describes currency basis supported by billing system. type BillingCostBasis struct { // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // EffectiveFrom An ISO-8601 timestamp representation of the date from which the cost basis is // effective. If not provided, it will be effective immediately and will be set to // `now` by the system. EffectiveFrom *DateTime `json:"effective_from,omitempty"` // EffectiveTo An ISO-8601 timestamp representation of the date until which the cost basis is // effective. If provided, it must be later than `effective_from`. If not provided, // it remains effective until superseded. EffectiveTo *DateTime `json:"effective_to,omitempty"` // FiatCode The fiat currency code for the cost basis. FiatCode CurrencyCode `json:"fiat_code"` Id ULID `json:"id"` // Rate The cost rate for the currency. Rate Numeric `json:"rate"` } // BillingCreditAdjustment A credit adjustment can be used to make manual adjustments to a customer's // credit balance. // // Supported use-cases: // // - Usage correction type BillingCreditAdjustment struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` } // BillingCreditAvailabilityPolicy When credits become available for consumption. // // - `on_creation`: Credits are available as soon as the grant is created. // - `on_authorization`: Credits are available once the payment is authorized. // - `on_settlement`: Credits are available once the payment is settled. type BillingCreditAvailabilityPolicy string // BillingCreditBalances The balances of the credits of a customer. type BillingCreditBalances struct { // Balances The balances by currencies. Balances []CreditBalance `json:"balances"` // RetrievedAt The timestamp of the balance retrieval. RetrievedAt DateTime `json:"retrieved_at"` } // BillingCreditFundingMethod The funding method describes how the grant is funded. // // - `none`: No funding workflow applies, for example promotional grants // - `invoice`: The grant is funded by an in-system invoice flow // - `external`: The grant is funded outside the system (e.g., wire transfer, // external invoice, or manual reconciliation) type BillingCreditFundingMethod string // BillingCreditGrant A credit grant allocates credits to a customer. // // Credits are drawn down against charges according to the settlement mode // configured on the rate card. type BillingCreditGrant struct { // Amount Granted credit amount. Amount Numeric `json:"amount"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency The currency of the granted credits. Currency BillingCurrencyCode `json:"currency"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // EffectiveAt The timestamp when the credit grant becomes effective. // // Defaults to the current date and time. EffectiveAt *DateTime `json:"effective_at,omitempty"` // ExpiresAt The timestamp when the credit grant expires. // // Calculated from the grant effective time and `expires_after` if provided. ExpiresAt *DateTime `json:"expires_at,omitempty"` // Filters Filters for the credit grant. Filters *BillingCreditGrantFilters `json:"filters,omitempty"` // FundingMethod Funding method of the grant. FundingMethod BillingCreditFundingMethod `json:"funding_method"` Id ULID `json:"id"` // Invoice Available when `funding_method` is `invoice`. Invoice *BillingCreditGrantInvoiceReference `json:"invoice,omitempty"` // Key Idempotency key for the credit grant creation request. // // When provided, reusing the same key returns an HTTP 409 Conflict instead of // creating a duplicate grant, which makes create requests safe to retry. Key *ExternalResourceKey `json:"key,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Priority Draw-down priority of the grant. Lower values have higher priority. Priority *int16 `json:"priority,omitempty"` // Purchase Present when a funding workflow applies (funding_method is not `none`). Purchase *BillingCreditGrantPurchase `json:"purchase,omitempty"` // Status Current lifecycle status of the grant. Status BillingCreditGrantStatus `json:"status"` // TaxConfig Tax configuration for the grant. // // For `invoice` and `external` funding methods, tax configuration should be // provided to ensure correct revenue recognition. When not provided, the default // credit grant tax code is applied, if that's not set the global default taxcode // is used. TaxConfig *BillingCreditGrantTaxConfig `json:"tax_config,omitempty"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // VoidedAt Timestamp when the grant was voided. VoidedAt *DateTime `json:"voided_at,omitempty"` } // BillingCreditGrantFilters Filters for the credit grant. type BillingCreditGrantFilters struct { // Features Limit the credit grant to specific features. If no features are specified, the // credit grant can be used for any feature. Features *[]ResourceKey `json:"features,omitempty"` } // BillingCreditGrantInvoiceReference Invoice references for the grant. type BillingCreditGrantInvoiceReference struct { // Id Identifier of the invoice associated with the grant. Id *ULID `json:"id,omitempty"` // Line Identifier of the invoice line associated with the grant. Line *struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } `json:"line,omitempty"` } // BillingCreditGrantPurchase Purchase and payment terms of the grant. type BillingCreditGrantPurchase struct { // Amount The purchase amount. Calculated from `per_unit_cost_basis` and credit `amount`. Amount Numeric `json:"amount"` // AvailabilityPolicy Controls when credits become available for consumption. // // Defaults to `on_creation`. AvailabilityPolicy *BillingCreditAvailabilityPolicy `json:"availability_policy,omitempty"` // Currency Currency of the purchase amount. Currency CurrencyCode `json:"currency"` // PerUnitCostBasis Cost basis per credit unit used to calculate the purchase amount. // // If `per_unit_cost_basis` is 0.50 and credit amount is $100.00, the total charge // is $50.00. The value must be greater than 0. If the cost basis is 0, use // `funding_method=none` instead. // // Defaults to 1.0. PerUnitCostBasis *Numeric `json:"per_unit_cost_basis,omitempty"` // SettlementStatus Current payment settlement status. SettlementStatus *BillingCreditPurchasePaymentSettlementStatus `json:"settlement_status,omitempty"` } // BillingCreditGrantStatus Credit grant lifecycle status. // // - `pending`: The credit block has been created but is not yet valid. // (`effective_at` is in the future or availability_policy is not met) // - `active`: The credit block is currently valid and eligible for consumption. // (`effective_at` is in the past, `expires_at` is in the future and // availability_policy is met) // - `expired`: The credit block expired with remaining unused balance, // `expires_at` time has passed. // - `voided`: The credit block was voided. Remaining balance is forfeited. type BillingCreditGrantStatus string // BillingCreditGrantTaxConfig Tax configuration for a credit grant. // // Tax configuration should be provided to ensure correct revenue recognition, // including for externally funded grants. type BillingCreditGrantTaxConfig struct { // Behavior Tax behavior applied to the invoice line item. Behavior *BillingTaxBehavior `json:"behavior,omitempty"` // TaxCode Tax code applied to the invoice line item. TaxCode *TaxCodeReference `json:"tax_code,omitempty"` } // BillingCreditGrantVoidPaymentAdjustment Describes how voiding a credit grant adjusts related payment state. // // - `none`: Voiding does not adjust invoices, payment authorization, settlement, // payment intents, or external collection state. type BillingCreditGrantVoidPaymentAdjustment string // BillingCreditPurchasePaymentSettlementStatus Credit purchase payment settlement status. // // - `pending`: Payment has been initiated and is not yet authorized. // - `authorized`: Payment has been authorized. // - `settled`: Payment has been settled. type BillingCreditPurchasePaymentSettlementStatus string // BillingCreditTransaction A credit transaction represents a single credit movement on the customer's // balance. // // Credit transactions are immutable. type BillingCreditTransaction struct { // Amount Signed amount of the credit movement. Positive values add balance, negative // values reduce balance. Amount Numeric `json:"amount"` // AvailableBalance The available balance before and after the transaction. AvailableBalance struct { // After Numeric represents an arbitrary precision number. After Numeric `json:"after"` // Before Numeric represents an arbitrary precision number. Before Numeric `json:"before"` } `json:"available_balance"` // BookedAt The date and time the transaction was booked. BookedAt DateTime `json:"booked_at"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency Currency of the balance affected by the transaction. Currency BillingCurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Type The type of credit transaction. Type BillingCreditTransactionType `json:"type"` } // BillingCreditTransactionType The type of the credit transaction. // // - `funded`: Credit granted and available for consumption. // - `consumed`: Credit consumed by usage or fees. // - `expired`: Credit removed because it expired before being used. // - `voided`: Credit removed because the grant was voided before being used. type BillingCreditTransactionType string // BillingCurrency Fiat or custom currency. type BillingCurrency struct { union json.RawMessage } // BillingCurrencyCode Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) // currency code. Custom three-letter currency codes are also supported for // convenience. type BillingCurrencyCode = CurrencyCode // BillingCurrencyCodeCustom Custom currency code. It should be a unique code but not conflicting with any // existing fiat currency codes. type BillingCurrencyCodeCustom = string // BillingCurrencyCustom Describes custom currency. type BillingCurrencyCustom struct { // Code Custom currency code. It should be a unique code but not conflicting with any // existing fiat currency codes. Code BillingCurrencyCodeCustom `json:"code"` // CreatedAt An ISO-8601 timestamp representation of the custom currency creation date. CreatedAt DateTime `json:"created_at"` Id ULID `json:"id"` // Name The name of the currency. It should be a human-readable string that represents // the name of the currency, such as "US Dollar" or "Euro". Name string `json:"name"` // Symbol The symbol of the currency. It should be a string that represents the symbol of // the currency, such as "$" for US Dollar or "€" for Euro. Symbol *string `json:"symbol,omitempty"` // Type The type of the currency. Type BillingCurrencyCustomType `json:"type"` } // BillingCurrencyCustomType The type of the currency. type BillingCurrencyCustomType string // BillingCurrencyFiat Currency describes a currency supported by the billing system. type BillingCurrencyFiat struct { Code CurrencyCode `json:"code"` // Name The name of the currency. It should be a human-readable string that represents // the name of the currency, such as "US Dollar" or "Euro". Name string `json:"name"` // Symbol The symbol of the currency. It should be a string that represents the symbol of // the currency, such as "$" for US Dollar or "€" for Euro. Symbol *string `json:"symbol,omitempty"` // Type The type of the currency. Type BillingCurrencyFiatType `json:"type"` } // BillingCurrencyFiatType The type of the currency. type BillingCurrencyFiatType string // BillingCurrencyType Currency type for custom currencies. It should be a unique code but not // conflicting with any existing standard currency codes. type BillingCurrencyType string // BillingCustomer Customers can be individuals or organizations that can subscribe to plans and // have access to features. type BillingCustomer struct { // BillingAddress The billing address of the customer. Used for tax and invoicing. BillingAddress *Address `json:"billing_address,omitempty"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency Currency of the customer. Used for billing, tax and invoicing. Currency *CurrencyCode `json:"currency,omitempty"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Key ExternalResourceKey is a unique string that is used to identify a resource in an // external system. Key ExternalResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PrimaryEmail The primary email address of the customer. PrimaryEmail *string `json:"primary_email,omitempty"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // UsageAttribution Mapping to attribute metered usage to the customer by the event subject. UsageAttribution *BillingCustomerUsageAttribution `json:"usage_attribution,omitempty"` } // BillingCustomerData Billing customer data. type BillingCustomerData struct { // AppData App customer data. AppData *BillingAppCustomerData `json:"app_data,omitempty"` // BillingProfile The billing profile for the customer. // // If not provided, the default billing profile will be used. BillingProfile *BillingProfileReference `json:"billing_profile,omitempty"` } // BillingCustomerReference Customer reference. type BillingCustomerReference struct { // Id The ID of the customer. Id ULID `json:"id"` } // BillingCustomerStripeCreateCheckoutSessionRequest Request to create a Stripe Checkout Session for the customer. // // Checkout Sessions are used to collect payment method information from customers // in a secure, Stripe-hosted interface. This integration uses setup mode to // collect payment methods that can be charged later for subscription billing. type BillingCustomerStripeCreateCheckoutSessionRequest struct { // StripeOptions Options for configuring the Stripe Checkout Session. // // These options are passed directly to Stripe's // [checkout session creation API](https://docs.stripe.com/api/checkout/sessions/create). StripeOptions BillingAppStripeCreateCheckoutSessionRequestOptions `json:"stripe_options"` } // BillingCustomerStripeCreateCustomerPortalSessionRequest Request to create a Stripe Customer Portal Session for the customer. // // Useful to redirect the customer to the Stripe Customer Portal to manage their // payment methods, change their billing address and access their invoice history. // Only returns URL if the customer billing profile is linked to a stripe app and // customer. type BillingCustomerStripeCreateCustomerPortalSessionRequest struct { // StripeOptions Options for configuring the Stripe Customer Portal Session. StripeOptions BillingAppStripeCreateCustomerPortalSessionOptions `json:"stripe_options"` } // BillingCustomerUsageAttribution Mapping to attribute metered usage to the customer. One customer can have zero // or more subjects, but one subject can only belong to one customer. type BillingCustomerUsageAttribution struct { // SubjectKeys The subjects that are attributed to the customer. Can be empty when no usage // event subjects are associated with the customer. SubjectKeys []UsageAttributionSubjectKey `json:"subject_keys"` } // BillingEntitlementAccessResult Entitlement access result. type BillingEntitlementAccessResult struct { // Config Only available for static entitlements. Config is the JSON parsable // configuration of the entitlement. Useful to describe per customer configuration. Config *string `json:"config,omitempty"` // FeatureKey The feature key of the entitlement. FeatureKey ResourceKey `json:"feature_key"` // HasAccess Whether the customer has access to the feature. Always true for `boolean` and // `static` entitlements. Depends on balance for `metered` entitlements. HasAccess bool `json:"has_access"` // Type The type of the entitlement. Type BillingEntitlementType `json:"type"` } // BillingEntitlementType The type of the entitlement. type BillingEntitlementType string // BillingFeatureLLMTokenType Token type for LLM cost lookup. type BillingFeatureLLMTokenType string // BillingFeatureLLMUnitCost LLM cost lookup configuration. Each dimension (provider, model, token type) can // be specified as either a static value or a meter group-by property name // (mutually exclusive). type BillingFeatureLLMUnitCost struct { // Model Static model ID value (e.g., "gpt-4", "claude-3-5-sonnet"). Use this when the // feature tracks a single model. Mutually exclusive with `model_property`. Model *string `json:"model,omitempty"` // ModelProperty Meter group-by property that holds the model ID. Use this when the meter has a // group-by dimension for model. Mutually exclusive with `model`. ModelProperty *string `json:"model_property,omitempty"` // Pricing Resolved per-token pricing from the LLM cost database. Populated in responses // when the provider and model can be determined, either from static values or from // meter group-by filters with exact matches. Pricing *BillingFeatureLLMUnitCostPricing `json:"pricing,omitempty"` // Provider Static LLM provider value (e.g., "openai", "anthropic"). Use this when the // feature tracks a single provider. Mutually exclusive with `provider_property`. Provider *string `json:"provider,omitempty"` // ProviderProperty Meter group-by property that holds the LLM provider. Use this when the meter has // a group-by dimension for provider. Mutually exclusive with `provider`. ProviderProperty *string `json:"provider_property,omitempty"` // TokenType Static token type value. Use this when the feature tracks a single token type // (e.g., only input tokens). `request` is an alias for `input`, `response` is an // alias for `output`. Mutually exclusive with `token_type_property`. TokenType *BillingFeatureLLMTokenType `json:"token_type,omitempty"` // TokenTypeProperty Meter group-by property that holds the token type. Use this when the meter has a // group-by dimension for token type. Mutually exclusive with `token_type`. TokenTypeProperty *string `json:"token_type_property,omitempty"` // Type The type discriminator for LLM unit cost. Type BillingFeatureLLMUnitCostType `json:"type"` } // BillingFeatureLLMUnitCostType The type discriminator for LLM unit cost. type BillingFeatureLLMUnitCostType string // BillingFeatureLLMUnitCostPricing Resolved per-token pricing from the LLM cost database. type BillingFeatureLLMUnitCostPricing struct { // CacheReadPerToken Cost per cache read token in USD. CacheReadPerToken *Numeric `json:"cache_read_per_token,omitempty"` // CacheWritePerToken Cost per cache write token in USD. CacheWritePerToken *Numeric `json:"cache_write_per_token,omitempty"` // InputPerToken Cost per input token in USD. InputPerToken Numeric `json:"input_per_token"` // OutputPerToken Cost per output token in USD. OutputPerToken Numeric `json:"output_per_token"` // ReasoningPerToken Cost per reasoning token in USD. ReasoningPerToken *Numeric `json:"reasoning_per_token,omitempty"` } // BillingFeatureManualUnitCost A fixed per-unit cost amount. type BillingFeatureManualUnitCost struct { // Amount Fixed per-unit cost amount in USD. Amount Numeric `json:"amount"` // Type The type discriminator for manual unit cost. Type BillingFeatureManualUnitCostType `json:"type"` } // BillingFeatureManualUnitCostType The type discriminator for manual unit cost. type BillingFeatureManualUnitCostType string // BillingFeatureUnitCost Per-unit cost configuration for a feature. Either a fixed manual amount or a // dynamic LLM cost lookup. type BillingFeatureUnitCost struct { union json.RawMessage } // BillingInstallAppExternalInvoicing Base model for installing an app from the catalog. type BillingInstallAppExternalInvoicing struct { // CreateBillingProfile If true, a billing profile will be created for the app. The Stripe app will be // also set as the default billing profile if the current default is a Sandbox app. CreateBillingProfile bool `json:"create_billing_profile"` // Name Name of the app. Name string `json:"name"` // Type Type of the app. Type BillingInstallAppExternalInvoicingType `json:"type"` } // BillingInstallAppExternalInvoicingType Type of the app. type BillingInstallAppExternalInvoicingType string // BillingInstallAppRequest Request to install an app from the catalog. type BillingInstallAppRequest struct { union json.RawMessage } // BillingInstallAppResponse Response of the app install. type BillingInstallAppResponse struct { App BillingApp `json:"app"` DefaultForCapabilityTypes []BillingAppCapabilityType `json:"default_for_capability_types"` } // BillingInstallAppSandbox Base model for installing an app from the catalog. type BillingInstallAppSandbox struct { // CreateBillingProfile If true, a billing profile will be created for the app. The Stripe app will be // also set as the default billing profile if the current default is a Sandbox app. CreateBillingProfile bool `json:"create_billing_profile"` // Name Name of the app. Name string `json:"name"` // Type Type of the app. Type BillingInstallAppSandboxType `json:"type"` } // BillingInstallAppSandboxType Type of the app. type BillingInstallAppSandboxType string // BillingInstallAppStripeWithApiKey Model for installing an app from the catalog with an API key. type BillingInstallAppStripeWithApiKey struct { // ApiKey API key for the app. ApiKey string `json:"api_key"` // CreateBillingProfile If true, a billing profile will be created for the app. The Stripe app will be // also set as the default billing profile if the current default is a Sandbox app. CreateBillingProfile bool `json:"create_billing_profile"` // Name Name of the app. Name string `json:"name"` // Type Type of the app. Type BillingInstallAppStripeWithApiKeyType `json:"type"` } // BillingInstallAppStripeWithApiKeyType Type of the app. type BillingInstallAppStripeWithApiKeyType string // BillingInvoice An invoice issued to a customer. // // The `type` field determines the concrete variant: // // - `standard`: a standard invoice for charges owed. type BillingInvoice struct { union json.RawMessage } // BillingInvoiceAvailableActionDetails Details about an available invoice action including the resulting state. type BillingInvoiceAvailableActionDetails struct { // ResultingState The extended status the invoice will transition to after performing this action. ResultingState string `json:"resulting_state"` } // BillingInvoiceAvailableActions The set of state-transition actions available for an invoice in its current // status. // // A field is present only when that action is permitted from the current state. type BillingInvoiceAvailableActions struct { // Advance Advance the invoice to the next workflow step. Advance *BillingInvoiceAvailableActionDetails `json:"advance,omitempty"` // Approve Approve the invoice for issuance. Approve *BillingInvoiceAvailableActionDetails `json:"approve,omitempty"` // Delete Delete the invoice. Delete *BillingInvoiceAvailableActionDetails `json:"delete,omitempty"` // Retry Retry a failed workflow step. Retry *BillingInvoiceAvailableActionDetails `json:"retry,omitempty"` // SnapshotQuantities Snapshot the current usage quantities. SnapshotQuantities *BillingInvoiceAvailableActionDetails `json:"snapshot_quantities,omitempty"` } // BillingInvoiceCustomer Snapshot of the customer's information at the time the invoice was issued. type BillingInvoiceCustomer struct { // BillingAddress The billing address of the customer. Used for tax and invoicing. BillingAddress *Address `json:"billing_address,omitempty"` // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` // Key Optional external resource key for the customer. // // Omitted when the customer was created without a key. Unlike on the customer // resource itself, the key is optional here because the invoice snapshot may // predate or omit it. Key *ExternalResourceKey `json:"key,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UsageAttribution Mapping to attribute metered usage to the customer by the event subject. UsageAttribution *BillingCustomerUsageAttribution `json:"usage_attribution,omitempty"` } // BillingInvoiceDetailedLine A detailed (child) sub-line belonging to a parent invoice line. // // Detailed lines represent the individual flat-fee components that make up a // usage-based parent line after quantity snapshotting. type BillingInvoiceDetailedLine struct { // Category The cost category of this detailed line. Category BillingInvoiceDetailedLineCostCategory `json:"category"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // CreditsApplied Credit applied to this detailed line. CreditsApplied *[]BillingInvoiceLineCreditsApplied `json:"credits_applied,omitempty"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts Discounts applied to this detailed line. Discounts *BillingInvoiceLineDiscounts `json:"discounts,omitempty"` // ExternalReferences External identifiers for this detailed line. ExternalReferences *BillingInvoiceLineExternalReferences `json:"external_references,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Quantity The quantity of the detailed line. Quantity Numeric `json:"quantity"` // ServicePeriod The service period covered by this detailed line. ServicePeriod ClosedPeriod `json:"service_period"` // Totals Aggregated financial totals for the detailed line. Totals BillingTotals `json:"totals"` // UnitPrice The unit price of the detailed line. UnitPrice Numeric `json:"unit_price"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingInvoiceDetailedLineCostCategory Cost category of a detailed invoice line item. type BillingInvoiceDetailedLineCostCategory string // BillingInvoiceDiscountReason The reason a discount was applied to an invoice line. type BillingInvoiceDiscountReason string // BillingInvoiceExternalReferences External identifiers assigned to an invoice by third-party systems. type BillingInvoiceExternalReferences struct { // InvoicingId The ID assigned by the external invoicing app (e.g. Stripe invoice ID). InvoicingId *string `json:"invoicing_id,omitempty"` // PaymentId The ID assigned by the external payment app (e.g. Stripe payment intent ID). PaymentId *string `json:"payment_id,omitempty"` } // BillingInvoiceLine A top-level line item on an invoice. // // Each line represents a single charge, typically associated with a rate card from // a subscription. Detailed (child) lines are nested under `detailed_lines` when // present. type BillingInvoiceLine struct { union json.RawMessage } // BillingInvoiceLineAmountDiscount A monetary amount discount applied to an invoice line item. type BillingInvoiceLineAmountDiscount struct { // Amount The monetary amount deducted. Amount Numeric `json:"amount"` // Description Optional human-readable description of the discount. Description *string `json:"description,omitempty"` // ExternalReferences External identifiers for this discount. ExternalReferences *BillingInvoiceLineExternalReferences `json:"external_references,omitempty"` // Id Unique identifier for the discount. Id ULID `json:"id"` // Reason The reason this discount was applied. Reason BillingInvoiceDiscountReason `json:"reason"` } // BillingInvoiceLineCreditsApplied A credit allocation applied to an invoice line item. type BillingInvoiceLineCreditsApplied struct { // Amount The monetary amount credited. Amount Numeric `json:"amount"` // Description Optional human-readable description of the credit allocation. Description *string `json:"description,omitempty"` } // BillingInvoiceLineDiscounts Discounts applied to an invoice line item. type BillingInvoiceLineDiscounts struct { // Amount Monetary amount discounts (e.g. from maximum spend commitments). Amount *[]BillingInvoiceLineAmountDiscount `json:"amount,omitempty"` // Usage Usage quantity discounts (e.g. free tier usage allowances). Usage *[]BillingInvoiceLineUsageDiscount `json:"usage,omitempty"` } // BillingInvoiceLineExternalReferences External identifiers for an invoice line item assigned by third-party systems. type BillingInvoiceLineExternalReferences struct { // InvoicingId The ID assigned by the external invoicing app. InvoicingId *string `json:"invoicing_id,omitempty"` } // BillingInvoiceLineRateCard Rate card configuration snapshot for a usage-based invoice line. type BillingInvoiceLineRateCard struct { // Discounts Discount configuration from the rate card. Discounts *BillingRateCardDiscounts `json:"discounts,omitempty"` // FeatureKey The feature key associated with this line's rate card. FeatureKey *ResourceKey `json:"feature_key,omitempty"` // Price The price definition used to calculate charges for this line. Price BillingPrice `json:"price"` // TaxConfig Tax configuration snapshot for this line. TaxConfig *BillingRateCardTaxConfig `json:"tax_config,omitempty"` } // BillingInvoiceLineUsageDiscount A usage quantity discount applied to an invoice line item. type BillingInvoiceLineUsageDiscount struct { // Description Optional human-readable description of the discount. Description *string `json:"description,omitempty"` // ExternalReferences External identifiers for this discount. ExternalReferences *BillingInvoiceLineExternalReferences `json:"external_references,omitempty"` // Id Unique identifier for the discount. Id ULID `json:"id"` // Quantity The usage quantity deducted (in billing units). Quantity Numeric `json:"quantity"` // Reason The reason this discount was applied. Reason BillingInvoiceDiscountReason `json:"reason"` } // BillingInvoiceNumber InvoiceNumber is a unique identifier for the invoice, generated by the invoicing // app. // // The uniqueness depends on a lot of factors: // // - app setting (unique per app or unique per customer) // - multiple app scenarios (multiple apps generating invoices with the same // prefix) type BillingInvoiceNumber = string // BillingInvoiceStandard A standard invoice for charges owed by the customer. type BillingInvoiceStandard struct { // CollectionAt Timestamp when collection was initiated for this invoice. CollectionAt *DateTime `json:"collection_at,omitempty"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency Three-letter ISO 4217 currency code for the invoice. Currency CurrencyCode `json:"currency"` // Customer Snapshot of the customer's information at the time the invoice was issued. Customer BillingInvoiceCustomer `json:"customer"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // DraftUntil Timestamp until which the invoice remains in draft state. // // The invoice advances automatically once this time is reached. DraftUntil *DateTime `json:"draft_until,omitempty"` // DueAt Timestamp when payment is due. DueAt *DateTime `json:"due_at,omitempty"` // ExternalReferences External identifiers assigned to this invoice by third-party systems. ExternalReferences *BillingInvoiceExternalReferences `json:"external_references,omitempty"` Id ULID `json:"id"` // IssuedAt Timestamp when the invoice was issued to the customer. IssuedAt *DateTime `json:"issued_at,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Lines Line items on this invoice. // // Always returned on single-resource GET; omitted on list endpoints unless // explicitly expanded. Editable via update: existing lines are matched by `id`, // lines without an `id` are created, and lines present on the invoice but omitted // from the update request are deleted. Detailed (child) lines are always computed // and cannot be edited directly. Lines *[]BillingInvoiceLine `json:"lines,omitempty"` // Number Human-readable invoice number generated by the invoicing app. Number BillingInvoiceNumber `json:"number"` // QuantitySnapshottedAt Timestamp when usage quantities were last snapshotted for this invoice. QuantitySnapshottedAt *DateTime `json:"quantity_snapshotted_at,omitempty"` // SentToCustomerAt Timestamp when the invoice was sent to the customer. SentToCustomerAt *DateTime `json:"sent_to_customer_at,omitempty"` // ServicePeriod The service period covered by this invoice. // // For flat fee the service period can be empty which means `from` will be equals // to `to`. In other cases those fields will be filled with the actual service // period. ServicePeriod ClosedPeriod `json:"service_period"` // Status Current lifecycle status of the invoice. Status BillingInvoiceStandardStatus `json:"status"` // StatusDetails Detailed status information including available actions and workflow state. StatusDetails BillingInvoiceStatusDetails `json:"status_details"` // Supplier Snapshot of the supplier's contact information at the time the invoice was // issued. Supplier BillingSupplier `json:"supplier"` // Totals Aggregated financial totals for the invoice. Totals BillingTotals `json:"totals"` // Type Discriminator field identifying this as a standard invoice. Type BillingInvoiceStandardType `json:"type"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // ValidationIssues Validation issues found during invoice processing. // // Present only when there are one or more validation findings. An empty list is // omitted. ValidationIssues *[]BillingInvoiceValidationIssue `json:"validation_issues,omitempty"` // Workflow Workflow configuration snapshot captured at invoice creation time. Workflow BillingInvoiceWorkflowSettings `json:"workflow"` } // BillingInvoiceStandardType Discriminator field identifying this as a standard invoice. type BillingInvoiceStandardType string // BillingInvoiceStandardLine A top-level line item on an invoice. // // Each line represents a single charge, typically associated with a rate card from // a subscription. Detailed (child) lines are nested under `detailed_lines` when // present. type BillingInvoiceStandardLine struct { // Charge Reference to the charge associated with this line item. Charge *BillingChargeReference `json:"charge,omitempty"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // CreditsApplied Credit applied to this line item. CreditsApplied *[]BillingInvoiceLineCreditsApplied `json:"credits_applied,omitempty"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // DetailedLines Detailed sub-lines that this line has been broken down into. // // Present when line has individual details. DetailedLines []BillingInvoiceDetailedLine `json:"detailed_lines"` // Discounts Discounts applied to this line item. Discounts *BillingInvoiceLineDiscounts `json:"discounts,omitempty"` // ExternalReferences External identifiers for this line item assigned by third-party systems. ExternalReferences *BillingInvoiceLineExternalReferences `json:"external_references,omitempty"` // Id ID of the line. // // Optional on update: omit to create a new line, or supply the ID of an existing // line to edit it. Existing lines omitted from an update's `lines` array are // deleted. Id *ULID `json:"id,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // LifecycleController Indicates whether this line item's lifecycle is controlled by OpenMeter or // manually overridden by the API user. LifecycleController BillingLifecycleController `json:"lifecycle_controller"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // RateCard The rate card configuration snapshot used to price this line item. RateCard BillingInvoiceLineRateCard `json:"rate_card"` // ServicePeriod The service period covered by this invoice, spanning the earliest line start to // the latest line end across all of its lines. // // For an invoice with no lines the period is empty, which means `from` will be // equal to `to`. ServicePeriod ClosedPeriod `json:"service_period"` // Subscription Reference to the subscription item that generated this line. Subscription *BillingSubscriptionReference `json:"subscription,omitempty"` // Totals Aggregated financial totals for the line item. Totals BillingTotals `json:"totals"` // Type The type of charge this line item represents. Type BillingInvoiceStandardLineType `json:"type"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingInvoiceStandardLineType The type of charge this line item represents. type BillingInvoiceStandardLineType string // BillingInvoiceStandardStatus Lifecycle status of a standard invoice. type BillingInvoiceStandardStatus string // BillingInvoiceStatusDetails Detailed status information for a standard invoice. type BillingInvoiceStatusDetails struct { // AvailableActions The set of state-transition actions currently available for this invoice. AvailableActions BillingInvoiceAvailableActions `json:"available_actions"` // ExtendedStatus Fine-grained internal status string providing additional workflow detail beyond // the top-level status enum. ExtendedStatus string `json:"extended_status"` // Failed Whether the invoice is in a failed state. Failed bool `json:"failed"` // Immutable Whether the invoice is immutable (i.e. cannot be modified or deleted). Immutable bool `json:"immutable"` } // BillingInvoiceValidationIssue A validation issue found during invoice processing. // // Converges on the same structure used by plan and subscription validation errors: // a machine-readable `code`, a human-readable `message`, optional structured // `attributes`, plus a `severity` and optional `field` path. type BillingInvoiceValidationIssue struct { // Attributes Additional structured context. Attributes *map[string]interface{} `json:"attributes,omitempty"` // Code Machine-readable error code. Code string `json:"code"` // Field JSON path to the field that caused this validation issue, if applicable. // // For example: `lines/0/rate_card/price`. Field *string `json:"field,omitempty"` // Message Human-readable description of the error. Message string `json:"message"` // Severity Severity of the validation issue. Severity BillingInvoiceValidationIssueSeverity `json:"severity"` } // BillingInvoiceValidationIssueSeverity Severity level of an invoice validation issue. type BillingInvoiceValidationIssueSeverity string // BillingInvoiceWorkflow Invoice-level snapshot of the workflow configuration. // // Contains only the settings that are meaningful for an already-created invoice: // invoicing behaviour and payment settings. Collection alignment and tax policy // are gather-time / profile-wide concerns and are not included. type BillingInvoiceWorkflow struct { // Invoicing Invoicing settings for this invoice. Invoicing *BillingInvoiceWorkflowInvoicingSettings `json:"invoicing,omitempty"` // Payment Payment settings for this invoice. Payment *BillingWorkflowPaymentSettings `json:"payment,omitempty"` } // BillingInvoiceWorkflowAppsReferences BillingInvoiceWorkflowAppsReferences represents the references (id) to the apps // used by a billing profile type BillingInvoiceWorkflowAppsReferences struct { // Invoicing The invoicing app used for this workflow Invoicing BillingAppReference `json:"invoicing"` // Payment The payment app used for this workflow Payment BillingAppReference `json:"payment"` // Tax The tax app used for this workflow Tax BillingAppReference `json:"tax"` } // BillingInvoiceWorkflowInvoicingSettings Invoice-level invoicing settings. // // A subset of BillingWorkflowInvoicingSettings limited to fields that are // meaningful per-invoice. progressive_billing is omitted as it is a gather-time / // profile-level decision. type BillingInvoiceWorkflowInvoicingSettings struct { // AutoAdvance Whether to automatically issue the invoice after the draft_period has passed. AutoAdvance *bool `json:"auto_advance,omitempty"` // DraftPeriod The period for the invoice to be kept in draft status for manual reviews. DraftPeriod *string `json:"draft_period,omitempty"` // DueAfter The period after which the invoice is considered overdue if not paid. DueAfter *string `json:"due_after,omitempty"` } // BillingInvoiceWorkflowSettings Snapshot of the billing workflow configuration captured at invoice creation. type BillingInvoiceWorkflowSettings struct { // Apps The apps that will be used to orchestrate the invoice's workflow. Apps *BillingInvoiceWorkflowAppsReferences `json:"apps,omitempty"` // SourceBillingProfile The billing profile that was the source of this workflow snapshot. SourceBillingProfile BillingProfileReference `json:"source_billing_profile"` // Workflow The workflow configuration that was active when the invoice was created. // // Only the fields that are meaningful at the per-invoice level are included: // invoicing behaviour (auto-advance, draft period) and payment settings // (collection method, due date). Profile-wide settings such as collection // alignment, progressive billing, and tax policy are omitted. Workflow BillingInvoiceWorkflow `json:"workflow"` } // BillingLifecycleController Identifies whether a resource lifecycle is controlled by OpenMeter or manually // overridden by the API user. // // Values: // // - `system`: The resource lifecycle is controlled by OpenMeter. // - `manual`: The resource lifecycle was manually overridden by the API user. type BillingLifecycleController string // BillingParty Party represents a person or business entity. type BillingParty struct { // Addresses Address for where information should be sent if needed. Addresses *BillingPartyAddresses `json:"addresses,omitempty"` // Id Unique identifier for the party. Id *string `json:"id,omitempty"` // Key An optional unique key of the party. Key *ExternalResourceKey `json:"key,omitempty"` // Name Legal name or representation of the party. Name *string `json:"name,omitempty"` // TaxId The entity's legal identification used for tax purposes. They may have other // numbers, but we're only interested in those valid for tax purposes. TaxId *BillingPartyTaxIdentity `json:"tax_id,omitempty"` } // BillingPartyAddresses A collection of addresses for the party. type BillingPartyAddresses struct { // BillingAddress Billing address. BillingAddress Address `json:"billing_address"` } // BillingPartyTaxIdentity Identity stores the details required to identify an entity for tax purposes in a // specific country. type BillingPartyTaxIdentity struct { // Code Normalized tax identification code shown on the original identity document. Code *BillingTaxIdentificationCode `json:"code,omitempty"` } // BillingPlan Plans provide a template for subscriptions. type BillingPlan struct { // BillingCadence The billing cadence for subscriptions using this plan. BillingCadence ISO8601Duration `json:"billing_cadence"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Currency The currency code of the plan. Currency CurrencyCode `json:"currency"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // EffectiveFrom The date and time when the plan becomes `active`. When not specified, the plan // is in `draft` status. EffectiveFrom *DateTime `json:"effective_from,omitempty"` // EffectiveTo A scheduled date and time when the plan becomes `archived`. When not specified, // the plan is in `active` status indefinitely. EffectiveTo *DateTime `json:"effective_to,omitempty"` Id ULID `json:"id"` // Key A key is a semi-unique string that is used to identify the plan. It is used to // reference the latest `active` version of the plan and is unique with the version // number. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Phases The plan phases define the pricing ramp for a subscription. A phase switch // occurs only at the end of a billing period. At least one phase is required. Phases []BillingPlanPhase `json:"phases"` // ProRatingEnabled Whether pro-rating is enabled for this plan. ProRatingEnabled *bool `json:"pro_rating_enabled,omitempty"` // SettlementMode Settlement mode for plan. // // Values: // // - `credit_then_invoice`: Credits are applied first, then any remainder is // invoiced. // - `credit_only`: Usage is settled exclusively against credits. SettlementMode *BillingSettlementMode `json:"settlement_mode,omitempty"` // Status The status of the plan. Computed based on the effective start and end dates: // // - `draft`: `effective_from` is not set. // - `scheduled`: `now < effective_from`. // - `active`: `effective_from <= now` and (`effective_to` is not set or // `now < effective_to`). // - `archived`: `effective_to <= now`. Status BillingPlanStatus `json:"status"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // ValidationErrors List of validation errors in `draft` state that prevent the plan from being // published. ValidationErrors *[]ProductCatalogValidationError `json:"validation_errors,omitempty"` // Version Plans are versioned to allow you to make changes without affecting running // subscriptions. Version int `json:"version"` } // BillingPlanPhase The plan phase or pricing ramp allows changing a plan's rate cards over time as // a subscription progresses. type BillingPlanPhase struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Duration The duration of the phase. When not specified, the phase runs indefinitely. Only // the last phase may omit the duration. Duration *ISO8601Duration `json:"duration,omitempty"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // RateCards The rate cards of the plan. RateCards []BillingRateCard `json:"rate_cards"` } // BillingPlanStatus The status of a plan. // // - `draft`: The plan has not yet been published and can be edited. // - `active`: The plan is published and can be used in subscriptions. // - `archived`: The plan is no longer available for use. // - `scheduled`: The plan is scheduled to be published at a future date. type BillingPlanStatus string // BillingPrice Price. type BillingPrice struct { union json.RawMessage } // BillingPriceFlat Flat price. type BillingPriceFlat struct { // Amount The amount of the flat price. Amount Numeric `json:"amount"` // Type The type of the price. Type BillingPriceFlatType `json:"type"` } // BillingPriceFlatType The type of the price. type BillingPriceFlatType string // BillingPriceFree Free price. type BillingPriceFree struct { // Type The type of the price. Type BillingPriceFreeType `json:"type"` } // BillingPriceFreeType The type of the price. type BillingPriceFreeType string // BillingPriceGraduated Graduated tiered price. // // Each tier's rate applies only to the usage within that tier. Pricing can change // as cumulative usage crosses tier boundaries. // // When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are // expressed in converted billing units. type BillingPriceGraduated struct { // Tiers The tiers of the graduated price. At least one tier is required. Tiers []BillingPriceTier `json:"tiers"` // Type The type of the price. Type BillingPriceGraduatedType `json:"type"` } // BillingPriceGraduatedType The type of the price. type BillingPriceGraduatedType string // BillingPricePaymentTerm The payment term of a flat price. type BillingPricePaymentTerm string // BillingPriceTier A price tier used in graduated and volume pricing. // // At least one price component (flat_price or unit_price) must be set. When // UnitConfig is present on the rate card, up_to_amount is expressed in converted // billing units. type BillingPriceTier struct { // FlatPrice The flat price component of the tier. Charged once when the tier is entered. FlatPrice *BillingPriceFlat `json:"flat_price,omitempty"` // UnitPrice The unit price component of the tier. Charged per billing unit within the tier. UnitPrice *BillingPriceUnit `json:"unit_price,omitempty"` // UpToAmount Up to and including this quantity will be contained in the tier. If undefined, // the tier is open-ended (the last tier). UpToAmount *Numeric `json:"up_to_amount,omitempty"` } // BillingPriceUnit Unit price. // // Charges a fixed rate per billing unit. When UnitConfig is present on the rate // card, billing units are the converted quantities (e.g. GB instead of bytes). type BillingPriceUnit struct { // Amount The amount of the unit price. Amount Numeric `json:"amount"` // Type The type of the price. Type BillingPriceUnitType `json:"type"` } // BillingPriceUnitType The type of the price. type BillingPriceUnitType string // BillingPriceVolume Volume tiered price. // // The maximum quantity within a period determines the per-unit price for all units // in that period. // // When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are // expressed in converted billing units. type BillingPriceVolume struct { // Tiers The tiers of the volume price. At least one tier is required. Tiers []BillingPriceTier `json:"tiers"` // Type The type of the price. Type BillingPriceVolumeType `json:"type"` } // BillingPriceVolumeType The type of the price. type BillingPriceVolumeType string // BillingProfile Billing profiles contain the settings for billing and controls invoice // generation. type BillingProfile struct { // Apps The applications used by this billing profile. Apps BillingProfileAppReferences `json:"apps"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // Default Whether this is the default profile. Default bool `json:"default"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Supplier The name and contact information for the supplier this billing profile // represents Supplier BillingParty `json:"supplier"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // Workflow The billing workflow settings for this profile Workflow BillingWorkflow `json:"workflow"` } // BillingProfileAppReferences References to the applications used by a billing profile. type BillingProfileAppReferences struct { // Invoicing The invoicing app used for this workflow. Invoicing BillingAppReference `json:"invoicing"` // Payment The payment app used for this workflow. Payment BillingAppReference `json:"payment"` // Tax The tax app used for this workflow. Tax BillingAppReference `json:"tax"` } // BillingProfilePagePaginatedResponse Page paginated response. type BillingProfilePagePaginatedResponse struct { Data []BillingProfile `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // BillingProfileReference Billing profile reference. type BillingProfileReference struct { // Id The ID of the billing profile. Id ULID `json:"id"` } // BillingRateCard A rate card defines the pricing and entitlement of a feature or service. type BillingRateCard struct { // BillingCadence The billing cadence of the rate card. When null, the charge is one-time // (non-recurring). Only valid for flat prices. BillingCadence *ISO8601Duration `json:"billing_cadence,omitempty"` // Commitments Spend commitments for this rate card. Only applicable to usage-based prices // (unit, graduated, volume). Commitments *BillingSpendCommitments `json:"commitments,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts The discounts of the rate card. Discounts *BillingRateCardDiscounts `json:"discounts,omitempty"` // Entitlement The entitlement template granted to subscribers of a plan or addon containing // this rate card. Requires `feature` to be set. Entitlement *BillingRateCardEntitlement `json:"entitlement,omitempty"` // Feature The feature associated with the rate card. Feature *FeatureReference `json:"feature,omitempty"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PaymentTerm The payment term of the rate card. In advance payment term can only be used for // flat prices. PaymentTerm *BillingPricePaymentTerm `json:"payment_term,omitempty"` // Price The price of the rate card. Price BillingPrice `json:"price"` // TaxConfig The tax config of the rate card. TaxConfig *BillingRateCardTaxConfig `json:"tax_config,omitempty"` // UnitConfig Unit conversion configuration for the rate card. // // Synthesized on read for plans authored with v1 dynamic or package prices: // dynamic prices map to a unit price with a multiply unit config, and package // prices map to a unit price with a divide unit config. // // Accepted on create and update only when the UnitConfig feature is enabled on the // deployment; otherwise rejected. UnitConfig *BillingUnitConfig `json:"unit_config,omitempty"` } // BillingRateCardBooleanEntitlement The entitlement template of a boolean entitlement. type BillingRateCardBooleanEntitlement struct { // Type The type of the entitlement template. Type BillingRateCardBooleanEntitlementType `json:"type"` } // BillingRateCardBooleanEntitlementType The type of the entitlement template. type BillingRateCardBooleanEntitlementType string // BillingRateCardDiscounts Discount configuration for a rate card. type BillingRateCardDiscounts struct { // Percentage Percentage discount applied to the price (0–100). Percentage *float32 `json:"percentage,omitempty"` // Usage Number of usage units granted free before billing starts. Only applies to // usage-based lines (not flat fees). Usage is treated as zero until this amount is // exhausted. Usage *Numeric `json:"usage,omitempty"` } // BillingRateCardEntitlement Entitlement template configured on a rate card. The feature is taken from the // rate card itself, so it is omitted here. type BillingRateCardEntitlement struct { union json.RawMessage } // BillingRateCardMeteredEntitlement The entitlement template of a metered entitlement. type BillingRateCardMeteredEntitlement struct { // IsSoftLimit If soft limit is true, the subject can use the feature even if the entitlement // is exhausted; access remains granted. IsSoftLimit *bool `json:"is_soft_limit,omitempty"` // Limit The amount of usage granted each usage period, in the feature's unit. Usage is // counted against this allowance and the balance resets every usage period. When // `is_soft_limit` is true the subject keeps access after the limit is reached; // otherwise access is denied once the allowance is exhausted. Limit *float64 `json:"limit,omitempty"` // Type The type of the entitlement template. Type BillingRateCardMeteredEntitlementType `json:"type"` // UsagePeriod The reset interval of the metered entitlement in ISO8601 format. Defaults to the // billing cadence of the rate card. UsagePeriod *ISO8601Duration `json:"usage_period,omitempty"` } // BillingRateCardMeteredEntitlementType The type of the entitlement template. type BillingRateCardMeteredEntitlementType string // BillingRateCardProrationConfiguration The proration configuration of the rate card. type BillingRateCardProrationConfiguration struct { // Mode The proration mode of the rate card. Mode BillingRateCardProrationMode `json:"mode"` } // BillingRateCardProrationMode The proration mode of the rate card. // // Values: // // - `no_proration`: No proration. // - `prorate_prices`: Prorate the price based on the time remaining in the billing // period. type BillingRateCardProrationMode string // BillingRateCardStaticEntitlement The entitlement template of a static entitlement. type BillingRateCardStaticEntitlement struct { // Config The entitlement config as a JSON object. Returned when checking entitlement // access; useful for configuring fine-grained access settings implemented in your // own system. Config interface{} `json:"config"` // Type The type of the entitlement template. Type BillingRateCardStaticEntitlementType `json:"type"` } // BillingRateCardStaticEntitlementType The type of the entitlement template. type BillingRateCardStaticEntitlementType string // BillingRateCardTaxConfig The tax config of the rate card. type BillingRateCardTaxConfig struct { // Behavior Tax behavior. // // This enum is used to specify whether tax is included in the price or excluded // from the price. Behavior *BillingTaxBehavior `json:"behavior,omitempty"` // Code TaxCode reference. Code TaxCodeReference `json:"code"` } // BillingSettlementMode Settlement mode for billing. // // Values: // // - `credit_then_invoice`: Credits are applied first, then any remainder is // invoiced. // - `credit_only`: Usage is settled exclusively against credits. type BillingSettlementMode string // BillingSpendCommitments Spend commitments for a rate card. The customer is committed to spend at least // the minimum amount and at most the maximum amount. type BillingSpendCommitments struct { // MaximumAmount The customer is limited to spend at most the amount. MaximumAmount *Numeric `json:"maximum_amount,omitempty"` // MinimumAmount The customer is committed to spend at least the amount. MinimumAmount *Numeric `json:"minimum_amount,omitempty"` } // BillingSubscription Subscription. type BillingSubscription struct { // BillingAnchor A billing anchor is the fixed point in time that determines the subscription's // recurring billing cycle. It affects when charges occur and how prorations are // calculated. Common anchors: // // - Calendar month (1st of each month): `2025-01-01T00:00:00Z` // - Subscription anniversary (day customer signed up) // - Custom date (customer-specified day) BillingAnchor DateTime `json:"billing_anchor"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // CustomerId The customer ID of the subscription. CustomerId ULID `json:"customer_id"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // PlanId The plan ID of the subscription. Set if subscription is created from a plan. PlanId *ULID `json:"plan_id,omitempty"` // SettlementMode Settlement mode for billing. // // Values: // // - `credit_then_invoice`: Credits are applied first, then any remainder is // invoiced. // - `credit_only`: Usage is settled exclusively against credits. SettlementMode *BillingSettlementMode `json:"settlement_mode,omitempty"` // Status The status of the subscription. Status BillingSubscriptionStatus `json:"status"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingSubscriptionCancel Request for canceling a subscription. type BillingSubscriptionCancel struct { // Timing If not provided the subscription is canceled immediately. Timing *BillingSubscriptionEditTiming `json:"timing,omitempty"` } // BillingSubscriptionChange Request for changing a subscription. type BillingSubscriptionChange struct { // BillingAnchor A billing anchor is the fixed point in time that determines the subscription's // recurring billing cycle. It affects when charges occur and how prorations are // calculated. Common anchors: // // - Calendar month (1st of each month): `2025-01-01T00:00:00Z` // - Subscription anniversary (day customer signed up) // - Custom date (customer-specified day) // // If not provided, the subscription will be created with the subscription's // creation time as the billing anchor. BillingAnchor *DateTime `json:"billing_anchor,omitempty"` // Customer The customer to create the subscription for. Customer struct { // Id The ID of the customer to create the subscription for. // // Either customer ID or customer key must be provided. If both are provided, the // ID will be used. Id *ULID `json:"id,omitempty"` // Key The key of the customer to create the subscription for. // // Either customer ID or customer key must be provided. If both are provided, the // ID will be used. Key *ExternalResourceKey `json:"key,omitempty"` } `json:"customer"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Plan The plan reference of the subscription. Plan struct { // Id The plan ID of the subscription. Set if subscription is created from a plan. // // ID or Key of the plan is required if creating a subscription from a plan. If // both are provided, the ID will be used. Id *ULID `json:"id,omitempty"` // Key The plan Key of the subscription, if any. Set if subscription is created from a // plan. // // ID or Key of the plan is required if creating a subscription from a plan. If // both are provided, the ID will be used. Key *ResourceKey `json:"key,omitempty"` // Version The plan version of the subscription, if any. If not provided, the latest // version of the plan will be used. Version *int `json:"version,omitempty"` } `json:"plan"` // SettlementMode Settlement mode for billing. // // Values: // // - `credit_then_invoice`: Credits are applied first, then any remainder is // invoiced. // - `credit_only`: Usage is settled exclusively against credits. SettlementMode *BillingSettlementMode `json:"settlement_mode,omitempty"` // Timing Timing configuration for the change, when the change should take effect. For // changing a subscription, the accepted values depend on the subscription // configuration. Timing BillingSubscriptionEditTiming `json:"timing"` } // BillingSubscriptionChangeResponse Response for changing a subscription. type BillingSubscriptionChangeResponse struct { // Current The current subscription before the change. Current BillingSubscription `json:"current"` // Next The new state of the subscription after the change. Next BillingSubscription `json:"next"` } // BillingSubscriptionCreate Subscription create request. type BillingSubscriptionCreate struct { // BillingAnchor A billing anchor is the fixed point in time that determines the subscription's // recurring billing cycle. It affects when charges occur and how prorations are // calculated. Common anchors: // // - Calendar month (1st of each month): `2025-01-01T00:00:00Z` // - Subscription anniversary (day customer signed up) // - Custom date (customer-specified day) // // If not provided, the subscription will be created with the subscription's // creation time as the billing anchor. BillingAnchor *DateTime `json:"billing_anchor,omitempty"` // Customer The customer to create the subscription for. Customer struct { // Id The ID of the customer to create the subscription for. // // Either customer ID or customer key must be provided. If both are provided, the // ID will be used. Id *ULID `json:"id,omitempty"` // Key The key of the customer to create the subscription for. // // Either customer ID or customer key must be provided. If both are provided, the // ID will be used. Key *ExternalResourceKey `json:"key,omitempty"` } `json:"customer"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Plan The plan reference of the subscription. Plan struct { // Id The plan ID of the subscription. Set if subscription is created from a plan. // // ID or Key of the plan is required if creating a subscription from a plan. If // both are provided, the ID will be used. Id *ULID `json:"id,omitempty"` // Key The plan Key of the subscription, if any. Set if subscription is created from a // plan. // // ID or Key of the plan is required if creating a subscription from a plan. If // both are provided, the ID will be used. Key *ResourceKey `json:"key,omitempty"` // Version The plan version of the subscription, if any. If not provided, the latest // version of the plan will be used. Version *int `json:"version,omitempty"` } `json:"plan"` // SettlementMode Settlement mode for billing. // // Values: // // - `credit_then_invoice`: Credits are applied first, then any remainder is // invoiced. // - `credit_only`: Usage is settled exclusively against credits. SettlementMode *BillingSettlementMode `json:"settlement_mode,omitempty"` } // BillingSubscriptionEditTiming Subscription edit timing defined when the changes should take effect. If the // provided configuration is not supported by the subscription, an error will be // returned. type BillingSubscriptionEditTiming struct { union json.RawMessage } // BillingSubscriptionEditTimingEnum Subscription edit timing. When immediate, the requested changes take effect // immediately. When next_billing_cycle, the requested changes take effect at the // next billing cycle. type BillingSubscriptionEditTimingEnum string // BillingSubscriptionReference Subscription reference represents a reference to the specific subscription item // this entity represents. type BillingSubscriptionReference struct { // Id The ID of the subscription. Id ULID `json:"id"` // Phase The phase of the subscription. Phase struct { // Id The ID of the phase. Id ULID `json:"id"` // Item The item of the phase. Item struct { // Id The ID of the item. Id ULID `json:"id"` } `json:"item"` } `json:"phase"` } // BillingSubscriptionStatus Subscription status. type BillingSubscriptionStatus string // BillingSupplier Snapshot of the supplier's information at the time the invoice was issued. // // Structurally a read-only subset of `BillingParty` (the type configured on the // billing profile), so the snapshot stays aligned with the source. `key` is // omitted because it is not part of the snapshotted supplier data. type BillingSupplier struct { // Addresses Address for where information should be sent if needed. Addresses *BillingPartyAddresses `json:"addresses,omitempty"` // Id Unique identifier for the party. Id *string `json:"id,omitempty"` // Name Legal name or representation of the party. Name *string `json:"name,omitempty"` // TaxId The entity's legal identification used for tax purposes. They may have other // numbers, but we're only interested in those valid for tax purposes. TaxId *BillingPartyTaxIdentity `json:"tax_id,omitempty"` } // BillingTaxBehavior Tax behavior. // // This enum is used to specify whether tax is included in the price or excluded // from the price. type BillingTaxBehavior string // BillingTaxCode Tax codes by provider. type BillingTaxCode struct { // AppMappings Mapping of app types to tax codes. AppMappings []BillingTaxCodeAppMapping `json:"app_mappings"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // BillingTaxCodeAppMapping Mapping of app types to tax codes. type BillingTaxCodeAppMapping struct { // AppType The app type that the tax code is associated with. AppType BillingAppType `json:"app_type"` // TaxCode Tax code. TaxCode string `json:"tax_code"` } // BillingTaxConfig Set of provider specific tax configs. type BillingTaxConfig struct { // Behavior Tax behavior. // // If not specified the billing profile is used to determine the tax behavior. If // not specified in the billing profile, the provider's default behavior is used. Behavior *BillingTaxBehavior `json:"behavior,omitempty"` // ExternalInvoicing External invoicing tax config. // Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set ExternalInvoicing *BillingTaxConfigExternalInvoicing `json:"external_invoicing,omitempty"` // Stripe Stripe tax config. // Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set Stripe *BillingTaxConfigStripe `json:"stripe,omitempty"` // TaxCode Tax code reference. // // When both `tax_code` and `tax_code_id` are provided, `tax_code` takes // precedence. When `stripe.code` is also provided, `tax_code` still wins and // `stripe.code` is ignored. TaxCode *TaxCodeReference `json:"tax_code,omitempty"` // TaxCodeId Tax code ID. // Deprecated: this property has been marked as deprecated upstream, but no `x-deprecated-reason` was set TaxCodeId *ULID `json:"tax_code_id,omitempty"` } // BillingTaxConfigExternalInvoicing External invoicing tax config. type BillingTaxConfigExternalInvoicing struct { // Code The tax code should be interpreted by the external invoicing provider. Code string `json:"code"` } // BillingTaxConfigStripe The tax config for Stripe. type BillingTaxConfigStripe struct { // Code Product [tax code](https://docs.stripe.com/tax/tax-codes). Code string `json:"code"` } // BillingTaxIdentificationCode Tax identifier code is a normalized tax code shown on the original identity // document. type BillingTaxIdentificationCode = string // BillingTotals Totals contains the summaries of all calculations for a billing resource. type BillingTotals struct { // Amount The total value of the resource before taxes, discounts and commitments. Amount Numeric `json:"amount"` // ChargesTotal The total amount contributed by additional charges. ChargesTotal Numeric `json:"charges_total"` // CreditsTotal The total amount deducted through credits before taxes are applied. CreditsTotal Numeric `json:"credits_total"` // DiscountsTotal The total amount deducted through discounts. DiscountsTotal Numeric `json:"discounts_total"` // TaxesExclusiveTotal The total tax amount added on top of the resource amount. TaxesExclusiveTotal Numeric `json:"taxes_exclusive_total"` // TaxesInclusiveTotal The total tax amount already included in the resource amount. TaxesInclusiveTotal Numeric `json:"taxes_inclusive_total"` // TaxesTotal The total tax amount applied to the resource. TaxesTotal Numeric `json:"taxes_total"` // Total The final total value of the resource after taxes, discounts and commitments. Total Numeric `json:"total"` } // BillingUnitConfig Unit conversion configuration. // // Transforms raw metered quantities into billing-ready units before pricing and // entitlement evaluation. Applied at the rate card level so the same feature can // be billed in different units across plans. // // Examples: // // - Meter bytes, bill GB: operation=divide, conversionFactor=1e9, // rounding=ceiling, displayUnit="GB" // - Meter seconds, bill hours: operation=divide, conversionFactor=3600, // rounding=ceiling, displayUnit="hours" // - Cost + 20% margin: operation=multiply, conversionFactor=1.2 // - Bill per million tokens: operation=divide, conversionFactor=1e6, // rounding=ceiling, displayUnit="M" // // v1 equivalents: // // - DynamicPrice(multiplier): operation=multiply, conversionFactor=multiplier + // UnitPrice(amount=1) // - PackagePrice(amount, quantityPerPkg): operation=divide, // conversionFactor=quantityPerPkg, rounding=ceiling + UnitPrice(amount) type BillingUnitConfig struct { // ConversionFactor The factor used in the conversion operation. // // - For `divide`: `converted = raw / conversionFactor`. // - For `multiply`: `converted = raw × conversionFactor`. // // Must be a positive non-zero value. ConversionFactor Numeric `json:"conversion_factor"` // DisplayUnit A human-readable label for the converted unit shown on invoices and in the // customer portal (e.g., "GB", "hours", "M tokens"). // // Optional. When omitted, no unit label is rendered. DisplayUnit *string `json:"display_unit,omitempty"` // Operation The arithmetic operation to apply to the raw metered quantity. Operation BillingUnitConfigOperation `json:"operation"` // Precision The number of decimal places to retain after rounding. // // Only meaningful when rounding is not "none". Defaults to 0 (round to whole // numbers). Precision *int `json:"precision,omitempty"` // Rounding The rounding mode applied to the converted quantity for invoicing. // // Defaults to none (no rounding). Entitlement checks always use the precise // (unrounded) value. Rounding *BillingUnitConfigRoundingMode `json:"rounding,omitempty"` } // BillingUnitConfigOperation The arithmetic operation used to convert raw metered units into billing units. // // - `divide`: Divide the metered quantity by the conversion factor (e.g., bytes ÷ // 1e9 = GB). // - `multiply`: Multiply the metered quantity by the conversion factor (e.g., cost // × 1.2 = cost + 20% margin). type BillingUnitConfigOperation string // BillingUnitConfigRoundingMode The rounding mode applied to the converted quantity for invoicing. // // Rounding is applied only to the invoiced quantity. Entitlement balance checks // use the precise decimal value after conversion. // // - `ceiling`: Round up to the next integer (typical for package-style billing). // - `floor`: Round down to the previous integer. // - `half_up`: Round to the nearest integer, with 0.5 rounding up. // - `none`: No rounding; the converted value is used as-is. type BillingUnitConfigRoundingMode string // BillingWorkflow Billing workflow settings. type BillingWorkflow struct { // Collection The collection settings for this workflow Collection *BillingWorkflowCollectionSettings `json:"collection,omitempty"` // Invoicing The invoicing settings for this workflow Invoicing *BillingWorkflowInvoicingSettings `json:"invoicing,omitempty"` // Payment The payment settings for this workflow Payment *BillingWorkflowPaymentSettings `json:"payment,omitempty"` // Tax The tax settings for this workflow Tax *BillingWorkflowTaxSettings `json:"tax,omitempty"` } // BillingWorkflowCollectionAlignment The alignment for collecting the pending line items into an invoice. // // Defaults to subscription, which means that we are to create a new invoice every // time the a subscription period starts (for in advance items) or ends (for in // arrears items). type BillingWorkflowCollectionAlignment struct { union json.RawMessage } // BillingWorkflowCollectionAlignmentAnchored BillingWorkflowCollectionAlignmentAnchored specifies the alignment for // collecting the pending line items into an invoice. type BillingWorkflowCollectionAlignmentAnchored struct { // RecurringPeriod The recurring period for the alignment. RecurringPeriod RecurringPeriod `json:"recurring_period"` // Type The type of alignment. Type BillingWorkflowCollectionAlignmentAnchoredType `json:"type"` } // BillingWorkflowCollectionAlignmentAnchoredType The type of alignment. type BillingWorkflowCollectionAlignmentAnchoredType string // BillingWorkflowCollectionAlignmentSubscription BillingWorkflowCollectionAlignmentSubscription specifies the alignment for // collecting the pending line items into an invoice. type BillingWorkflowCollectionAlignmentSubscription struct { // Type The type of alignment. Type BillingWorkflowCollectionAlignmentSubscriptionType `json:"type"` } // BillingWorkflowCollectionAlignmentSubscriptionType The type of alignment. type BillingWorkflowCollectionAlignmentSubscriptionType string // BillingWorkflowCollectionSettings Workflow collection specifies how to collect the pending line items for an // invoice. type BillingWorkflowCollectionSettings struct { // Alignment The alignment for collecting the pending line items into an invoice. Alignment *BillingWorkflowCollectionAlignment `json:"alignment,omitempty"` // Interval This grace period can be used to delay the collection of the pending line items // specified in alignment. // // This is useful, in case of multiple subscriptions having slightly different // billing periods. Interval *string `json:"interval,omitempty"` } // BillingWorkflowInvoicingSettings Invoice settings for a billing workflow. type BillingWorkflowInvoicingSettings struct { // AutoAdvance Whether to automatically issue the invoice after the draftPeriod has passed. AutoAdvance *bool `json:"auto_advance,omitempty"` // DraftPeriod The period for the invoice to be kept in draft status for manual reviews. DraftPeriod *string `json:"draft_period,omitempty"` // ProgressiveBilling Should progressive billing be allowed for this workflow? ProgressiveBilling *bool `json:"progressive_billing,omitempty"` // SubscriptionEndProrationMode Controls how subscription-ending shortened service periods are billed. SubscriptionEndProrationMode *BillingWorkflowInvoicingSubscriptionEndProrationMode `json:"subscription_end_proration_mode,omitempty"` } // BillingWorkflowInvoicingSubscriptionEndProrationMode Billing workflow subscription end proration mode. type BillingWorkflowInvoicingSubscriptionEndProrationMode string // BillingWorkflowPaymentChargeAutomaticallySettings Payment settings for a billing workflow when the collection method is charge // automatically. type BillingWorkflowPaymentChargeAutomaticallySettings struct { // CollectionMethod The collection method for the invoice. CollectionMethod BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod `json:"collection_method"` } // BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod The collection method for the invoice. type BillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod string // BillingWorkflowPaymentSendInvoiceSettings Payment settings for a billing workflow when the collection method is send // invoice. type BillingWorkflowPaymentSendInvoiceSettings struct { // CollectionMethod The collection method for the invoice. CollectionMethod BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod `json:"collection_method"` // DueAfter The period after which the invoice is due. With some payment solutions it's only // applicable for manual collection method. DueAfter *string `json:"due_after,omitempty"` } // BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod The collection method for the invoice. type BillingWorkflowPaymentSendInvoiceSettingsCollectionMethod string // BillingWorkflowPaymentSettings Payment settings for a billing workflow. type BillingWorkflowPaymentSettings struct { union json.RawMessage } // BillingWorkflowTaxSettings Tax settings for a billing workflow. type BillingWorkflowTaxSettings struct { // DefaultTaxConfig Default tax configuration to apply to the invoices for line items. // // Setting a tax code (`stripe.code` / `taxCodeId`) on a profile's default tax // config is deprecated and can no longer be added or changed: the organization // default tax code is used instead. Existing tax-code values may still be removed, // and `behavior` remains fully supported. DefaultTaxConfig *BillingTaxConfig `json:"default_tax_config,omitempty"` // Enabled Enable automatic tax calculation when tax is supported by the app. For example, // with Stripe Invoicing when enabled, tax is calculated via Stripe Tax. Enabled *bool `json:"enabled,omitempty"` // Enforced Enforce tax calculation when tax is supported by the app. When enabled, the // billing system will not allow to create an invoice without tax calculation. // Enforcement is different per apps, for example, Stripe app requires customer to // have a tax location when starting a paid subscription. Enforced *bool `json:"enforced,omitempty"` } // ChargePagePaginatedResponse Page paginated response. type ChargePagePaginatedResponse struct { Data []BillingCharge `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // ClosedPeriod A period with defined start and end dates. // // The period is always inclusive at the start and exclusive at the end. type ClosedPeriod struct { // From The start of the period. // // The period is inclusive at the start. From DateTime `json:"from"` // To The end of the period. // // The period is exclusive at the end. To DateTime `json:"to"` } // ConflictError defines model for ConflictError. type ConflictError struct { Detail interface{} `json:"detail"` Instance interface{} `json:"instance"` Status interface{} `json:"status"` Title interface{} `json:"title"` Type interface{} `json:"type,omitempty"` } // CostBasisPagePaginatedResponse Page paginated response. type CostBasisPagePaginatedResponse struct { Data []BillingCostBasis `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // CountryCode [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 country // code. Custom two-letter country codes are also supported for convenience. type CountryCode = string // CreateAddonRequest Addon create request. type CreateAddonRequest struct { // Currency The currency code of the add-on. Currency BillingCurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // InstanceType The InstanceType of the add-ons. Can be "single" or "multiple". InstanceType AddonInstanceType `json:"instance_type"` // Key A key is a semi-unique string that is used to identify the add-on. It is used to // reference the latest `active` version of the add-on and is unique with the // version number. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // RateCards The rate cards of the add-on. RateCards []BillingRateCard `json:"rate_cards"` } // CreateBillingProfileRequest BillingProfile create request. type CreateBillingProfileRequest struct { // Apps The applications used by this billing profile. Apps BillingProfileAppReferences `json:"apps"` // Default Whether this is the default profile. Default bool `json:"default"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Supplier The name and contact information for the supplier this billing profile // represents Supplier BillingParty `json:"supplier"` // Workflow The billing workflow settings for this profile Workflow BillingWorkflow `json:"workflow"` } // CreateChargeFlatFeeRequest Flat fee charge create request. type CreateChargeFlatFeeRequest struct { // AmountBeforeProration The amount before proration of the charge. AmountBeforeProration CurrencyAmount `json:"amount_before_proration"` // BillingPeriod The billing period the charge belongs to. BillingPeriod *ClosedPeriod `json:"billing_period,omitempty"` // Currency The currency of the charge. Currency CurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts The discounts applied to the charge. Discounts *BillingChargeFlatFeeDiscounts `json:"discounts,omitempty"` // FeatureKey The feature associated with the charge, when applicable. FeatureKey *string `json:"feature_key,omitempty"` // FullServicePeriod The full, unprorated service period of the charge. FullServicePeriod *ClosedPeriod `json:"full_service_period,omitempty"` // InvoiceAt The timestamp when the charge is intended to be invoiced. InvoiceAt DateTime `json:"invoice_at"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PaymentTerm Payment term of the flat fee charge. PaymentTerm BillingPricePaymentTerm `json:"payment_term"` // ProrationConfiguration The proration configuration of the charge. ProrationConfiguration BillingRateCardProrationConfiguration `json:"proration_configuration"` // ServicePeriod The effective service period covered by the charge. ServicePeriod ClosedPeriod `json:"service_period"` // SettlementMode Settlement mode of the charge. SettlementMode BillingSettlementMode `json:"settlement_mode"` // TaxConfig Tax configuration of the charge. TaxConfig *BillingTaxConfig `json:"tax_config,omitempty"` // Type The type of the charge. Type CreateChargeFlatFeeRequestType `json:"type"` // UniqueReferenceId Unique reference ID of the charge. UniqueReferenceId *string `json:"unique_reference_id,omitempty"` } // CreateChargeFlatFeeRequestType The type of the charge. type CreateChargeFlatFeeRequestType string // CreateChargeRequest Customer charge. type CreateChargeRequest struct { union json.RawMessage } // CreateChargeUsageBasedRequest Usage-based charge create request. type CreateChargeUsageBasedRequest struct { // BillingPeriod The billing period the charge belongs to. BillingPeriod *ClosedPeriod `json:"billing_period,omitempty"` // Currency The currency of the charge. Currency CurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Discounts Discounts applied to the usage-based charge. Discounts *BillingRateCardDiscounts `json:"discounts,omitempty"` // FeatureKey The feature associated with the charge. FeatureKey string `json:"feature_key"` // FullServicePeriod The full, unprorated service period of the charge. FullServicePeriod *ClosedPeriod `json:"full_service_period,omitempty"` // InvoiceAt The timestamp when the charge is intended to be invoiced. InvoiceAt DateTime `json:"invoice_at"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Price The price of the charge. Price BillingPrice `json:"price"` // ServicePeriod The effective service period covered by the charge. ServicePeriod ClosedPeriod `json:"service_period"` // SettlementMode Settlement mode of the charge. SettlementMode BillingSettlementMode `json:"settlement_mode"` // TaxConfig Tax configuration of the charge. TaxConfig *BillingTaxConfig `json:"tax_config,omitempty"` // Type The type of the charge. Type CreateChargeUsageBasedRequestType `json:"type"` // UniqueReferenceId Unique reference ID of the charge. UniqueReferenceId *string `json:"unique_reference_id,omitempty"` } // CreateChargeUsageBasedRequestType The type of the charge. type CreateChargeUsageBasedRequestType string // CreateCostBasisRequest CostBasis create request. type CreateCostBasisRequest struct { // EffectiveFrom An ISO-8601 timestamp representation of the date from which the cost basis is // effective. If not provided, it will be effective immediately and will be set to // `now` by the system. EffectiveFrom *DateTime `json:"effective_from,omitempty"` // EffectiveTo An ISO-8601 timestamp representation of the date until which the cost basis is // effective. If provided, it must be later than `effective_from`. If not provided, // it remains effective until superseded. EffectiveTo *DateTime `json:"effective_to,omitempty"` // FiatCode The fiat currency code for the cost basis. FiatCode CurrencyCode `json:"fiat_code"` // Rate The cost rate for the currency. Rate Numeric `json:"rate"` } // CreateCreditAdjustmentRequest CreditAdjustment create request. type CreateCreditAdjustmentRequest struct { // Amount Granted credit amount. Amount Numeric `json:"amount"` // Currency The currency of the granted credits. Currency BillingCurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` } // CreateCreditGrantFilters Filters for the credit grant. type CreateCreditGrantFilters struct { // Features Limit the credit grant to specific features. If no features are specified, the // credit grant can be used for any feature. Features *[]ResourceKey `json:"features,omitempty"` } // CreateCreditGrantPurchase Purchase and payment terms of the grant. type CreateCreditGrantPurchase struct { // AvailabilityPolicy Controls when credits become available for consumption. // // Defaults to `on_creation`. AvailabilityPolicy *BillingCreditAvailabilityPolicy `json:"availability_policy,omitempty"` // Currency Currency of the purchase amount. Currency CurrencyCode `json:"currency"` // PerUnitCostBasis Cost basis per credit unit used to calculate the purchase amount. // // If `per_unit_cost_basis` is 0.50 and credit amount is $100.00, the total charge // is $50.00. The value must be greater than 0. If the cost basis is 0, use // `funding_method=none` instead. // // Defaults to 1.0. PerUnitCostBasis *Numeric `json:"per_unit_cost_basis,omitempty"` } // CreateCreditGrantRequest CreditGrant create request. type CreateCreditGrantRequest struct { // Amount Granted credit amount. Amount Numeric `json:"amount"` // Currency The currency of the granted credits. Currency CreateCurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // EffectiveAt The timestamp when the credit grant becomes effective. // // Defaults to the current date and time. EffectiveAt *DateTime `json:"effective_at,omitempty"` // ExpiresAfter The duration after which the credit grant expires. // // Defaults to never expiring. ExpiresAfter *ISO8601Duration `json:"expires_after,omitempty"` // Filters Filters for the credit grant. Filters *CreateCreditGrantFilters `json:"filters,omitempty"` // FundingMethod Funding method of the grant. FundingMethod BillingCreditFundingMethod `json:"funding_method"` // Key Idempotency key for the credit grant creation request. // // When provided, reusing the same key returns an HTTP 409 Conflict instead of // creating a duplicate grant, which makes create requests safe to retry. Key *ExternalResourceKey `json:"key,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Priority Draw-down priority of the grant. Lower values have higher priority. Priority *int16 `json:"priority,omitempty"` // Purchase Present when a funding workflow applies (funding_method is not `none`). Purchase *CreateCreditGrantPurchase `json:"purchase,omitempty"` // TaxConfig Tax configuration for the grant. // // For `invoice` and `external` funding methods, tax configuration should be // provided to ensure correct revenue recognition. When not provided, the default // credit grant tax code is applied, if that's not set the global default taxcode // is used. TaxConfig *CreateCreditGrantTaxConfig `json:"tax_config,omitempty"` } // CreateCreditGrantTaxConfig Tax configuration for a credit grant. // // Tax configuration should be provided to ensure correct revenue recognition, // including for externally funded grants. type CreateCreditGrantTaxConfig struct { // Behavior Tax behavior applied to the invoice line item. Behavior *BillingTaxBehavior `json:"behavior,omitempty"` // TaxCode Tax code applied to the invoice line item. TaxCode *CreateResourceReference `json:"tax_code,omitempty"` } // CreateCurrencyCode Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) // currency code. Custom three-letter currency codes are also supported for // convenience. type CreateCurrencyCode = CurrencyCode // CreateCurrencyCustomRequest CurrencyCustom create request. type CreateCurrencyCustomRequest struct { // Code Custom currency code. It should be a unique code but not conflicting with any // existing fiat currency codes. Code BillingCurrencyCodeCustom `json:"code"` // Name The name of the currency. It should be a human-readable string that represents // the name of the currency, such as "US Dollar" or "Euro". Name string `json:"name"` // Symbol The symbol of the currency. It should be a string that represents the symbol of // the currency, such as "$" for US Dollar or "€" for Euro. Symbol *string `json:"symbol,omitempty"` } // CreateCustomerRequest Customer create request. type CreateCustomerRequest struct { // BillingAddress The billing address of the customer. Used for tax and invoicing. BillingAddress *Address `json:"billing_address,omitempty"` // Currency Currency of the customer. Used for billing, tax and invoicing. Currency *CurrencyCode `json:"currency,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Key ExternalResourceKey is a unique string that is used to identify a resource in an // external system. Key ExternalResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PrimaryEmail The primary email address of the customer. PrimaryEmail *string `json:"primary_email,omitempty"` // UsageAttribution Mapping to attribute metered usage to the customer by the event subject. UsageAttribution *BillingCustomerUsageAttribution `json:"usage_attribution,omitempty"` } // CreateFeatureRequest Feature create request. type CreateFeatureRequest struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Meter The meter that the feature is associated with and based on which usage is // calculated. If not specified, the feature is static. Meter *FeatureMeterReference `json:"meter,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UnitCost Optional per-unit cost configuration. Use "manual" for a fixed per-unit cost, or // "llm" to look up cost from the LLM cost database based on meter group-by // properties. UnitCost *BillingFeatureUnitCost `json:"unit_cost,omitempty"` } // CreateMeterRequest Meter create request. type CreateMeterRequest struct { // Aggregation The aggregation type to use for the meter. Aggregation MeterAggregation `json:"aggregation"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Dimensions Named JSONPath expressions to extract the group by values from the event data. // // Keys must be unique and consist only alphanumeric and underscore characters. Dimensions *map[string]string `json:"dimensions,omitempty"` // EventType The event type to include in the aggregation. EventType string `json:"event_type"` // EventsFrom The date since the meter should include events. Useful to skip old events. If // not specified, all historical events are included. EventsFrom *DateTime `json:"events_from,omitempty"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // ValueProperty JSONPath expression to extract the value from the ingested event's data // property. // // The ingested value for sum, avg, min, and max aggregations is a number or a // string that can be parsed to a number. // // For unique_count aggregation, the ingested value must be a string. For count // aggregation the value_property is ignored. ValueProperty *string `json:"value_property,omitempty"` } // CreatePlanAddonRequest PlanAddon create request. type CreatePlanAddonRequest struct { // Addon The add-on associated with the plan. Addon AddonReference `json:"addon"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // FromPlanPhase The key of the plan phase from which the add-on becomes available for purchase. FromPlanPhase ResourceKey `json:"from_plan_phase"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // MaxQuantity The maximum number of times the add-on can be purchased for the plan. For // single-instance add-ons this field must be omitted. For multi-instance add-ons // when omitted, unlimited quantity can be purchased. MaxQuantity *int `json:"max_quantity,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` } // CreatePlanRequest Plan create request. type CreatePlanRequest struct { // BillingCadence The billing cadence for subscriptions using this plan. BillingCadence ISO8601Duration `json:"billing_cadence"` // Currency The currency code of the plan. Currency CurrencyCode `json:"currency"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Key A key is a semi-unique string that is used to identify the plan. It is used to // reference the latest `active` version of the plan and is unique with the version // number. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Phases The plan phases define the pricing ramp for a subscription. A phase switch // occurs only at the end of a billing period. At least one phase is required. Phases []BillingPlanPhase `json:"phases"` // ProRatingEnabled Whether pro-rating is enabled for this plan. ProRatingEnabled *bool `json:"pro_rating_enabled,omitempty"` } // CreateResourceReference TaxCode reference. type CreateResourceReference struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } // CreateSubscriptionAddonRequest SubscriptionAddon create request. type CreateSubscriptionAddonRequest struct { // Addon The add-on associated with the subscription. Addon AddonReference `json:"addon"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Quantity The quantity of the add-on. Always 1 for single instance add-ons. Quantity int `json:"quantity"` // Timing The timing of the operation. After the create or update, a new entry will be // created in the timeline. Timing BillingSubscriptionEditTiming `json:"timing"` } // CreateTaxCodeRequest TaxCode create request. type CreateTaxCodeRequest struct { // AppMappings Mapping of app types to tax codes. AppMappings []BillingTaxCodeAppMapping `json:"app_mappings"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` } // CreditBalance The credit balance by currency. type CreditBalance struct { Currency BillingCurrencyCode `json:"currency"` // Live Credits available after applying currently live charge impacts. Live Numeric `json:"live"` // Pending Credits that have been granted but are not yet written to the ledger, or are // written to the ledger with a future booked time. Pending Numeric `json:"pending"` // Settled Credits that have been booked on the ledger as of the balance timestamp. Settled Numeric `json:"settled"` } // CreditGrantPagePaginatedResponse Page paginated response. type CreditGrantPagePaginatedResponse struct { Data []BillingCreditGrant `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // CreditTransactionPaginatedResponse Cursor paginated response. type CreditTransactionPaginatedResponse struct { Data []BillingCreditTransaction `json:"data"` // Meta Pagination metadata. Meta CursorMeta `json:"meta"` } // CurrencyAmount Monetary amount in a specific currency. type CurrencyAmount struct { // Amount Numeric represents an arbitrary precision number. Amount Numeric `json:"amount"` // Currency Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) // currency code. Custom three-letter currency codes are also supported for // convenience. Currency CurrencyCode `json:"currency"` } // CurrencyCode Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) // currency code. Custom three-letter currency codes are also supported for // convenience. type CurrencyCode = string // CurrencyPagePaginatedResponse Page paginated response. type CurrencyPagePaginatedResponse struct { Data []BillingCurrency `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // CursorMeta Pagination metadata. type CursorMeta struct { Page CursorMetaPage `json:"page"` } // CursorMetaPage defines model for CursorMetaPage. type CursorMetaPage struct { // First URI to the first page First *string `json:"first,omitempty"` // Last URI to the last page Last *string `json:"last,omitempty"` // Next URI to the next page Next nullable.Nullable[string] `json:"next"` // Previous URI to the previous page Previous nullable.Nullable[string] `json:"previous"` // Size Requested page size Size float32 `json:"size"` } // CursorPaginationQueryPage Determines which page of the collection to retrieve. type CursorPaginationQueryPage struct { // After Request the next page of data, starting with the item after this parameter. After *string `json:"after,omitempty"` // Before Request the previous page of data, starting with the item before this parameter. Before *string `json:"before,omitempty"` // Size The number of items to include per page. Size *int `json:"size,omitempty"` } // CustomerPagePaginatedResponse Page paginated response. type CustomerPagePaginatedResponse struct { Data []BillingCustomer `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // CustomerReference Customer reference. type CustomerReference struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } // DateTime [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in // UTC. type DateTime = time.Time // DateTimeFieldFilter Filters on the given datetime (RFC-3339) field value. All properties are // optional; provide exactly one to specify the comparison. type DateTimeFieldFilter = filters.FilterDateTime // ExternalResourceKey ExternalResourceKey is a unique string that is used to identify a resource in an // external system. type ExternalResourceKey = string // Feature A capability or billable dimension offered by a provider. type Feature struct { // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Meter The meter that the feature is associated with and based on which usage is // calculated. If not specified, the feature is static. Meter *FeatureMeterReference `json:"meter,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UnitCost Optional per-unit cost configuration. Use "manual" for a fixed per-unit cost, or // "llm" to look up cost from the LLM cost database based on meter group-by // properties. UnitCost *BillingFeatureUnitCost `json:"unit_cost,omitempty"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // FeatureCostQueryResult Result of a feature cost query. type FeatureCostQueryResult struct { // Data The cost data rows. Data []FeatureCostQueryRow `json:"data"` // From Start of the queried period. From *DateTime `json:"from,omitempty"` // To End of the queried period. To *DateTime `json:"to,omitempty"` } // FeatureCostQueryRow A row in the result of a feature cost query. type FeatureCostQueryRow struct { // Cost The computed cost amount (usage × unit cost). Null when pricing is not available // for the given combination of dimensions. Cost nullable.Nullable[Numeric] `json:"cost"` // Currency The currency code of the cost amount. Currency CurrencyCode `json:"currency"` // Detail Detail message when cost amount is null, explaining why the cost could not be // resolved. Detail *string `json:"detail,omitempty"` // Dimensions The dimensions the value is aggregated over. `subject` and `customer_id` are // reserved dimensions. Dimensions map[string]string `json:"dimensions"` // From The start of the time bucket the value is aggregated over. From DateTime `json:"from"` // To The end of the time bucket the value is aggregated over. To DateTime `json:"to"` // Usage The metered usage value for the period. Usage Numeric `json:"usage"` } // FeatureMeterReference Reference to a meter associated with a feature. type FeatureMeterReference struct { // Filters Filters to apply to the dimensions of the meter. Filters *map[string]QueryFilterStringMapItem `json:"filters,omitempty"` // Id The ID of the meter to associate with this feature. Id ULID `json:"id"` } // FeaturePagePaginatedResponse Page paginated response. type FeaturePagePaginatedResponse struct { Data []Feature `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // FeatureReference Feature reference. type FeatureReference struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } // ForbiddenError defines model for ForbiddenError. type ForbiddenError struct { Detail interface{} `json:"detail"` Instance interface{} `json:"instance"` Status interface{} `json:"status"` Title interface{} `json:"title"` Type interface{} `json:"type,omitempty"` } // GetCreditBalanceParamsFilter Filter options for getting a credit balance. type GetCreditBalanceParamsFilter struct { // Currency Filter credit balance by currency. Currency *StringFieldFilterExact `json:"currency,omitempty"` // FeatureKey Filter credit balance by feature key. Omit to return the total portfolio value. // Use `exists=false` to return only unrestricted balance. FeatureKey *StringFieldFilter `json:"feature_key,omitempty"` } // GoneError defines model for GoneError. type GoneError struct { Detail interface{} `json:"detail"` Instance interface{} `json:"instance"` Status interface{} `json:"status"` Title interface{} `json:"title"` Type interface{} `json:"type,omitempty"` } // GovernanceFeatureAccess Access status for a single feature. type GovernanceFeatureAccess struct { // HasAccess Whether the customer currently has access to the feature. // // `true` for boolean and static entitlements that are available, and for metered // entitlements with remaining balance. `false` when the feature is unavailable, // the usage limit has been reached, or (when applicable) credits have been // exhausted. HasAccess bool `json:"has_access"` // Reason Optional reason when the customer does not have access to the feature. Populated // when `has_access` is `false`. Reason *GovernanceFeatureAccessReason `json:"reason,omitempty"` } // GovernanceFeatureAccessReason Reason a feature is not accessible to a customer. type GovernanceFeatureAccessReason struct { // Attributes Additional structured context. Attributes *map[string]interface{} `json:"attributes,omitempty"` // Code Machine-readable error code. Code GovernanceFeatureAccessReasonCode `json:"code"` // Message Human-readable description of the error. Message string `json:"message"` } // GovernanceFeatureAccessReasonCode Machine-readable reason code for denied feature access. type GovernanceFeatureAccessReasonCode string // GovernanceQueryError Query error within a partially successful governance query response. type GovernanceQueryError struct { // Attributes Additional structured context. Attributes *map[string]interface{} `json:"attributes,omitempty"` // Code Machine-readable error code. Code GovernanceQueryErrorCode `json:"code"` // Customer The customer identifier from the request that produced this error. Customer *string `json:"customer,omitempty"` // Message Human-readable description of the error. Message string `json:"message"` } // GovernanceQueryErrorCode Error code for a governance query failure. type GovernanceQueryErrorCode string // GovernanceQueryRequest Query to evaluate feature access for a list of customers. type GovernanceQueryRequest struct { Customer GovernanceQueryRequestCustomers `json:"customer"` Feature *GovernanceQueryRequestFeatures `json:"feature,omitempty"` // IncludeCredits Whether to include credit balance availability for each resolved customer. When // true, each feature evaluation includes credit balance checks. // // Defaults to `false`. IncludeCredits *bool `json:"include_credits,omitempty"` } // GovernanceQueryRequestCustomers List of customer identifiers to evaluate access for. type GovernanceQueryRequestCustomers struct { // Keys Each entry can be a customer `key` or a usage-attribution subject `key`. // Identifiers that cannot be resolved to a customer are reported in the response // `errors` array. Keys []string `json:"keys"` } // GovernanceQueryRequestFeatures Optional list of feature keys to evaluate access for. If omitted, all features // available in the organization are returned. Providing this list is recommended // to reduce the response size and the load on the backend services. type GovernanceQueryRequestFeatures struct { // Keys List of feature keys to evaluate access for. Keys []string `json:"keys"` } // GovernanceQueryResponse Response of the governance query. type GovernanceQueryResponse struct { // Data Access evaluation results, one entry per resolved customer. Data []GovernanceQueryResult `json:"data"` // Errors Partial errors encountered while processing the request. Errors []GovernanceQueryError `json:"errors"` // Meta Pagination metadata. The endpoint may return a partial response if the full // response would exceed server-side limits. Meta CursorMeta `json:"meta"` } // GovernanceQueryResult Access evaluation result for a single resolved customer. type GovernanceQueryResult struct { // Customer The customer the matched identifiers resolved to. Customer BillingCustomer `json:"customer"` // Features Map of features with their access status. // // Map keys are the feature keys requested in `feature.keys`, or every feature // `key` available in the organization when the feature filter was omitted. Features map[string]GovernanceFeatureAccess `json:"features"` // Matched The list of identifiers from the request that resolved to this customer. Each // entry is either the customer `key` or one of its usage-attribution subject // `key`s. // // Duplicate or aliased identifiers that resolve to the same customer collapse to a // single result entry, with every requested identifier listed here. Matched []string `json:"matched"` // UpdatedAt Timestamp of the most recent change to the customer's access state reflected in // this result. UpdatedAt DateTime `json:"updated_at"` } // ISO8601Duration [ISO 8601 Duration](https://docs.digi.com/resources/documentation/digidocs/90001488-13/reference/r_iso_8601_duration_format.htm) // string. type ISO8601Duration = string // IngestedEventPaginatedResponse Cursor paginated response. type IngestedEventPaginatedResponse struct { Data []MeteringIngestedEvent `json:"data"` // Meta Pagination metadata. Meta CursorMeta `json:"meta"` } // InvalidParameterChoiceItem defines model for InvalidParameterChoiceItem. type InvalidParameterChoiceItem struct { Choices []interface{} `json:"choices"` Field string `json:"field"` Reason string `json:"reason"` // Rule invalid parameters rules Rule InvalidParameterChoiceItemRule `json:"rule"` Source *string `json:"source,omitempty"` } // InvalidParameterChoiceItemRule invalid parameters rules type InvalidParameterChoiceItemRule string // InvalidParameterDependentItem defines model for InvalidParameterDependentItem. type InvalidParameterDependentItem struct { Dependents nullable.Nullable[[]interface{}] `json:"dependents"` Field string `json:"field"` Reason string `json:"reason"` // Rule invalid parameters rules Rule nullable.Nullable[InvalidParameterDependentItemRule] `json:"rule"` Source *string `json:"source,omitempty"` } // InvalidParameterDependentItemRule invalid parameters rules type InvalidParameterDependentItemRule string // InvalidParameterMaximumLength defines model for InvalidParameterMaximumLength. type InvalidParameterMaximumLength struct { Field string `json:"field"` Maximum int `json:"maximum"` Reason string `json:"reason"` // Rule invalid parameters rules Rule InvalidParameterMaximumLengthRule `json:"rule"` Source *string `json:"source,omitempty"` } // InvalidParameterMaximumLengthRule invalid parameters rules type InvalidParameterMaximumLengthRule string // InvalidParameterMinimumLength defines model for InvalidParameterMinimumLength. type InvalidParameterMinimumLength struct { Field string `json:"field"` Minimum int `json:"minimum"` Reason string `json:"reason"` // Rule invalid parameters rules Rule InvalidParameterMinimumLengthRule `json:"rule"` Source *string `json:"source,omitempty"` } // InvalidParameterMinimumLengthRule invalid parameters rules type InvalidParameterMinimumLengthRule string // InvalidParameterStandard defines model for InvalidParameterStandard. type InvalidParameterStandard struct { Field string `json:"field"` Reason string `json:"reason"` // Rule invalid parameters rules Rule nullable.Nullable[InvalidRules] `json:"rule,omitempty"` Source *string `json:"source,omitempty"` } // InvalidParameters invalid parameters type InvalidParameters = []InvalidParameters_Item // InvalidParameters_Item defines model for InvalidParameters.Item. type InvalidParameters_Item struct { union json.RawMessage } // InvalidRules invalid parameters rules type InvalidRules string // InvoicePagePaginatedResponse Page paginated response. type InvoicePagePaginatedResponse struct { Data []BillingInvoice `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // LLMCostModel LLM Model type LLMCostModel struct { // Id Identifier of the model, e.g., "gpt-4", "claude-3-5-sonnet". Id string `json:"id"` // Name Name of the model, e.g., "GPT-4", "Claude 3.5 Sonnet". Name string `json:"name"` } // LLMCostModelPricing Token pricing for an LLM model, denominated per token. type LLMCostModelPricing struct { // CacheReadPerToken Cache read price per token (USD). CacheReadPerToken *Numeric `json:"cache_read_per_token,omitempty"` // CacheWritePerToken Cache write price per token (USD). CacheWritePerToken *Numeric `json:"cache_write_per_token,omitempty"` // InputPerToken Input price per token (USD). InputPerToken Numeric `json:"input_per_token"` // OutputPerToken Output price per token (USD). OutputPerToken Numeric `json:"output_per_token"` // ReasoningPerToken Reasoning output price per token (USD). ReasoningPerToken *Numeric `json:"reasoning_per_token,omitempty"` } // LLMCostOverrideCreate Input for creating a per-namespace price override. Unique per provider, model // and currency. If an override already exists for the given provider, model and // currency, it will be updated. If an override does not exist, it will be created. type LLMCostOverrideCreate struct { // Currency Currency code. Currency CurrencyCode `json:"currency"` // EffectiveFrom When this override becomes effective. EffectiveFrom DateTime `json:"effective_from"` // EffectiveTo When this override expires. EffectiveTo *DateTime `json:"effective_to,omitempty"` // ModelId Canonical model identifier. ModelId string `json:"model_id"` // ModelName Human-readable model name. ModelName *string `json:"model_name,omitempty"` // Pricing Token pricing data. Pricing LLMCostModelPricing `json:"pricing"` // Provider Provider/vendor of the model. Provider string `json:"provider"` } // LLMCostPrice An LLM cost price record, representing the cost per token for a specific model // from a specific provider. type LLMCostPrice struct { // CreatedAt Creation timestamp. CreatedAt DateTime `json:"created_at"` // Currency Currency code (currently always "USD"). Currency CurrencyCode `json:"currency"` // EffectiveFrom When this price becomes effective. EffectiveFrom DateTime `json:"effective_from"` // EffectiveTo When this price expires. Omitted when the price is currently effective. EffectiveTo *DateTime `json:"effective_to,omitempty"` // Id Unique identifier. Id ULID `json:"id"` // Model The model. Model LLMCostModel `json:"model"` // Pricing Token pricing data. Pricing LLMCostModelPricing `json:"pricing"` // Provider Provider of the model. Provider LLMCostProvider `json:"provider"` // Source Where this price came from. Source LLMCostPriceSource `json:"source"` // UpdatedAt Last update timestamp. UpdatedAt DateTime `json:"updated_at"` } // LLMCostPriceSource Identifies where an LLM cost price came from. type LLMCostPriceSource string // LLMCostProvider LLM Provider type LLMCostProvider struct { // Id Identifier of the provider, e.g., "openai", "anthropic". Id string `json:"id"` // Name Name of the provider, e.g., "OpenAI", "Anthropic". Name string `json:"name"` } // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". type Labels map[string]string // ListAddonsParamsFilter Filter options for listing add-ons. type ListAddonsParamsFilter struct { // Currency Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Currency *StringFieldFilterExact `json:"currency,omitempty"` // Id Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Id *ULIDFieldFilter `json:"id,omitempty"` // Key Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Key *StringFieldFilter `json:"key,omitempty"` // Name Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Name *StringFieldFilter `json:"name,omitempty"` // Status Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Status *StringFieldFilterExact `json:"status,omitempty"` } // ListChargesParamsFilter Filter options for listing charges. type ListChargesParamsFilter struct { // Status Filter charges by status. // // Supported statuses are: // // - `created` // - `active` // - `final` // - `deleted` // // If omitted, all statuses are returned except for `deleted`. Status *StringFieldFilterExact `json:"status,omitempty"` } // ListCostBasesParamsFilter Filter options for listing cost bases. type ListCostBasesParamsFilter struct { // FiatCode Filter cost bases by fiat currency code. FiatCode *CurrencyCode `json:"fiat_code,omitempty"` } // ListCreditGrantsParamsFilter Filter options for listing credit grants. type ListCreditGrantsParamsFilter struct { // Currency Filter credit grants by currency. Currency *CurrencyCode `json:"currency,omitempty"` // Key Filter credit grants by key. Key *StringFieldFilter `json:"key,omitempty"` // Status Filter credit grants by status. Status *BillingCreditGrantStatus `json:"status,omitempty"` } // ListCreditTransactionsParamsFilter Filter options for listing credit transactions. type ListCreditTransactionsParamsFilter struct { // Currency Filter credit transactions by currency. Currency *BillingCurrencyCode `json:"currency,omitempty"` // FeatureKey Filter credit transactions by feature key. Omit to return all credit // transactions. Use `exists=false` to return only unrestricted credit // transactions. FeatureKey *StringFieldFilter `json:"feature_key,omitempty"` // Type Filter credit transactions by type. Type *BillingCreditTransactionType `json:"type,omitempty"` } // ListCurrenciesParamsFilter Filter options for listing currencies. type ListCurrenciesParamsFilter struct { // Code Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Code *StringFieldFilter `json:"code,omitempty"` // Type Currency type for custom currencies. It should be a unique code but not // conflicting with any existing standard currency codes. Type *BillingCurrencyType `json:"type,omitempty"` } // ListCustomerEntitlementAccessResponseData List customer entitlement access response data. type ListCustomerEntitlementAccessResponseData struct { // Data The list of entitlement access results. Data []BillingEntitlementAccessResult `json:"data"` } // ListCustomersParamsFilter Filter options for listing customers. type ListCustomersParamsFilter struct { // BillingProfileId Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. BillingProfileId *ULIDFieldFilter `json:"billing_profile_id,omitempty"` // Key Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Key *StringFieldFilter `json:"key,omitempty"` // Name Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Name *StringFieldFilter `json:"name,omitempty"` // PlanKey Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. PlanKey *StringFieldFilter `json:"plan_key,omitempty"` // PrimaryEmail Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. PrimaryEmail *StringFieldFilter `json:"primary_email,omitempty"` // UsageAttributionSubjectKey Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. UsageAttributionSubjectKey *StringFieldFilter `json:"usage_attribution_subject_key,omitempty"` } // ListEventsParamsFilter Filter options for listing ingested events. type ListEventsParamsFilter struct { // CustomerId Filter events by the associated customer ID. CustomerId *ULIDFieldFilter `json:"customer_id,omitempty"` // Id Filter events by ID. Id *StringFieldFilter `json:"id,omitempty"` // IngestedAt Filter events by the time the event was ingested. IngestedAt *DateTimeFieldFilter `json:"ingested_at,omitempty"` // Source Filter events by source. Source *StringFieldFilter `json:"source,omitempty"` // StoredAt Filter events by the time the event was stored. StoredAt *DateTimeFieldFilter `json:"stored_at,omitempty"` // Subject Filter events by subject. Subject *StringFieldFilter `json:"subject,omitempty"` // Time Filter events by event time. Time *DateTimeFieldFilter `json:"time,omitempty"` // Type Filter events by type. Type *StringFieldFilter `json:"type,omitempty"` } // ListFeatureParamsFilter Filter options for listing features. type ListFeatureParamsFilter struct { // Key Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Key *StringFieldFilter `json:"key,omitempty"` // MeterId Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. MeterId *ULIDFieldFilter `json:"meter_id,omitempty"` // Name Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Name *StringFieldFilter `json:"name,omitempty"` } // ListInvoicesParamsFilter Filter options for listing invoices. type ListInvoicesParamsFilter struct { // CreatedAt Filter by invoice creation time. CreatedAt *DateTimeFieldFilter `json:"created_at,omitempty"` // CustomerId Filter by customer ID. CustomerId *ULIDFieldFilter `json:"customer_id,omitempty"` // IssuedAt Filter by the time the invoice was issued. IssuedAt *DateTimeFieldFilter `json:"issued_at,omitempty"` // ServicePeriodStart Filter by service period start. ServicePeriodStart *DateTimeFieldFilter `json:"service_period_start,omitempty"` // Status Filter by invoice status. Status *StringFieldFilterExact `json:"status,omitempty"` } // ListLLMCostPricesParamsFilter Filter options for listing LLM cost prices. type ListLLMCostPricesParamsFilter struct { // Currency Filter by currency code. e.g. ?filter[currency][eq]=USD Currency *StringFieldFilter `json:"currency,omitempty"` // ModelId Filter by model ID. e.g. ?filter[model_id][eq]=gpt-4 ModelId *StringFieldFilter `json:"model_id,omitempty"` // ModelName Filter by model name. e.g. ?filter[model_name][contains]=gpt ModelName *StringFieldFilter `json:"model_name,omitempty"` // Provider Filter by provider. e.g. ?filter[provider][eq]=openai Provider *StringFieldFilter `json:"provider,omitempty"` // Source Filter by source. e.g. ?filter[source][eq]=system Source *StringFieldFilter `json:"source,omitempty"` } // ListMetersParamsFilter Filter options for listing meters. type ListMetersParamsFilter struct { // Key Filter meters by key. Key *StringFieldFilter `json:"key,omitempty"` // Name Filter meters by name. Name *StringFieldFilter `json:"name,omitempty"` } // ListPlansParamsFilter Filter options for listing plans. type ListPlansParamsFilter struct { // Currency Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Currency *StringFieldFilterExact `json:"currency,omitempty"` // Key Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Key *StringFieldFilter `json:"key,omitempty"` // Name Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. Name *StringFieldFilter `json:"name,omitempty"` // Status Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Status *StringFieldFilterExact `json:"status,omitempty"` } // ListSubscriptionsParamsFilter Filter options for listing subscriptions. type ListSubscriptionsParamsFilter struct { // CustomerId Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. CustomerId *ULIDFieldFilter `json:"customer_id,omitempty"` // Id Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Id *ULIDFieldFilter `json:"id,omitempty"` // PlanId Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. PlanId *ULIDFieldFilter `json:"plan_id,omitempty"` // PlanKey Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. PlanKey *StringFieldFilterExact `json:"plan_key,omitempty"` // Status Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. Status *StringFieldFilterExact `json:"status,omitempty"` } // Meter A meter is a configuration that defines how to match and aggregate events. type Meter struct { // Aggregation The aggregation type to use for the meter. Aggregation MeterAggregation `json:"aggregation"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Dimensions Named JSONPath expressions to extract the group by values from the event data. // // Keys must be unique and consist only alphanumeric and underscore characters. Dimensions *map[string]string `json:"dimensions,omitempty"` // EventType The event type to include in the aggregation. EventType string `json:"event_type"` // EventsFrom The date since the meter should include events. Useful to skip old events. If // not specified, all historical events are included. EventsFrom *DateTime `json:"events_from,omitempty"` Id ULID `json:"id"` // Key A key is a unique string that is used to identify a resource. Key ResourceKey `json:"key"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // ValueProperty JSONPath expression to extract the value from the ingested event's data // property. // // The ingested value for sum, avg, min, and max aggregations is a number or a // string that can be parsed to a number. // // For unique_count aggregation, the ingested value must be a string. For count // aggregation the value_property is ignored. ValueProperty *string `json:"value_property,omitempty"` } // MeterAggregation The aggregation type to use for the meter. type MeterAggregation string // MeterPagePaginatedResponse Page paginated response. type MeterPagePaginatedResponse struct { Data []Meter `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // MeterQueryFilters Filters to apply to a meter query. type MeterQueryFilters struct { // Dimensions Filters to apply to the dimensions of the query. For `subject` and `customer_id` // only equals ("eq", "in") comparisons are supported. Dimensions *map[string]QueryFilterStringMapItem `json:"dimensions,omitempty"` } // MeterQueryGranularity The granularity of the time grouping. Time durations are specified in ISO 8601 // format. type MeterQueryGranularity string // MeterQueryRequest A meter query request. type MeterQueryRequest struct { // Filters Filters to apply to the query. Filters *MeterQueryFilters `json:"filters,omitempty"` // From The start of the period the usage is queried from. From *DateTime `json:"from,omitempty"` // Granularity The size of the time buckets to group the usage into. If not specified, the // usage is aggregated over the entire period. Granularity *MeterQueryGranularity `json:"granularity,omitempty"` // GroupByDimensions The dimensions to group the results by. GroupByDimensions *[]string `json:"group_by_dimensions,omitempty"` // TimeZone The value is the name of the time zone as defined in the IANA Time Zone Database // (http://www.iana.org/time-zones). The time zone is used to determine the start // and end of the time buckets. If not specified, the UTC timezone will be used. TimeZone *string `json:"time_zone,omitempty"` // To The end of the period the usage is queried to. To *DateTime `json:"to,omitempty"` } // MeterQueryResult Meter query result. type MeterQueryResult struct { // Data The usage data. If no data is available, an empty array is returned. Data []MeterQueryRow `json:"data"` // From The start of the period the usage is queried from. From *DateTime `json:"from,omitempty"` // To The end of the period the usage is queried to. To *DateTime `json:"to,omitempty"` } // MeterQueryRow A row in the result of a meter query. type MeterQueryRow struct { // Dimensions The dimensions the value is aggregated over. `subject` and `customer_id` are // reserved dimensions. Dimensions map[string]string `json:"dimensions"` // From The start of the time bucket the value is aggregated over. From DateTime `json:"from"` // To The end of the time bucket the value is aggregated over. To DateTime `json:"to"` // Value The aggregated value. Value Numeric `json:"value"` } // MeteringEvent Metering event following the CloudEvents specification. type MeteringEvent struct { // Data The event payload. Optional, if present it must be a JSON object. Data nullable.Nullable[map[string]interface{}] `json:"data,omitempty"` // Datacontenttype Content type of the CloudEvents data value. Only the value "application/json" is // allowed over HTTP. Datacontenttype nullable.Nullable[MeteringEventDatacontenttype] `json:"datacontenttype,omitempty"` // Dataschema Identifies the schema that data adheres to. Dataschema nullable.Nullable[string] `json:"dataschema,omitempty"` // Id Identifies the event. Id string `json:"id"` // Source Identifies the context in which an event happened. Source string `json:"source"` // Specversion The version of the CloudEvents specification which the event uses. Specversion string `json:"specversion"` // Subject Describes the subject of the event in the context of the event producer // (identified by source). Subject string `json:"subject"` // Time Timestamp of when the occurrence happened. Must adhere to RFC 3339. Time nullable.Nullable[DateTime] `json:"time,omitempty"` // Type Contains a value describing the type of event related to the originating // occurrence. Type string `json:"type"` } // MeteringEventDatacontenttype Content type of the CloudEvents data value. Only the value "application/json" is // allowed over HTTP. type MeteringEventDatacontenttype string // MeteringIngestedEvent An ingested metering event with ingestion metadata. type MeteringIngestedEvent struct { // Customer The customer if the event is associated with a customer. Customer *CustomerReference `json:"customer,omitempty"` // Event The original event ingested. Event MeteringEvent `json:"event"` // IngestedAt The date and time the event was ingested and its processing started. IngestedAt DateTime `json:"ingested_at"` // StoredAt The date and time the event was stored in the database. StoredAt DateTime `json:"stored_at"` // ValidationErrors The validation errors of the ingested event. ValidationErrors *[]MeteringIngestedEventValidationError `json:"validation_errors,omitempty"` } // MeteringIngestedEventValidationError Event validation errors. type MeteringIngestedEventValidationError struct { // Attributes Additional attributes. Attributes *map[string]interface{} `json:"attributes,omitempty"` // Code The machine readable code of the error. Code string `json:"code"` // Message The human readable description of the error. Message string `json:"message"` } // NotFoundError defines model for NotFoundError. type NotFoundError struct { Detail interface{} `json:"detail"` Instance interface{} `json:"instance"` Status interface{} `json:"status"` Title interface{} `json:"title"` Type interface{} `json:"type,omitempty"` } // Numeric Numeric represents an arbitrary precision number. type Numeric = string // OrganizationDefaultTaxCodes Organization-level default tax code references. // // Stores the default tax codes applied to specific billing contexts for this // organization. Provisioned automatically when the organization is created. type OrganizationDefaultTaxCodes struct { // CreatedAt Timestamp of creation. CreatedAt DateTime `json:"created_at"` // CreditGrantTaxCode Default tax code for credit grants. CreditGrantTaxCode TaxCodeReference `json:"credit_grant_tax_code"` // InvoicingTaxCode Default tax code for invoicing. InvoicingTaxCode TaxCodeReference `json:"invoicing_tax_code"` // UpdatedAt Timestamp of last update. UpdatedAt DateTime `json:"updated_at"` } // PageMeta Contains pagination query parameters and the total number of objects returned. type PageMeta struct { Number float32 `json:"number"` Size float32 `json:"size"` Total float32 `json:"total"` } // PaginatedMeta returns the pagination information type PaginatedMeta struct { // Page Contains pagination query parameters and the total number of objects returned. Page PageMeta `json:"page"` } // PlanAddon PlanAddon represents an association between a plan and an add-on, controlling // which add-ons are available for purchase within a plan. type PlanAddon struct { // Addon The add-on associated with the plan. Addon AddonReference `json:"addon"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // FromPlanPhase The key of the plan phase from which the add-on becomes available for purchase. FromPlanPhase ResourceKey `json:"from_plan_phase"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // MaxQuantity The maximum number of times the add-on can be purchased for the plan. For // single-instance add-ons this field must be omitted. For multi-instance add-ons // when omitted, unlimited quantity can be purchased. MaxQuantity *int `json:"max_quantity,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` // ValidationErrors List of validation errors. ValidationErrors *[]ProductCatalogValidationError `json:"validation_errors,omitempty"` } // PlanAddonPagePaginatedResponse Page paginated response. type PlanAddonPagePaginatedResponse struct { Data []PlanAddon `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // PlanPagePaginatedResponse Page paginated response. type PlanPagePaginatedResponse struct { Data []BillingPlan `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // PricePagePaginatedResponse Page paginated response. type PricePagePaginatedResponse struct { Data []LLMCostPrice `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // ProductCatalogValidationError Validation errors providing detailed description of the issue. type ProductCatalogValidationError struct { // Attributes Additional structured context. Attributes *map[string]interface{} `json:"attributes,omitempty"` // Code Machine-readable error code. Code string `json:"code"` // Field The path to the field. Field string `json:"field"` // Message Human-readable description of the error. Message string `json:"message"` } // QueryFilterString A query filter for a string attribute. Operators are mutually exclusive, only // one operator is allowed at a time. type QueryFilterString struct { // And Combines the provided filters with a logical AND. And *[]QueryFilterString `json:"and,omitempty"` // Contains The attribute contains the provided value. Contains *string `json:"contains,omitempty"` // Eq The attribute equals the provided value. Eq *string `json:"eq,omitempty"` // In The attribute is one of the provided values. In *[]string `json:"in,omitempty"` // Ncontains The attribute does not contain the provided value. Ncontains *string `json:"ncontains,omitempty"` // Neq The attribute does not equal the provided value. Neq *string `json:"neq,omitempty"` // Nin The attribute is not one of the provided values. Nin *[]string `json:"nin,omitempty"` // Or Combines the provided filters with a logical OR. Or *[]QueryFilterString `json:"or,omitempty"` } // QueryFilterStringMapItem A query filter for an item in a string map attribute. Operators are mutually // exclusive, only one operator is allowed at a time. type QueryFilterStringMapItem struct { // And Combines the provided filters with a logical AND. And *[]QueryFilterString `json:"and,omitempty"` // Contains The attribute contains the provided value. Contains *string `json:"contains,omitempty"` // Eq The attribute equals the provided value. Eq *string `json:"eq,omitempty"` // Exists The attribute exists. Exists *bool `json:"exists,omitempty"` // In The attribute is one of the provided values. In *[]string `json:"in,omitempty"` // Ncontains The attribute does not contain the provided value. Ncontains *string `json:"ncontains,omitempty"` // Neq The attribute does not equal the provided value. Neq *string `json:"neq,omitempty"` // Nin The attribute is not one of the provided values. Nin *[]string `json:"nin,omitempty"` // Or Combines the provided filters with a logical OR. Or *[]QueryFilterString `json:"or,omitempty"` } // RecurringPeriod Recurring period with an anchor and an interval. type RecurringPeriod struct { // Anchor A date-time anchor to base the recurring period on. Anchor DateTime `json:"anchor"` // Interval The interval duration in ISO 8601 format. Interval ISO8601Duration `json:"interval"` } // ResourceKey A key is a unique string that is used to identify a resource. type ResourceKey = string // SortQuery The `asc` suffix is optional as the default sort order is ascending. // The `desc` suffix is used to specify a descending order. // Multiple sort attributes may be provided via a comma separated list. // JSONPath notation may be used to specify a sub-attribute (eg: 'foo.bar desc'). type SortQuery = string // StringFieldFilter Filters on the given string field value by either exact or fuzzy match. All // properties are optional; provide exactly one to specify the comparison. type StringFieldFilter = filters.FilterString // StringFieldFilterExact Filters on the given string field value by exact match. All properties are // optional; provide exactly one to specify the comparison. type StringFieldFilterExact = filters.FilterStringExact // SubscriptionAddon Addon purchased with a subscription. type SubscriptionAddon struct { // ActiveFrom An ISO-8601 timestamp representation of the cadence start of the resource. ActiveFrom DateTime `json:"active_from"` // ActiveTo An ISO-8601 timestamp representation of the cadence end of the resource. ActiveTo *DateTime `json:"active_to,omitempty"` // Addon The add-on associated with the subscription. Addon AddonReference `json:"addon"` // CreatedAt An ISO-8601 timestamp representation of entity creation date. CreatedAt DateTime `json:"created_at"` // DeletedAt An ISO-8601 timestamp representation of entity deletion date. DeletedAt *DateTime `json:"deleted_at,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` Id ULID `json:"id"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Quantity The quantity of the add-on. Always 1 for single instance add-ons. Quantity int `json:"quantity"` // QuantityAt An ISO-8601 timestamp representation of which point in time the quantity was // resolved to. QuantityAt DateTime `json:"quantity_at"` // RateCards The rate cards of the add-on. RateCards []SubscriptionAddonRateCard `json:"rate_cards"` // Timeline The timeline of the add-on. The returned periods are sorted and continuous. Timeline []SubscriptionAddonTimelineSegment `json:"timeline"` // UpdatedAt An ISO-8601 timestamp representation of entity last update date. UpdatedAt DateTime `json:"updated_at"` } // SubscriptionAddonPagePaginatedResponse Page paginated response. type SubscriptionAddonPagePaginatedResponse struct { Data []SubscriptionAddon `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // SubscriptionAddonRateCard A rate card for a subscription add-on. type SubscriptionAddonRateCard struct { // AffectedSubscriptionItemIds The IDs of the subscription items that this rate card belongs to. AffectedSubscriptionItemIds []ULID `json:"affected_subscription_item_ids"` // RateCard The rate card. RateCard BillingRateCard `json:"rate_card"` } // SubscriptionAddonTimelineSegment A subscription add-on event. type SubscriptionAddonTimelineSegment struct { // ActiveFrom An ISO-8601 timestamp representation of the cadence start of the resource. ActiveFrom DateTime `json:"active_from"` // ActiveTo An ISO-8601 timestamp representation of the cadence end of the resource. ActiveTo *DateTime `json:"active_to,omitempty"` // Quantity The quantity of the add-on for the given period. Quantity int `json:"quantity"` } // SubscriptionPagePaginatedResponse Page paginated response. type SubscriptionPagePaginatedResponse struct { Data []BillingSubscription `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // TaxCodePagePaginatedResponse Page paginated response. type TaxCodePagePaginatedResponse struct { Data []BillingTaxCode `json:"data"` // Meta returns the pagination information Meta PaginatedMeta `json:"meta"` } // TaxCodeReference TaxCode reference. type TaxCodeReference struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } // ULID ULID (Universally Unique Lexicographically Sortable Identifier). type ULID = string // ULIDFieldFilter Filters on the given ULID field value by exact match. All properties are // optional; provide exactly one to specify the comparison. type ULIDFieldFilter = filters.FilterULID // UnauthorizedError defines model for UnauthorizedError. type UnauthorizedError struct { Detail interface{} `json:"detail"` Instance interface{} `json:"instance"` Status interface{} `json:"status"` Title interface{} `json:"title"` Type interface{} `json:"type,omitempty"` } // UpdateAddress Address type UpdateAddress struct { // City City. City *string `json:"city,omitempty"` // Country Country code in [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) // alpha-2 format. Country *CountryCode `json:"country,omitempty"` // Line1 First line of the address. Line1 *string `json:"line1,omitempty"` // Line2 Second line of the address. Line2 *string `json:"line2,omitempty"` // PhoneNumber Phone number. PhoneNumber *string `json:"phone_number,omitempty"` // PostalCode Postal code. PostalCode *string `json:"postal_code,omitempty"` // State State or province. State *string `json:"state,omitempty"` } // UpdateBillingInvoiceWorkflow Invoice-level snapshot of the workflow configuration. // // Contains only the settings that are meaningful for an already-created invoice: // invoicing behaviour and payment settings. Collection alignment and tax policy // are gather-time / profile-wide concerns and are not included. type UpdateBillingInvoiceWorkflow struct { // Invoicing Invoicing settings for this invoice. Invoicing *UpdateBillingInvoiceWorkflowInvoicingSettings `json:"invoicing,omitempty"` // Payment Payment settings for this invoice. Payment *UpdateBillingWorkflowPaymentSettings `json:"payment,omitempty"` } // UpdateBillingInvoiceWorkflowInvoicingSettings Invoice-level invoicing settings. // // A subset of BillingWorkflowInvoicingSettings limited to fields that are // meaningful per-invoice. progressive_billing is omitted as it is a gather-time / // profile-level decision. type UpdateBillingInvoiceWorkflowInvoicingSettings struct { // AutoAdvance Whether to automatically issue the invoice after the draft_period has passed. AutoAdvance *bool `json:"auto_advance,omitempty"` // DraftPeriod The period for the invoice to be kept in draft status for manual reviews. DraftPeriod *string `json:"draft_period,omitempty"` } // UpdateBillingPartyAddresses A collection of addresses for the party. type UpdateBillingPartyAddresses struct { // BillingAddress Billing address. BillingAddress UpdateAddress `json:"billing_address"` } // UpdateBillingPartyTaxIdentity Identity stores the details required to identify an entity for tax purposes in a // specific country. type UpdateBillingPartyTaxIdentity struct { // Code Normalized tax identification code shown on the original identity document. Code *BillingTaxIdentificationCode `json:"code,omitempty"` } // UpdateBillingWorkflowPaymentChargeAutomaticallySettings Payment settings for a billing workflow when the collection method is charge // automatically. type UpdateBillingWorkflowPaymentChargeAutomaticallySettings struct { // CollectionMethod The collection method for the invoice. CollectionMethod UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod `json:"collection_method"` } // UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod The collection method for the invoice. type UpdateBillingWorkflowPaymentChargeAutomaticallySettingsCollectionMethod string // UpdateBillingWorkflowPaymentSendInvoiceSettings Payment settings for a billing workflow when the collection method is send // invoice. type UpdateBillingWorkflowPaymentSendInvoiceSettings struct { // CollectionMethod The collection method for the invoice. CollectionMethod UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod `json:"collection_method"` // DueAfter The period after which the invoice is due. With some payment solutions it's only // applicable for manual collection method. DueAfter *string `json:"due_after,omitempty"` } // UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod The collection method for the invoice. type UpdateBillingWorkflowPaymentSendInvoiceSettingsCollectionMethod string // UpdateBillingWorkflowPaymentSettings Payment settings for a billing workflow. type UpdateBillingWorkflowPaymentSettings struct { union json.RawMessage } // UpdateClosedPeriod A period with defined start and end dates. // // The period is always inclusive at the start and exclusive at the end. type UpdateClosedPeriod struct { // From The start of the period. // // The period is inclusive at the start. From DateTime `json:"from"` // To The end of the period. // // The period is exclusive at the end. To DateTime `json:"to"` } // UpdateCreditGrantExternalSettlementRequest Request body for updating the external payment settlement status of a credit // grant. type UpdateCreditGrantExternalSettlementRequest struct { // Status The new payment settlement status. Status BillingCreditPurchasePaymentSettlementStatus `json:"status"` } // UpdateCustomerUsageAttribution Mapping to attribute metered usage to the customer. One customer can have zero // or more subjects, but one subject can only belong to one customer. type UpdateCustomerUsageAttribution struct { // SubjectKeys The subjects that are attributed to the customer. Can be empty when no usage // event subjects are associated with the customer. SubjectKeys []UsageAttributionSubjectKey `json:"subject_keys"` } // UpdateDiscounts Discount configuration for a rate card. type UpdateDiscounts struct { // Percentage Percentage discount applied to the price (0–100). Percentage *float32 `json:"percentage,omitempty"` // Usage Number of usage units granted free before billing starts. Only applies to // usage-based lines (not flat fees). Usage is treated as zero until this amount is // exhausted. Usage *Numeric `json:"usage,omitempty"` } // UpdateFeatureRequest Request body for updating a feature. Currently only the unit_cost field can be // updated. type UpdateFeatureRequest struct { // UnitCost Optional per-unit cost configuration. Use "manual" for a fixed per-unit cost, or // "llm" to look up cost from the LLM cost database based on meter group-by // properties. Set to `null` to clear the existing unit cost; omit to leave it // unchanged. UnitCost nullable.Nullable[BillingFeatureUnitCost] `json:"unit_cost,omitempty"` } // UpdateInvoiceCustomer Snapshot of the customer's information at the time the invoice was issued. type UpdateInvoiceCustomer struct { // BillingAddress The billing address of the customer. Used for tax and invoicing. BillingAddress *UpdateAddress `json:"billing_address,omitempty"` // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` // Key Optional external resource key for the customer. // // Omitted when the customer was created without a key. Unlike on the customer // resource itself, the key is optional here because the invoice snapshot may // predate or omit it. Key *ExternalResourceKey `json:"key,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // UsageAttribution Mapping to attribute metered usage to the customer by the event subject. UsageAttribution *UpdateCustomerUsageAttribution `json:"usage_attribution,omitempty"` } // UpdateInvoiceLine A top-level line item on an invoice. // // Each line represents a single charge, typically associated with a rate card from // a subscription. Detailed (child) lines are nested under `detailed_lines` when // present. type UpdateInvoiceLine struct { union json.RawMessage } // UpdateInvoiceLineRateCard Rate card configuration snapshot for a usage-based invoice line. type UpdateInvoiceLineRateCard struct { // Discounts Discount configuration from the rate card. Discounts *UpdateDiscounts `json:"discounts,omitempty"` // FeatureKey The feature key associated with this line's rate card. FeatureKey *ResourceKey `json:"feature_key,omitempty"` // Price The price definition used to calculate charges for this line. Price UpdatePrice `json:"price"` // TaxConfig Tax configuration snapshot for this line. TaxConfig *UpdateRateCardTaxConfig `json:"tax_config,omitempty"` } // UpdateInvoiceRequest UpdateInvoiceRequest update request. type UpdateInvoiceRequest struct { union json.RawMessage } // UpdateInvoiceStandardLine A top-level line item on an invoice. // // Each line represents a single charge, typically associated with a rate card from // a subscription. Detailed (child) lines are nested under `detailed_lines` when // present. type UpdateInvoiceStandardLine struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Id ID of the line. // // Optional on update: omit to create a new line, or supply the ID of an existing // line to edit it. Existing lines omitted from an update's `lines` array are // deleted. Id *ULID `json:"id,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // RateCard The rate card configuration snapshot used to price this line item. RateCard UpdateInvoiceLineRateCard `json:"rate_card"` // ServicePeriod The service period covered by this invoice, spanning the earliest line start to // the latest line end across all of its lines. // // For an invoice with no lines the period is empty, which means `from` will be // equal to `to`. ServicePeriod UpdateClosedPeriod `json:"service_period"` // Type The type of charge this line item represents. Type UpdateInvoiceStandardLineType `json:"type"` } // UpdateInvoiceStandardLineType The type of charge this line item represents. type UpdateInvoiceStandardLineType string // UpdateInvoiceStandardRequest InvoiceStandard update request. type UpdateInvoiceStandardRequest struct { // Customer Snapshot of the customer's information at the time the invoice was issued. Customer UpdateInvoiceCustomer `json:"customer"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Lines Line items on this invoice. // // Always returned on single-resource GET; omitted on list endpoints unless // explicitly expanded. Editable via update: existing lines are matched by `id`, // lines without an `id` are created, and lines present on the invoice but omitted // from the update request are deleted. Detailed (child) lines are always computed // and cannot be edited directly. Lines *[]UpdateInvoiceLine `json:"lines,omitempty"` // Supplier Snapshot of the supplier's contact information at the time the invoice was // issued. Supplier UpdateSupplier `json:"supplier"` // Type Discriminator field identifying this as a standard invoice. Type UpdateInvoiceStandardRequestType `json:"type"` // Workflow Workflow configuration snapshot captured at invoice creation time. Workflow UpdateInvoiceWorkflowSettings `json:"workflow"` } // UpdateInvoiceStandardRequestType Discriminator field identifying this as a standard invoice. type UpdateInvoiceStandardRequestType string // UpdateInvoiceWorkflowSettings Snapshot of the billing workflow configuration captured at invoice creation. type UpdateInvoiceWorkflowSettings struct { // Workflow The workflow configuration that was active when the invoice was created. // // Only the fields that are meaningful at the per-invoice level are included: // invoicing behaviour (auto-advance, draft period) and payment settings // (collection method, due date). Profile-wide settings such as collection // alignment, progressive billing, and tax policy are omitted. Workflow UpdateBillingInvoiceWorkflow `json:"workflow"` } // UpdateMeterRequest Meter update request. type UpdateMeterRequest struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Dimensions Named JSONPath expressions to extract the group by values from the event data. // // Keys must be unique and consist only alphanumeric and underscore characters. Dimensions *map[string]string `json:"dimensions,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name *string `json:"name,omitempty"` } // UpdateOrganizationDefaultTaxCodesRequest OrganizationDefaultTaxCodes update request. type UpdateOrganizationDefaultTaxCodesRequest struct { // CreditGrantTaxCode Default tax code for credit grants. CreditGrantTaxCode *TaxCodeReference `json:"credit_grant_tax_code,omitempty"` // InvoicingTaxCode Default tax code for invoicing. InvoicingTaxCode *TaxCodeReference `json:"invoicing_tax_code,omitempty"` } // UpdatePrice Price. type UpdatePrice struct { union json.RawMessage } // UpdatePriceFlat Flat price. type UpdatePriceFlat struct { // Amount The amount of the flat price. Amount Numeric `json:"amount"` // Type The type of the price. Type UpdatePriceFlatType `json:"type"` } // UpdatePriceFlatType The type of the price. type UpdatePriceFlatType string // UpdatePriceFree Free price. type UpdatePriceFree struct { // Type The type of the price. Type UpdatePriceFreeType `json:"type"` } // UpdatePriceFreeType The type of the price. type UpdatePriceFreeType string // UpdatePriceGraduated Graduated tiered price. // // Each tier's rate applies only to the usage within that tier. Pricing can change // as cumulative usage crosses tier boundaries. // // When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are // expressed in converted billing units. type UpdatePriceGraduated struct { // Tiers The tiers of the graduated price. At least one tier is required. Tiers []UpdatePriceTier `json:"tiers"` // Type The type of the price. Type UpdatePriceGraduatedType `json:"type"` } // UpdatePriceGraduatedType The type of the price. type UpdatePriceGraduatedType string // UpdatePriceTier A price tier used in graduated and volume pricing. // // At least one price component (flat_price or unit_price) must be set. When // UnitConfig is present on the rate card, up_to_amount is expressed in converted // billing units. type UpdatePriceTier struct { // FlatPrice The flat price component of the tier. Charged once when the tier is entered. FlatPrice *UpdatePriceFlat `json:"flat_price,omitempty"` // UnitPrice The unit price component of the tier. Charged per billing unit within the tier. UnitPrice *UpdatePriceUnit `json:"unit_price,omitempty"` // UpToAmount Up to and including this quantity will be contained in the tier. If undefined, // the tier is open-ended (the last tier). UpToAmount *Numeric `json:"up_to_amount,omitempty"` } // UpdatePriceUnit Unit price. // // Charges a fixed rate per billing unit. When UnitConfig is present on the rate // card, billing units are the converted quantities (e.g. GB instead of bytes). type UpdatePriceUnit struct { // Amount The amount of the unit price. Amount Numeric `json:"amount"` // Type The type of the price. Type UpdatePriceUnitType `json:"type"` } // UpdatePriceUnitType The type of the price. type UpdatePriceUnitType string // UpdatePriceVolume Volume tiered price. // // The maximum quantity within a period determines the per-unit price for all units // in that period. // // When UnitConfig is present on the rate card, tier boundaries (up_to_amount) are // expressed in converted billing units. type UpdatePriceVolume struct { // Tiers The tiers of the volume price. At least one tier is required. Tiers []UpdatePriceTier `json:"tiers"` // Type The type of the price. Type UpdatePriceVolumeType `json:"type"` } // UpdatePriceVolumeType The type of the price. type UpdatePriceVolumeType string // UpdateRateCardTaxConfig The tax config of the rate card. type UpdateRateCardTaxConfig struct { // Behavior Tax behavior. // // This enum is used to specify whether tax is included in the price or excluded // from the price. Behavior *BillingTaxBehavior `json:"behavior,omitempty"` // Code TaxCode reference. Code UpdateResourceReference `json:"code"` } // UpdateResourceReference TaxCode reference. type UpdateResourceReference struct { // Id ULID (Universally Unique Lexicographically Sortable Identifier). Id ULID `json:"id"` } // UpdateSupplier Snapshot of the supplier's information at the time the invoice was issued. // // Structurally a read-only subset of `BillingParty` (the type configured on the // billing profile), so the snapshot stays aligned with the source. `key` is // omitted because it is not part of the snapshotted supplier data. type UpdateSupplier struct { // Addresses Address for where information should be sent if needed. Addresses *UpdateBillingPartyAddresses `json:"addresses,omitempty"` // Id Unique identifier for the party. Id *string `json:"id,omitempty"` // Name Legal name or representation of the party. Name *string `json:"name,omitempty"` // TaxId The entity's legal identification used for tax purposes. They may have other // numbers, but we're only interested in those valid for tax purposes. TaxId *UpdateBillingPartyTaxIdentity `json:"tax_id,omitempty"` } // UpsertAddonRequest Addon upsert request. type UpsertAddonRequest struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // InstanceType The InstanceType of the add-ons. Can be "single" or "multiple". InstanceType AddonInstanceType `json:"instance_type"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // RateCards The rate cards of the add-on. RateCards []BillingRateCard `json:"rate_cards"` } // UpsertAppCustomerDataRequest AppCustomerData upsert request. type UpsertAppCustomerDataRequest struct { // ExternalInvoicing Used if the customer has a linked external invoicing app. ExternalInvoicing *BillingAppCustomerDataExternalInvoicing `json:"external_invoicing,omitempty"` // Stripe Used if the customer has a linked Stripe app. Stripe *BillingAppCustomerDataStripe `json:"stripe,omitempty"` } // UpsertBillingProfileRequest BillingProfile upsert request. type UpsertBillingProfileRequest struct { // Default Whether this is the default profile. Default bool `json:"default"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Supplier The name and contact information for the supplier this billing profile // represents Supplier BillingParty `json:"supplier"` // Workflow The billing workflow settings for this profile Workflow BillingWorkflow `json:"workflow"` } // UpsertCustomerBillingDataRequest CustomerBillingData upsert request. type UpsertCustomerBillingDataRequest struct { // AppData App customer data. AppData *BillingAppCustomerData `json:"app_data,omitempty"` // BillingProfile The billing profile for the customer. // // If not provided, the default billing profile will be used. BillingProfile *BillingProfileReference `json:"billing_profile,omitempty"` } // UpsertCustomerRequest Customer upsert request. type UpsertCustomerRequest struct { // BillingAddress The billing address of the customer. Used for tax and invoicing. BillingAddress *Address `json:"billing_address,omitempty"` // Currency Currency of the customer. Used for billing, tax and invoicing. Currency *CurrencyCode `json:"currency,omitempty"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // PrimaryEmail The primary email address of the customer. PrimaryEmail *string `json:"primary_email,omitempty"` // UsageAttribution Mapping to attribute metered usage to the customer by the event subject. UsageAttribution *BillingCustomerUsageAttribution `json:"usage_attribution,omitempty"` } // UpsertPlanAddonRequest PlanAddon upsert request. type UpsertPlanAddonRequest struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // FromPlanPhase The key of the plan phase from which the add-on becomes available for purchase. FromPlanPhase ResourceKey `json:"from_plan_phase"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // MaxQuantity The maximum number of times the add-on can be purchased for the plan. For // single-instance add-ons this field must be omitted. For multi-instance add-ons // when omitted, unlimited quantity can be purchased. MaxQuantity *int `json:"max_quantity,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` } // UpsertPlanRequest Plan upsert request. type UpsertPlanRequest struct { // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` // Phases The plan phases define the pricing ramp for a subscription. A phase switch // occurs only at the end of a billing period. At least one phase is required. Phases []BillingPlanPhase `json:"phases"` // ProRatingEnabled Whether pro-rating is enabled for this plan. ProRatingEnabled *bool `json:"pro_rating_enabled,omitempty"` } // UpsertTaxCodeRequest TaxCode upsert request. type UpsertTaxCodeRequest struct { // AppMappings Mapping of app types to tax codes. AppMappings []BillingTaxCodeAppMapping `json:"app_mappings"` // Description Optional description of the resource. // // Maximum 1024 characters. Description *string `json:"description,omitempty"` // Labels Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. // // Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_". Labels *Labels `json:"labels,omitempty"` // Name Display name of the resource. // // Between 1 and 256 characters. Name string `json:"name"` } // UsageAttributionSubjectKey Subject key. type UsageAttributionSubjectKey = string // VoidCreditGrantRequest Request body for voiding a credit grant. type VoidCreditGrantRequest struct { // PaymentAdjustment How voiding adjusts payment state related to the grant. // // Currently only `none` is supported: voiding does not adjust invoices, payment // authorization, settlement, payment intents, or external collection state. If // payment later completes, the original invoiced amount may still be collected. PaymentAdjustment *BillingCreditGrantVoidPaymentAdjustment `json:"payment_adjustment,omitempty"` } // CursorPaginationQuery Determines which page of the collection to retrieve. type CursorPaginationQuery = CursorPaginationQueryPage // PagePaginationQuery defines model for PagePaginationQuery. type PagePaginationQuery struct { // Number The page number. Number *int `json:"number,omitempty"` // Size The number of items to include per page. Size *int `json:"size,omitempty"` } // BadRequest defines model for BadRequest. type BadRequest = BadRequestError // Conflict defines model for Conflict. type Conflict = ConflictError // Forbidden defines model for Forbidden. type Forbidden = ForbiddenError // Gone defines model for Gone. type Gone = GoneError // NotFound defines model for NotFound. type NotFound = NotFoundError // Unauthorized defines model for Unauthorized. type Unauthorized = UnauthorizedError // ListAddonsParams defines parameters for ListAddons. type ListAddonsParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort add-ons returned in the response. Supported sort attributes are: // // - `id` // - `key` // - `name` // - `created_at` (default) // - `updated_at` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter add-ons returned in the response. Filter *ListAddonsParamsFilter `json:"filter,omitempty"` } // ListAppCatalogParams defines parameters for ListAppCatalog. type ListAppCatalogParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListAppsParams defines parameters for ListApps. type ListAppsParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListInvoicesParams defines parameters for ListInvoices. type ListInvoicesParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort invoices returned in the response. Supported sort attributes: // // - `issued_at` // - `created_at` (default) // - `service_period_start` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter invoices returned in the response. // // Examples: // // - `filter[status][oeq]=draft,issued` // - `filter[customer_id]=01KPDB8K...` // - `filter[issued_at][gte]=2024-01-01T00:00:00Z` Filter *ListInvoicesParamsFilter `json:"filter,omitempty"` } // ListCurrenciesParams defines parameters for ListCurrencies. type ListCurrenciesParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort currencies returned in the response. Supported sort attributes are: // // - `code` (default) // - `name` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter currencies returned in the response. // // To filter currencies by type add the following query param: filter[type]=custom Filter *ListCurrenciesParamsFilter `json:"filter,omitempty"` } // ListCostBasesParams defines parameters for ListCostBases. type ListCostBasesParams struct { // Filter Filter cost bases returned in the response. // // To filter cost bases by fiat currency code add the following query param: // filter[fiat_code]=USD Filter *ListCostBasesParamsFilter `json:"filter,omitempty"` // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListCustomersParams defines parameters for ListCustomers. type ListCustomersParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort customers returned in the response. Supported sort attributes are: // // - `id` // - `name` (default) // - `created_at` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter customers returned in the response. // // To filter customers by key add the following query param: filter[key]=my-db-id Filter *ListCustomersParamsFilter `json:"filter,omitempty"` } // ListCustomerChargesParams defines parameters for ListCustomerCharges. type ListCustomerChargesParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort charges returned in the response. // // Supported sort attributes are: // // - `id` // - `created_at` // - `service_period.from` // - `billing_period.from` Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter charges. // // To filter charges by status add the following query param: // `filter[status][oeq]=created,active` Filter *ListChargesParamsFilter `json:"filter,omitempty"` // Expand Expand full objects for referenced entities. // // Supported values are: // // - `real_time_usage`: Expand the charge's real-time usage. Expand *[]BillingChargesExpand `form:"expand,omitempty" json:"expand,omitempty"` } // GetCustomerCreditBalanceParams defines parameters for GetCustomerCreditBalance. type GetCustomerCreditBalanceParams struct { // Timestamp Return the credit balance as of this timestamp. // // Defaults to the current time. Timestamp *DateTime `form:"timestamp,omitempty" json:"timestamp,omitempty"` Filter *GetCreditBalanceParamsFilter `json:"filter,omitempty"` } // ListCreditGrantsParams defines parameters for ListCreditGrants. type ListCreditGrantsParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Filter Filter credit grants returned in the response. Filter *ListCreditGrantsParamsFilter `json:"filter,omitempty"` } // ListCreditTransactionsParams defines parameters for ListCreditTransactions. type ListCreditTransactionsParams struct { Page *CursorPaginationQuery `json:"page,omitempty"` // Filter Filter credit transactions returned in the response. Filter *ListCreditTransactionsParamsFilter `json:"filter,omitempty"` } // ListMeteringEventsParams defines parameters for ListMeteringEvents. type ListMeteringEventsParams struct { Page *CursorPaginationQuery `json:"page,omitempty"` // Filter Filter events returned in the response. // // To filter events by subject add the following query param: // filter[subject][eq]=customer-1 Filter *ListEventsParamsFilter `json:"filter,omitempty"` // Sort Sort events returned in the response. Supported sort attributes are: // // - `time` (default) // - `ingested_at` // - `stored_at` // // When omitted, events are sorted by `time desc` (most recent first). When a sort // field is provided without a suffix, it sorts descending. Append the `asc` suffix // to sort ascending, or the `desc` suffix to sort descending. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` } // IngestMeteringEventsApplicationCloudeventsBatchPlusJSONBody defines parameters for IngestMeteringEvents. type IngestMeteringEventsApplicationCloudeventsBatchPlusJSONBody = []MeteringEvent // IngestMeteringEventsJSONBody defines parameters for IngestMeteringEvents. type IngestMeteringEventsJSONBody struct { union json.RawMessage } // IngestMeteringEventsJSONBody1 defines parameters for IngestMeteringEvents. type IngestMeteringEventsJSONBody1 = []MeteringEvent // ListFeaturesParams defines parameters for ListFeatures. type ListFeaturesParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort features returned in the response. Supported sort attributes are: // // - `key` // - `name` // - `created_at` (default) // - `updated_at` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter features returned in the response. // // To filter features by meter_id add the following query param: // filter[meter_id][oeq]= Filter *ListFeatureParamsFilter `json:"filter,omitempty"` } // QueryGovernanceAccessParams defines parameters for QueryGovernanceAccess. type QueryGovernanceAccessParams struct { Page *CursorPaginationQuery `json:"page,omitempty"` } // ListLlmCostOverridesParams defines parameters for ListLlmCostOverrides. type ListLlmCostOverridesParams struct { Filter *ListLLMCostPricesParamsFilter `json:"filter,omitempty"` // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListLlmCostPricesParams defines parameters for ListLlmCostPrices. type ListLlmCostPricesParams struct { // Filter Filter prices. Filter *ListLLMCostPricesParamsFilter `json:"filter,omitempty"` // Sort Sort prices returned in the response. Supported sort attributes are: // // - `id` // - `provider.id` // - `model.id` (default) // - `effective_from` // - `effective_to` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListMetersParams defines parameters for ListMeters. type ListMetersParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort meters returned in the response. Supported sort attributes are: // // - `key` // - `name` // - `aggregation` // - `created_at` (default) // - `updated_at` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter meters returned in the response. // // To filter meters by key add the following query param: filter[key]=my-meter-key Filter *ListMetersParamsFilter `json:"filter,omitempty"` } // ListPlansParams defines parameters for ListPlans. type ListPlansParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort plans returned in the response. Supported sort attributes are: // // - `id` // - `key` // - `version` // - `created_at` (default) // - `updated_at` Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter plans returned in the response. Filter *ListPlansParamsFilter `json:"filter,omitempty"` } // ListPlanAddonsParams defines parameters for ListPlanAddons. type ListPlanAddonsParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListBillingProfilesParams defines parameters for ListBillingProfiles. type ListBillingProfilesParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` } // ListSubscriptionsParams defines parameters for ListSubscriptions. type ListSubscriptionsParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort subscriptions returned in the response. Supported sort attributes are: // // - `id` // - `active_from` (default) // - `active_to` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` // Filter Filter subscriptions. Filter *ListSubscriptionsParamsFilter `json:"filter,omitempty"` } // ListSubscriptionAddonsParams defines parameters for ListSubscriptionAddons. type ListSubscriptionAddonsParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // Sort Sort subscription addons returned in the response. Supported sort attributes // are: // // - `id` // - `created_at` (default) // - `updated_at` // // The `asc` suffix is optional as the default sort order is ascending. The `desc` // suffix is used to specify a descending order. Sort *SortQuery `form:"sort,omitempty" json:"sort,omitempty"` } // ListTaxCodesParams defines parameters for ListTaxCodes. type ListTaxCodesParams struct { // Page Determines which page of the collection to retrieve. Page *PagePaginationQuery `json:"page,omitempty"` // IncludeDeleted Include deleted tax codes in the response. IncludeDeleted *bool `form:"include_deleted,omitempty" json:"include_deleted,omitempty"` } // CreateAddonJSONRequestBody defines body for CreateAddon for application/json ContentType. type CreateAddonJSONRequestBody = CreateAddonRequest // UpdateAddonJSONRequestBody defines body for UpdateAddon for application/json ContentType. type UpdateAddonJSONRequestBody = UpsertAddonRequest // InstallAppJSONRequestBody defines body for InstallApp for application/json ContentType. type InstallAppJSONRequestBody = BillingInstallAppRequest // UpdateInvoiceJSONRequestBody defines body for UpdateInvoice for application/json ContentType. type UpdateInvoiceJSONRequestBody = UpdateInvoiceRequest // CreateCustomCurrencyJSONRequestBody defines body for CreateCustomCurrency for application/json ContentType. type CreateCustomCurrencyJSONRequestBody = CreateCurrencyCustomRequest // CreateCostBasisJSONRequestBody defines body for CreateCostBasis for application/json ContentType. type CreateCostBasisJSONRequestBody = CreateCostBasisRequest // CreateCustomerJSONRequestBody defines body for CreateCustomer for application/json ContentType. type CreateCustomerJSONRequestBody = CreateCustomerRequest // UpsertCustomerJSONRequestBody defines body for UpsertCustomer for application/json ContentType. type UpsertCustomerJSONRequestBody = UpsertCustomerRequest // UpdateCustomerBillingJSONRequestBody defines body for UpdateCustomerBilling for application/json ContentType. type UpdateCustomerBillingJSONRequestBody = UpsertCustomerBillingDataRequest // UpdateCustomerBillingAppDataJSONRequestBody defines body for UpdateCustomerBillingAppData for application/json ContentType. type UpdateCustomerBillingAppDataJSONRequestBody = UpsertAppCustomerDataRequest // CreateCustomerStripeCheckoutSessionJSONRequestBody defines body for CreateCustomerStripeCheckoutSession for application/json ContentType. type CreateCustomerStripeCheckoutSessionJSONRequestBody = BillingCustomerStripeCreateCheckoutSessionRequest // CreateCustomerStripePortalSessionJSONRequestBody defines body for CreateCustomerStripePortalSession for application/json ContentType. type CreateCustomerStripePortalSessionJSONRequestBody = BillingCustomerStripeCreateCustomerPortalSessionRequest // CreateCustomerChargesJSONRequestBody defines body for CreateCustomerCharges for application/json ContentType. type CreateCustomerChargesJSONRequestBody = CreateChargeRequest // CreateCreditAdjustmentJSONRequestBody defines body for CreateCreditAdjustment for application/json ContentType. type CreateCreditAdjustmentJSONRequestBody = CreateCreditAdjustmentRequest // CreateCreditGrantJSONRequestBody defines body for CreateCreditGrant for application/json ContentType. type CreateCreditGrantJSONRequestBody = CreateCreditGrantRequest // UpdateCreditGrantExternalSettlementJSONRequestBody defines body for UpdateCreditGrantExternalSettlement for application/json ContentType. type UpdateCreditGrantExternalSettlementJSONRequestBody = UpdateCreditGrantExternalSettlementRequest // VoidCreditGrantJSONRequestBody defines body for VoidCreditGrant for application/json ContentType. type VoidCreditGrantJSONRequestBody = VoidCreditGrantRequest // UpdateOrganizationDefaultTaxCodesJSONRequestBody defines body for UpdateOrganizationDefaultTaxCodes for application/json ContentType. type UpdateOrganizationDefaultTaxCodesJSONRequestBody = UpdateOrganizationDefaultTaxCodesRequest // IngestMeteringEventsApplicationCloudeventsPlusJSONRequestBody defines body for IngestMeteringEvents for application/cloudevents+json ContentType. type IngestMeteringEventsApplicationCloudeventsPlusJSONRequestBody = MeteringEvent // IngestMeteringEventsApplicationCloudeventsBatchPlusJSONRequestBody defines body for IngestMeteringEvents for application/cloudevents-batch+json ContentType. type IngestMeteringEventsApplicationCloudeventsBatchPlusJSONRequestBody = IngestMeteringEventsApplicationCloudeventsBatchPlusJSONBody // IngestMeteringEventsJSONRequestBody defines body for IngestMeteringEvents for application/json ContentType. type IngestMeteringEventsJSONRequestBody IngestMeteringEventsJSONBody // CreateFeatureJSONRequestBody defines body for CreateFeature for application/json ContentType. type CreateFeatureJSONRequestBody = CreateFeatureRequest // UpdateFeatureJSONRequestBody defines body for UpdateFeature for application/json ContentType. type UpdateFeatureJSONRequestBody = UpdateFeatureRequest // QueryFeatureCostJSONRequestBody defines body for QueryFeatureCost for application/json ContentType. type QueryFeatureCostJSONRequestBody = MeterQueryRequest // QueryGovernanceAccessJSONRequestBody defines body for QueryGovernanceAccess for application/json ContentType. type QueryGovernanceAccessJSONRequestBody = GovernanceQueryRequest // CreateLlmCostOverrideJSONRequestBody defines body for CreateLlmCostOverride for application/json ContentType. type CreateLlmCostOverrideJSONRequestBody = LLMCostOverrideCreate // CreateMeterJSONRequestBody defines body for CreateMeter for application/json ContentType. type CreateMeterJSONRequestBody = CreateMeterRequest // UpdateMeterJSONRequestBody defines body for UpdateMeter for application/json ContentType. type UpdateMeterJSONRequestBody = UpdateMeterRequest // QueryMeterJSONRequestBody defines body for QueryMeter for application/json ContentType. type QueryMeterJSONRequestBody = MeterQueryRequest // CreatePlanJSONRequestBody defines body for CreatePlan for application/json ContentType. type CreatePlanJSONRequestBody = CreatePlanRequest // UpdatePlanJSONRequestBody defines body for UpdatePlan for application/json ContentType. type UpdatePlanJSONRequestBody = UpsertPlanRequest // CreatePlanAddonJSONRequestBody defines body for CreatePlanAddon for application/json ContentType. type CreatePlanAddonJSONRequestBody = CreatePlanAddonRequest // UpdatePlanAddonJSONRequestBody defines body for UpdatePlanAddon for application/json ContentType. type UpdatePlanAddonJSONRequestBody = UpsertPlanAddonRequest // CreateBillingProfileJSONRequestBody defines body for CreateBillingProfile for application/json ContentType. type CreateBillingProfileJSONRequestBody = CreateBillingProfileRequest // UpdateBillingProfileJSONRequestBody defines body for UpdateBillingProfile for application/json ContentType. type UpdateBillingProfileJSONRequestBody = UpsertBillingProfileRequest // CreateSubscriptionJSONRequestBody defines body for CreateSubscription for application/json ContentType. type CreateSubscriptionJSONRequestBody = BillingSubscriptionCreate // CreateSubscriptionAddonJSONRequestBody defines body for CreateSubscriptionAddon for application/json ContentType. type CreateSubscriptionAddonJSONRequestBody = CreateSubscriptionAddonRequest // CancelSubscriptionJSONRequestBody defines body for CancelSubscription for application/json ContentType. type CancelSubscriptionJSONRequestBody = BillingSubscriptionCancel // ChangeSubscriptionJSONRequestBody defines body for ChangeSubscription for application/json ContentType. type ChangeSubscriptionJSONRequestBody = BillingSubscriptionChange // CreateTaxCodeJSONRequestBody defines body for CreateTaxCode for application/json ContentType. type CreateTaxCodeJSONRequestBody = CreateTaxCodeRequest // UpsertTaxCodeJSONRequestBody defines body for UpsertTaxCode for application/json ContentType. type UpsertTaxCodeJSONRequestBody = UpsertTaxCodeRequest // AsBillingAppStripe returns the union data inside the BillingApp as a BillingAppStripe func (t BillingApp) AsBillingAppStripe() (BillingAppStripe, error) { var body BillingAppStripe err := json.Unmarshal(t.union, &body) return body, err } // FromBillingAppStripe overwrites any union data inside the BillingApp as the provided BillingAppStripe func (t *BillingApp) FromBillingAppStripe(v BillingAppStripe) error { v.Type = "stripe" b, err := json.Marshal(v) t.union = b return err } // MergeBillingAppStripe performs a merge with any union data inside the BillingApp, using the provided BillingAppStripe func (t *BillingApp) MergeBillingAppStripe(v BillingAppStripe) error { v.Type = "stripe" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingAppSandbox returns the union data inside the BillingApp as a BillingAppSandbox func (t BillingApp) AsBillingAppSandbox() (BillingAppSandbox, error) { var body BillingAppSandbox err := json.Unmarshal(t.union, &body) return body, err } // FromBillingAppSandbox overwrites any union data inside the BillingApp as the provided BillingAppSandbox func (t *BillingApp) FromBillingAppSandbox(v BillingAppSandbox) error { v.Type = "sandbox" b, err := json.Marshal(v) t.union = b return err } // MergeBillingAppSandbox performs a merge with any union data inside the BillingApp, using the provided BillingAppSandbox func (t *BillingApp) MergeBillingAppSandbox(v BillingAppSandbox) error { v.Type = "sandbox" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingAppExternalInvoicing returns the union data inside the BillingApp as a BillingAppExternalInvoicing func (t BillingApp) AsBillingAppExternalInvoicing() (BillingAppExternalInvoicing, error) { var body BillingAppExternalInvoicing err := json.Unmarshal(t.union, &body) return body, err } // FromBillingAppExternalInvoicing overwrites any union data inside the BillingApp as the provided BillingAppExternalInvoicing func (t *BillingApp) FromBillingAppExternalInvoicing(v BillingAppExternalInvoicing) error { v.Type = "external_invoicing" b, err := json.Marshal(v) t.union = b return err } // MergeBillingAppExternalInvoicing performs a merge with any union data inside the BillingApp, using the provided BillingAppExternalInvoicing func (t *BillingApp) MergeBillingAppExternalInvoicing(v BillingAppExternalInvoicing) error { v.Type = "external_invoicing" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingApp) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingApp) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "external_invoicing": return t.AsBillingAppExternalInvoicing() case "sandbox": return t.AsBillingAppSandbox() case "stripe": return t.AsBillingAppStripe() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingApp) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingApp) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingChargeFlatFee returns the union data inside the BillingCharge as a BillingChargeFlatFee func (t BillingCharge) AsBillingChargeFlatFee() (BillingChargeFlatFee, error) { var body BillingChargeFlatFee err := json.Unmarshal(t.union, &body) return body, err } // FromBillingChargeFlatFee overwrites any union data inside the BillingCharge as the provided BillingChargeFlatFee func (t *BillingCharge) FromBillingChargeFlatFee(v BillingChargeFlatFee) error { v.Type = "flat_fee" b, err := json.Marshal(v) t.union = b return err } // MergeBillingChargeFlatFee performs a merge with any union data inside the BillingCharge, using the provided BillingChargeFlatFee func (t *BillingCharge) MergeBillingChargeFlatFee(v BillingChargeFlatFee) error { v.Type = "flat_fee" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingChargeUsageBased returns the union data inside the BillingCharge as a BillingChargeUsageBased func (t BillingCharge) AsBillingChargeUsageBased() (BillingChargeUsageBased, error) { var body BillingChargeUsageBased err := json.Unmarshal(t.union, &body) return body, err } // FromBillingChargeUsageBased overwrites any union data inside the BillingCharge as the provided BillingChargeUsageBased func (t *BillingCharge) FromBillingChargeUsageBased(v BillingChargeUsageBased) error { v.Type = "usage_based" b, err := json.Marshal(v) t.union = b return err } // MergeBillingChargeUsageBased performs a merge with any union data inside the BillingCharge, using the provided BillingChargeUsageBased func (t *BillingCharge) MergeBillingChargeUsageBased(v BillingChargeUsageBased) error { v.Type = "usage_based" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingCharge) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingCharge) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "flat_fee": return t.AsBillingChargeFlatFee() case "usage_based": return t.AsBillingChargeUsageBased() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingCharge) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingCharge) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingCurrencyFiat returns the union data inside the BillingCurrency as a BillingCurrencyFiat func (t BillingCurrency) AsBillingCurrencyFiat() (BillingCurrencyFiat, error) { var body BillingCurrencyFiat err := json.Unmarshal(t.union, &body) return body, err } // FromBillingCurrencyFiat overwrites any union data inside the BillingCurrency as the provided BillingCurrencyFiat func (t *BillingCurrency) FromBillingCurrencyFiat(v BillingCurrencyFiat) error { v.Type = "fiat" b, err := json.Marshal(v) t.union = b return err } // MergeBillingCurrencyFiat performs a merge with any union data inside the BillingCurrency, using the provided BillingCurrencyFiat func (t *BillingCurrency) MergeBillingCurrencyFiat(v BillingCurrencyFiat) error { v.Type = "fiat" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingCurrencyCustom returns the union data inside the BillingCurrency as a BillingCurrencyCustom func (t BillingCurrency) AsBillingCurrencyCustom() (BillingCurrencyCustom, error) { var body BillingCurrencyCustom err := json.Unmarshal(t.union, &body) return body, err } // FromBillingCurrencyCustom overwrites any union data inside the BillingCurrency as the provided BillingCurrencyCustom func (t *BillingCurrency) FromBillingCurrencyCustom(v BillingCurrencyCustom) error { v.Type = "custom" b, err := json.Marshal(v) t.union = b return err } // MergeBillingCurrencyCustom performs a merge with any union data inside the BillingCurrency, using the provided BillingCurrencyCustom func (t *BillingCurrency) MergeBillingCurrencyCustom(v BillingCurrencyCustom) error { v.Type = "custom" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingCurrency) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingCurrency) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "custom": return t.AsBillingCurrencyCustom() case "fiat": return t.AsBillingCurrencyFiat() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingCurrency) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingCurrency) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingFeatureManualUnitCost returns the union data inside the BillingFeatureUnitCost as a BillingFeatureManualUnitCost func (t BillingFeatureUnitCost) AsBillingFeatureManualUnitCost() (BillingFeatureManualUnitCost, error) { var body BillingFeatureManualUnitCost err := json.Unmarshal(t.union, &body) return body, err } // FromBillingFeatureManualUnitCost overwrites any union data inside the BillingFeatureUnitCost as the provided BillingFeatureManualUnitCost func (t *BillingFeatureUnitCost) FromBillingFeatureManualUnitCost(v BillingFeatureManualUnitCost) error { v.Type = "manual" b, err := json.Marshal(v) t.union = b return err } // MergeBillingFeatureManualUnitCost performs a merge with any union data inside the BillingFeatureUnitCost, using the provided BillingFeatureManualUnitCost func (t *BillingFeatureUnitCost) MergeBillingFeatureManualUnitCost(v BillingFeatureManualUnitCost) error { v.Type = "manual" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingFeatureLLMUnitCost returns the union data inside the BillingFeatureUnitCost as a BillingFeatureLLMUnitCost func (t BillingFeatureUnitCost) AsBillingFeatureLLMUnitCost() (BillingFeatureLLMUnitCost, error) { var body BillingFeatureLLMUnitCost err := json.Unmarshal(t.union, &body) return body, err } // FromBillingFeatureLLMUnitCost overwrites any union data inside the BillingFeatureUnitCost as the provided BillingFeatureLLMUnitCost func (t *BillingFeatureUnitCost) FromBillingFeatureLLMUnitCost(v BillingFeatureLLMUnitCost) error { v.Type = "llm" b, err := json.Marshal(v) t.union = b return err } // MergeBillingFeatureLLMUnitCost performs a merge with any union data inside the BillingFeatureUnitCost, using the provided BillingFeatureLLMUnitCost func (t *BillingFeatureUnitCost) MergeBillingFeatureLLMUnitCost(v BillingFeatureLLMUnitCost) error { v.Type = "llm" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingFeatureUnitCost) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingFeatureUnitCost) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "llm": return t.AsBillingFeatureLLMUnitCost() case "manual": return t.AsBillingFeatureManualUnitCost() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingFeatureUnitCost) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingFeatureUnitCost) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingInstallAppStripeWithApiKey returns the union data inside the BillingInstallAppRequest as a BillingInstallAppStripeWithApiKey func (t BillingInstallAppRequest) AsBillingInstallAppStripeWithApiKey() (BillingInstallAppStripeWithApiKey, error) { var body BillingInstallAppStripeWithApiKey err := json.Unmarshal(t.union, &body) return body, err } // FromBillingInstallAppStripeWithApiKey overwrites any union data inside the BillingInstallAppRequest as the provided BillingInstallAppStripeWithApiKey func (t *BillingInstallAppRequest) FromBillingInstallAppStripeWithApiKey(v BillingInstallAppStripeWithApiKey) error { v.Type = "stripe" b, err := json.Marshal(v) t.union = b return err } // MergeBillingInstallAppStripeWithApiKey performs a merge with any union data inside the BillingInstallAppRequest, using the provided BillingInstallAppStripeWithApiKey func (t *BillingInstallAppRequest) MergeBillingInstallAppStripeWithApiKey(v BillingInstallAppStripeWithApiKey) error { v.Type = "stripe" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingInstallAppSandbox returns the union data inside the BillingInstallAppRequest as a BillingInstallAppSandbox func (t BillingInstallAppRequest) AsBillingInstallAppSandbox() (BillingInstallAppSandbox, error) { var body BillingInstallAppSandbox err := json.Unmarshal(t.union, &body) return body, err } // FromBillingInstallAppSandbox overwrites any union data inside the BillingInstallAppRequest as the provided BillingInstallAppSandbox func (t *BillingInstallAppRequest) FromBillingInstallAppSandbox(v BillingInstallAppSandbox) error { v.Type = "sandbox" b, err := json.Marshal(v) t.union = b return err } // MergeBillingInstallAppSandbox performs a merge with any union data inside the BillingInstallAppRequest, using the provided BillingInstallAppSandbox func (t *BillingInstallAppRequest) MergeBillingInstallAppSandbox(v BillingInstallAppSandbox) error { v.Type = "sandbox" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingInstallAppExternalInvoicing returns the union data inside the BillingInstallAppRequest as a BillingInstallAppExternalInvoicing func (t BillingInstallAppRequest) AsBillingInstallAppExternalInvoicing() (BillingInstallAppExternalInvoicing, error) { var body BillingInstallAppExternalInvoicing err := json.Unmarshal(t.union, &body) return body, err } // FromBillingInstallAppExternalInvoicing overwrites any union data inside the BillingInstallAppRequest as the provided BillingInstallAppExternalInvoicing func (t *BillingInstallAppRequest) FromBillingInstallAppExternalInvoicing(v BillingInstallAppExternalInvoicing) error { v.Type = "external_invoicing" b, err := json.Marshal(v) t.union = b return err } // MergeBillingInstallAppExternalInvoicing performs a merge with any union data inside the BillingInstallAppRequest, using the provided BillingInstallAppExternalInvoicing func (t *BillingInstallAppRequest) MergeBillingInstallAppExternalInvoicing(v BillingInstallAppExternalInvoicing) error { v.Type = "external_invoicing" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingInstallAppRequest) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingInstallAppRequest) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "external_invoicing": return t.AsBillingInstallAppExternalInvoicing() case "sandbox": return t.AsBillingInstallAppSandbox() case "stripe": return t.AsBillingInstallAppStripeWithApiKey() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingInstallAppRequest) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingInstallAppRequest) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingInvoiceStandard returns the union data inside the BillingInvoice as a BillingInvoiceStandard func (t BillingInvoice) AsBillingInvoiceStandard() (BillingInvoiceStandard, error) { var body BillingInvoiceStandard err := json.Unmarshal(t.union, &body) return body, err } // FromBillingInvoiceStandard overwrites any union data inside the BillingInvoice as the provided BillingInvoiceStandard func (t *BillingInvoice) FromBillingInvoiceStandard(v BillingInvoiceStandard) error { v.Type = "standard" b, err := json.Marshal(v) t.union = b return err } // MergeBillingInvoiceStandard performs a merge with any union data inside the BillingInvoice, using the provided BillingInvoiceStandard func (t *BillingInvoice) MergeBillingInvoiceStandard(v BillingInvoiceStandard) error { v.Type = "standard" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingInvoice) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingInvoice) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "standard": return t.AsBillingInvoiceStandard() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingInvoice) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingInvoice) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingInvoiceStandardLine returns the union data inside the BillingInvoiceLine as a BillingInvoiceStandardLine func (t BillingInvoiceLine) AsBillingInvoiceStandardLine() (BillingInvoiceStandardLine, error) { var body BillingInvoiceStandardLine err := json.Unmarshal(t.union, &body) return body, err } // FromBillingInvoiceStandardLine overwrites any union data inside the BillingInvoiceLine as the provided BillingInvoiceStandardLine func (t *BillingInvoiceLine) FromBillingInvoiceStandardLine(v BillingInvoiceStandardLine) error { v.Type = "standard_line" b, err := json.Marshal(v) t.union = b return err } // MergeBillingInvoiceStandardLine performs a merge with any union data inside the BillingInvoiceLine, using the provided BillingInvoiceStandardLine func (t *BillingInvoiceLine) MergeBillingInvoiceStandardLine(v BillingInvoiceStandardLine) error { v.Type = "standard_line" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingInvoiceLine) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingInvoiceLine) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "standard_line": return t.AsBillingInvoiceStandardLine() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingInvoiceLine) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingInvoiceLine) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingPriceFree returns the union data inside the BillingPrice as a BillingPriceFree func (t BillingPrice) AsBillingPriceFree() (BillingPriceFree, error) { var body BillingPriceFree err := json.Unmarshal(t.union, &body) return body, err } // FromBillingPriceFree overwrites any union data inside the BillingPrice as the provided BillingPriceFree func (t *BillingPrice) FromBillingPriceFree(v BillingPriceFree) error { v.Type = "free" b, err := json.Marshal(v) t.union = b return err } // MergeBillingPriceFree performs a merge with any union data inside the BillingPrice, using the provided BillingPriceFree func (t *BillingPrice) MergeBillingPriceFree(v BillingPriceFree) error { v.Type = "free" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingPriceFlat returns the union data inside the BillingPrice as a BillingPriceFlat func (t BillingPrice) AsBillingPriceFlat() (BillingPriceFlat, error) { var body BillingPriceFlat err := json.Unmarshal(t.union, &body) return body, err } // FromBillingPriceFlat overwrites any union data inside the BillingPrice as the provided BillingPriceFlat func (t *BillingPrice) FromBillingPriceFlat(v BillingPriceFlat) error { v.Type = "flat" b, err := json.Marshal(v) t.union = b return err } // MergeBillingPriceFlat performs a merge with any union data inside the BillingPrice, using the provided BillingPriceFlat func (t *BillingPrice) MergeBillingPriceFlat(v BillingPriceFlat) error { v.Type = "flat" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingPriceUnit returns the union data inside the BillingPrice as a BillingPriceUnit func (t BillingPrice) AsBillingPriceUnit() (BillingPriceUnit, error) { var body BillingPriceUnit err := json.Unmarshal(t.union, &body) return body, err } // FromBillingPriceUnit overwrites any union data inside the BillingPrice as the provided BillingPriceUnit func (t *BillingPrice) FromBillingPriceUnit(v BillingPriceUnit) error { v.Type = "unit" b, err := json.Marshal(v) t.union = b return err } // MergeBillingPriceUnit performs a merge with any union data inside the BillingPrice, using the provided BillingPriceUnit func (t *BillingPrice) MergeBillingPriceUnit(v BillingPriceUnit) error { v.Type = "unit" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingPriceGraduated returns the union data inside the BillingPrice as a BillingPriceGraduated func (t BillingPrice) AsBillingPriceGraduated() (BillingPriceGraduated, error) { var body BillingPriceGraduated err := json.Unmarshal(t.union, &body) return body, err } // FromBillingPriceGraduated overwrites any union data inside the BillingPrice as the provided BillingPriceGraduated func (t *BillingPrice) FromBillingPriceGraduated(v BillingPriceGraduated) error { v.Type = "graduated" b, err := json.Marshal(v) t.union = b return err } // MergeBillingPriceGraduated performs a merge with any union data inside the BillingPrice, using the provided BillingPriceGraduated func (t *BillingPrice) MergeBillingPriceGraduated(v BillingPriceGraduated) error { v.Type = "graduated" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingPriceVolume returns the union data inside the BillingPrice as a BillingPriceVolume func (t BillingPrice) AsBillingPriceVolume() (BillingPriceVolume, error) { var body BillingPriceVolume err := json.Unmarshal(t.union, &body) return body, err } // FromBillingPriceVolume overwrites any union data inside the BillingPrice as the provided BillingPriceVolume func (t *BillingPrice) FromBillingPriceVolume(v BillingPriceVolume) error { v.Type = "volume" b, err := json.Marshal(v) t.union = b return err } // MergeBillingPriceVolume performs a merge with any union data inside the BillingPrice, using the provided BillingPriceVolume func (t *BillingPrice) MergeBillingPriceVolume(v BillingPriceVolume) error { v.Type = "volume" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingPrice) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingPrice) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "flat": return t.AsBillingPriceFlat() case "free": return t.AsBillingPriceFree() case "graduated": return t.AsBillingPriceGraduated() case "unit": return t.AsBillingPriceUnit() case "volume": return t.AsBillingPriceVolume() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingPrice) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingPrice) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingRateCardMeteredEntitlement returns the union data inside the BillingRateCardEntitlement as a BillingRateCardMeteredEntitlement func (t BillingRateCardEntitlement) AsBillingRateCardMeteredEntitlement() (BillingRateCardMeteredEntitlement, error) { var body BillingRateCardMeteredEntitlement err := json.Unmarshal(t.union, &body) return body, err } // FromBillingRateCardMeteredEntitlement overwrites any union data inside the BillingRateCardEntitlement as the provided BillingRateCardMeteredEntitlement func (t *BillingRateCardEntitlement) FromBillingRateCardMeteredEntitlement(v BillingRateCardMeteredEntitlement) error { v.Type = "metered" b, err := json.Marshal(v) t.union = b return err } // MergeBillingRateCardMeteredEntitlement performs a merge with any union data inside the BillingRateCardEntitlement, using the provided BillingRateCardMeteredEntitlement func (t *BillingRateCardEntitlement) MergeBillingRateCardMeteredEntitlement(v BillingRateCardMeteredEntitlement) error { v.Type = "metered" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingRateCardStaticEntitlement returns the union data inside the BillingRateCardEntitlement as a BillingRateCardStaticEntitlement func (t BillingRateCardEntitlement) AsBillingRateCardStaticEntitlement() (BillingRateCardStaticEntitlement, error) { var body BillingRateCardStaticEntitlement err := json.Unmarshal(t.union, &body) return body, err } // FromBillingRateCardStaticEntitlement overwrites any union data inside the BillingRateCardEntitlement as the provided BillingRateCardStaticEntitlement func (t *BillingRateCardEntitlement) FromBillingRateCardStaticEntitlement(v BillingRateCardStaticEntitlement) error { v.Type = "static" b, err := json.Marshal(v) t.union = b return err } // MergeBillingRateCardStaticEntitlement performs a merge with any union data inside the BillingRateCardEntitlement, using the provided BillingRateCardStaticEntitlement func (t *BillingRateCardEntitlement) MergeBillingRateCardStaticEntitlement(v BillingRateCardStaticEntitlement) error { v.Type = "static" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingRateCardBooleanEntitlement returns the union data inside the BillingRateCardEntitlement as a BillingRateCardBooleanEntitlement func (t BillingRateCardEntitlement) AsBillingRateCardBooleanEntitlement() (BillingRateCardBooleanEntitlement, error) { var body BillingRateCardBooleanEntitlement err := json.Unmarshal(t.union, &body) return body, err } // FromBillingRateCardBooleanEntitlement overwrites any union data inside the BillingRateCardEntitlement as the provided BillingRateCardBooleanEntitlement func (t *BillingRateCardEntitlement) FromBillingRateCardBooleanEntitlement(v BillingRateCardBooleanEntitlement) error { v.Type = "boolean" b, err := json.Marshal(v) t.union = b return err } // MergeBillingRateCardBooleanEntitlement performs a merge with any union data inside the BillingRateCardEntitlement, using the provided BillingRateCardBooleanEntitlement func (t *BillingRateCardEntitlement) MergeBillingRateCardBooleanEntitlement(v BillingRateCardBooleanEntitlement) error { v.Type = "boolean" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingRateCardEntitlement) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingRateCardEntitlement) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "boolean": return t.AsBillingRateCardBooleanEntitlement() case "metered": return t.AsBillingRateCardMeteredEntitlement() case "static": return t.AsBillingRateCardStaticEntitlement() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingRateCardEntitlement) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingRateCardEntitlement) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingSubscriptionEditTimingEnum returns the union data inside the BillingSubscriptionEditTiming as a BillingSubscriptionEditTimingEnum func (t BillingSubscriptionEditTiming) AsBillingSubscriptionEditTimingEnum() (BillingSubscriptionEditTimingEnum, error) { var body BillingSubscriptionEditTimingEnum err := json.Unmarshal(t.union, &body) return body, err } // FromBillingSubscriptionEditTimingEnum overwrites any union data inside the BillingSubscriptionEditTiming as the provided BillingSubscriptionEditTimingEnum func (t *BillingSubscriptionEditTiming) FromBillingSubscriptionEditTimingEnum(v BillingSubscriptionEditTimingEnum) error { b, err := json.Marshal(v) t.union = b return err } // MergeBillingSubscriptionEditTimingEnum performs a merge with any union data inside the BillingSubscriptionEditTiming, using the provided BillingSubscriptionEditTimingEnum func (t *BillingSubscriptionEditTiming) MergeBillingSubscriptionEditTimingEnum(v BillingSubscriptionEditTimingEnum) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsDateTime returns the union data inside the BillingSubscriptionEditTiming as a DateTime func (t BillingSubscriptionEditTiming) AsDateTime() (DateTime, error) { var body DateTime err := json.Unmarshal(t.union, &body) return body, err } // FromDateTime overwrites any union data inside the BillingSubscriptionEditTiming as the provided DateTime func (t *BillingSubscriptionEditTiming) FromDateTime(v DateTime) error { b, err := json.Marshal(v) t.union = b return err } // MergeDateTime performs a merge with any union data inside the BillingSubscriptionEditTiming, using the provided DateTime func (t *BillingSubscriptionEditTiming) MergeDateTime(v DateTime) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingSubscriptionEditTiming) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingSubscriptionEditTiming) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingWorkflowCollectionAlignmentSubscription returns the union data inside the BillingWorkflowCollectionAlignment as a BillingWorkflowCollectionAlignmentSubscription func (t BillingWorkflowCollectionAlignment) AsBillingWorkflowCollectionAlignmentSubscription() (BillingWorkflowCollectionAlignmentSubscription, error) { var body BillingWorkflowCollectionAlignmentSubscription err := json.Unmarshal(t.union, &body) return body, err } // FromBillingWorkflowCollectionAlignmentSubscription overwrites any union data inside the BillingWorkflowCollectionAlignment as the provided BillingWorkflowCollectionAlignmentSubscription func (t *BillingWorkflowCollectionAlignment) FromBillingWorkflowCollectionAlignmentSubscription(v BillingWorkflowCollectionAlignmentSubscription) error { v.Type = "subscription" b, err := json.Marshal(v) t.union = b return err } // MergeBillingWorkflowCollectionAlignmentSubscription performs a merge with any union data inside the BillingWorkflowCollectionAlignment, using the provided BillingWorkflowCollectionAlignmentSubscription func (t *BillingWorkflowCollectionAlignment) MergeBillingWorkflowCollectionAlignmentSubscription(v BillingWorkflowCollectionAlignmentSubscription) error { v.Type = "subscription" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingWorkflowCollectionAlignmentAnchored returns the union data inside the BillingWorkflowCollectionAlignment as a BillingWorkflowCollectionAlignmentAnchored func (t BillingWorkflowCollectionAlignment) AsBillingWorkflowCollectionAlignmentAnchored() (BillingWorkflowCollectionAlignmentAnchored, error) { var body BillingWorkflowCollectionAlignmentAnchored err := json.Unmarshal(t.union, &body) return body, err } // FromBillingWorkflowCollectionAlignmentAnchored overwrites any union data inside the BillingWorkflowCollectionAlignment as the provided BillingWorkflowCollectionAlignmentAnchored func (t *BillingWorkflowCollectionAlignment) FromBillingWorkflowCollectionAlignmentAnchored(v BillingWorkflowCollectionAlignmentAnchored) error { v.Type = "anchored" b, err := json.Marshal(v) t.union = b return err } // MergeBillingWorkflowCollectionAlignmentAnchored performs a merge with any union data inside the BillingWorkflowCollectionAlignment, using the provided BillingWorkflowCollectionAlignmentAnchored func (t *BillingWorkflowCollectionAlignment) MergeBillingWorkflowCollectionAlignmentAnchored(v BillingWorkflowCollectionAlignmentAnchored) error { v.Type = "anchored" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingWorkflowCollectionAlignment) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingWorkflowCollectionAlignment) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "anchored": return t.AsBillingWorkflowCollectionAlignmentAnchored() case "subscription": return t.AsBillingWorkflowCollectionAlignmentSubscription() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingWorkflowCollectionAlignment) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingWorkflowCollectionAlignment) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsBillingWorkflowPaymentChargeAutomaticallySettings returns the union data inside the BillingWorkflowPaymentSettings as a BillingWorkflowPaymentChargeAutomaticallySettings func (t BillingWorkflowPaymentSettings) AsBillingWorkflowPaymentChargeAutomaticallySettings() (BillingWorkflowPaymentChargeAutomaticallySettings, error) { var body BillingWorkflowPaymentChargeAutomaticallySettings err := json.Unmarshal(t.union, &body) return body, err } // FromBillingWorkflowPaymentChargeAutomaticallySettings overwrites any union data inside the BillingWorkflowPaymentSettings as the provided BillingWorkflowPaymentChargeAutomaticallySettings func (t *BillingWorkflowPaymentSettings) FromBillingWorkflowPaymentChargeAutomaticallySettings(v BillingWorkflowPaymentChargeAutomaticallySettings) error { v.CollectionMethod = "charge_automatically" b, err := json.Marshal(v) t.union = b return err } // MergeBillingWorkflowPaymentChargeAutomaticallySettings performs a merge with any union data inside the BillingWorkflowPaymentSettings, using the provided BillingWorkflowPaymentChargeAutomaticallySettings func (t *BillingWorkflowPaymentSettings) MergeBillingWorkflowPaymentChargeAutomaticallySettings(v BillingWorkflowPaymentChargeAutomaticallySettings) error { v.CollectionMethod = "charge_automatically" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsBillingWorkflowPaymentSendInvoiceSettings returns the union data inside the BillingWorkflowPaymentSettings as a BillingWorkflowPaymentSendInvoiceSettings func (t BillingWorkflowPaymentSettings) AsBillingWorkflowPaymentSendInvoiceSettings() (BillingWorkflowPaymentSendInvoiceSettings, error) { var body BillingWorkflowPaymentSendInvoiceSettings err := json.Unmarshal(t.union, &body) return body, err } // FromBillingWorkflowPaymentSendInvoiceSettings overwrites any union data inside the BillingWorkflowPaymentSettings as the provided BillingWorkflowPaymentSendInvoiceSettings func (t *BillingWorkflowPaymentSettings) FromBillingWorkflowPaymentSendInvoiceSettings(v BillingWorkflowPaymentSendInvoiceSettings) error { v.CollectionMethod = "send_invoice" b, err := json.Marshal(v) t.union = b return err } // MergeBillingWorkflowPaymentSendInvoiceSettings performs a merge with any union data inside the BillingWorkflowPaymentSettings, using the provided BillingWorkflowPaymentSendInvoiceSettings func (t *BillingWorkflowPaymentSettings) MergeBillingWorkflowPaymentSendInvoiceSettings(v BillingWorkflowPaymentSendInvoiceSettings) error { v.CollectionMethod = "send_invoice" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t BillingWorkflowPaymentSettings) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"collection_method"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t BillingWorkflowPaymentSettings) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "charge_automatically": return t.AsBillingWorkflowPaymentChargeAutomaticallySettings() case "send_invoice": return t.AsBillingWorkflowPaymentSendInvoiceSettings() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t BillingWorkflowPaymentSettings) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *BillingWorkflowPaymentSettings) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsCreateChargeFlatFeeRequest returns the union data inside the CreateChargeRequest as a CreateChargeFlatFeeRequest func (t CreateChargeRequest) AsCreateChargeFlatFeeRequest() (CreateChargeFlatFeeRequest, error) { var body CreateChargeFlatFeeRequest err := json.Unmarshal(t.union, &body) return body, err } // FromCreateChargeFlatFeeRequest overwrites any union data inside the CreateChargeRequest as the provided CreateChargeFlatFeeRequest func (t *CreateChargeRequest) FromCreateChargeFlatFeeRequest(v CreateChargeFlatFeeRequest) error { v.Type = "flat_fee" b, err := json.Marshal(v) t.union = b return err } // MergeCreateChargeFlatFeeRequest performs a merge with any union data inside the CreateChargeRequest, using the provided CreateChargeFlatFeeRequest func (t *CreateChargeRequest) MergeCreateChargeFlatFeeRequest(v CreateChargeFlatFeeRequest) error { v.Type = "flat_fee" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsCreateChargeUsageBasedRequest returns the union data inside the CreateChargeRequest as a CreateChargeUsageBasedRequest func (t CreateChargeRequest) AsCreateChargeUsageBasedRequest() (CreateChargeUsageBasedRequest, error) { var body CreateChargeUsageBasedRequest err := json.Unmarshal(t.union, &body) return body, err } // FromCreateChargeUsageBasedRequest overwrites any union data inside the CreateChargeRequest as the provided CreateChargeUsageBasedRequest func (t *CreateChargeRequest) FromCreateChargeUsageBasedRequest(v CreateChargeUsageBasedRequest) error { v.Type = "usage_based" b, err := json.Marshal(v) t.union = b return err } // MergeCreateChargeUsageBasedRequest performs a merge with any union data inside the CreateChargeRequest, using the provided CreateChargeUsageBasedRequest func (t *CreateChargeRequest) MergeCreateChargeUsageBasedRequest(v CreateChargeUsageBasedRequest) error { v.Type = "usage_based" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t CreateChargeRequest) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t CreateChargeRequest) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "flat_fee": return t.AsCreateChargeFlatFeeRequest() case "usage_based": return t.AsCreateChargeUsageBasedRequest() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t CreateChargeRequest) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *CreateChargeRequest) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsInvalidParameterStandard returns the union data inside the InvalidParameters_Item as a InvalidParameterStandard func (t InvalidParameters_Item) AsInvalidParameterStandard() (InvalidParameterStandard, error) { var body InvalidParameterStandard err := json.Unmarshal(t.union, &body) return body, err } // FromInvalidParameterStandard overwrites any union data inside the InvalidParameters_Item as the provided InvalidParameterStandard func (t *InvalidParameters_Item) FromInvalidParameterStandard(v InvalidParameterStandard) error { b, err := json.Marshal(v) t.union = b return err } // MergeInvalidParameterStandard performs a merge with any union data inside the InvalidParameters_Item, using the provided InvalidParameterStandard func (t *InvalidParameters_Item) MergeInvalidParameterStandard(v InvalidParameterStandard) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsInvalidParameterMinimumLength returns the union data inside the InvalidParameters_Item as a InvalidParameterMinimumLength func (t InvalidParameters_Item) AsInvalidParameterMinimumLength() (InvalidParameterMinimumLength, error) { var body InvalidParameterMinimumLength err := json.Unmarshal(t.union, &body) return body, err } // FromInvalidParameterMinimumLength overwrites any union data inside the InvalidParameters_Item as the provided InvalidParameterMinimumLength func (t *InvalidParameters_Item) FromInvalidParameterMinimumLength(v InvalidParameterMinimumLength) error { b, err := json.Marshal(v) t.union = b return err } // MergeInvalidParameterMinimumLength performs a merge with any union data inside the InvalidParameters_Item, using the provided InvalidParameterMinimumLength func (t *InvalidParameters_Item) MergeInvalidParameterMinimumLength(v InvalidParameterMinimumLength) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsInvalidParameterMaximumLength returns the union data inside the InvalidParameters_Item as a InvalidParameterMaximumLength func (t InvalidParameters_Item) AsInvalidParameterMaximumLength() (InvalidParameterMaximumLength, error) { var body InvalidParameterMaximumLength err := json.Unmarshal(t.union, &body) return body, err } // FromInvalidParameterMaximumLength overwrites any union data inside the InvalidParameters_Item as the provided InvalidParameterMaximumLength func (t *InvalidParameters_Item) FromInvalidParameterMaximumLength(v InvalidParameterMaximumLength) error { b, err := json.Marshal(v) t.union = b return err } // MergeInvalidParameterMaximumLength performs a merge with any union data inside the InvalidParameters_Item, using the provided InvalidParameterMaximumLength func (t *InvalidParameters_Item) MergeInvalidParameterMaximumLength(v InvalidParameterMaximumLength) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsInvalidParameterChoiceItem returns the union data inside the InvalidParameters_Item as a InvalidParameterChoiceItem func (t InvalidParameters_Item) AsInvalidParameterChoiceItem() (InvalidParameterChoiceItem, error) { var body InvalidParameterChoiceItem err := json.Unmarshal(t.union, &body) return body, err } // FromInvalidParameterChoiceItem overwrites any union data inside the InvalidParameters_Item as the provided InvalidParameterChoiceItem func (t *InvalidParameters_Item) FromInvalidParameterChoiceItem(v InvalidParameterChoiceItem) error { b, err := json.Marshal(v) t.union = b return err } // MergeInvalidParameterChoiceItem performs a merge with any union data inside the InvalidParameters_Item, using the provided InvalidParameterChoiceItem func (t *InvalidParameters_Item) MergeInvalidParameterChoiceItem(v InvalidParameterChoiceItem) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsInvalidParameterDependentItem returns the union data inside the InvalidParameters_Item as a InvalidParameterDependentItem func (t InvalidParameters_Item) AsInvalidParameterDependentItem() (InvalidParameterDependentItem, error) { var body InvalidParameterDependentItem err := json.Unmarshal(t.union, &body) return body, err } // FromInvalidParameterDependentItem overwrites any union data inside the InvalidParameters_Item as the provided InvalidParameterDependentItem func (t *InvalidParameters_Item) FromInvalidParameterDependentItem(v InvalidParameterDependentItem) error { b, err := json.Marshal(v) t.union = b return err } // MergeInvalidParameterDependentItem performs a merge with any union data inside the InvalidParameters_Item, using the provided InvalidParameterDependentItem func (t *InvalidParameters_Item) MergeInvalidParameterDependentItem(v InvalidParameterDependentItem) error { b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t InvalidParameters_Item) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *InvalidParameters_Item) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsUpdateBillingWorkflowPaymentChargeAutomaticallySettings returns the union data inside the UpdateBillingWorkflowPaymentSettings as a UpdateBillingWorkflowPaymentChargeAutomaticallySettings func (t UpdateBillingWorkflowPaymentSettings) AsUpdateBillingWorkflowPaymentChargeAutomaticallySettings() (UpdateBillingWorkflowPaymentChargeAutomaticallySettings, error) { var body UpdateBillingWorkflowPaymentChargeAutomaticallySettings err := json.Unmarshal(t.union, &body) return body, err } // FromUpdateBillingWorkflowPaymentChargeAutomaticallySettings overwrites any union data inside the UpdateBillingWorkflowPaymentSettings as the provided UpdateBillingWorkflowPaymentChargeAutomaticallySettings func (t *UpdateBillingWorkflowPaymentSettings) FromUpdateBillingWorkflowPaymentChargeAutomaticallySettings(v UpdateBillingWorkflowPaymentChargeAutomaticallySettings) error { v.CollectionMethod = "charge_automatically" b, err := json.Marshal(v) t.union = b return err } // MergeUpdateBillingWorkflowPaymentChargeAutomaticallySettings performs a merge with any union data inside the UpdateBillingWorkflowPaymentSettings, using the provided UpdateBillingWorkflowPaymentChargeAutomaticallySettings func (t *UpdateBillingWorkflowPaymentSettings) MergeUpdateBillingWorkflowPaymentChargeAutomaticallySettings(v UpdateBillingWorkflowPaymentChargeAutomaticallySettings) error { v.CollectionMethod = "charge_automatically" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsUpdateBillingWorkflowPaymentSendInvoiceSettings returns the union data inside the UpdateBillingWorkflowPaymentSettings as a UpdateBillingWorkflowPaymentSendInvoiceSettings func (t UpdateBillingWorkflowPaymentSettings) AsUpdateBillingWorkflowPaymentSendInvoiceSettings() (UpdateBillingWorkflowPaymentSendInvoiceSettings, error) { var body UpdateBillingWorkflowPaymentSendInvoiceSettings err := json.Unmarshal(t.union, &body) return body, err } // FromUpdateBillingWorkflowPaymentSendInvoiceSettings overwrites any union data inside the UpdateBillingWorkflowPaymentSettings as the provided UpdateBillingWorkflowPaymentSendInvoiceSettings func (t *UpdateBillingWorkflowPaymentSettings) FromUpdateBillingWorkflowPaymentSendInvoiceSettings(v UpdateBillingWorkflowPaymentSendInvoiceSettings) error { v.CollectionMethod = "send_invoice" b, err := json.Marshal(v) t.union = b return err } // MergeUpdateBillingWorkflowPaymentSendInvoiceSettings performs a merge with any union data inside the UpdateBillingWorkflowPaymentSettings, using the provided UpdateBillingWorkflowPaymentSendInvoiceSettings func (t *UpdateBillingWorkflowPaymentSettings) MergeUpdateBillingWorkflowPaymentSendInvoiceSettings(v UpdateBillingWorkflowPaymentSendInvoiceSettings) error { v.CollectionMethod = "send_invoice" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t UpdateBillingWorkflowPaymentSettings) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"collection_method"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t UpdateBillingWorkflowPaymentSettings) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "charge_automatically": return t.AsUpdateBillingWorkflowPaymentChargeAutomaticallySettings() case "send_invoice": return t.AsUpdateBillingWorkflowPaymentSendInvoiceSettings() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t UpdateBillingWorkflowPaymentSettings) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *UpdateBillingWorkflowPaymentSettings) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsUpdateInvoiceStandardLine returns the union data inside the UpdateInvoiceLine as a UpdateInvoiceStandardLine func (t UpdateInvoiceLine) AsUpdateInvoiceStandardLine() (UpdateInvoiceStandardLine, error) { var body UpdateInvoiceStandardLine err := json.Unmarshal(t.union, &body) return body, err } // FromUpdateInvoiceStandardLine overwrites any union data inside the UpdateInvoiceLine as the provided UpdateInvoiceStandardLine func (t *UpdateInvoiceLine) FromUpdateInvoiceStandardLine(v UpdateInvoiceStandardLine) error { v.Type = "standard_line" b, err := json.Marshal(v) t.union = b return err } // MergeUpdateInvoiceStandardLine performs a merge with any union data inside the UpdateInvoiceLine, using the provided UpdateInvoiceStandardLine func (t *UpdateInvoiceLine) MergeUpdateInvoiceStandardLine(v UpdateInvoiceStandardLine) error { v.Type = "standard_line" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t UpdateInvoiceLine) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t UpdateInvoiceLine) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "standard_line": return t.AsUpdateInvoiceStandardLine() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t UpdateInvoiceLine) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *UpdateInvoiceLine) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsUpdateInvoiceStandardRequest returns the union data inside the UpdateInvoiceRequest as a UpdateInvoiceStandardRequest func (t UpdateInvoiceRequest) AsUpdateInvoiceStandardRequest() (UpdateInvoiceStandardRequest, error) { var body UpdateInvoiceStandardRequest err := json.Unmarshal(t.union, &body) return body, err } // FromUpdateInvoiceStandardRequest overwrites any union data inside the UpdateInvoiceRequest as the provided UpdateInvoiceStandardRequest func (t *UpdateInvoiceRequest) FromUpdateInvoiceStandardRequest(v UpdateInvoiceStandardRequest) error { v.Type = "standard" b, err := json.Marshal(v) t.union = b return err } // MergeUpdateInvoiceStandardRequest performs a merge with any union data inside the UpdateInvoiceRequest, using the provided UpdateInvoiceStandardRequest func (t *UpdateInvoiceRequest) MergeUpdateInvoiceStandardRequest(v UpdateInvoiceStandardRequest) error { v.Type = "standard" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t UpdateInvoiceRequest) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t UpdateInvoiceRequest) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "standard": return t.AsUpdateInvoiceStandardRequest() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t UpdateInvoiceRequest) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *UpdateInvoiceRequest) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // AsUpdatePriceFree returns the union data inside the UpdatePrice as a UpdatePriceFree func (t UpdatePrice) AsUpdatePriceFree() (UpdatePriceFree, error) { var body UpdatePriceFree err := json.Unmarshal(t.union, &body) return body, err } // FromUpdatePriceFree overwrites any union data inside the UpdatePrice as the provided UpdatePriceFree func (t *UpdatePrice) FromUpdatePriceFree(v UpdatePriceFree) error { v.Type = "free" b, err := json.Marshal(v) t.union = b return err } // MergeUpdatePriceFree performs a merge with any union data inside the UpdatePrice, using the provided UpdatePriceFree func (t *UpdatePrice) MergeUpdatePriceFree(v UpdatePriceFree) error { v.Type = "free" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsUpdatePriceFlat returns the union data inside the UpdatePrice as a UpdatePriceFlat func (t UpdatePrice) AsUpdatePriceFlat() (UpdatePriceFlat, error) { var body UpdatePriceFlat err := json.Unmarshal(t.union, &body) return body, err } // FromUpdatePriceFlat overwrites any union data inside the UpdatePrice as the provided UpdatePriceFlat func (t *UpdatePrice) FromUpdatePriceFlat(v UpdatePriceFlat) error { v.Type = "flat" b, err := json.Marshal(v) t.union = b return err } // MergeUpdatePriceFlat performs a merge with any union data inside the UpdatePrice, using the provided UpdatePriceFlat func (t *UpdatePrice) MergeUpdatePriceFlat(v UpdatePriceFlat) error { v.Type = "flat" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsUpdatePriceUnit returns the union data inside the UpdatePrice as a UpdatePriceUnit func (t UpdatePrice) AsUpdatePriceUnit() (UpdatePriceUnit, error) { var body UpdatePriceUnit err := json.Unmarshal(t.union, &body) return body, err } // FromUpdatePriceUnit overwrites any union data inside the UpdatePrice as the provided UpdatePriceUnit func (t *UpdatePrice) FromUpdatePriceUnit(v UpdatePriceUnit) error { v.Type = "unit" b, err := json.Marshal(v) t.union = b return err } // MergeUpdatePriceUnit performs a merge with any union data inside the UpdatePrice, using the provided UpdatePriceUnit func (t *UpdatePrice) MergeUpdatePriceUnit(v UpdatePriceUnit) error { v.Type = "unit" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsUpdatePriceGraduated returns the union data inside the UpdatePrice as a UpdatePriceGraduated func (t UpdatePrice) AsUpdatePriceGraduated() (UpdatePriceGraduated, error) { var body UpdatePriceGraduated err := json.Unmarshal(t.union, &body) return body, err } // FromUpdatePriceGraduated overwrites any union data inside the UpdatePrice as the provided UpdatePriceGraduated func (t *UpdatePrice) FromUpdatePriceGraduated(v UpdatePriceGraduated) error { v.Type = "graduated" b, err := json.Marshal(v) t.union = b return err } // MergeUpdatePriceGraduated performs a merge with any union data inside the UpdatePrice, using the provided UpdatePriceGraduated func (t *UpdatePrice) MergeUpdatePriceGraduated(v UpdatePriceGraduated) error { v.Type = "graduated" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } // AsUpdatePriceVolume returns the union data inside the UpdatePrice as a UpdatePriceVolume func (t UpdatePrice) AsUpdatePriceVolume() (UpdatePriceVolume, error) { var body UpdatePriceVolume err := json.Unmarshal(t.union, &body) return body, err } // FromUpdatePriceVolume overwrites any union data inside the UpdatePrice as the provided UpdatePriceVolume func (t *UpdatePrice) FromUpdatePriceVolume(v UpdatePriceVolume) error { v.Type = "volume" b, err := json.Marshal(v) t.union = b return err } // MergeUpdatePriceVolume performs a merge with any union data inside the UpdatePrice, using the provided UpdatePriceVolume func (t *UpdatePrice) MergeUpdatePriceVolume(v UpdatePriceVolume) error { v.Type = "volume" b, err := json.Marshal(v) if err != nil { return err } merged, err := runtime.JSONMerge(t.union, b) t.union = merged return err } func (t UpdatePrice) Discriminator() (string, error) { var discriminator struct { Discriminator string `json:"type"` } err := json.Unmarshal(t.union, &discriminator) return discriminator.Discriminator, err } func (t UpdatePrice) ValueByDiscriminator() (interface{}, error) { discriminator, err := t.Discriminator() if err != nil { return nil, err } switch discriminator { case "flat": return t.AsUpdatePriceFlat() case "free": return t.AsUpdatePriceFree() case "graduated": return t.AsUpdatePriceGraduated() case "unit": return t.AsUpdatePriceUnit() case "volume": return t.AsUpdatePriceVolume() default: return nil, errors.New("unknown discriminator value: " + discriminator) } } func (t UpdatePrice) MarshalJSON() ([]byte, error) { b, err := t.union.MarshalJSON() return b, err } func (t *UpdatePrice) UnmarshalJSON(b []byte) error { err := t.union.UnmarshalJSON(b) return err } // ServerInterface represents all server handlers. type ServerInterface interface { // List add-ons // (GET /openmeter/addons) ListAddons(w http.ResponseWriter, r *http.Request, params ListAddonsParams) // Create add-on // (POST /openmeter/addons) CreateAddon(w http.ResponseWriter, r *http.Request) // Soft delete add-on // (DELETE /openmeter/addons/{addonId}) DeleteAddon(w http.ResponseWriter, r *http.Request, addonId ULID) // Get add-on // (GET /openmeter/addons/{addonId}) GetAddon(w http.ResponseWriter, r *http.Request, addonId ULID) // Update add-on // (PUT /openmeter/addons/{addonId}) UpdateAddon(w http.ResponseWriter, r *http.Request, addonId ULID) // Archive add-on version // (POST /openmeter/addons/{addonId}/archive) ArchiveAddon(w http.ResponseWriter, r *http.Request, addonId ULID) // Publish add-on version // (POST /openmeter/addons/{addonId}/publish) PublishAddon(w http.ResponseWriter, r *http.Request, addonId ULID) // List app catalog // (GET /openmeter/app-catalog) ListAppCatalog(w http.ResponseWriter, r *http.Request, params ListAppCatalogParams) // Install app from the catalog // (POST /openmeter/app-catalog/install) InstallApp(w http.ResponseWriter, r *http.Request) // Get app catalog item by type // (GET /openmeter/app-catalog/{appType}) GetAppCatalogItem(w http.ResponseWriter, r *http.Request, appType BillingAppType) // List apps // (GET /openmeter/apps) ListApps(w http.ResponseWriter, r *http.Request, params ListAppsParams) // Get app // (GET /openmeter/apps/{appId}) GetApp(w http.ResponseWriter, r *http.Request, appId ULID) // List billing invoices // (GET /openmeter/billing/invoices) ListInvoices(w http.ResponseWriter, r *http.Request, params ListInvoicesParams) // Delete a billing invoice // (DELETE /openmeter/billing/invoices/{invoiceId}) DeleteInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // Get a billing invoice // (GET /openmeter/billing/invoices/{invoiceId}) GetInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // Update a billing invoice // (PUT /openmeter/billing/invoices/{invoiceId}) UpdateInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // Advance billing invoice's next status // (POST /openmeter/billing/invoices/{invoiceId}/advance) AdvanceInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // Send the invoice to the customer // (POST /openmeter/billing/invoices/{invoiceId}/approve) ApproveInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // Retry advancing the invoice after a failed attempt // (POST /openmeter/billing/invoices/{invoiceId}/retry) RetryInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // Snapshot quantities for usage based line items // (POST /openmeter/billing/invoices/{invoiceId}/snapshot-quantities) SnapshotQuantitiesInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) // List currencies // (GET /openmeter/currencies) ListCurrencies(w http.ResponseWriter, r *http.Request, params ListCurrenciesParams) // Create custom currency // (POST /openmeter/currencies/custom) CreateCustomCurrency(w http.ResponseWriter, r *http.Request) // List cost bases // (GET /openmeter/currencies/custom/{currencyId}/cost-bases) ListCostBases(w http.ResponseWriter, r *http.Request, currencyId ULID, params ListCostBasesParams) // Create cost basis // (POST /openmeter/currencies/custom/{currencyId}/cost-bases) CreateCostBasis(w http.ResponseWriter, r *http.Request, currencyId ULID) // List customers // (GET /openmeter/customers) ListCustomers(w http.ResponseWriter, r *http.Request, params ListCustomersParams) // Create customer // (POST /openmeter/customers) CreateCustomer(w http.ResponseWriter, r *http.Request) // Delete customer // (DELETE /openmeter/customers/{customerId}) DeleteCustomer(w http.ResponseWriter, r *http.Request, customerId ULID) // Get customer // (GET /openmeter/customers/{customerId}) GetCustomer(w http.ResponseWriter, r *http.Request, customerId ULID) // Upsert customer // (PUT /openmeter/customers/{customerId}) UpsertCustomer(w http.ResponseWriter, r *http.Request, customerId ULID) // Get customer billing data // (GET /openmeter/customers/{customerId}/billing) GetCustomerBilling(w http.ResponseWriter, r *http.Request, customerId ULID) // Update customer billing data // (PUT /openmeter/customers/{customerId}/billing) UpdateCustomerBilling(w http.ResponseWriter, r *http.Request, customerId ULID) // Update customer billing app data // (PUT /openmeter/customers/{customerId}/billing/app-data) UpdateCustomerBillingAppData(w http.ResponseWriter, r *http.Request, customerId ULID) // Create Stripe Checkout Session // (POST /openmeter/customers/{customerId}/billing/stripe/checkout-sessions) CreateCustomerStripeCheckoutSession(w http.ResponseWriter, r *http.Request, customerId ULID) // Create Stripe customer portal session // (POST /openmeter/customers/{customerId}/billing/stripe/portal-sessions) CreateCustomerStripePortalSession(w http.ResponseWriter, r *http.Request, customerId ULID) // List customer charges // (GET /openmeter/customers/{customerId}/charges) ListCustomerCharges(w http.ResponseWriter, r *http.Request, customerId ULID, params ListCustomerChargesParams) // Create customer charge // (POST /openmeter/customers/{customerId}/charges) CreateCustomerCharges(w http.ResponseWriter, r *http.Request, customerId ULID) // Create a credit adjustment // (POST /openmeter/customers/{customerId}/credits/adjustments) CreateCreditAdjustment(w http.ResponseWriter, r *http.Request, customerId ULID) // Get a customer's credit balance // (GET /openmeter/customers/{customerId}/credits/balance) GetCustomerCreditBalance(w http.ResponseWriter, r *http.Request, customerId ULID, params GetCustomerCreditBalanceParams) // List credit grants // (GET /openmeter/customers/{customerId}/credits/grants) ListCreditGrants(w http.ResponseWriter, r *http.Request, customerId ULID, params ListCreditGrantsParams) // Create a new credit grant // (POST /openmeter/customers/{customerId}/credits/grants) CreateCreditGrant(w http.ResponseWriter, r *http.Request, customerId ULID) // Get a credit grant // (GET /openmeter/customers/{customerId}/credits/grants/{creditGrantId}) GetCreditGrant(w http.ResponseWriter, r *http.Request, customerId ULID, creditGrantId ULID) // Update credit grant external settlement status // (POST /openmeter/customers/{customerId}/credits/grants/{creditGrantId}/settlement/external) UpdateCreditGrantExternalSettlement(w http.ResponseWriter, r *http.Request, customerId ULID, creditGrantId ULID) // Void credit grant // (POST /openmeter/customers/{customerId}/credits/grants/{creditGrantId}/void) VoidCreditGrant(w http.ResponseWriter, r *http.Request, customerId ULID, creditGrantId ULID) // List credit transactions // (GET /openmeter/customers/{customerId}/credits/transactions) ListCreditTransactions(w http.ResponseWriter, r *http.Request, customerId ULID, params ListCreditTransactionsParams) // List customer entitlement access // (GET /openmeter/customers/{customerId}/entitlement-access) ListCustomerEntitlementAccess(w http.ResponseWriter, r *http.Request, customerId ULID) // Get organization default tax codes // (GET /openmeter/defaults/tax-codes) GetOrganizationDefaultTaxCodes(w http.ResponseWriter, r *http.Request) // Update organization default tax codes // (PUT /openmeter/defaults/tax-codes) UpdateOrganizationDefaultTaxCodes(w http.ResponseWriter, r *http.Request) // List metering events // (GET /openmeter/events) ListMeteringEvents(w http.ResponseWriter, r *http.Request, params ListMeteringEventsParams) // Ingest metering events // (POST /openmeter/events) IngestMeteringEvents(w http.ResponseWriter, r *http.Request) // List features // (GET /openmeter/features) ListFeatures(w http.ResponseWriter, r *http.Request, params ListFeaturesParams) // Create feature // (POST /openmeter/features) CreateFeature(w http.ResponseWriter, r *http.Request) // Delete feature // (DELETE /openmeter/features/{featureId}) DeleteFeature(w http.ResponseWriter, r *http.Request, featureId ULID) // Get feature // (GET /openmeter/features/{featureId}) GetFeature(w http.ResponseWriter, r *http.Request, featureId ULID) // Update feature // (PATCH /openmeter/features/{featureId}) UpdateFeature(w http.ResponseWriter, r *http.Request, featureId ULID) // Query feature cost // (POST /openmeter/features/{featureId}/cost/query) QueryFeatureCost(w http.ResponseWriter, r *http.Request, featureId ULID) // Query governance access // (POST /openmeter/governance/query) QueryGovernanceAccess(w http.ResponseWriter, r *http.Request, params QueryGovernanceAccessParams) // List LLM cost overrides // (GET /openmeter/llm-cost/overrides) ListLlmCostOverrides(w http.ResponseWriter, r *http.Request, params ListLlmCostOverridesParams) // Create LLM cost override // (POST /openmeter/llm-cost/overrides) CreateLlmCostOverride(w http.ResponseWriter, r *http.Request) // Delete LLM cost override // (DELETE /openmeter/llm-cost/overrides/{priceId}) DeleteLlmCostOverride(w http.ResponseWriter, r *http.Request, priceId ULID) // List LLM cost prices // (GET /openmeter/llm-cost/prices) ListLlmCostPrices(w http.ResponseWriter, r *http.Request, params ListLlmCostPricesParams) // Get LLM cost price // (GET /openmeter/llm-cost/prices/{priceId}) GetLlmCostPrice(w http.ResponseWriter, r *http.Request, priceId ULID) // List meters // (GET /openmeter/meters) ListMeters(w http.ResponseWriter, r *http.Request, params ListMetersParams) // Create meter // (POST /openmeter/meters) CreateMeter(w http.ResponseWriter, r *http.Request) // Delete meter // (DELETE /openmeter/meters/{meterId}) DeleteMeter(w http.ResponseWriter, r *http.Request, meterId ULID) // Get meter // (GET /openmeter/meters/{meterId}) GetMeter(w http.ResponseWriter, r *http.Request, meterId ULID) // Update meter // (PUT /openmeter/meters/{meterId}) UpdateMeter(w http.ResponseWriter, r *http.Request, meterId ULID) // Query meter // (POST /openmeter/meters/{meterId}/query) QueryMeter(w http.ResponseWriter, r *http.Request, meterId ULID) // List plans // (GET /openmeter/plans) ListPlans(w http.ResponseWriter, r *http.Request, params ListPlansParams) // Create plan // (POST /openmeter/plans) CreatePlan(w http.ResponseWriter, r *http.Request) // Delete plan // (DELETE /openmeter/plans/{planId}) DeletePlan(w http.ResponseWriter, r *http.Request, planId ULID) // Get plan // (GET /openmeter/plans/{planId}) GetPlan(w http.ResponseWriter, r *http.Request, planId ULID) // Update plan // (PUT /openmeter/plans/{planId}) UpdatePlan(w http.ResponseWriter, r *http.Request, planId ULID) // List add-ons for plan // (GET /openmeter/plans/{planId}/addons) ListPlanAddons(w http.ResponseWriter, r *http.Request, planId ULID, params ListPlanAddonsParams) // Add add-on to plan // (POST /openmeter/plans/{planId}/addons) CreatePlanAddon(w http.ResponseWriter, r *http.Request, planId ULID) // Remove add-on from plan // (DELETE /openmeter/plans/{planId}/addons/{planAddonId}) DeletePlanAddon(w http.ResponseWriter, r *http.Request, planId ULID, planAddonId ULID) // Get add-on association for plan // (GET /openmeter/plans/{planId}/addons/{planAddonId}) GetPlanAddon(w http.ResponseWriter, r *http.Request, planId ULID, planAddonId ULID) // Update add-on association for plan // (PUT /openmeter/plans/{planId}/addons/{planAddonId}) UpdatePlanAddon(w http.ResponseWriter, r *http.Request, planId ULID, planAddonId ULID) // Archive plan version // (POST /openmeter/plans/{planId}/archive) ArchivePlan(w http.ResponseWriter, r *http.Request, planId ULID) // Publish plan version // (POST /openmeter/plans/{planId}/publish) PublishPlan(w http.ResponseWriter, r *http.Request, planId ULID) // List billing profiles // (GET /openmeter/profiles) ListBillingProfiles(w http.ResponseWriter, r *http.Request, params ListBillingProfilesParams) // Create a new billing profile // (POST /openmeter/profiles) CreateBillingProfile(w http.ResponseWriter, r *http.Request) // Delete a billing profile // (DELETE /openmeter/profiles/{id}) DeleteBillingProfile(w http.ResponseWriter, r *http.Request, id ULID) // Get a billing profile // (GET /openmeter/profiles/{id}) GetBillingProfile(w http.ResponseWriter, r *http.Request, id ULID) // Update a billing profile // (PUT /openmeter/profiles/{id}) UpdateBillingProfile(w http.ResponseWriter, r *http.Request, id ULID) // List subscriptions // (GET /openmeter/subscriptions) ListSubscriptions(w http.ResponseWriter, r *http.Request, params ListSubscriptionsParams) // Create subscription // (POST /openmeter/subscriptions) CreateSubscription(w http.ResponseWriter, r *http.Request) // Get subscription // (GET /openmeter/subscriptions/{subscriptionId}) GetSubscription(w http.ResponseWriter, r *http.Request, subscriptionId ULID) // List subscription addons // (GET /openmeter/subscriptions/{subscriptionId}/addons) ListSubscriptionAddons(w http.ResponseWriter, r *http.Request, subscriptionId ULID, params ListSubscriptionAddonsParams) // Create a new subscription add-on // (POST /openmeter/subscriptions/{subscriptionId}/addons) CreateSubscriptionAddon(w http.ResponseWriter, r *http.Request, subscriptionId ULID) // Get add-on association for subscription // (GET /openmeter/subscriptions/{subscriptionId}/addons/{subscriptionAddonId}) GetSubscriptionAddon(w http.ResponseWriter, r *http.Request, subscriptionId ULID, subscriptionAddonId ULID) // Cancel subscription // (POST /openmeter/subscriptions/{subscriptionId}/cancel) CancelSubscription(w http.ResponseWriter, r *http.Request, subscriptionId ULID) // Change subscription // (POST /openmeter/subscriptions/{subscriptionId}/change) ChangeSubscription(w http.ResponseWriter, r *http.Request, subscriptionId ULID) // Unschedule subscription cancelation // (POST /openmeter/subscriptions/{subscriptionId}/unschedule-cancelation) UnscheduleCancelation(w http.ResponseWriter, r *http.Request, subscriptionId ULID) // List tax codes // (GET /openmeter/tax-codes) ListTaxCodes(w http.ResponseWriter, r *http.Request, params ListTaxCodesParams) // Create tax code // (POST /openmeter/tax-codes) CreateTaxCode(w http.ResponseWriter, r *http.Request) // Delete tax code // (DELETE /openmeter/tax-codes/{taxCodeId}) DeleteTaxCode(w http.ResponseWriter, r *http.Request, taxCodeId ULID) // Get tax code // (GET /openmeter/tax-codes/{taxCodeId}) GetTaxCode(w http.ResponseWriter, r *http.Request, taxCodeId ULID) // Upsert tax code // (PUT /openmeter/tax-codes/{taxCodeId}) UpsertTaxCode(w http.ResponseWriter, r *http.Request, taxCodeId ULID) } // Unimplemented server implementation that returns http.StatusNotImplemented for each endpoint. type Unimplemented struct{} // List add-ons // (GET /openmeter/addons) func (_ Unimplemented) ListAddons(w http.ResponseWriter, r *http.Request, params ListAddonsParams) { w.WriteHeader(http.StatusNotImplemented) } // Create add-on // (POST /openmeter/addons) func (_ Unimplemented) CreateAddon(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Soft delete add-on // (DELETE /openmeter/addons/{addonId}) func (_ Unimplemented) DeleteAddon(w http.ResponseWriter, r *http.Request, addonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get add-on // (GET /openmeter/addons/{addonId}) func (_ Unimplemented) GetAddon(w http.ResponseWriter, r *http.Request, addonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update add-on // (PUT /openmeter/addons/{addonId}) func (_ Unimplemented) UpdateAddon(w http.ResponseWriter, r *http.Request, addonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Archive add-on version // (POST /openmeter/addons/{addonId}/archive) func (_ Unimplemented) ArchiveAddon(w http.ResponseWriter, r *http.Request, addonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Publish add-on version // (POST /openmeter/addons/{addonId}/publish) func (_ Unimplemented) PublishAddon(w http.ResponseWriter, r *http.Request, addonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List app catalog // (GET /openmeter/app-catalog) func (_ Unimplemented) ListAppCatalog(w http.ResponseWriter, r *http.Request, params ListAppCatalogParams) { w.WriteHeader(http.StatusNotImplemented) } // Install app from the catalog // (POST /openmeter/app-catalog/install) func (_ Unimplemented) InstallApp(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Get app catalog item by type // (GET /openmeter/app-catalog/{appType}) func (_ Unimplemented) GetAppCatalogItem(w http.ResponseWriter, r *http.Request, appType BillingAppType) { w.WriteHeader(http.StatusNotImplemented) } // List apps // (GET /openmeter/apps) func (_ Unimplemented) ListApps(w http.ResponseWriter, r *http.Request, params ListAppsParams) { w.WriteHeader(http.StatusNotImplemented) } // Get app // (GET /openmeter/apps/{appId}) func (_ Unimplemented) GetApp(w http.ResponseWriter, r *http.Request, appId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List billing invoices // (GET /openmeter/billing/invoices) func (_ Unimplemented) ListInvoices(w http.ResponseWriter, r *http.Request, params ListInvoicesParams) { w.WriteHeader(http.StatusNotImplemented) } // Delete a billing invoice // (DELETE /openmeter/billing/invoices/{invoiceId}) func (_ Unimplemented) DeleteInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get a billing invoice // (GET /openmeter/billing/invoices/{invoiceId}) func (_ Unimplemented) GetInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update a billing invoice // (PUT /openmeter/billing/invoices/{invoiceId}) func (_ Unimplemented) UpdateInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Advance billing invoice's next status // (POST /openmeter/billing/invoices/{invoiceId}/advance) func (_ Unimplemented) AdvanceInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Send the invoice to the customer // (POST /openmeter/billing/invoices/{invoiceId}/approve) func (_ Unimplemented) ApproveInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Retry advancing the invoice after a failed attempt // (POST /openmeter/billing/invoices/{invoiceId}/retry) func (_ Unimplemented) RetryInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Snapshot quantities for usage based line items // (POST /openmeter/billing/invoices/{invoiceId}/snapshot-quantities) func (_ Unimplemented) SnapshotQuantitiesInvoice(w http.ResponseWriter, r *http.Request, invoiceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List currencies // (GET /openmeter/currencies) func (_ Unimplemented) ListCurrencies(w http.ResponseWriter, r *http.Request, params ListCurrenciesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create custom currency // (POST /openmeter/currencies/custom) func (_ Unimplemented) CreateCustomCurrency(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // List cost bases // (GET /openmeter/currencies/custom/{currencyId}/cost-bases) func (_ Unimplemented) ListCostBases(w http.ResponseWriter, r *http.Request, currencyId ULID, params ListCostBasesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create cost basis // (POST /openmeter/currencies/custom/{currencyId}/cost-bases) func (_ Unimplemented) CreateCostBasis(w http.ResponseWriter, r *http.Request, currencyId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List customers // (GET /openmeter/customers) func (_ Unimplemented) ListCustomers(w http.ResponseWriter, r *http.Request, params ListCustomersParams) { w.WriteHeader(http.StatusNotImplemented) } // Create customer // (POST /openmeter/customers) func (_ Unimplemented) CreateCustomer(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete customer // (DELETE /openmeter/customers/{customerId}) func (_ Unimplemented) DeleteCustomer(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get customer // (GET /openmeter/customers/{customerId}) func (_ Unimplemented) GetCustomer(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Upsert customer // (PUT /openmeter/customers/{customerId}) func (_ Unimplemented) UpsertCustomer(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get customer billing data // (GET /openmeter/customers/{customerId}/billing) func (_ Unimplemented) GetCustomerBilling(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update customer billing data // (PUT /openmeter/customers/{customerId}/billing) func (_ Unimplemented) UpdateCustomerBilling(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update customer billing app data // (PUT /openmeter/customers/{customerId}/billing/app-data) func (_ Unimplemented) UpdateCustomerBillingAppData(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Create Stripe Checkout Session // (POST /openmeter/customers/{customerId}/billing/stripe/checkout-sessions) func (_ Unimplemented) CreateCustomerStripeCheckoutSession(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Create Stripe customer portal session // (POST /openmeter/customers/{customerId}/billing/stripe/portal-sessions) func (_ Unimplemented) CreateCustomerStripePortalSession(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List customer charges // (GET /openmeter/customers/{customerId}/charges) func (_ Unimplemented) ListCustomerCharges(w http.ResponseWriter, r *http.Request, customerId ULID, params ListCustomerChargesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create customer charge // (POST /openmeter/customers/{customerId}/charges) func (_ Unimplemented) CreateCustomerCharges(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Create a credit adjustment // (POST /openmeter/customers/{customerId}/credits/adjustments) func (_ Unimplemented) CreateCreditAdjustment(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get a customer's credit balance // (GET /openmeter/customers/{customerId}/credits/balance) func (_ Unimplemented) GetCustomerCreditBalance(w http.ResponseWriter, r *http.Request, customerId ULID, params GetCustomerCreditBalanceParams) { w.WriteHeader(http.StatusNotImplemented) } // List credit grants // (GET /openmeter/customers/{customerId}/credits/grants) func (_ Unimplemented) ListCreditGrants(w http.ResponseWriter, r *http.Request, customerId ULID, params ListCreditGrantsParams) { w.WriteHeader(http.StatusNotImplemented) } // Create a new credit grant // (POST /openmeter/customers/{customerId}/credits/grants) func (_ Unimplemented) CreateCreditGrant(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get a credit grant // (GET /openmeter/customers/{customerId}/credits/grants/{creditGrantId}) func (_ Unimplemented) GetCreditGrant(w http.ResponseWriter, r *http.Request, customerId ULID, creditGrantId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update credit grant external settlement status // (POST /openmeter/customers/{customerId}/credits/grants/{creditGrantId}/settlement/external) func (_ Unimplemented) UpdateCreditGrantExternalSettlement(w http.ResponseWriter, r *http.Request, customerId ULID, creditGrantId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Void credit grant // (POST /openmeter/customers/{customerId}/credits/grants/{creditGrantId}/void) func (_ Unimplemented) VoidCreditGrant(w http.ResponseWriter, r *http.Request, customerId ULID, creditGrantId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List credit transactions // (GET /openmeter/customers/{customerId}/credits/transactions) func (_ Unimplemented) ListCreditTransactions(w http.ResponseWriter, r *http.Request, customerId ULID, params ListCreditTransactionsParams) { w.WriteHeader(http.StatusNotImplemented) } // List customer entitlement access // (GET /openmeter/customers/{customerId}/entitlement-access) func (_ Unimplemented) ListCustomerEntitlementAccess(w http.ResponseWriter, r *http.Request, customerId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get organization default tax codes // (GET /openmeter/defaults/tax-codes) func (_ Unimplemented) GetOrganizationDefaultTaxCodes(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Update organization default tax codes // (PUT /openmeter/defaults/tax-codes) func (_ Unimplemented) UpdateOrganizationDefaultTaxCodes(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // List metering events // (GET /openmeter/events) func (_ Unimplemented) ListMeteringEvents(w http.ResponseWriter, r *http.Request, params ListMeteringEventsParams) { w.WriteHeader(http.StatusNotImplemented) } // Ingest metering events // (POST /openmeter/events) func (_ Unimplemented) IngestMeteringEvents(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // List features // (GET /openmeter/features) func (_ Unimplemented) ListFeatures(w http.ResponseWriter, r *http.Request, params ListFeaturesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create feature // (POST /openmeter/features) func (_ Unimplemented) CreateFeature(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete feature // (DELETE /openmeter/features/{featureId}) func (_ Unimplemented) DeleteFeature(w http.ResponseWriter, r *http.Request, featureId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get feature // (GET /openmeter/features/{featureId}) func (_ Unimplemented) GetFeature(w http.ResponseWriter, r *http.Request, featureId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update feature // (PATCH /openmeter/features/{featureId}) func (_ Unimplemented) UpdateFeature(w http.ResponseWriter, r *http.Request, featureId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Query feature cost // (POST /openmeter/features/{featureId}/cost/query) func (_ Unimplemented) QueryFeatureCost(w http.ResponseWriter, r *http.Request, featureId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Query governance access // (POST /openmeter/governance/query) func (_ Unimplemented) QueryGovernanceAccess(w http.ResponseWriter, r *http.Request, params QueryGovernanceAccessParams) { w.WriteHeader(http.StatusNotImplemented) } // List LLM cost overrides // (GET /openmeter/llm-cost/overrides) func (_ Unimplemented) ListLlmCostOverrides(w http.ResponseWriter, r *http.Request, params ListLlmCostOverridesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create LLM cost override // (POST /openmeter/llm-cost/overrides) func (_ Unimplemented) CreateLlmCostOverride(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete LLM cost override // (DELETE /openmeter/llm-cost/overrides/{priceId}) func (_ Unimplemented) DeleteLlmCostOverride(w http.ResponseWriter, r *http.Request, priceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List LLM cost prices // (GET /openmeter/llm-cost/prices) func (_ Unimplemented) ListLlmCostPrices(w http.ResponseWriter, r *http.Request, params ListLlmCostPricesParams) { w.WriteHeader(http.StatusNotImplemented) } // Get LLM cost price // (GET /openmeter/llm-cost/prices/{priceId}) func (_ Unimplemented) GetLlmCostPrice(w http.ResponseWriter, r *http.Request, priceId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List meters // (GET /openmeter/meters) func (_ Unimplemented) ListMeters(w http.ResponseWriter, r *http.Request, params ListMetersParams) { w.WriteHeader(http.StatusNotImplemented) } // Create meter // (POST /openmeter/meters) func (_ Unimplemented) CreateMeter(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete meter // (DELETE /openmeter/meters/{meterId}) func (_ Unimplemented) DeleteMeter(w http.ResponseWriter, r *http.Request, meterId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get meter // (GET /openmeter/meters/{meterId}) func (_ Unimplemented) GetMeter(w http.ResponseWriter, r *http.Request, meterId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update meter // (PUT /openmeter/meters/{meterId}) func (_ Unimplemented) UpdateMeter(w http.ResponseWriter, r *http.Request, meterId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Query meter // (POST /openmeter/meters/{meterId}/query) func (_ Unimplemented) QueryMeter(w http.ResponseWriter, r *http.Request, meterId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List plans // (GET /openmeter/plans) func (_ Unimplemented) ListPlans(w http.ResponseWriter, r *http.Request, params ListPlansParams) { w.WriteHeader(http.StatusNotImplemented) } // Create plan // (POST /openmeter/plans) func (_ Unimplemented) CreatePlan(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete plan // (DELETE /openmeter/plans/{planId}) func (_ Unimplemented) DeletePlan(w http.ResponseWriter, r *http.Request, planId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get plan // (GET /openmeter/plans/{planId}) func (_ Unimplemented) GetPlan(w http.ResponseWriter, r *http.Request, planId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update plan // (PUT /openmeter/plans/{planId}) func (_ Unimplemented) UpdatePlan(w http.ResponseWriter, r *http.Request, planId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List add-ons for plan // (GET /openmeter/plans/{planId}/addons) func (_ Unimplemented) ListPlanAddons(w http.ResponseWriter, r *http.Request, planId ULID, params ListPlanAddonsParams) { w.WriteHeader(http.StatusNotImplemented) } // Add add-on to plan // (POST /openmeter/plans/{planId}/addons) func (_ Unimplemented) CreatePlanAddon(w http.ResponseWriter, r *http.Request, planId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Remove add-on from plan // (DELETE /openmeter/plans/{planId}/addons/{planAddonId}) func (_ Unimplemented) DeletePlanAddon(w http.ResponseWriter, r *http.Request, planId ULID, planAddonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get add-on association for plan // (GET /openmeter/plans/{planId}/addons/{planAddonId}) func (_ Unimplemented) GetPlanAddon(w http.ResponseWriter, r *http.Request, planId ULID, planAddonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update add-on association for plan // (PUT /openmeter/plans/{planId}/addons/{planAddonId}) func (_ Unimplemented) UpdatePlanAddon(w http.ResponseWriter, r *http.Request, planId ULID, planAddonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Archive plan version // (POST /openmeter/plans/{planId}/archive) func (_ Unimplemented) ArchivePlan(w http.ResponseWriter, r *http.Request, planId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Publish plan version // (POST /openmeter/plans/{planId}/publish) func (_ Unimplemented) PublishPlan(w http.ResponseWriter, r *http.Request, planId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List billing profiles // (GET /openmeter/profiles) func (_ Unimplemented) ListBillingProfiles(w http.ResponseWriter, r *http.Request, params ListBillingProfilesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create a new billing profile // (POST /openmeter/profiles) func (_ Unimplemented) CreateBillingProfile(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete a billing profile // (DELETE /openmeter/profiles/{id}) func (_ Unimplemented) DeleteBillingProfile(w http.ResponseWriter, r *http.Request, id ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get a billing profile // (GET /openmeter/profiles/{id}) func (_ Unimplemented) GetBillingProfile(w http.ResponseWriter, r *http.Request, id ULID) { w.WriteHeader(http.StatusNotImplemented) } // Update a billing profile // (PUT /openmeter/profiles/{id}) func (_ Unimplemented) UpdateBillingProfile(w http.ResponseWriter, r *http.Request, id ULID) { w.WriteHeader(http.StatusNotImplemented) } // List subscriptions // (GET /openmeter/subscriptions) func (_ Unimplemented) ListSubscriptions(w http.ResponseWriter, r *http.Request, params ListSubscriptionsParams) { w.WriteHeader(http.StatusNotImplemented) } // Create subscription // (POST /openmeter/subscriptions) func (_ Unimplemented) CreateSubscription(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Get subscription // (GET /openmeter/subscriptions/{subscriptionId}) func (_ Unimplemented) GetSubscription(w http.ResponseWriter, r *http.Request, subscriptionId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List subscription addons // (GET /openmeter/subscriptions/{subscriptionId}/addons) func (_ Unimplemented) ListSubscriptionAddons(w http.ResponseWriter, r *http.Request, subscriptionId ULID, params ListSubscriptionAddonsParams) { w.WriteHeader(http.StatusNotImplemented) } // Create a new subscription add-on // (POST /openmeter/subscriptions/{subscriptionId}/addons) func (_ Unimplemented) CreateSubscriptionAddon(w http.ResponseWriter, r *http.Request, subscriptionId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get add-on association for subscription // (GET /openmeter/subscriptions/{subscriptionId}/addons/{subscriptionAddonId}) func (_ Unimplemented) GetSubscriptionAddon(w http.ResponseWriter, r *http.Request, subscriptionId ULID, subscriptionAddonId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Cancel subscription // (POST /openmeter/subscriptions/{subscriptionId}/cancel) func (_ Unimplemented) CancelSubscription(w http.ResponseWriter, r *http.Request, subscriptionId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Change subscription // (POST /openmeter/subscriptions/{subscriptionId}/change) func (_ Unimplemented) ChangeSubscription(w http.ResponseWriter, r *http.Request, subscriptionId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Unschedule subscription cancelation // (POST /openmeter/subscriptions/{subscriptionId}/unschedule-cancelation) func (_ Unimplemented) UnscheduleCancelation(w http.ResponseWriter, r *http.Request, subscriptionId ULID) { w.WriteHeader(http.StatusNotImplemented) } // List tax codes // (GET /openmeter/tax-codes) func (_ Unimplemented) ListTaxCodes(w http.ResponseWriter, r *http.Request, params ListTaxCodesParams) { w.WriteHeader(http.StatusNotImplemented) } // Create tax code // (POST /openmeter/tax-codes) func (_ Unimplemented) CreateTaxCode(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Delete tax code // (DELETE /openmeter/tax-codes/{taxCodeId}) func (_ Unimplemented) DeleteTaxCode(w http.ResponseWriter, r *http.Request, taxCodeId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Get tax code // (GET /openmeter/tax-codes/{taxCodeId}) func (_ Unimplemented) GetTaxCode(w http.ResponseWriter, r *http.Request, taxCodeId ULID) { w.WriteHeader(http.StatusNotImplemented) } // Upsert tax code // (PUT /openmeter/tax-codes/{taxCodeId}) func (_ Unimplemented) UpsertTaxCode(w http.ResponseWriter, r *http.Request, taxCodeId ULID) { w.WriteHeader(http.StatusNotImplemented) } // ServerInterfaceWrapper converts contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface HandlerMiddlewares []MiddlewareFunc ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } type MiddlewareFunc func(http.Handler) http.Handler // ListAddons operation middleware func (siw *ServerInterfaceWrapper) ListAddons(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListAddonsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListAddons(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateAddon operation middleware func (siw *ServerInterfaceWrapper) CreateAddon(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateAddon(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteAddon operation middleware func (siw *ServerInterfaceWrapper) DeleteAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "addonId" ------------- var addonId ULID err = runtime.BindStyledParameterWithOptions("simple", "addonId", chi.URLParam(r, "addonId"), &addonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "addonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteAddon(w, r, addonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetAddon operation middleware func (siw *ServerInterfaceWrapper) GetAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "addonId" ------------- var addonId ULID err = runtime.BindStyledParameterWithOptions("simple", "addonId", chi.URLParam(r, "addonId"), &addonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "addonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetAddon(w, r, addonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateAddon operation middleware func (siw *ServerInterfaceWrapper) UpdateAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "addonId" ------------- var addonId ULID err = runtime.BindStyledParameterWithOptions("simple", "addonId", chi.URLParam(r, "addonId"), &addonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "addonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateAddon(w, r, addonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ArchiveAddon operation middleware func (siw *ServerInterfaceWrapper) ArchiveAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "addonId" ------------- var addonId ULID err = runtime.BindStyledParameterWithOptions("simple", "addonId", chi.URLParam(r, "addonId"), &addonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "addonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ArchiveAddon(w, r, addonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // PublishAddon operation middleware func (siw *ServerInterfaceWrapper) PublishAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "addonId" ------------- var addonId ULID err = runtime.BindStyledParameterWithOptions("simple", "addonId", chi.URLParam(r, "addonId"), &addonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "addonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PublishAddon(w, r, addonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListAppCatalog operation middleware func (siw *ServerInterfaceWrapper) ListAppCatalog(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListAppCatalogParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListAppCatalog(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // InstallApp operation middleware func (siw *ServerInterfaceWrapper) InstallApp(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.InstallApp(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetAppCatalogItem operation middleware func (siw *ServerInterfaceWrapper) GetAppCatalogItem(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "appType" ------------- var appType BillingAppType err = runtime.BindStyledParameterWithOptions("simple", "appType", chi.URLParam(r, "appType"), &appType, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "appType", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetAppCatalogItem(w, r, appType) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListApps operation middleware func (siw *ServerInterfaceWrapper) ListApps(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListAppsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListApps(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetApp operation middleware func (siw *ServerInterfaceWrapper) GetApp(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "appId" ------------- var appId ULID err = runtime.BindStyledParameterWithOptions("simple", "appId", chi.URLParam(r, "appId"), &appId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "appId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetApp(w, r, appId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListInvoices operation middleware func (siw *ServerInterfaceWrapper) ListInvoices(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListInvoicesParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListInvoices(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteInvoice operation middleware func (siw *ServerInterfaceWrapper) DeleteInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetInvoice operation middleware func (siw *ServerInterfaceWrapper) GetInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateInvoice operation middleware func (siw *ServerInterfaceWrapper) UpdateInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // AdvanceInvoice operation middleware func (siw *ServerInterfaceWrapper) AdvanceInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.AdvanceInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ApproveInvoice operation middleware func (siw *ServerInterfaceWrapper) ApproveInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ApproveInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // RetryInvoice operation middleware func (siw *ServerInterfaceWrapper) RetryInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RetryInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // SnapshotQuantitiesInvoice operation middleware func (siw *ServerInterfaceWrapper) SnapshotQuantitiesInvoice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "invoiceId" ------------- var invoiceId ULID err = runtime.BindStyledParameterWithOptions("simple", "invoiceId", chi.URLParam(r, "invoiceId"), &invoiceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "invoiceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SnapshotQuantitiesInvoice(w, r, invoiceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCurrencies operation middleware func (siw *ServerInterfaceWrapper) ListCurrencies(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListCurrenciesParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCurrencies(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCustomCurrency operation middleware func (siw *ServerInterfaceWrapper) CreateCustomCurrency(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCustomCurrency(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCostBases operation middleware func (siw *ServerInterfaceWrapper) ListCostBases(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "currencyId" ------------- var currencyId ULID err = runtime.BindStyledParameterWithOptions("simple", "currencyId", chi.URLParam(r, "currencyId"), ¤cyId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "currencyId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params ListCostBasesParams // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCostBases(w, r, currencyId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCostBasis operation middleware func (siw *ServerInterfaceWrapper) CreateCostBasis(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "currencyId" ------------- var currencyId ULID err = runtime.BindStyledParameterWithOptions("simple", "currencyId", chi.URLParam(r, "currencyId"), ¤cyId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "currencyId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCostBasis(w, r, currencyId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCustomers operation middleware func (siw *ServerInterfaceWrapper) ListCustomers(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListCustomersParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCustomers(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCustomer operation middleware func (siw *ServerInterfaceWrapper) CreateCustomer(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCustomer(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteCustomer operation middleware func (siw *ServerInterfaceWrapper) DeleteCustomer(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteCustomer(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetCustomer operation middleware func (siw *ServerInterfaceWrapper) GetCustomer(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetCustomer(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpsertCustomer operation middleware func (siw *ServerInterfaceWrapper) UpsertCustomer(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpsertCustomer(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetCustomerBilling operation middleware func (siw *ServerInterfaceWrapper) GetCustomerBilling(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetCustomerBilling(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateCustomerBilling operation middleware func (siw *ServerInterfaceWrapper) UpdateCustomerBilling(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateCustomerBilling(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateCustomerBillingAppData operation middleware func (siw *ServerInterfaceWrapper) UpdateCustomerBillingAppData(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateCustomerBillingAppData(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCustomerStripeCheckoutSession operation middleware func (siw *ServerInterfaceWrapper) CreateCustomerStripeCheckoutSession(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCustomerStripeCheckoutSession(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCustomerStripePortalSession operation middleware func (siw *ServerInterfaceWrapper) CreateCustomerStripePortalSession(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCustomerStripePortalSession(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCustomerCharges operation middleware func (siw *ServerInterfaceWrapper) ListCustomerCharges(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params ListCustomerChargesParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } // ------------- Optional query parameter "expand" ------------- err = runtime.BindQueryParameterWithOptions("form", true, false, "expand", r.URL.Query(), ¶ms.Expand, runtime.BindQueryParameterOptions{Type: "array", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "expand", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCustomerCharges(w, r, customerId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCustomerCharges operation middleware func (siw *ServerInterfaceWrapper) CreateCustomerCharges(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCustomerCharges(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCreditAdjustment operation middleware func (siw *ServerInterfaceWrapper) CreateCreditAdjustment(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCreditAdjustment(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetCustomerCreditBalance operation middleware func (siw *ServerInterfaceWrapper) GetCustomerCreditBalance(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params GetCustomerCreditBalanceParams // ------------- Optional query parameter "timestamp" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "timestamp", r.URL.Query(), ¶ms.Timestamp, runtime.BindQueryParameterOptions{Type: "string", Format: "date-time"}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "timestamp", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetCustomerCreditBalance(w, r, customerId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCreditGrants operation middleware func (siw *ServerInterfaceWrapper) ListCreditGrants(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params ListCreditGrantsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCreditGrants(w, r, customerId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateCreditGrant operation middleware func (siw *ServerInterfaceWrapper) CreateCreditGrant(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateCreditGrant(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetCreditGrant operation middleware func (siw *ServerInterfaceWrapper) GetCreditGrant(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // ------------- Path parameter "creditGrantId" ------------- var creditGrantId ULID err = runtime.BindStyledParameterWithOptions("simple", "creditGrantId", chi.URLParam(r, "creditGrantId"), &creditGrantId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "creditGrantId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetCreditGrant(w, r, customerId, creditGrantId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateCreditGrantExternalSettlement operation middleware func (siw *ServerInterfaceWrapper) UpdateCreditGrantExternalSettlement(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // ------------- Path parameter "creditGrantId" ------------- var creditGrantId ULID err = runtime.BindStyledParameterWithOptions("simple", "creditGrantId", chi.URLParam(r, "creditGrantId"), &creditGrantId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "creditGrantId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateCreditGrantExternalSettlement(w, r, customerId, creditGrantId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // VoidCreditGrant operation middleware func (siw *ServerInterfaceWrapper) VoidCreditGrant(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // ------------- Path parameter "creditGrantId" ------------- var creditGrantId ULID err = runtime.BindStyledParameterWithOptions("simple", "creditGrantId", chi.URLParam(r, "creditGrantId"), &creditGrantId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "creditGrantId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.VoidCreditGrant(w, r, customerId, creditGrantId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCreditTransactions operation middleware func (siw *ServerInterfaceWrapper) ListCreditTransactions(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params ListCreditTransactionsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCreditTransactions(w, r, customerId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListCustomerEntitlementAccess operation middleware func (siw *ServerInterfaceWrapper) ListCustomerEntitlementAccess(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "customerId" ------------- var customerId ULID err = runtime.BindStyledParameterWithOptions("simple", "customerId", chi.URLParam(r, "customerId"), &customerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "customerId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListCustomerEntitlementAccess(w, r, customerId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetOrganizationDefaultTaxCodes operation middleware func (siw *ServerInterfaceWrapper) GetOrganizationDefaultTaxCodes(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetOrganizationDefaultTaxCodes(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateOrganizationDefaultTaxCodes operation middleware func (siw *ServerInterfaceWrapper) UpdateOrganizationDefaultTaxCodes(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateOrganizationDefaultTaxCodes(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListMeteringEvents operation middleware func (siw *ServerInterfaceWrapper) ListMeteringEvents(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListMeteringEventsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListMeteringEvents(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // IngestMeteringEvents operation middleware func (siw *ServerInterfaceWrapper) IngestMeteringEvents(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.IngestMeteringEvents(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListFeatures operation middleware func (siw *ServerInterfaceWrapper) ListFeatures(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListFeaturesParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListFeatures(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateFeature operation middleware func (siw *ServerInterfaceWrapper) CreateFeature(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateFeature(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteFeature operation middleware func (siw *ServerInterfaceWrapper) DeleteFeature(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "featureId" ------------- var featureId ULID err = runtime.BindStyledParameterWithOptions("simple", "featureId", chi.URLParam(r, "featureId"), &featureId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "featureId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteFeature(w, r, featureId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetFeature operation middleware func (siw *ServerInterfaceWrapper) GetFeature(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "featureId" ------------- var featureId ULID err = runtime.BindStyledParameterWithOptions("simple", "featureId", chi.URLParam(r, "featureId"), &featureId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "featureId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetFeature(w, r, featureId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateFeature operation middleware func (siw *ServerInterfaceWrapper) UpdateFeature(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "featureId" ------------- var featureId ULID err = runtime.BindStyledParameterWithOptions("simple", "featureId", chi.URLParam(r, "featureId"), &featureId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "featureId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateFeature(w, r, featureId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // QueryFeatureCost operation middleware func (siw *ServerInterfaceWrapper) QueryFeatureCost(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "featureId" ------------- var featureId ULID err = runtime.BindStyledParameterWithOptions("simple", "featureId", chi.URLParam(r, "featureId"), &featureId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "featureId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.QueryFeatureCost(w, r, featureId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // QueryGovernanceAccess operation middleware func (siw *ServerInterfaceWrapper) QueryGovernanceAccess(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params QueryGovernanceAccessParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.QueryGovernanceAccess(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListLlmCostOverrides operation middleware func (siw *ServerInterfaceWrapper) ListLlmCostOverrides(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListLlmCostOverridesParams // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListLlmCostOverrides(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateLlmCostOverride operation middleware func (siw *ServerInterfaceWrapper) CreateLlmCostOverride(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateLlmCostOverride(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteLlmCostOverride operation middleware func (siw *ServerInterfaceWrapper) DeleteLlmCostOverride(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "priceId" ------------- var priceId ULID err = runtime.BindStyledParameterWithOptions("simple", "priceId", chi.URLParam(r, "priceId"), &priceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "priceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteLlmCostOverride(w, r, priceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListLlmCostPrices operation middleware func (siw *ServerInterfaceWrapper) ListLlmCostPrices(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListLlmCostPricesParams // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListLlmCostPrices(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetLlmCostPrice operation middleware func (siw *ServerInterfaceWrapper) GetLlmCostPrice(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "priceId" ------------- var priceId ULID err = runtime.BindStyledParameterWithOptions("simple", "priceId", chi.URLParam(r, "priceId"), &priceId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "priceId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetLlmCostPrice(w, r, priceId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListMeters operation middleware func (siw *ServerInterfaceWrapper) ListMeters(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListMetersParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListMeters(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateMeter operation middleware func (siw *ServerInterfaceWrapper) CreateMeter(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateMeter(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteMeter operation middleware func (siw *ServerInterfaceWrapper) DeleteMeter(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "meterId" ------------- var meterId ULID err = runtime.BindStyledParameterWithOptions("simple", "meterId", chi.URLParam(r, "meterId"), &meterId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "meterId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteMeter(w, r, meterId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetMeter operation middleware func (siw *ServerInterfaceWrapper) GetMeter(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "meterId" ------------- var meterId ULID err = runtime.BindStyledParameterWithOptions("simple", "meterId", chi.URLParam(r, "meterId"), &meterId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "meterId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetMeter(w, r, meterId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateMeter operation middleware func (siw *ServerInterfaceWrapper) UpdateMeter(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "meterId" ------------- var meterId ULID err = runtime.BindStyledParameterWithOptions("simple", "meterId", chi.URLParam(r, "meterId"), &meterId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "meterId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateMeter(w, r, meterId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // QueryMeter operation middleware func (siw *ServerInterfaceWrapper) QueryMeter(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "meterId" ------------- var meterId ULID err = runtime.BindStyledParameterWithOptions("simple", "meterId", chi.URLParam(r, "meterId"), &meterId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "meterId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.QueryMeter(w, r, meterId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListPlans operation middleware func (siw *ServerInterfaceWrapper) ListPlans(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListPlansParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListPlans(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreatePlan operation middleware func (siw *ServerInterfaceWrapper) CreatePlan(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreatePlan(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeletePlan operation middleware func (siw *ServerInterfaceWrapper) DeletePlan(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeletePlan(w, r, planId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetPlan operation middleware func (siw *ServerInterfaceWrapper) GetPlan(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetPlan(w, r, planId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdatePlan operation middleware func (siw *ServerInterfaceWrapper) UpdatePlan(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdatePlan(w, r, planId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListPlanAddons operation middleware func (siw *ServerInterfaceWrapper) ListPlanAddons(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params ListPlanAddonsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListPlanAddons(w, r, planId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreatePlanAddon operation middleware func (siw *ServerInterfaceWrapper) CreatePlanAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreatePlanAddon(w, r, planId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeletePlanAddon operation middleware func (siw *ServerInterfaceWrapper) DeletePlanAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } // ------------- Path parameter "planAddonId" ------------- var planAddonId ULID err = runtime.BindStyledParameterWithOptions("simple", "planAddonId", chi.URLParam(r, "planAddonId"), &planAddonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planAddonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeletePlanAddon(w, r, planId, planAddonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetPlanAddon operation middleware func (siw *ServerInterfaceWrapper) GetPlanAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } // ------------- Path parameter "planAddonId" ------------- var planAddonId ULID err = runtime.BindStyledParameterWithOptions("simple", "planAddonId", chi.URLParam(r, "planAddonId"), &planAddonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planAddonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetPlanAddon(w, r, planId, planAddonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdatePlanAddon operation middleware func (siw *ServerInterfaceWrapper) UpdatePlanAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } // ------------- Path parameter "planAddonId" ------------- var planAddonId ULID err = runtime.BindStyledParameterWithOptions("simple", "planAddonId", chi.URLParam(r, "planAddonId"), &planAddonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planAddonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdatePlanAddon(w, r, planId, planAddonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ArchivePlan operation middleware func (siw *ServerInterfaceWrapper) ArchivePlan(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ArchivePlan(w, r, planId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // PublishPlan operation middleware func (siw *ServerInterfaceWrapper) PublishPlan(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "planId" ------------- var planId ULID err = runtime.BindStyledParameterWithOptions("simple", "planId", chi.URLParam(r, "planId"), &planId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "planId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PublishPlan(w, r, planId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListBillingProfiles operation middleware func (siw *ServerInterfaceWrapper) ListBillingProfiles(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListBillingProfilesParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListBillingProfiles(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateBillingProfile operation middleware func (siw *ServerInterfaceWrapper) CreateBillingProfile(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateBillingProfile(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteBillingProfile operation middleware func (siw *ServerInterfaceWrapper) DeleteBillingProfile(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id ULID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteBillingProfile(w, r, id) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetBillingProfile operation middleware func (siw *ServerInterfaceWrapper) GetBillingProfile(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id ULID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetBillingProfile(w, r, id) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpdateBillingProfile operation middleware func (siw *ServerInterfaceWrapper) UpdateBillingProfile(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id ULID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateBillingProfile(w, r, id) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListSubscriptions operation middleware func (siw *ServerInterfaceWrapper) ListSubscriptions(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListSubscriptionsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } // ------------- Optional query parameter "filter" ------------- err = filters.Parse(r.URL.Query(), ¶ms.Filter) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "filter", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListSubscriptions(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateSubscription operation middleware func (siw *ServerInterfaceWrapper) CreateSubscription(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateSubscription(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetSubscription operation middleware func (siw *ServerInterfaceWrapper) GetSubscription(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSubscription(w, r, subscriptionId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListSubscriptionAddons operation middleware func (siw *ServerInterfaceWrapper) ListSubscriptionAddons(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params ListSubscriptionAddonsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "sort" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "sort", r.URL.Query(), ¶ms.Sort, runtime.BindQueryParameterOptions{Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sort", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListSubscriptionAddons(w, r, subscriptionId, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateSubscriptionAddon operation middleware func (siw *ServerInterfaceWrapper) CreateSubscriptionAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateSubscriptionAddon(w, r, subscriptionId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetSubscriptionAddon operation middleware func (siw *ServerInterfaceWrapper) GetSubscriptionAddon(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } // ------------- Path parameter "subscriptionAddonId" ------------- var subscriptionAddonId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionAddonId", chi.URLParam(r, "subscriptionAddonId"), &subscriptionAddonId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionAddonId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSubscriptionAddon(w, r, subscriptionId, subscriptionAddonId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CancelSubscription operation middleware func (siw *ServerInterfaceWrapper) CancelSubscription(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CancelSubscription(w, r, subscriptionId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ChangeSubscription operation middleware func (siw *ServerInterfaceWrapper) ChangeSubscription(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ChangeSubscription(w, r, subscriptionId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UnscheduleCancelation operation middleware func (siw *ServerInterfaceWrapper) UnscheduleCancelation(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "subscriptionId" ------------- var subscriptionId ULID err = runtime.BindStyledParameterWithOptions("simple", "subscriptionId", chi.URLParam(r, "subscriptionId"), &subscriptionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "subscriptionId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UnscheduleCancelation(w, r, subscriptionId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // ListTaxCodes operation middleware func (siw *ServerInterfaceWrapper) ListTaxCodes(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params ListTaxCodesParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameterWithOptions("deepObject", true, false, "page", r.URL.Query(), ¶ms.Page, runtime.BindQueryParameterOptions{Type: "object", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "page", Err: err}) return } // ------------- Optional query parameter "include_deleted" ------------- err = runtime.BindQueryParameterWithOptions("form", false, false, "include_deleted", r.URL.Query(), ¶ms.IncludeDeleted, runtime.BindQueryParameterOptions{Type: "boolean", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "include_deleted", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListTaxCodes(w, r, params) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // CreateTaxCode operation middleware func (siw *ServerInterfaceWrapper) CreateTaxCode(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateTaxCode(w, r) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // DeleteTaxCode operation middleware func (siw *ServerInterfaceWrapper) DeleteTaxCode(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "taxCodeId" ------------- var taxCodeId ULID err = runtime.BindStyledParameterWithOptions("simple", "taxCodeId", chi.URLParam(r, "taxCodeId"), &taxCodeId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "taxCodeId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteTaxCode(w, r, taxCodeId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // GetTaxCode operation middleware func (siw *ServerInterfaceWrapper) GetTaxCode(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "taxCodeId" ------------- var taxCodeId ULID err = runtime.BindStyledParameterWithOptions("simple", "taxCodeId", chi.URLParam(r, "taxCodeId"), &taxCodeId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "taxCodeId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetTaxCode(w, r, taxCodeId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } // UpsertTaxCode operation middleware func (siw *ServerInterfaceWrapper) UpsertTaxCode(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "taxCodeId" ------------- var taxCodeId ULID err = runtime.BindStyledParameterWithOptions("simple", "taxCodeId", chi.URLParam(r, "taxCodeId"), &taxCodeId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true, Type: "string", Format: ""}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "taxCodeId", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpsertTaxCode(w, r, taxCodeId) })) for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { handler = siw.HandlerMiddlewares[i](handler) } handler.ServeHTTP(w, r) } type UnescapedCookieParamError struct { ParamName string Err error } func (e *UnescapedCookieParamError) Error() string { return fmt.Sprintf("error unescaping cookie parameter '%s'", e.ParamName) } func (e *UnescapedCookieParamError) Unwrap() error { return e.Err } type UnmarshalingParamError struct { ParamName string Err error } func (e *UnmarshalingParamError) Error() string { return fmt.Sprintf("Error unmarshaling parameter %s as JSON: %s", e.ParamName, e.Err.Error()) } func (e *UnmarshalingParamError) Unwrap() error { return e.Err } type RequiredParamError struct { ParamName string } func (e *RequiredParamError) Error() string { return fmt.Sprintf("Query argument %s is required, but not found", e.ParamName) } type RequiredHeaderError struct { ParamName string Err error } func (e *RequiredHeaderError) Error() string { return fmt.Sprintf("Header parameter %s is required, but not found", e.ParamName) } func (e *RequiredHeaderError) Unwrap() error { return e.Err } type InvalidParamFormatError struct { ParamName string Err error } func (e *InvalidParamFormatError) Error() string { return fmt.Sprintf("Invalid format for parameter %s: %s", e.ParamName, e.Err.Error()) } func (e *InvalidParamFormatError) Unwrap() error { return e.Err } type TooManyValuesForParamError struct { ParamName string Count int } func (e *TooManyValuesForParamError) Error() string { return fmt.Sprintf("Expected one value for %s, got %d", e.ParamName, e.Count) } // Handler creates http.Handler with routing matching OpenAPI spec. func Handler(si ServerInterface) http.Handler { return HandlerWithOptions(si, ChiServerOptions{}) } type ChiServerOptions struct { BaseURL string BaseRouter chi.Router Middlewares []MiddlewareFunc ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } // HandlerFromMux creates http.Handler with routing matching OpenAPI spec based on the provided mux. func HandlerFromMux(si ServerInterface, r chi.Router) http.Handler { return HandlerWithOptions(si, ChiServerOptions{ BaseRouter: r, }) } func HandlerFromMuxWithBaseURL(si ServerInterface, r chi.Router, baseURL string) http.Handler { return HandlerWithOptions(si, ChiServerOptions{ BaseURL: baseURL, BaseRouter: r, }) } // HandlerWithOptions creates http.Handler with additional options func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler { r := options.BaseRouter if r == nil { r = chi.NewRouter() } if options.ErrorHandlerFunc == nil { options.ErrorHandlerFunc = func(w http.ResponseWriter, r *http.Request, err error) { http.Error(w, err.Error(), http.StatusBadRequest) } } wrapper := ServerInterfaceWrapper{ Handler: si, HandlerMiddlewares: options.Middlewares, ErrorHandlerFunc: options.ErrorHandlerFunc, } r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/addons", wrapper.ListAddons) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/addons", wrapper.CreateAddon) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/addons/{addonId}", wrapper.DeleteAddon) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/addons/{addonId}", wrapper.GetAddon) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/addons/{addonId}", wrapper.UpdateAddon) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/addons/{addonId}/archive", wrapper.ArchiveAddon) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/addons/{addonId}/publish", wrapper.PublishAddon) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/app-catalog", wrapper.ListAppCatalog) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/app-catalog/install", wrapper.InstallApp) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/app-catalog/{appType}", wrapper.GetAppCatalogItem) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/apps", wrapper.ListApps) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/apps/{appId}", wrapper.GetApp) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/billing/invoices", wrapper.ListInvoices) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}", wrapper.DeleteInvoice) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}", wrapper.GetInvoice) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}", wrapper.UpdateInvoice) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}/advance", wrapper.AdvanceInvoice) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}/approve", wrapper.ApproveInvoice) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}/retry", wrapper.RetryInvoice) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/billing/invoices/{invoiceId}/snapshot-quantities", wrapper.SnapshotQuantitiesInvoice) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/currencies", wrapper.ListCurrencies) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/currencies/custom", wrapper.CreateCustomCurrency) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/currencies/custom/{currencyId}/cost-bases", wrapper.ListCostBases) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/currencies/custom/{currencyId}/cost-bases", wrapper.CreateCostBasis) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers", wrapper.ListCustomers) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers", wrapper.CreateCustomer) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/customers/{customerId}", wrapper.DeleteCustomer) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}", wrapper.GetCustomer) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/customers/{customerId}", wrapper.UpsertCustomer) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/billing", wrapper.GetCustomerBilling) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/customers/{customerId}/billing", wrapper.UpdateCustomerBilling) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/customers/{customerId}/billing/app-data", wrapper.UpdateCustomerBillingAppData) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/billing/stripe/checkout-sessions", wrapper.CreateCustomerStripeCheckoutSession) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/billing/stripe/portal-sessions", wrapper.CreateCustomerStripePortalSession) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/charges", wrapper.ListCustomerCharges) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/charges", wrapper.CreateCustomerCharges) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/credits/adjustments", wrapper.CreateCreditAdjustment) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/credits/balance", wrapper.GetCustomerCreditBalance) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/credits/grants", wrapper.ListCreditGrants) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/credits/grants", wrapper.CreateCreditGrant) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/credits/grants/{creditGrantId}", wrapper.GetCreditGrant) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/credits/grants/{creditGrantId}/settlement/external", wrapper.UpdateCreditGrantExternalSettlement) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/customers/{customerId}/credits/grants/{creditGrantId}/void", wrapper.VoidCreditGrant) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/credits/transactions", wrapper.ListCreditTransactions) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/customers/{customerId}/entitlement-access", wrapper.ListCustomerEntitlementAccess) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/defaults/tax-codes", wrapper.GetOrganizationDefaultTaxCodes) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/defaults/tax-codes", wrapper.UpdateOrganizationDefaultTaxCodes) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/events", wrapper.ListMeteringEvents) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/events", wrapper.IngestMeteringEvents) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/features", wrapper.ListFeatures) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/features", wrapper.CreateFeature) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/features/{featureId}", wrapper.DeleteFeature) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/features/{featureId}", wrapper.GetFeature) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/openmeter/features/{featureId}", wrapper.UpdateFeature) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/features/{featureId}/cost/query", wrapper.QueryFeatureCost) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/governance/query", wrapper.QueryGovernanceAccess) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/llm-cost/overrides", wrapper.ListLlmCostOverrides) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/llm-cost/overrides", wrapper.CreateLlmCostOverride) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/llm-cost/overrides/{priceId}", wrapper.DeleteLlmCostOverride) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/llm-cost/prices", wrapper.ListLlmCostPrices) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/llm-cost/prices/{priceId}", wrapper.GetLlmCostPrice) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/meters", wrapper.ListMeters) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/meters", wrapper.CreateMeter) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/meters/{meterId}", wrapper.DeleteMeter) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/meters/{meterId}", wrapper.GetMeter) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/meters/{meterId}", wrapper.UpdateMeter) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/meters/{meterId}/query", wrapper.QueryMeter) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/plans", wrapper.ListPlans) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/plans", wrapper.CreatePlan) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/plans/{planId}", wrapper.DeletePlan) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/plans/{planId}", wrapper.GetPlan) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/plans/{planId}", wrapper.UpdatePlan) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/plans/{planId}/addons", wrapper.ListPlanAddons) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/plans/{planId}/addons", wrapper.CreatePlanAddon) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/plans/{planId}/addons/{planAddonId}", wrapper.DeletePlanAddon) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/plans/{planId}/addons/{planAddonId}", wrapper.GetPlanAddon) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/plans/{planId}/addons/{planAddonId}", wrapper.UpdatePlanAddon) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/plans/{planId}/archive", wrapper.ArchivePlan) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/plans/{planId}/publish", wrapper.PublishPlan) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/profiles", wrapper.ListBillingProfiles) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/profiles", wrapper.CreateBillingProfile) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/profiles/{id}", wrapper.DeleteBillingProfile) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/profiles/{id}", wrapper.GetBillingProfile) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/profiles/{id}", wrapper.UpdateBillingProfile) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/subscriptions", wrapper.ListSubscriptions) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/subscriptions", wrapper.CreateSubscription) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}", wrapper.GetSubscription) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}/addons", wrapper.ListSubscriptionAddons) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}/addons", wrapper.CreateSubscriptionAddon) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}/addons/{subscriptionAddonId}", wrapper.GetSubscriptionAddon) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}/cancel", wrapper.CancelSubscription) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}/change", wrapper.ChangeSubscription) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/subscriptions/{subscriptionId}/unschedule-cancelation", wrapper.UnscheduleCancelation) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/tax-codes", wrapper.ListTaxCodes) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/openmeter/tax-codes", wrapper.CreateTaxCode) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/openmeter/tax-codes/{taxCodeId}", wrapper.DeleteTaxCode) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/openmeter/tax-codes/{taxCodeId}", wrapper.GetTaxCode) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/openmeter/tax-codes/{taxCodeId}", wrapper.UpsertTaxCode) }) return r } // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ "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", } // GetSwagger returns the content of the embedded swagger specification file // or error if failed to decode func decodeSpec() ([]byte, error) { zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) if err != nil { return nil, fmt.Errorf("error base64 decoding spec: %w", err) } zr, err := gzip.NewReader(bytes.NewReader(zipped)) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } var buf bytes.Buffer _, err = buf.ReadFrom(zr) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } return buf.Bytes(), nil } var rawSpec = decodeSpecCached() // a naive cached of a decoded swagger spec func decodeSpecCached() func() ([]byte, error) { data, err := decodeSpec() return func() ([]byte, error) { return data, err } } // Constructs a synthetic filesystem for resolving external references when loading openapi specifications. func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { res := make(map[string]func() ([]byte, error)) if len(pathToFile) > 0 { res[pathToFile] = rawSpec } return res } // GetSwagger returns the Swagger specification corresponding to the generated code // in this file. The external references of Swagger specification are resolved. // The logic of resolving external references is tightly connected to "import-mapping" feature. // Externally referenced files must be embedded in the corresponding golang packages. // Urls can be supported but this task was out of the scope. func GetSwagger() (swagger *openapi3.T, err error) { resolvePath := PathToRawSpec("") loader := openapi3.NewLoader() loader.IsExternalRefsAllowed = true loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { pathToFile := url.String() pathToFile = path.Clean(pathToFile) getSpec, ok := resolvePath[pathToFile] if !ok { err1 := fmt.Errorf("path not found: %s", pathToFile) return nil, err1 } return getSpec() } var specData []byte specData, err = rawSpec() if err != nil { return } swagger, err = loader.LoadFromData(specData) if err != nil { return } return }