diff --git a/api/api.gen.go b/api/api.gen.go index 7dc3538fa..7a580ec9d 100644 --- a/api/api.gen.go +++ b/api/api.gen.go @@ -33,22 +33,28 @@ const ( // Defines values for AppCapabilityType. const ( - CalculateTax AppCapabilityType = "calculateTax" - CollectPayments AppCapabilityType = "collectPayments" - InvoiceCustomers AppCapabilityType = "invoiceCustomers" - ReportEvents AppCapabilityType = "reportEvents" - ReportUsage AppCapabilityType = "reportUsage" + AppCapabilityTypeCalculateTax AppCapabilityType = "calculateTax" + AppCapabilityTypeCollectPayments AppCapabilityType = "collectPayments" + AppCapabilityTypeInvoiceCustomers AppCapabilityType = "invoiceCustomers" + AppCapabilityTypeReportEvents AppCapabilityType = "reportEvents" + AppCapabilityTypeReportUsage AppCapabilityType = "reportUsage" +) + +// Defines values for AppStatus. +const ( + AppStatusReady AppStatus = "ready" + AppStatusUnauthorized AppStatus = "unauthorized" ) // Defines values for CheckoutSessionUIMode. const ( - Embedded CheckoutSessionUIMode = "embedded" - Hosted CheckoutSessionUIMode = "hosted" + CheckoutSessionUIModeEmbedded CheckoutSessionUIMode = "embedded" + CheckoutSessionUIModeHosted CheckoutSessionUIMode = "hosted" ) // Defines values for EntitlementBooleanCreateInputsType. const ( - Boolean EntitlementBooleanCreateInputsType = "boolean" + EntitlementBooleanCreateInputsTypeBoolean EntitlementBooleanCreateInputsType = "boolean" ) // Defines values for EntitlementMeteredType. @@ -100,10 +106,10 @@ const ( GrantOrderByUpdatedAt GrantOrderBy = "updatedAt" ) -// Defines values for MeasureUsageFromEnum. +// Defines values for MeasureUsageFromPreset. const ( - CURRENTPERIODSTART MeasureUsageFromEnum = "CURRENT_PERIOD_START" - NOW MeasureUsageFromEnum = "NOW" + MeasureUsageFromPresetCurrentPeriodStart MeasureUsageFromPreset = "CURRENT_PERIOD_START" + MeasureUsageFromPresetNow MeasureUsageFromPreset = "NOW" ) // Defines values for NotificationChannelOrderBy. @@ -116,7 +122,7 @@ const ( // Defines values for NotificationChannelType. const ( - NotificationChannelTypeWEBHOOK NotificationChannelType = "WEBHOOK" + NotificationChannelTypeWebhook NotificationChannelType = "WEBHOOK" ) // Defines values for NotificationChannelWebhookType. @@ -126,7 +132,7 @@ const ( // Defines values for NotificationChannelWebhookCreateRequestType. const ( - WEBHOOK NotificationChannelWebhookCreateRequestType = "WEBHOOK" + NotificationChannelWebhookCreateRequestTypeWEBHOOK NotificationChannelWebhookCreateRequestType = "WEBHOOK" ) // Defines values for NotificationEventBalanceThresholdPayloadType. @@ -136,10 +142,10 @@ const ( // Defines values for NotificationEventDeliveryStatusState. const ( - FAILED NotificationEventDeliveryStatusState = "FAILED" - PENDING NotificationEventDeliveryStatusState = "PENDING" - SENDING NotificationEventDeliveryStatusState = "SENDING" - SUCCESS NotificationEventDeliveryStatusState = "SUCCESS" + NotificationEventDeliveryStatusStateFailed NotificationEventDeliveryStatusState = "FAILED" + NotificationEventDeliveryStatusStatePending NotificationEventDeliveryStatusState = "PENDING" + NotificationEventDeliveryStatusStateSending NotificationEventDeliveryStatusState = "SENDING" + NotificationEventDeliveryStatusStateSuccess NotificationEventDeliveryStatusState = "SUCCESS" ) // Defines values for NotificationEventOrderBy. @@ -165,8 +171,8 @@ const ( // Defines values for NotificationRuleBalanceThresholdValueType. const ( - NUMBER NotificationRuleBalanceThresholdValueType = "NUMBER" - PERCENT NotificationRuleBalanceThresholdValueType = "PERCENT" + NotificationRuleBalanceThresholdValueTypeNumber NotificationRuleBalanceThresholdValueType = "NUMBER" + NotificationRuleBalanceThresholdValueTypePercent NotificationRuleBalanceThresholdValueType = "PERCENT" ) // Defines values for NotificationRuleOrderBy. @@ -179,29 +185,13 @@ const ( // Defines values for OAuth2AuthorizationCodeGrantErrorType. const ( - AccessDenied OAuth2AuthorizationCodeGrantErrorType = "access_denied" - InvalidRequest OAuth2AuthorizationCodeGrantErrorType = "invalid_request" - InvalidScope OAuth2AuthorizationCodeGrantErrorType = "invalid_scope" - ServerError OAuth2AuthorizationCodeGrantErrorType = "server_error" - TemporarilyUnavailable OAuth2AuthorizationCodeGrantErrorType = "temporarily_unavailable" - UnauthorizedClient OAuth2AuthorizationCodeGrantErrorType = "unauthorized_client" - UnsupportedResponseType OAuth2AuthorizationCodeGrantErrorType = "unsupported_response_type" -) - -// Defines values for OpenMeterAppAppStatus. -const ( - Ready OpenMeterAppAppStatus = "ready" - Unauthorized OpenMeterAppAppStatus = "unauthorized" -) - -// Defines values for OpenMeterAppStripePaymentIntentStatus. -const ( - Canceled OpenMeterAppStripePaymentIntentStatus = "canceled" - Processing OpenMeterAppStripePaymentIntentStatus = "processing" - RequiresAction OpenMeterAppStripePaymentIntentStatus = "requires_action" - RequiresConfirmation OpenMeterAppStripePaymentIntentStatus = "requires_confirmation" - RequiresPaymentMethod OpenMeterAppStripePaymentIntentStatus = "requires_payment_method" - Succeeded OpenMeterAppStripePaymentIntentStatus = "succeeded" + OAuth2AuthorizationCodeGrantErrorTypeAccessDenied OAuth2AuthorizationCodeGrantErrorType = "access_denied" + OAuth2AuthorizationCodeGrantErrorTypeInvalidRequest OAuth2AuthorizationCodeGrantErrorType = "invalid_request" + OAuth2AuthorizationCodeGrantErrorTypeInvalidScope OAuth2AuthorizationCodeGrantErrorType = "invalid_scope" + OAuth2AuthorizationCodeGrantErrorTypeServerError OAuth2AuthorizationCodeGrantErrorType = "server_error" + OAuth2AuthorizationCodeGrantErrorTypeTemporarilyUnavailable OAuth2AuthorizationCodeGrantErrorType = "temporarily_unavailable" + OAuth2AuthorizationCodeGrantErrorTypeUnauthorizedClient OAuth2AuthorizationCodeGrantErrorType = "unauthorized_client" + OAuth2AuthorizationCodeGrantErrorTypeUnsupportedResponseType OAuth2AuthorizationCodeGrantErrorType = "unsupported_response_type" ) // Defines values for OpenMeterAppType. @@ -209,12 +199,6 @@ const ( OpenMeterAppTypeStripe OpenMeterAppType = "stripe" ) -// Defines values for Order. -const ( - SortOrderASC Order = "ASC" - SortOrderDESC Order = "DESC" -) - // Defines values for RecurringPeriodInterval. const ( RecurringPeriodIntervalDAY RecurringPeriodInterval = "DAY" @@ -223,6 +207,12 @@ const ( RecurringPeriodIntervalYEAR RecurringPeriodInterval = "YEAR" ) +// Defines values for SortOrder. +const ( + SortOrderASC SortOrder = "ASC" + SortOrderDESC SortOrder = "DESC" +) + // Defines values for StripeAppType. const ( StripeAppTypeStripe StripeAppType = "stripe" @@ -230,18 +220,28 @@ const ( // Defines values for StripeCheckoutSessionMode. const ( - Setup StripeCheckoutSessionMode = "setup" + StripeCheckoutSessionModeSetup StripeCheckoutSessionMode = "setup" +) + +// Defines values for StripePaymentIntentStatus. +const ( + StripePaymentIntentStatusCanceled StripePaymentIntentStatus = "canceled" + StripePaymentIntentStatusProcessing StripePaymentIntentStatus = "processing" + StripePaymentIntentStatusRequiresAction StripePaymentIntentStatus = "requires_action" + StripePaymentIntentStatusRequiresConfirmation StripePaymentIntentStatus = "requires_confirmation" + StripePaymentIntentStatusRequiresPaymentMethod StripePaymentIntentStatus = "requires_payment_method" + StripePaymentIntentStatusSucceeded StripePaymentIntentStatus = "succeeded" ) // Defines values for SvixOperationalWebhookRequestType. const ( - EndpointCreated SvixOperationalWebhookRequestType = "endpoint.created" - EndpointDeleted SvixOperationalWebhookRequestType = "endpoint.deleted" - EndpointDisabled SvixOperationalWebhookRequestType = "endpoint.disabled" - EndpointUpdated SvixOperationalWebhookRequestType = "endpoint.updated" - MessageAttemptExhausted SvixOperationalWebhookRequestType = "message.attempt.exhausted" - MessageAttemptFailing SvixOperationalWebhookRequestType = "message.attempt.failing" - MessageAttemptRecovered SvixOperationalWebhookRequestType = "message.attempt.recovered" + SvixOperationalWebhookRequestTypeEndpointCreated SvixOperationalWebhookRequestType = "endpoint.created" + SvixOperationalWebhookRequestTypeEndpointDeleted SvixOperationalWebhookRequestType = "endpoint.deleted" + SvixOperationalWebhookRequestTypeEndpointDisabled SvixOperationalWebhookRequestType = "endpoint.disabled" + SvixOperationalWebhookRequestTypeEndpointUpdated SvixOperationalWebhookRequestType = "endpoint.updated" + SvixOperationalWebhookRequestTypeMessageAttemptExhausted SvixOperationalWebhookRequestType = "message.attempt.exhausted" + SvixOperationalWebhookRequestTypeMessageAttemptFailing SvixOperationalWebhookRequestType = "message.attempt.failing" + SvixOperationalWebhookRequestTypeMessageAttemptRecovered SvixOperationalWebhookRequestType = "message.attempt.recovered" ) // Address Address @@ -291,7 +291,7 @@ type AppBase struct { Name string `json:"name"` // Status Status of the app connection. - Status OpenMeterAppAppStatus `json:"status"` + Status AppStatus `json:"status"` // UpdatedAt Timestamp of when the resource was last updated. UpdatedAt time.Time `json:"updatedAt"` @@ -332,6 +332,9 @@ type AppList struct { TotalCount int `json:"totalCount"` } +// AppStatus App installed status. +type AppStatus string + // BadRequestProblemResponse A Problem Details object (RFC 7807). // Additional properties specific to the problem type may be present. type BadRequestProblemResponse = UnexpectedProblemResponse @@ -1130,8 +1133,8 @@ type MeasureUsageFrom struct { union json.RawMessage } -// MeasureUsageFromEnum Start of measurement options -type MeasureUsageFromEnum string +// MeasureUsageFromPreset Start of measurement options +type MeasureUsageFromPreset string // MeasureUsageFromTime [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC. type MeasureUsageFromTime = time.Time @@ -1333,7 +1336,7 @@ type NotificationEventDeliveryStatus struct { UpdatedAt time.Time `json:"updatedAt"` } -// NotificationEventDeliveryStatusState Delivery state of the notification event to the channel. +// NotificationEventDeliveryStatusState The delivery state of the notification event to the channel. type NotificationEventDeliveryStatusState string // NotificationEventOrderBy Order by options for notification channels. @@ -1432,7 +1435,7 @@ type NotificationRuleBalanceThresholdValue struct { Value float64 `json:"value"` } -// NotificationRuleBalanceThresholdValueType Type of the threshold. +// NotificationRuleBalanceThresholdValueType Type of the rule in the balance threshold specification. type NotificationRuleBalanceThresholdValueType string // NotificationRuleCreateRequest Request with input parameters for creating new notification rule with entitlements.balance.threashold type. @@ -1459,18 +1462,9 @@ type NotificationRulePaginatedResponse struct { // OAuth2AuthorizationCodeGrantErrorType OAuth2 authorization code grant error types. type OAuth2AuthorizationCodeGrantErrorType string -// OpenMeterAppAppStatus App installed status. -type OpenMeterAppAppStatus string - -// OpenMeterAppStripePaymentIntentStatus Stripe payment intent status. -type OpenMeterAppStripePaymentIntentStatus string - // OpenMeterAppType Type of the app. type OpenMeterAppType string -// Order The order direction. -type Order string - // Period A period with a start and end time. type Period struct { // From Period start time. @@ -1545,6 +1539,9 @@ type ResetEntitlementUsageInput struct { // Additional properties specific to the problem type may be present. type ServiceUnavailableProblemResponse = UnexpectedProblemResponse +// SortOrder The order direction. +type SortOrder string + // StripeApp A installed Stripe app object. type StripeApp struct { // CreatedAt Timestamp of when the resource was created. @@ -1572,7 +1569,7 @@ type StripeApp struct { Name string `json:"name"` // Status Status of the app connection. - Status OpenMeterAppAppStatus `json:"status"` + Status AppStatus `json:"status"` // StripeAccountId The Stripe account ID. StripeAccountId string `json:"stripeAccountId"` @@ -1590,6 +1587,9 @@ type StripeAppType string // StripeCheckoutSessionMode Stripe CheckoutSession.mode type StripeCheckoutSessionMode string +// StripePaymentIntentStatus Stripe payment intent status. +type StripePaymentIntentStatus string + // StripeSetupIntent Stripe setup intent. type StripeSetupIntent struct { // Customer The setup intent customer. @@ -1608,7 +1608,7 @@ type StripeSetupIntent struct { PaymentMethodTypes *[]string `json:"payment_method_types,omitempty"` // Status The setup intent status. - Status OpenMeterAppStripePaymentIntentStatus `json:"status"` + Status StripePaymentIntentStatus `json:"status"` } // StripeWebhookEvent Stripe webhook event. @@ -1717,19 +1717,19 @@ type WindowedBalanceHistory struct { } // EntitlementOrderByOrderingOrder The order direction. -type EntitlementOrderByOrderingOrder = Order +type EntitlementOrderByOrderingOrder = SortOrder // EntitlementOrderByOrderingOrderBy Order by options for entitlements. type EntitlementOrderByOrderingOrderBy = EntitlementOrderBy // FeatureOrderByOrderingOrder The order direction. -type FeatureOrderByOrderingOrder = Order +type FeatureOrderByOrderingOrder = SortOrder // FeatureOrderByOrderingOrderBy Order by options for features. type FeatureOrderByOrderingOrderBy = FeatureOrderBy // GrantOrderByOrderingOrder The order direction. -type GrantOrderByOrderingOrder = Order +type GrantOrderByOrderingOrder = SortOrder // GrantOrderByOrderingOrderBy Order by options for grants. type GrantOrderByOrderingOrderBy = GrantOrderBy @@ -1768,19 +1768,19 @@ type MeterQueryWindowSize = WindowSize type MeterQueryWindowTimeZone = string // NotificationChannelOrderByOrderingOrder The order direction. -type NotificationChannelOrderByOrderingOrder = Order +type NotificationChannelOrderByOrderingOrder = SortOrder // NotificationChannelOrderByOrderingOrderBy Order by options for notification channels. type NotificationChannelOrderByOrderingOrderBy = NotificationChannelOrderBy // NotificationEventOrderByOrderingOrder The order direction. -type NotificationEventOrderByOrderingOrder = Order +type NotificationEventOrderByOrderingOrder = SortOrder // NotificationEventOrderByOrderingOrderBy Order by options for notification channels. type NotificationEventOrderByOrderingOrderBy = NotificationEventOrderBy // NotificationRuleOrderByOrderingOrder The order direction. -type NotificationRuleOrderByOrderingOrder = Order +type NotificationRuleOrderByOrderingOrder = SortOrder // NotificationRuleOrderByOrderingOrderBy Order by options for notification channels. type NotificationRuleOrderByOrderingOrderBy = NotificationRuleOrderBy @@ -2630,22 +2630,22 @@ func (t *EntitlementCreateInputs) UnmarshalJSON(b []byte) error { return err } -// AsMeasureUsageFromEnum returns the union data inside the MeasureUsageFrom as a MeasureUsageFromEnum -func (t MeasureUsageFrom) AsMeasureUsageFromEnum() (MeasureUsageFromEnum, error) { - var body MeasureUsageFromEnum +// AsMeasureUsageFromPreset returns the union data inside the MeasureUsageFrom as a MeasureUsageFromPreset +func (t MeasureUsageFrom) AsMeasureUsageFromPreset() (MeasureUsageFromPreset, error) { + var body MeasureUsageFromPreset err := json.Unmarshal(t.union, &body) return body, err } -// FromMeasureUsageFromEnum overwrites any union data inside the MeasureUsageFrom as the provided MeasureUsageFromEnum -func (t *MeasureUsageFrom) FromMeasureUsageFromEnum(v MeasureUsageFromEnum) error { +// FromMeasureUsageFromPreset overwrites any union data inside the MeasureUsageFrom as the provided MeasureUsageFromPreset +func (t *MeasureUsageFrom) FromMeasureUsageFromPreset(v MeasureUsageFromPreset) error { b, err := json.Marshal(v) t.union = b return err } -// MergeMeasureUsageFromEnum performs a merge with any union data inside the MeasureUsageFrom, using the provided MeasureUsageFromEnum -func (t *MeasureUsageFrom) MergeMeasureUsageFromEnum(v MeasureUsageFromEnum) error { +// MergeMeasureUsageFromPreset performs a merge with any union data inside the MeasureUsageFrom, using the provided MeasureUsageFromPreset +func (t *MeasureUsageFrom) MergeMeasureUsageFromPreset(v MeasureUsageFromPreset) error { b, err := json.Marshal(v) if err != nil { return err @@ -6278,406 +6278,407 @@ func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handl // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "Tj9QuwMA", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/codegen.yaml b/api/codegen.yaml index 07b00197d..e903b8063 100644 --- a/api/codegen.yaml +++ b/api/codegen.yaml @@ -7,4 +7,5 @@ compatibility: apply-chi-middleware-first-to-last: true # See: https://github.com/oapi-codegen/oapi-codegen/issues/778 disable-required-readonly-as-pointer: true + always-prefix-enum-values: true output: ./api.gen.go diff --git a/api/openapi.yaml b/api/openapi.yaml index d397f5bf0..436c7a1f3 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -4325,7 +4325,7 @@ components: required: false description: The order direction. schema: - $ref: '#/components/schemas/Order' + $ref: '#/components/schemas/SortOrder' explode: false EntitlementOrderByOrdering.orderBy: name: orderBy @@ -4341,7 +4341,7 @@ components: required: false description: The order direction. schema: - $ref: '#/components/schemas/Order' + $ref: '#/components/schemas/SortOrder' explode: false FeatureOrderByOrdering.orderBy: name: orderBy @@ -4357,7 +4357,7 @@ components: required: false description: The order direction. schema: - $ref: '#/components/schemas/Order' + $ref: '#/components/schemas/SortOrder' explode: false GrantOrderByOrdering.orderBy: name: orderBy @@ -4485,7 +4485,7 @@ components: required: false description: The order direction. schema: - $ref: '#/components/schemas/Order' + $ref: '#/components/schemas/SortOrder' explode: false NotificationChannelOrderByOrdering.orderBy: name: orderBy @@ -4501,7 +4501,7 @@ components: required: false description: The order direction. schema: - $ref: '#/components/schemas/Order' + $ref: '#/components/schemas/SortOrder' explode: false NotificationEventOrderByOrdering.orderBy: name: orderBy @@ -4517,7 +4517,7 @@ components: required: false description: The order direction. schema: - $ref: '#/components/schemas/Order' + $ref: '#/components/schemas/SortOrder' explode: false NotificationRuleOrderByOrdering.orderBy: name: orderBy @@ -4728,7 +4728,7 @@ components: readOnly: true status: allOf: - - $ref: '#/components/schemas/OpenMeter.App.AppStatus' + - $ref: '#/components/schemas/AppStatus' description: Status of the app connection. readOnly: true description: |- @@ -4804,6 +4804,12 @@ components: maxItems: 1000 description: The items in the page. description: A page of results. + AppStatus: + type: string + enum: + - ready + - unauthorized + description: App installed status. BadRequestProblemResponse: type: object allOf: @@ -6465,15 +6471,18 @@ components: description: A page of results. MeasureUsageFrom: oneOf: - - $ref: '#/components/schemas/MeasureUsageFromEnum' + - $ref: '#/components/schemas/MeasureUsageFromPreset' - $ref: '#/components/schemas/MeasureUsageFromTime' description: Measure usage from - MeasureUsageFromEnum: + MeasureUsageFromPreset: type: string enum: - CURRENT_PERIOD_START - NOW description: Start of measurement options + x-enum-varnames: + - CurrentPeriodStart + - Now MeasureUsageFromTime: type: string format: date-time @@ -6731,6 +6740,8 @@ components: enum: - WEBHOOK description: Type of the notification channel. + x-enum-varnames: + - Webhook NotificationChannelWebhook: type: object required: @@ -6988,15 +6999,10 @@ components: - channel properties: state: - type: string - enum: - - SUCCESS - - FAILED - - SENDING - - PENDING + allOf: + - $ref: '#/components/schemas/NotificationEventDeliveryStatusState' example: SUCCESS description: Delivery state of the notification event to the channel. - title: Delivery State readOnly: true reason: type: string @@ -7018,6 +7024,20 @@ components: title: Notification Channel readOnly: true description: The delivery status of the notification event. + NotificationEventDeliveryStatusState: + type: string + enum: + - SUCCESS + - FAILED + - SENDING + - PENDING + description: The delivery state of the notification event to the channel. + title: Delivery State + x-enum-varnames: + - Success + - Failed + - Sending + - Pending NotificationEventOrderBy: type: string enum: @@ -7215,14 +7235,21 @@ components: description: Value of the threshold. title: Threshold Value type: - type: string - enum: - - PERCENT - - NUMBER + allOf: + - $ref: '#/components/schemas/NotificationRuleBalanceThresholdValueType' example: NUMBER description: Type of the threshold. - title: Threshold Type description: Threshold value with multiple supported types. + NotificationRuleBalanceThresholdValueType: + type: string + enum: + - PERCENT + - NUMBER + description: Type of the rule in the balance threshold specification. + title: Notification balance threshold type + x-enum-varnames: + - Percent + - Number NotificationRuleCreateRequest: type: object allOf: @@ -7273,36 +7300,11 @@ components: - server_error - temporarily_unavailable description: OAuth2 authorization code grant error types. - OpenMeter.App.AppStatus: - type: string - enum: - - ready - - unauthorized - description: App installed status. - OpenMeter.App.StripePaymentIntentStatus: - type: string - enum: - - canceled - - processing - - requires_action - - requires_confirmation - - requires_payment_method - - succeeded - description: Stripe payment intent status. OpenMeter.App.Type: type: string enum: - stripe description: Type of the app. - Order: - type: string - enum: - - ASC - - DESC - description: The order direction. - x-enum-varnames: - - SortOrderASC - - SortOrderDESC Period: type: object required: @@ -7448,6 +7450,12 @@ components: allOf: - $ref: '#/components/schemas/UnexpectedProblemResponse' description: The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + SortOrder: + type: string + enum: + - ASC + - DESC + description: The order direction. StripeApp: type: object required: @@ -7512,7 +7520,7 @@ components: readOnly: true status: allOf: - - $ref: '#/components/schemas/OpenMeter.App.AppStatus' + - $ref: '#/components/schemas/AppStatus' description: Status of the app connection. readOnly: true type: @@ -7559,6 +7567,16 @@ components: enum: - setup description: Stripe CheckoutSession.mode + StripePaymentIntentStatus: + type: string + enum: + - canceled + - processing + - requires_action + - requires_confirmation + - requires_payment_method + - succeeded + description: Stripe payment intent status. StripeSetupIntent: type: object required: @@ -7572,7 +7590,7 @@ components: description: The setup intent id. status: allOf: - - $ref: '#/components/schemas/OpenMeter.App.StripePaymentIntentStatus' + - $ref: '#/components/schemas/StripePaymentIntentStatus' description: The setup intent status. payment_method: type: string diff --git a/api/spec/src/app/app.tsp b/api/spec/src/app/app.tsp index 49e06ff34..15f4b5526 100644 --- a/api/spec/src/app/app.tsp +++ b/api/spec/src/app/app.tsp @@ -98,6 +98,7 @@ model AppBase { /** * App installed status. */ +@friendlyName("AppStatus") enum AppStatus { /** * The app is ready to be used. diff --git a/api/spec/src/app/stripe.tsp b/api/spec/src/app/stripe.tsp index b5154766b..b4cb5b924 100644 --- a/api/spec/src/app/stripe.tsp +++ b/api/spec/src/app/stripe.tsp @@ -347,6 +347,7 @@ model StripeSetupIntent { /** * Stripe payment intent status. */ +@friendlyName("StripePaymentIntentStatus") enum StripePaymentIntentStatus { Canceled: "canceled", Processing: "processing", diff --git a/api/spec/src/entitlements/entitlements.tsp b/api/spec/src/entitlements/entitlements.tsp index f50c5f063..8c46e8568 100644 --- a/api/spec/src/entitlements/entitlements.tsp +++ b/api/spec/src/entitlements/entitlements.tsp @@ -337,8 +337,9 @@ model EntitlementStatic { /** * Start of measurement options */ -@friendlyName("MeasureUsageFromEnum") -enum MeasureUsageFromEnum { +@friendlyName("MeasureUsageFromPreset") +@extension("x-enum-varnames", ["CurrentPeriodStart", "Now"]) +enum MeasureUsageFromPreset { #suppress "@openmeter/api-spec/casing" "Use existing values" CURRENT_PERIOD_START: "CURRENT_PERIOD_START", #suppress "@openmeter/api-spec/casing" "Use existing values" @@ -354,6 +355,6 @@ scalar MeasureUsageFromTime extends DateTime; @friendlyName("MeasureUsageFrom") @oneOf union MeasureUsageFrom { - `enum`: MeasureUsageFromEnum, + preset: MeasureUsageFromPreset, time: MeasureUsageFromTime, } diff --git a/api/spec/src/notification/channel.tsp b/api/spec/src/notification/channel.tsp index 61c79edb1..d2a02aa97 100644 --- a/api/spec/src/notification/channel.tsp +++ b/api/spec/src/notification/channel.tsp @@ -12,6 +12,7 @@ namespace OpenMeter.Notification; * Type of the notification channel. */ @friendlyName("NotificationChannelType") +@extension("x-enum-varnames", ["Webhook"]) enum NotificationChannelType { #suppress "@openmeter/api-spec/casing" "Ignore due to backward compatibility" webhook: "WEBHOOK", diff --git a/api/spec/src/notification/event.tsp b/api/spec/src/notification/event.tsp index b5c31a4b4..7bb2964c4 100644 --- a/api/spec/src/notification/event.tsp +++ b/api/spec/src/notification/event.tsp @@ -26,9 +26,8 @@ model NotificationEventDeliveryStatus { * Delivery state of the notification event to the channel. */ @visibility("read") - @summary("Delivery State") - @example("SUCCESS") - state: "SUCCESS" | "FAILED" | "SENDING" | "PENDING"; + @example(NotificationEventDeliveryStatusState.Success) + state: NotificationEventDeliveryStatusState; /** * The reason of the last deliverry state update. @@ -54,6 +53,19 @@ model NotificationEventDeliveryStatus { channel: NotificationChannelMeta; } +/** + * The delivery state of the notification event to the channel. + */ +@friendlyName("NotificationEventDeliveryStatusState") +@summary("Delivery State") +@extension("x-enum-varnames", ["Success", "Failed", "Sending", "Pending"]) +enum NotificationEventDeliveryStatusState { + Success: "SUCCESS", + Failed: "FAILED", + Sending: "SENDING", + Pending: "PENDING", +} + /** * The delivery status of the notification event. */ diff --git a/api/spec/src/notification/rule.tsp b/api/spec/src/notification/rule.tsp index 07e42a27e..ccfd36023 100644 --- a/api/spec/src/notification/rule.tsp +++ b/api/spec/src/notification/rule.tsp @@ -85,9 +85,19 @@ model NotificationRuleBalanceThresholdValue { * Type of the threshold. */ @visibility("read", "create", "update") - @summary("Threshold Type") - @example("NUMBER") - type: "PERCENT" | "NUMBER"; + @example(NotificationRuleBalanceThresholdValueType.NUMBER) + type: NotificationRuleBalanceThresholdValueType; +} + +/** + * Type of the rule in the balance threshold specification. + */ +@summary("Notification balance threshold type") +@friendlyName("NotificationRuleBalanceThresholdValueType") +@extension("x-enum-varnames", ["Percent", "Number"]) +enum NotificationRuleBalanceThresholdValueType { + PERCENT, + NUMBER, } /** diff --git a/api/spec/src/query.tsp b/api/spec/src/query.tsp index 565bbf62f..82ceef14d 100644 --- a/api/spec/src/query.tsp +++ b/api/spec/src/query.tsp @@ -71,8 +71,8 @@ model QueryOrdering { * The order direction. */ @query - @example(Order.ASC) - order?: Order; + @example(SortOrder.ASC) + order?: SortOrder; /** * The order by field. @@ -88,9 +88,8 @@ model QueryOrdering { /** * The order direction. */ -@friendlyName("Order") -@extension("x-enum-varnames", ["SortOrderASC", "SortOrderDESC"]) -enum Order { +@friendlyName("SortOrder") +enum SortOrder { #suppress "@openmeter/api-spec/casing" "Use existing values" ASC: "ASC", #suppress "@openmeter/api-spec/casing" "Use existing values" diff --git a/openmeter/app/httpdriver/app.go b/openmeter/app/httpdriver/app.go index 67ae7d410..6d1db08fa 100644 --- a/openmeter/app/httpdriver/app.go +++ b/openmeter/app/httpdriver/app.go @@ -155,7 +155,7 @@ func mapAppToAPI(item appentity.App) api.App { Id: item.GetID().ID, Type: api.StripeAppType(item.GetType()), Name: item.GetName(), - Status: api.OpenMeterAppAppStatus(item.GetStatus()), + Status: api.AppStatus(item.GetStatus()), Listing: mapMarketplaceListing(item.GetListing()), CreatedAt: item.GetAppBase().CreatedAt, UpdatedAt: item.GetAppBase().UpdatedAt, @@ -179,7 +179,7 @@ func mapStripeAppToAPI(stripeApp appstripeentityapp.App) api.StripeApp { Id: stripeApp.GetID().ID, Type: api.StripeAppType(stripeApp.GetType()), Name: stripeApp.Name, - Status: api.OpenMeterAppAppStatus(stripeApp.GetStatus()), + Status: api.AppStatus(stripeApp.GetStatus()), Listing: mapMarketplaceListing(stripeApp.GetListing()), CreatedAt: stripeApp.CreatedAt, UpdatedAt: stripeApp.UpdatedAt, diff --git a/openmeter/app/httpdriver/marketplace.go b/openmeter/app/httpdriver/marketplace.go index e6601c112..75d72f29c 100644 --- a/openmeter/app/httpdriver/marketplace.go +++ b/openmeter/app/httpdriver/marketplace.go @@ -131,7 +131,7 @@ func (h *handler) MarketplaceAppAPIKeyInstall() MarketplaceAppAPIKeyInstallHandl return MarketplaceAppAPIKeyInstallResponse{ Id: appBase.ID, Name: appBase.Name, - Status: api.OpenMeterAppAppStatus(appBase.Status), + Status: api.AppStatus(appBase.Status), // TODO(pmarton): adapter to implement metadata // Metadata: appBase.Metadata, Listing: mapMarketplaceListing(appBase.Listing), diff --git a/openmeter/entitlement/driver/parser.go b/openmeter/entitlement/driver/parser.go index 3c3795b88..c8170ffe6 100644 --- a/openmeter/entitlement/driver/parser.go +++ b/openmeter/entitlement/driver/parser.go @@ -226,7 +226,7 @@ func ParseAPICreateInput(inp *api.EntitlementCreateInputs, ns string, subjectIdO return request, err } } else { - apiEnum, err := v.MeasureUsageFrom.AsMeasureUsageFromEnum() + apiEnum, err := v.MeasureUsageFrom.AsMeasureUsageFromPreset() if err != nil { return request, err } diff --git a/openmeter/notification/channel.go b/openmeter/notification/channel.go index b0ef159fc..87cb30d0c 100644 --- a/openmeter/notification/channel.go +++ b/openmeter/notification/channel.go @@ -74,7 +74,7 @@ func (c Channel) AsNotificationChannelWebhook() api.NotificationChannelWebhook { } const ( - ChannelTypeWebhook = ChannelType(api.WEBHOOK) + ChannelTypeWebhook = ChannelType(api.NotificationChannelTypeWebhook) ) type ChannelType api.NotificationChannelType diff --git a/openmeter/notification/consumer/balancethreshold_test.go b/openmeter/notification/consumer/balancethreshold_test.go index 936ace39d..d789ec04f 100644 --- a/openmeter/notification/consumer/balancethreshold_test.go +++ b/openmeter/notification/consumer/balancethreshold_test.go @@ -14,14 +14,14 @@ import ( func newNumericThreshold(v float64) notification.BalanceThreshold { return notification.BalanceThreshold{ Value: v, - Type: api.NUMBER, + Type: api.NotificationRuleBalanceThresholdValueTypeNumber, } } func newPercentThreshold(v float64) notification.BalanceThreshold { return notification.BalanceThreshold{ Value: v, - Type: api.PERCENT, + Type: api.NotificationRuleBalanceThresholdValueTypePercent, } } diff --git a/openmeter/notification/consumer/balancetreshold.go b/openmeter/notification/consumer/balancetreshold.go index 2da3606cd..805782e04 100644 --- a/openmeter/notification/consumer/balancetreshold.go +++ b/openmeter/notification/consumer/balancetreshold.go @@ -273,12 +273,12 @@ func getTotalGrantsFromValue(value api.EntitlementValue) float64 { func getBalanceThreshold(threshold notification.BalanceThreshold, eValue api.EntitlementValue) (balanceThreshold, error) { switch threshold.Type { - case api.NUMBER: + case api.NotificationRuleBalanceThresholdValueTypeNumber: return balanceThreshold{ BalanceThreshold: threshold, NumericThreshold: threshold.Value, }, nil - case api.PERCENT: + case api.NotificationRuleBalanceThresholdValueTypePercent: totalGrants := getTotalGrantsFromValue(eValue) // In case there are no grants yet, we can't calculate the actual value, we are filtering out the diff --git a/openmeter/notification/event.go b/openmeter/notification/event.go index 102191d0d..439b1a613 100644 --- a/openmeter/notification/event.go +++ b/openmeter/notification/event.go @@ -321,10 +321,10 @@ func (i CreateEventInput) Validate(ctx context.Context, service Service) error { } const ( - EventDeliveryStatusStateSuccess = EventDeliveryStatusState(api.SUCCESS) - EventDeliveryStatusStateFailed = EventDeliveryStatusState(api.FAILED) - EventDeliveryStatusStateSending = EventDeliveryStatusState(api.SENDING) - EventDeliveryStatusStatePending = EventDeliveryStatusState(api.PENDING) + EventDeliveryStatusStateSuccess = EventDeliveryStatusState(api.NotificationEventDeliveryStatusStateSuccess) + EventDeliveryStatusStateFailed = EventDeliveryStatusState(api.NotificationEventDeliveryStatusStateFailed) + EventDeliveryStatusStateSending = EventDeliveryStatusState(api.NotificationEventDeliveryStatusStateSending) + EventDeliveryStatusStatePending = EventDeliveryStatusState(api.NotificationEventDeliveryStatusStatePending) ) type EventDeliveryStatusState string diff --git a/openmeter/notification/internal/rule.go b/openmeter/notification/internal/rule.go index 09af73a57..80b222748 100644 --- a/openmeter/notification/internal/rule.go +++ b/openmeter/notification/internal/rule.go @@ -76,7 +76,7 @@ func NewTestEventPayload(eventType notification.EventType) notification.EventPay StripeCustomerId: convert.ToPointer("01J5AW2XS6DYHH7E9PNJSQJ341"), }, Threshold: api.NotificationRuleBalanceThresholdValue{ - Type: api.PERCENT, + Type: api.NotificationRuleBalanceThresholdValueTypePercent, Value: 50, }, Value: api.EntitlementValue{ diff --git a/openmeter/notification/rule.go b/openmeter/notification/rule.go index a0e6aa91c..c74a737a5 100644 --- a/openmeter/notification/rule.go +++ b/openmeter/notification/rule.go @@ -22,8 +22,8 @@ type ( ) const ( - BalanceThresholdTypeNumber = api.NUMBER - BalanceThresholdTypePercent = api.PERCENT + BalanceThresholdTypeNumber = api.NotificationRuleBalanceThresholdValueTypeNumber + BalanceThresholdTypePercent = api.NotificationRuleBalanceThresholdValueTypePercent ) type Rule struct { diff --git a/test/notification/consumer_balance.go b/test/notification/consumer_balance.go index c734e43e8..2ed4e9b75 100644 --- a/test/notification/consumer_balance.go +++ b/test/notification/consumer_balance.go @@ -187,7 +187,7 @@ func (s *BalanceNotificaiontHandlerTestSuite) TestGrantingFlow(ctx context.Conte require.NoError(t, event.Payload.BalanceThreshold.Validate(), "Event must be valid") require.Equal(t, api.NotificationRuleBalanceThresholdValue{ Value: 95, - Type: api.PERCENT, + Type: api.NotificationRuleBalanceThresholdValueTypePercent, }, event.Payload.BalanceThreshold.Threshold) // Step 3: Additional events hitting the same 95% threshold should not create new events @@ -254,7 +254,7 @@ func (s *BalanceNotificaiontHandlerTestSuite) TestGrantingFlow(ctx context.Conte require.NotEmpty(t, event.Annotations[notification.AnnotationEventDedupeHash], "Event must have a deduplication hash") require.Equal(t, api.NotificationRuleBalanceThresholdValue{ Value: 1000, - Type: api.NUMBER, + Type: api.NotificationRuleBalanceThresholdValueTypeNumber, }, event.Payload.BalanceThreshold.Threshold) // Step 6: The user hits the 95% threshold again @@ -281,7 +281,7 @@ func (s *BalanceNotificaiontHandlerTestSuite) TestGrantingFlow(ctx context.Conte require.Equal(t, notification.EventTypeBalanceThreshold, event.Payload.Type, "Event must be of type balance threshold") require.Equal(t, api.NotificationRuleBalanceThresholdValue{ Value: 95, - Type: api.PERCENT, + Type: api.NotificationRuleBalanceThresholdValueTypePercent, }, event.Payload.BalanceThreshold.Threshold) // Step 7: The user gets +1000 credits, given that the 95% threshold is no longer valid @@ -311,7 +311,7 @@ func (s *BalanceNotificaiontHandlerTestSuite) TestGrantingFlow(ctx context.Conte require.Equal(t, notification.EventTypeBalanceThreshold, event.Payload.Type, "Event must be of type balance threshold") require.Equal(t, api.NotificationRuleBalanceThresholdValue{ Value: 1000, - Type: api.NUMBER, + Type: api.NotificationRuleBalanceThresholdValueTypeNumber, }, event.Payload.BalanceThreshold.Threshold) // Step 8: The entitlement gets reset, no events should be created @@ -373,7 +373,7 @@ func (s *BalanceNotificaiontHandlerTestSuite) TestGrantingFlow(ctx context.Conte require.Equal(t, notification.EventTypeBalanceThreshold, event.Payload.Type, "Event must be of type balance threshold") require.Equal(t, api.NotificationRuleBalanceThresholdValue{ Value: 95, - Type: api.PERCENT, + Type: api.NotificationRuleBalanceThresholdValueTypePercent, }, event.Payload.BalanceThreshold.Threshold) }