From 12e84f66a1dbd401684ae4b7366fb956677085b6 Mon Sep 17 00:00:00 2001 From: Peter Turi Date: Tue, 21 Jan 2025 13:26:03 +0100 Subject: [PATCH] feat: currencies endpoint v2 --- api/api.gen.go | 1559 ++++++++------- api/client/go/client.gen.go | 1696 +++++++++-------- api/client/node/schemas/openapi.ts | 128 +- api/client/web/src/client/openapi.ts | 128 +- api/openapi.cloud.yaml | 1022 +++++----- api/openapi.yaml | 1061 +++++------ api/spec/src/cloud/main.tsp | 12 +- api/spec/src/{static => info}/currencies.tsp | 2 +- api/spec/src/{static => info}/main.tsp | 2 +- api/spec/src/{static => info}/routes.tsp | 7 +- api/spec/src/main.tsp | 6 +- .../{static => info}/httpdriver/currencies.go | 0 .../{static => info}/httpdriver/driver.go | 0 .../{static => info}/httpdriver/errors.go | 0 .../server/router/{static.go => info.go} | 4 +- openmeter/server/router/router.go | 6 +- 16 files changed, 3030 insertions(+), 2603 deletions(-) rename api/spec/src/{static => info}/currencies.tsp (93%) rename api/spec/src/{static => info}/main.tsp (85%) rename api/spec/src/{static => info}/routes.tsp (74%) rename openmeter/{static => info}/httpdriver/currencies.go (100%) rename openmeter/{static => info}/httpdriver/driver.go (100%) rename openmeter/{static => info}/httpdriver/errors.go (100%) rename openmeter/server/router/{static.go => info.go} (62%) diff --git a/api/api.gen.go b/api/api.gen.go index 35ea74f66..9c550c487 100644 --- a/api/api.gen.go +++ b/api/api.gen.go @@ -7971,6 +7971,9 @@ type ServerInterface interface { // Void grant // (DELETE /api/v1/grants/{grantId}) VoidGrant(w http.ResponseWriter, r *http.Request, grantId string) + // List supported currencies + // (GET /api/v1/info/currencies) + ListCurrencies(w http.ResponseWriter, r *http.Request) // List available apps // (GET /api/v1/marketplace/listings) ListMarketplaceListings(w http.ResponseWriter, r *http.Request, params ListMarketplaceListingsParams) @@ -8073,9 +8076,6 @@ type ServerInterface interface { // Create consumer portal token // (POST /api/v1/portal/tokens) CreatePortalToken(w http.ResponseWriter, r *http.Request) - // List supported currencies - // (GET /api/v1/static/currencies) - ListCurrencies(w http.ResponseWriter, r *http.Request) // Create checkout session // (POST /api/v1/stripe/checkout/sessions) CreateStripeCheckoutSession(w http.ResponseWriter, r *http.Request) @@ -8430,6 +8430,12 @@ func (_ Unimplemented) VoidGrant(w http.ResponseWriter, r *http.Request, grantId w.WriteHeader(http.StatusNotImplemented) } +// List supported currencies +// (GET /api/v1/info/currencies) +func (_ Unimplemented) ListCurrencies(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusNotImplemented) +} + // List available apps // (GET /api/v1/marketplace/listings) func (_ Unimplemented) ListMarketplaceListings(w http.ResponseWriter, r *http.Request, params ListMarketplaceListingsParams) { @@ -8634,12 +8640,6 @@ func (_ Unimplemented) CreatePortalToken(w http.ResponseWriter, r *http.Request) w.WriteHeader(http.StatusNotImplemented) } -// List supported currencies -// (GET /api/v1/static/currencies) -func (_ Unimplemented) ListCurrencies(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusNotImplemented) -} - // Create checkout session // (POST /api/v1/stripe/checkout/sessions) func (_ Unimplemented) CreateStripeCheckoutSession(w http.ResponseWriter, r *http.Request) { @@ -10536,6 +10536,20 @@ func (siw *ServerInterfaceWrapper) VoidGrant(w http.ResponseWriter, r *http.Requ handler.ServeHTTP(w, r) } +// ListCurrencies operation middleware +func (siw *ServerInterfaceWrapper) ListCurrencies(w http.ResponseWriter, r *http.Request) { + + handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + siw.Handler.ListCurrencies(w, r) + })) + + for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { + handler = siw.HandlerMiddlewares[i](handler) + } + + handler.ServeHTTP(w, r) +} + // ListMarketplaceListings operation middleware func (siw *ServerInterfaceWrapper) ListMarketplaceListings(w http.ResponseWriter, r *http.Request) { @@ -11734,20 +11748,6 @@ func (siw *ServerInterfaceWrapper) CreatePortalToken(w http.ResponseWriter, r *h handler.ServeHTTP(w, r) } -// ListCurrencies operation middleware -func (siw *ServerInterfaceWrapper) ListCurrencies(w http.ResponseWriter, r *http.Request) { - - handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - siw.Handler.ListCurrencies(w, r) - })) - - for i := len(siw.HandlerMiddlewares) - 1; i >= 0; i-- { - handler = siw.HandlerMiddlewares[i](handler) - } - - handler.ServeHTTP(w, r) -} - // CreateStripeCheckoutSession operation middleware func (siw *ServerInterfaceWrapper) CreateStripeCheckoutSession(w http.ResponseWriter, r *http.Request) { @@ -12602,6 +12602,9 @@ func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handl r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/grants/{grantId}", wrapper.VoidGrant) }) + r.Group(func(r chi.Router) { + r.Get(options.BaseURL+"/api/v1/info/currencies", wrapper.ListCurrencies) + }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/marketplace/listings", wrapper.ListMarketplaceListings) }) @@ -12704,9 +12707,6 @@ func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handl r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/portal/tokens", wrapper.CreatePortalToken) }) - r.Group(func(r chi.Router) { - r.Get(options.BaseURL+"/api/v1/static/currencies", wrapper.ListCurrencies) - }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/stripe/checkout/sessions", wrapper.CreateStripeCheckoutSession) }) @@ -12768,763 +12768,762 @@ func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handl // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "BwA=", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/client/go/client.gen.go b/api/client/go/client.gen.go index bbb933fde..7fa41fa22 100644 --- a/api/client/go/client.gen.go +++ b/api/client/go/client.gen.go @@ -1140,6 +1140,21 @@ type CreateStripeCheckoutSessionResult struct { // ext: Extensions for additional codes that may be required. type CreditNoteOriginalInvoiceRef = InvoiceGenericDocumentRef +// Currency Currency describes a currency supported by OpenMeter. +type Currency struct { + // Code The currency ISO code. + Code CurrencyCode `json:"code"` + + // Name The currency name. + Name string `json:"name"` + + // Subunits Subunit of the currency. + Subunits uint32 `json:"subunits"` + + // Symbol The currency symbol. + Symbol string `json:"symbol"` +} + // 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 @@ -8108,6 +8123,9 @@ type ClientInterface interface { // VoidGrant request VoidGrant(ctx context.Context, grantId string, reqEditors ...RequestEditorFn) (*http.Response, error) + // ListCurrencies request + ListCurrencies(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + // ListMarketplaceListings request ListMarketplaceListings(ctx context.Context, params *ListMarketplaceListingsParams, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -9146,6 +9164,18 @@ func (c *Client) VoidGrant(ctx context.Context, grantId string, reqEditors ...Re return c.Client.Do(req) } +func (c *Client) ListCurrencies(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewListCurrenciesRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) ListMarketplaceListings(ctx context.Context, params *ListMarketplaceListingsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewListMarketplaceListingsRequest(c.Server, params) if err != nil { @@ -13295,6 +13325,33 @@ func NewVoidGrantRequest(server string, grantId string) (*http.Request, error) { return req, nil } +// NewListCurrenciesRequest generates requests for ListCurrencies +func NewListCurrenciesRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/v1/info/currencies") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + // NewListMarketplaceListingsRequest generates requests for ListMarketplaceListings func NewListMarketplaceListingsRequest(server string, params *ListMarketplaceListingsParams) (*http.Request, error) { var err error @@ -16839,6 +16896,9 @@ type ClientWithResponsesInterface interface { // VoidGrantWithResponse request VoidGrantWithResponse(ctx context.Context, grantId string, reqEditors ...RequestEditorFn) (*VoidGrantResponse, error) + // ListCurrenciesWithResponse request + ListCurrenciesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListCurrenciesResponse, error) + // ListMarketplaceListingsWithResponse request ListMarketplaceListingsWithResponse(ctx context.Context, params *ListMarketplaceListingsParams, reqEditors ...RequestEditorFn) (*ListMarketplaceListingsResponse, error) @@ -18459,6 +18519,34 @@ func (r VoidGrantResponse) StatusCode() int { return 0 } +type ListCurrenciesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *[]Currency + ApplicationproblemJSON400 *BadRequestProblemResponse + ApplicationproblemJSON401 *UnauthorizedProblemResponse + ApplicationproblemJSON403 *ForbiddenProblemResponse + ApplicationproblemJSON500 *InternalServerErrorProblemResponse + ApplicationproblemJSON503 *ServiceUnavailableProblemResponse + ApplicationproblemJSONDefault *UnexpectedProblemResponse +} + +// Status returns HTTPResponse.Status +func (r ListCurrenciesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ListCurrenciesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + type ListMarketplaceListingsResponse struct { Body []byte HTTPResponse *http.Response @@ -20734,6 +20822,15 @@ func (c *ClientWithResponses) VoidGrantWithResponse(ctx context.Context, grantId return ParseVoidGrantResponse(rsp) } +// ListCurrenciesWithResponse request returning *ListCurrenciesResponse +func (c *ClientWithResponses) ListCurrenciesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListCurrenciesResponse, error) { + rsp, err := c.ListCurrencies(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseListCurrenciesResponse(rsp) +} + // ListMarketplaceListingsWithResponse request returning *ListMarketplaceListingsResponse func (c *ClientWithResponses) ListMarketplaceListingsWithResponse(ctx context.Context, params *ListMarketplaceListingsParams, reqEditors ...RequestEditorFn) (*ListMarketplaceListingsResponse, error) { rsp, err := c.ListMarketplaceListings(ctx, params, reqEditors...) @@ -24924,6 +25021,74 @@ func ParseVoidGrantResponse(rsp *http.Response) (*VoidGrantResponse, error) { return response, nil } +// ParseListCurrenciesResponse parses an HTTP response from a ListCurrenciesWithResponse call +func ParseListCurrenciesResponse(rsp *http.Response) (*ListCurrenciesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ListCurrenciesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest []Currency + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest BadRequestProblemResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.ApplicationproblemJSON400 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest UnauthorizedProblemResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.ApplicationproblemJSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest ForbiddenProblemResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.ApplicationproblemJSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest InternalServerErrorProblemResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.ApplicationproblemJSON500 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest ServiceUnavailableProblemResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.ApplicationproblemJSON503 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest UnexpectedProblemResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.ApplicationproblemJSONDefault = &dest + + } + + return response, nil +} + // ParseListMarketplaceListingsResponse parses an HTTP response from a ListMarketplaceListingsWithResponse call func ParseListMarketplaceListingsResponse(rsp *http.Response) (*ListMarketplaceListingsResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) @@ -29155,770 +29320,773 @@ func ParseUnscheduleCancelationResponse(rsp *http.Response) (*UnscheduleCancelat // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "AP//unfpBvJ/BwA=", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/client/node/schemas/openapi.ts b/api/client/node/schemas/openapi.ts index afb1892e7..fdddf088c 100644 --- a/api/client/node/schemas/openapi.ts +++ b/api/client/node/schemas/openapi.ts @@ -755,6 +755,26 @@ export interface paths { patch?: never trace?: never } + '/api/v1/info/currencies': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * List supported currencies + * @description List all supported currencies. + */ + get: operations['listCurrencies'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } '/api/v1/marketplace/listings': { parameters: { query?: never @@ -2343,6 +2363,20 @@ export interface components { */ readonly url: string } & WithRequired + /** @description Currency describes a currency supported by OpenMeter. */ + Currency: { + /** @description The currency ISO code. */ + code: components['schemas']['CurrencyCode'] + /** @description The currency name. */ + name: string + /** @description The currency symbol. */ + symbol: string + /** + * Format: uint32 + * @description Subunit of the currency. + */ + subunits: number + } /** * @description Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. * Custom three-letter currency codes are also supported for convenience. @@ -6067,11 +6101,7 @@ export interface components { * Price * @description The price of the rate card. * When null, the feature or service is free. - * @example { - * "type": "flat", - * "amount": "100", - * "paymentTerm": "in_arrears" - * } + * @example {} */ price: components['schemas']['FlatPriceWithPaymentTerm'] | null } @@ -6597,9 +6627,7 @@ export interface components { * @example Customer Name */ displayName?: string | null - /** @example { - * "hubspotId": "123456" - * } */ + /** @example {} */ metadata?: { [key: string]: unknown } | null @@ -6642,9 +6670,7 @@ export interface components { * @example Customer Name */ displayName?: string | null - /** @example { - * "hubspotId": "123456" - * } */ + /** @example {} */ metadata?: { [key: string]: unknown } | null @@ -6917,11 +6943,7 @@ export interface components { * Price * @description The price of the rate card. * When null, the feature or service is free. - * @example { - * "type": "flat", - * "amount": "100", - * "paymentTerm": "in_arrears" - * } + * @example {} */ price: | (components['schemas']['FlatPriceWithPaymentTerm'] | null) @@ -11749,6 +11771,80 @@ export interface operations { } } } + listCurrencies: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description The request has succeeded. */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Currency'][] + } + } + /** @description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['BadRequestProblemResponse'] + } + } + /** @description The request has not been applied because it lacks valid authentication credentials for the target resource. */ + 401: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['UnauthorizedProblemResponse'] + } + } + /** @description The server understood the request but refuses to authorize it. */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['ForbiddenProblemResponse'] + } + } + /** @description The server encountered an unexpected condition that prevented it from fulfilling the request. */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['InternalServerErrorProblemResponse'] + } + } + /** @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. */ + 503: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['ServiceUnavailableProblemResponse'] + } + } + /** @description An unexpected error response. */ + default: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['UnexpectedProblemResponse'] + } + } + } + } listMarketplaceListings: { parameters: { query?: { diff --git a/api/client/web/src/client/openapi.ts b/api/client/web/src/client/openapi.ts index d886677c3..db437c9a0 100644 --- a/api/client/web/src/client/openapi.ts +++ b/api/client/web/src/client/openapi.ts @@ -755,6 +755,26 @@ export interface paths { patch?: never trace?: never } + '/api/v1/info/currencies': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * List supported currencies + * @description List all supported currencies. + */ + get: operations['listCurrencies'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } '/api/v1/marketplace/listings': { parameters: { query?: never @@ -2343,6 +2363,20 @@ export interface components { */ readonly url: string } & WithRequired + /** @description Currency describes a currency supported by OpenMeter. */ + Currency: { + /** @description The currency ISO code. */ + code: components['schemas']['CurrencyCode'] + /** @description The currency name. */ + name: string + /** @description The currency symbol. */ + symbol: string + /** + * Format: uint32 + * @description Subunit of the currency. + */ + subunits: number + } /** * @description Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. * Custom three-letter currency codes are also supported for convenience. @@ -6070,11 +6104,7 @@ export interface components { * Price * @description The price of the rate card. * When null, the feature or service is free. - * @example { - * "type": "flat", - * "amount": "100", - * "paymentTerm": "in_arrears" - * } + * @example {} */ price: components['schemas']['FlatPriceWithPaymentTerm'] | null } @@ -6606,9 +6636,7 @@ export interface components { * @example Customer Name */ displayName?: string | null - /** @example { - * "hubspotId": "123456" - * } */ + /** @example {} */ metadata?: { [key: string]: unknown } | null @@ -6651,9 +6679,7 @@ export interface components { * @example Customer Name */ displayName?: string | null - /** @example { - * "hubspotId": "123456" - * } */ + /** @example {} */ metadata?: { [key: string]: unknown } | null @@ -6926,11 +6952,7 @@ export interface components { * Price * @description The price of the rate card. * When null, the feature or service is free. - * @example { - * "type": "flat", - * "amount": "100", - * "paymentTerm": "in_arrears" - * } + * @example {} */ price: | (components['schemas']['FlatPriceWithPaymentTerm'] | null) @@ -11758,6 +11780,80 @@ export interface operations { } } } + listCurrencies: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description The request has succeeded. */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Currency'][] + } + } + /** @description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['BadRequestProblemResponse'] + } + } + /** @description The request has not been applied because it lacks valid authentication credentials for the target resource. */ + 401: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['UnauthorizedProblemResponse'] + } + } + /** @description The server understood the request but refuses to authorize it. */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['ForbiddenProblemResponse'] + } + } + /** @description The server encountered an unexpected condition that prevented it from fulfilling the request. */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['InternalServerErrorProblemResponse'] + } + } + /** @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. */ + 503: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['ServiceUnavailableProblemResponse'] + } + } + /** @description An unexpected error response. */ + default: { + headers: { + [name: string]: unknown + } + content: { + 'application/problem+json': components['schemas']['UnexpectedProblemResponse'] + } + } + } + } listMarketplaceListings: { parameters: { query?: { diff --git a/api/openapi.cloud.yaml b/api/openapi.cloud.yaml index dbe980d53..da63f5f27 100644 --- a/api/openapi.cloud.yaml +++ b/api/openapi.cloud.yaml @@ -34,6 +34,8 @@ tags: description: Manage your billing profiles and invoices. Currently in private preview - [contact us](mailto:contact@openmeter.cloud) for access. - name: Apps (Private Preview) description: Manage integrations for extending OpenMeter's functionality. Currently in private preview - [contact us](mailto:contact@openmeter.cloud) for access. + - name: Lookup Information + description: Lookup information for static data like currencies paths: /api/v1/apps: get: @@ -99,8 +101,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -162,8 +164,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -231,8 +233,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -291,8 +293,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -351,8 +353,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -425,9 +427,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH explode: false - $ref: '#/components/parameters/Pagination.page' - $ref: '#/components/parameters/Pagination.pageSize' @@ -491,8 +493,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -568,8 +570,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -631,8 +633,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -696,8 +698,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -961,8 +963,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: expand in: query required: false @@ -1044,8 +1046,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -1106,8 +1108,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1181,8 +1183,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1252,8 +1254,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1316,15 +1318,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: lineId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1386,15 +1388,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: lineId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -1452,15 +1454,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: lineId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1532,8 +1534,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1599,8 +1601,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1668,8 +1670,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1870,8 +1872,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -1929,8 +1931,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: expand in: query required: false @@ -2000,8 +2002,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2186,8 +2188,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - $ref: '#/components/parameters/PaginatedQuery.page' - $ref: '#/components/parameters/PaginatedQuery.pageSize' - $ref: '#/components/parameters/queryCustomerList.type' @@ -2252,8 +2254,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2326,15 +2328,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: appId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -2393,8 +2395,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2456,8 +2458,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2525,8 +2527,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -2740,8 +2742,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -3403,6 +3405,59 @@ paths: $ref: '#/components/schemas/UnexpectedProblemResponse' tags: - Entitlements (Beta) + /api/v1/info/currencies: + get: + operationId: listCurrencies + summary: List supported currencies + description: List all supported currencies. + parameters: [] + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Currency' + '400': + description: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/BadRequestProblemResponse' + '401': + description: The request has not been applied because it lacks valid authentication credentials for the target resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/UnauthorizedProblemResponse' + '403': + description: The server understood the request but refuses to authorize it. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ForbiddenProblemResponse' + '500': + description: The server encountered an unexpected condition that prevented it from fulfilling the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/InternalServerErrorProblemResponse' + '503': + 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. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ServiceUnavailableProblemResponse' + default: + description: An unexpected error response. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/UnexpectedProblemResponse' + tags: + - Lookup Information /api/v1/marketplace/listings: get: operationId: listMarketplaceListings @@ -4205,8 +4260,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4274,8 +4329,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4340,8 +4395,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -4404,7 +4459,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: to in: query required: false @@ -4414,7 +4469,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: feature in: query required: false @@ -4448,9 +4503,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - name: channel in: query required: false @@ -4462,9 +4517,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - $ref: '#/components/parameters/Pagination.page' - $ref: '#/components/parameters/Pagination.pageSize' - $ref: '#/components/parameters/NotificationEventOrderByOrdering.order' @@ -4750,8 +4805,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4819,8 +4874,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4885,8 +4940,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -4945,8 +5000,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '201': description: The request has succeeded and a new resource has been created as a result. @@ -5077,9 +5132,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - name: key in: query required: false @@ -5222,9 +5277,9 @@ paths: schema: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string minLength: 1 maxLength: 64 @@ -5294,8 +5349,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -5364,9 +5419,9 @@ paths: schema: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string minLength: 1 maxLength: 64 @@ -5449,8 +5504,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -5509,8 +5564,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -5573,8 +5628,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -6581,7 +6636,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z responses: '200': description: The request has succeeded. @@ -6792,7 +6847,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: to in: query required: false @@ -6802,7 +6857,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: windowSize in: query required: true @@ -7011,8 +7066,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: at in: query required: false @@ -7020,7 +7075,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z explode: false responses: '200': @@ -7085,8 +7140,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7161,8 +7216,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7230,8 +7285,8 @@ paths: effectiveDate: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: If not provided the subscription is canceled immediately. - example: '2023-01-01T01:01:01.001Z' /api/v1/subscriptions/{subscriptionId}/change: post: operationId: changeSubscription @@ -7245,8 +7300,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7321,8 +7376,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7401,8 +7456,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7576,9 +7631,9 @@ components: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH explode: false InvoiceListParams.expand: name: expand @@ -7616,7 +7671,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z explode: false InvoiceListParams.issuedBefore: name: issuedBefore @@ -7626,7 +7681,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z explode: false InvoiceListParams.statuses: name: statuses @@ -7717,7 +7772,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z MeterQuery.groupBy: name: groupBy in: query @@ -7749,7 +7804,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z MeterQuery.windowSize: name: windowSize in: query @@ -8011,9 +8066,9 @@ components: Annotations: type: object additionalProperties: {} - description: Set of key-value pairs managed by the system. Cannot be modified by user. example: externalId: 019142cc-a016-796a-8113-1a942fecd26d + description: Set of key-value pairs managed by the system. Cannot be modified by user. App: anyOf: - $ref: '#/components/schemas/StripeApp' @@ -8080,15 +8135,15 @@ components: description: type: string description: The capability description. - description: |- - App capability. - - Capabilities only exist in config so they don't extend the Resource model. example: type: collectPayments key: stripe_collect_payment name: Collect Payments description: Stripe payments collects outstanding revenue with Stripe customer's default payment method. + description: |- + App capability. + + Capabilities only exist in config so they don't extend the Resource model. AppCapabilityType: type: string enum: @@ -8131,9 +8186,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: |- App reference @@ -8167,14 +8222,14 @@ components: usage: type: number format: double - description: The total usage of the feature in the period. example: 100 + description: The total usage of the feature in the period. readOnly: true balanceAtStart: type: number format: double - description: The entitlement balance at the start of the period. example: 100 + description: The entitlement balance at the start of the period. readOnly: true description: The balance history window. BillingLineCharge: @@ -8188,29 +8243,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ID of the charge or discount. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true percent: allOf: @@ -8291,9 +8346,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -8317,22 +8372,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true supplier: @@ -8412,27 +8467,27 @@ components: tax: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string description: The tax app used for this workflow x-go-type: string invoicing: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string description: The invoicing app used for this workflow x-go-type: string payment: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string description: The payment app used for this workflow x-go-type: string @@ -8496,34 +8551,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true workflow: $ref: '#/components/schemas/BillingProfileCustomerWorkflowOverride' billingProfile: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The billing profile this override is associated with. If not provided, the default billing profile is chosen if available. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Customer specific workflow overrides. BillingProfileCustomerOverrideCreate: type: object @@ -8532,12 +8587,12 @@ components: $ref: '#/components/schemas/BillingProfileCustomerWorkflowOverrideCreate' billingProfile: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The billing profile this override is associated with. If not provided, the default billing profile is chosen if available. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Payload for creating a new or updating an existing customer override. BillingProfileCustomerOverrideOrderBy: type: string @@ -8554,16 +8609,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -8648,16 +8703,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -8760,12 +8815,12 @@ components: interval: type: string format: ISO8601 + example: P1D description: |- 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. - example: P1D default: PT1H description: Workflow collection specifies how to collect the pending line items for an invoice BillingWorkflowCreate: @@ -8794,14 +8849,14 @@ components: draftPeriod: type: string format: ISO8601 - description: The period for the invoice to be kept in draft status for manual reviews. example: P1D + description: The period for the invoice to be kept in draft status for manual reviews. default: P1D dueAfter: type: string format: ISO8601 - description: The period after which the invoice is due. example: P1D + description: The period after which the invoice is due. default: P7D progressiveBilling: type: boolean @@ -8872,13 +8927,13 @@ components: description: The request could not be completed due to a conflict with the current state of the target resource. CountryCode: type: string + example: US minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ description: |- [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. - example: US CreateStripeCheckoutSessionRequest: type: object required: @@ -8887,9 +8942,9 @@ components: properties: appId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: If not provided, the default Stripe app is used if any. - example: 01G65Z755AFWAKHE12NY0CQ9FH customer: anyOf: - $ref: '#/components/schemas/CustomerId' @@ -8946,9 +9001,9 @@ components: properties: customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The OpenMeter customer ID. - example: 01G65Z755AFWAKHE12NY0CQ9FH stripeCustomerId: type: string description: The Stripe customer ID. @@ -8990,8 +9045,8 @@ components: issuedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: IssueAt reflects the time the document was issued. - example: '2023-01-01T01:01:01.001Z' readOnly: true number: allOf: @@ -9006,15 +9061,38 @@ components: allOf: - $ref: '#/components/schemas/InvoiceGenericDocumentRef' description: CreditNoteOriginalInvoiceRef is used to reference the original invoice that a credit note is based on. + Currency: + type: object + required: + - code + - name + - symbol + - subunits + properties: + code: + allOf: + - $ref: '#/components/schemas/CurrencyCode' + description: The currency ISO code. + name: + type: string + description: The currency name. + symbol: + type: string + description: The currency symbol. + subunits: + type: integer + format: uint32 + description: Subunit of the currency. + description: Currency describes a currency supported by OpenMeter. CurrencyCode: type: string + example: USD minLength: 3 maxLength: 3 pattern: ^[A-Z]{3}$ description: |- Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. Custom three-letter currency codes are also supported for convenience. - example: USD CustomPlanInput: type: object allOf: @@ -9068,8 +9146,8 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' customPlan: $ref: '#/components/schemas/CustomPlanInput' description: Change a custom subscription. @@ -9083,15 +9161,15 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' customPlan: $ref: '#/components/schemas/CustomPlanInput' customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Create a custom subscription. Customer: type: object @@ -9104,9 +9182,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -9130,22 +9208,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true usageAttribution: @@ -9173,20 +9251,20 @@ components: title: Billing Address currentSubscriptionId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The ID of the Subscription if the customer has one. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: Current Subscription ID readOnly: true - description: A customer object. example: id: 01G65Z755AFWAKHE12NY0CQ9FH name: ACME Inc. usageAttribution: subjectKeys: - my_subject_key - createdAt: '2024-01-01T01:01:01.001Z' - updatedAt: '2024-01-01T01:01:01.001Z' + createdAt: 2024-01-01T01:01:01.001Z + updatedAt: 2024-01-01T01:01:01.001Z + description: A customer object. CustomerAppData: anyOf: - $ref: '#/components/schemas/StripeCustomerAppData' @@ -9210,16 +9288,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -9281,9 +9359,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Create Stripe checkout session customer ID. CustomerOrderBy: type: string @@ -9302,16 +9380,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -9528,22 +9606,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -9553,18 +9631,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true type: allOf: @@ -9587,9 +9665,9 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV currentUsagePeriod: allOf: - $ref: '#/components/schemas/Period' @@ -9618,22 +9696,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -9643,18 +9721,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true subjectKey: type: string @@ -9672,9 +9750,9 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV currentUsagePeriod: allOf: - $ref: '#/components/schemas/Period' @@ -9702,11 +9780,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -9746,33 +9824,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true amount: type: number format: double + example: 100 minimum: 0 description: The amount to grant. Should be a positive number. - example: 100 priority: type: integer format: uint8 + example: 1 minimum: 1 maximum: 255 description: |- @@ -9782,12 +9861,11 @@ components: When there are several grants available for the same subject, the system selects the grant with the highest priority. In cases where grants share the same priority level, the grant closest to its expiration will be used first. In the case of two grants have identical priorities and expiration dates, the system will use the grant that was created first. - example: 1 effectiveAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Effective date for grants and anchor for recurring grants. Provided value will be ceiled to metering windowSize (minute). - example: '2023-01-01T01:01:01.001Z' expiration: allOf: - $ref: '#/components/schemas/ExpirationPeriod' @@ -9795,52 +9873,52 @@ components: maxRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 minRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 metadata: allOf: - $ref: '#/components/schemas/Metadata' - description: The grant metadata. example: stripePaymentId: pi_4OrAkhLvyihio9p51h9iiFnB + description: The grant metadata. id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true entitlementId: type: string - description: The unique entitlement ULID that the grant is associated with. example: 01ARZ3NDEKTSV4RRFFQ69G5FAV + description: The unique entitlement ULID that the grant is associated with. readOnly: true nextRecurrence: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The next time the grant will recurr. - example: '2023-01-01T01:01:01.001Z' expiresAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the grant expires. - example: '2023-01-01T01:01:01.001Z' readOnly: true voidedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the grant was voided. - example: '2023-01-01T01:01:01.001Z' recurrence: allOf: - $ref: '#/components/schemas/RecurringPeriod' @@ -9856,12 +9934,13 @@ components: amount: type: number format: double + example: 100 minimum: 0 description: The amount to grant. Should be a positive number. - example: 100 priority: type: integer format: uint8 + example: 1 minimum: 1 maximum: 255 description: |- @@ -9871,12 +9950,11 @@ components: When there are several grants available for the same subject, the system selects the grant with the highest priority. In cases where grants share the same priority level, the grant closest to its expiration will be used first. In the case of two grants have identical priorities and expiration dates, the system will use the grant that was created first. - example: 1 effectiveAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Effective date for grants and anchor for recurring grants. Provided value will be ceiled to metering windowSize (minute). - example: '2023-01-01T01:01:01.001Z' expiration: allOf: - $ref: '#/components/schemas/ExpirationPeriod' @@ -9884,25 +9962,25 @@ components: maxRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 minRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 metadata: allOf: - $ref: '#/components/schemas/Metadata' - description: The grant metadata. example: stripePaymentId: pi_4OrAkhLvyihio9p51h9iiFnB + description: The grant metadata. recurrence: allOf: - $ref: '#/components/schemas/RecurringPeriodCreateInput' @@ -9964,22 +10042,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -9989,18 +10067,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true subjectKey: type: string @@ -10018,14 +10096,14 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV lastReset: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the last reset happened. - example: '2023-01-01T01:01:01.001Z' readOnly: true currentUsagePeriod: allOf: @@ -10035,8 +10113,8 @@ components: measureUsageFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time from which usage is measured. If not specified on creation, defaults to entitlement creation time. - example: '2023-01-01T01:01:01.001Z' readOnly: true usagePeriod: allOf: @@ -10063,11 +10141,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -10134,16 +10212,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -10170,27 +10248,27 @@ components: config: type: string format: json - description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. example: '{ "integrations": ["github"] }' + description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -10200,18 +10278,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true subjectKey: type: string @@ -10229,9 +10307,9 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV currentUsagePeriod: allOf: - $ref: '#/components/schemas/Period' @@ -10258,11 +10336,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -10278,8 +10356,8 @@ components: config: type: string format: json - description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. example: '{ "integrations": ["github"] }' + description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. description: Create inputs for static entitlement EntitlementType: type: string @@ -10296,31 +10374,31 @@ components: properties: hasAccess: type: boolean - description: Whether the subject has access to the feature. Shared accross all entitlement types. example: true + description: Whether the subject has access to the feature. Shared accross all entitlement types. readOnly: true balance: type: number format: double - description: Only available for metered entitlements. Metered entitlements are built around a balance calculation where feature usage is deducted from the issued grants. Balance represents the remaining balance of the entitlement, it's value never turns negative. example: 100 + description: Only available for metered entitlements. Metered entitlements are built around a balance calculation where feature usage is deducted from the issued grants. Balance represents the remaining balance of the entitlement, it's value never turns negative. readOnly: true usage: type: number format: double - description: Only available for metered entitlements. Returns the total feature usage in the current period. example: 50 + description: Only available for metered entitlements. Returns the total feature usage in the current period. readOnly: true overage: type: number format: double - description: Only available for metered entitlements. Overage represents the usage that wasn't covered by grants, e.g. if the subject had a total feature usage of 100 in the period but they were only granted 80, there would be 20 overage. example: 0 + description: Only available for metered entitlements. Overage represents the usage that wasn't covered by grants, e.g. if the subject had a total feature usage of 100 in the period but they were only granted 80, there would be 20 overage. readOnly: true config: type: string - description: Only available for static entitlements. The JSON parsable config of the entitlement. example: '{ key: "value" }' + description: Only available for static entitlements. The JSON parsable config of the entitlement. readOnly: true description: Entitlements are the core of OpenMeter access management. They define access to features for subjects. Entitlements can be metered, boolean, or static. Event: @@ -10334,33 +10412,33 @@ components: properties: id: type: string + example: 5c10fade-1c9e-4d6c-8275-c52c36731d3c minLength: 1 description: Identifies the event. - example: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: type: string + example: service-name minLength: 1 format: uri-reference description: Identifies the context in which an event happened. - example: service-name specversion: type: string + example: '1.0' minLength: 1 description: The version of the CloudEvents specification which the event uses. - example: '1.0' default: '1.0' type: type: string + example: com.example.someevent minLength: 1 description: Contains a value describing the type of event related to the originating occurrence. - example: com.example.someevent datacontenttype: type: string enum: - application/json nullable: true - description: Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP. example: application/json + description: Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP. dataschema: type: string format: uri @@ -10369,14 +10447,14 @@ components: description: Identifies the schema that data adheres to. subject: type: string + example: customer-id minLength: 1 description: Describes the subject of the event in the context of the event producer (identified by source). - example: customer-id time: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp of when the occurrence happened. Must adhere to RFC 3339. - example: '2023-01-01T01:01:01.001Z' nullable: true data: type: object @@ -10385,18 +10463,18 @@ components: description: |- The event payload. Optional, if present it must be a JSON object. - description: |- - CloudEvents Specification JSON Schema - - Optional properties are nullable according to the CloudEvents specification: - OPTIONAL not omitted attributes MAY be represented as a null JSON value. example: id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: service-name specversion: '1.0' type: prompt subject: customer-id - time: '2023-01-01T01:01:01.001Z' + time: 2023-01-01T01:01:01.001Z + description: |- + CloudEvents Specification JSON Schema + + Optional properties are nullable according to the CloudEvents specification: + OPTIONAL not omitted attributes MAY be represented as a null JSON value. x-go-type-import: path: github.com/cloudevents/sdk-go/v2/event x-go-type: event.Event @@ -10421,8 +10499,8 @@ components: description: The unit of time for the expiration period. count: type: integer - description: The number of time units in the expiration period. example: 12 + description: The number of time units in the expiration period. description: The grant expiration definition Feature: type: object @@ -10436,29 +10514,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true archivedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp of when the resource was archived. - example: '2023-01-01T01:01:01.001Z' title: Archival Time readOnly: true key: @@ -10474,35 +10552,35 @@ components: metadata: allOf: - $ref: '#/components/schemas/Metadata' - title: Optional metadata example: key: value + title: Optional metadata meterSlug: type: string minLength: 1 maxLength: 64 pattern: ^[a-z0-9]+(?:_[a-z0-9]+)*$ description: A key is a unique string that is used to identify a resource. - title: Meter slug example: tokens_total + title: Meter slug meterGroupByFilters: type: object additionalProperties: type: string + example: + model: gpt-4 + type: input description: |- Optional meter group by filters. Useful if the meter scope is broader than what feature tracks. Example scenario would be a meter tracking all token use with groupBy fields for the model, then the feature could filter for model=gpt-4. title: Meter group by filters - example: - model: gpt-4 - type: input id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true description: |- Represents a feature that can be enabled or disabled for a plan. @@ -10526,30 +10604,30 @@ components: metadata: allOf: - $ref: '#/components/schemas/Metadata' - title: Optional metadata example: key: value + title: Optional metadata meterSlug: type: string minLength: 1 maxLength: 64 pattern: ^[a-z0-9]+(?:_[a-z0-9]+)*$ description: A key is a unique string that is used to identify a resource. - title: Meter slug example: tokens_total + title: Meter slug meterGroupByFilters: type: object additionalProperties: type: string + example: + model: gpt-4 + type: input description: |- Optional meter group by filters. Useful if the meter scope is broader than what feature tracks. Example scenario would be a meter tracking all token use with groupBy fields for the model, then the feature could filter for model=gpt-4. title: Meter group by filters - example: - model: gpt-4 - type: input description: |- Represents a feature that can be enabled or disabled for a plan. Used both for product catalog and entitlements. @@ -10561,17 +10639,17 @@ components: properties: id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Unique identifier of a feature. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Feature Unique Identifier key: type: string + example: gpt4_tokens description: |- The key is an immutable unique identifier of the feature used throughout the API, for example when interacting with a subject's entitlements. title: Feature Key - example: gpt4_tokens description: Limited representation of a feature resource which includes only its unique identifiers (id, key). FeatureOrderBy: type: string @@ -10590,16 +10668,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -10672,44 +10750,44 @@ components: usage: type: number format: double - description: The total usage of the grant in the period. example: 100 + description: The total usage of the grant in the period. readOnly: true overage: type: number format: double - description: Overuse that wasn't covered by grants. example: 100 + description: Overuse that wasn't covered by grants. readOnly: true balanceAtStart: type: number format: double - description: entitlement balance at the start of the period. example: 100 + description: entitlement balance at the start of the period. readOnly: true grantBalancesAtStart: type: object additionalProperties: type: number format: double - description: 'The balance breakdown of each active grant at the start of the period: GrantID: Balance' example: 01G65Z755AFWAKHE12NY0CQ9FH: 100 + description: 'The balance breakdown of each active grant at the start of the period: GrantID: Balance' readOnly: true balanceAtEnd: type: number format: double - description: The entitlement balance at the end of the period. example: 100 + description: The entitlement balance at the end of the period. readOnly: true grantBalancesAtEnd: type: object additionalProperties: type: number format: double - description: 'The balance breakdown of each active grant at the end of the period: GrantID: Balance' example: 01G65Z755AFWAKHE12NY0CQ9FH: 100 + description: 'The balance breakdown of each active grant at the end of the period: GrantID: Balance' readOnly: true grantUsages: type: array @@ -10738,16 +10816,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -10762,14 +10840,14 @@ components: properties: grantId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The id of the grant - example: 01G65Z755AFWAKHE12NY0CQ9FH usage: type: number format: double - description: The usage in the period example: 100 + description: The usage in the period description: Usage Record IDResource: type: object @@ -10778,9 +10856,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true description: IDResource is a resouce with an ID. @@ -10810,14 +10888,13 @@ components: ingestedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time the event was ingested. - example: '2023-01-01T01:01:01.001Z' storedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time the event was stored. - example: '2023-01-01T01:01:01.001Z' - description: An ingested event with optional validation error. example: event: id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c @@ -10825,9 +10902,10 @@ components: specversion: '1.0' type: prompt subject: customer-id - time: '2023-01-01T01:01:01.001Z' - ingestedAt: '2023-01-01T01:01:01.001Z' - storedAt: '2023-01-01T01:01:02.001Z' + time: 2023-01-01T01:01:01.001Z + ingestedAt: 2023-01-01T01:01:01.001Z + storedAt: 2023-01-01T01:01:02.001Z + description: An ingested event with optional validation error. InternalServerErrorProblemResponse: type: object allOf: @@ -10850,9 +10928,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true description: @@ -10870,22 +10948,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true type: @@ -10954,29 +11032,29 @@ components: issuedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time the invoice was issued. Depending on the status of the invoice this can mean multiple things: - draft, gathering: The time the invoice will be issued based on the workflow settings. - issued: The time the invoice was issued. - example: '2023-01-01T01:01:01.001Z' readOnly: true draftUntil: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time until the invoice is in draft status. On draft invoice creation it is calculated from the workflow settings. If manual approval is required, the draftUntil time is set. - example: '2023-01-01T01:01:01.001Z' dueAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Due time of the fulfillment of the invoice (if available). - example: '2023-01-01T01:01:01.001Z' readOnly: true period: allOf: @@ -10985,11 +11063,11 @@ components: voidedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time the invoice was voided. If the invoice was voided, this field will be set to the time the invoice was voided. - example: '2023-01-01T01:01:01.001Z' readOnly: true workflow: allOf: @@ -11165,29 +11243,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH status: allOf: - $ref: '#/components/schemas/InvoiceLineStatus' @@ -11256,8 +11334,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' externalIDs: allOf: - $ref: '#/components/schemas/InvoiceLineAppExternalIDs' @@ -11322,9 +11400,9 @@ components: title: Metadata id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH taxConfig: allOf: - $ref: '#/components/schemas/TaxConfig' @@ -11339,8 +11417,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11406,8 +11484,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11479,8 +11557,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11505,9 +11583,9 @@ components: default: regular customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer this line item belongs to. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceFlatFeePendingLineCreate represents the create model for an invoice line that is sold to the customer as a manually added fee. InvoiceGenericDocumentRef: type: object @@ -11566,29 +11644,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ID of the charge or discount. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true percent: allOf: @@ -11699,6 +11777,7 @@ components: description: TaxConfig stores the configuration for a tax line relative to an invoice line. InvoiceNumber: type: string + example: INV-2024-01-01-01 minLength: 1 maxLength: 256 description: |- @@ -11708,7 +11787,6 @@ components: 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) - example: INV-2024-01-01-01 InvoiceOrderBy: type: string enum: @@ -11728,16 +11806,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -11771,9 +11849,9 @@ components: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: |- The pending line items to include in the invoice, if not provided: - all line items that have invoice_at < asOf will be included @@ -11782,16 +11860,16 @@ components: asOf: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time as of which the invoice is created. If not provided, the current time is used. - example: '2023-01-01T01:01:01.001Z' customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer ID for which to create the invoice. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: |- BillingInvoiceActionInput is the input for creating an invoice. @@ -11804,9 +11882,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The ID of the invoice. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true number: allOf: @@ -11837,13 +11915,13 @@ components: draftUntil: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time until the invoice is in draft status. On draft invoice creation it is calculated from the workflow settings. If manual approval is required, the draftUntil time is set. - example: '2023-01-01T01:01:01.001Z' supplier: $ref: '#/components/schemas/BillingPartyReplaceUpdate' customer: @@ -11897,8 +11975,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11923,12 +12001,12 @@ components: default: regular id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- ID of the line. If not specified it will be auto-generated. When discounts are specified, this must be provided, so that the discount can reference it. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceSimulationFlatFeeLine represents a flat fee line item that can be input to the simulation endpoint. InvoiceSimulationInput: type: object @@ -12006,8 +12084,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12030,12 +12108,12 @@ components: description: The quantity of the item used before this line's period, if the line is billed progressively. id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- ID of the line. If not specified it will be auto-generated. When discounts are specified, this must be provided, so that the discount can reference it. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceSimulationUsageBasedLine represents a usage-based line item that can be input to the simulation endpoint. InvoiceStatus: type: string @@ -12167,29 +12245,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH status: allOf: - $ref: '#/components/schemas/InvoiceLineStatus' @@ -12258,8 +12336,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' externalIDs: allOf: - $ref: '#/components/schemas/InvoiceLineAppExternalIDs' @@ -12327,9 +12405,9 @@ components: title: Metadata id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH taxConfig: allOf: - $ref: '#/components/schemas/TaxConfig' @@ -12344,8 +12422,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12401,8 +12479,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12464,8 +12542,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12480,9 +12558,9 @@ components: description: The feature that the usage is based on. customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer this line item belongs to. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceUsageBasedLineCreateWithCustomer represents the create model for an invoice line that is sold to the customer based on usage. InvoiceWorkflowInvoicingSettingsReplaceUpdate: type: object @@ -12494,14 +12572,14 @@ components: draftPeriod: type: string format: ISO8601 - description: The period for the invoice to be kept in draft status for manual reviews. example: P1D + description: The period for the invoice to be kept in draft status for manual reviews. default: P1D dueAfter: type: string format: ISO8601 - description: The period after which the invoice is due. example: P1D + description: The period after which the invoice is due. default: P7D description: InvoiceWorkflowInvoicingSettingsReplaceUpdate represents the update model for the invoicing settings of an invoice workflow. InvoiceWorkflowReplaceUpdate: @@ -12528,13 +12606,13 @@ components: readOnly: true sourceBillingProfileID: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- sourceBillingProfileID is the billing profile on which the workflow was based on. The profile is snapshotted on invoice creation, after which it can be altered independently of the profile itself. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true workflow: allOf: @@ -12615,11 +12693,6 @@ components: items: $ref: '#/components/schemas/AppCapability' description: The app's capabilities. - description: |- - A marketplace listing. - Represent an available app in the app marketplace that can be installed to the organization. - - Marketplace apps only exist in config so they don't extend the Resource model. example: type: stripe name: Stripe @@ -12637,6 +12710,11 @@ components: key: stripe_collect_payments name: Collect Payments description: Stripe payments collects outstanding revenue with Stripe customer's default payment method. + description: |- + A marketplace listing. + Represent an available app in the app marketplace that can be installed to the organization. + + Marketplace apps only exist in config so they don't extend the Resource model. MarketplaceListingList: type: object required: @@ -12680,17 +12758,17 @@ components: MeasureUsageFromTime: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' Metadata: type: object additionalProperties: type: string + example: + externalId: 019142cc-a016-796a-8113-1a942fecd26d description: |- Set of key-value pairs. Metadata can be used to store additional information about a resource. - example: - externalId: 019142cc-a016-796a-8113-1a942fecd26d x-go-type: map[string]string Meter: type: object @@ -12703,9 +12781,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the meter. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true slug: type: string @@ -12718,9 +12796,9 @@ components: example: tokens_total description: type: string + example: AI Token Usage minLength: 1 description: A description of the meter. - example: AI Token Usage aggregation: allOf: - $ref: '#/components/schemas/MeterAggregation' @@ -12731,11 +12809,12 @@ components: example: MINUTE eventType: type: string + example: prompt minLength: 1 description: The event type to aggregate. - example: prompt valueProperty: type: string + example: $.tokens minLength: 1 description: |- JSONPath expression to extract the value from the ingested event's data property. @@ -12743,20 +12822,18 @@ components: 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 valueProperty is ignored. - example: $.tokens groupBy: type: object additionalProperties: type: string + example: + type: $.type description: |- Named JSONPath expressions to extract the group by values from the event data. Keys must be unique and consist only alphanumeric and underscore characters. TODO: add key format enforcement - example: - type: $.type - description: A meter is a configuration that defines how to match and aggregate events. example: id: 01G65Z755AFWAKHE12NY0CQ9FH slug: tokens_total @@ -12768,6 +12845,7 @@ components: groupBy: model: $.model type: $.type + description: A meter is a configuration that defines how to match and aggregate events. x-go-type-import: path: github.com/openmeterio/openmeter/pkg/models x-go-type: models.Meter @@ -12803,9 +12881,9 @@ components: example: tokens_total description: type: string + example: AI Token Usage minLength: 1 description: A description of the meter. - example: AI Token Usage aggregation: allOf: - $ref: '#/components/schemas/MeterAggregation' @@ -12816,11 +12894,12 @@ components: example: MINUTE eventType: type: string + example: prompt minLength: 1 description: The event type to aggregate. - example: prompt valueProperty: type: string + example: $.tokens minLength: 1 description: |- JSONPath expression to extract the value from the ingested event's data property. @@ -12828,20 +12907,18 @@ components: 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 valueProperty is ignored. - example: $.tokens groupBy: type: object additionalProperties: type: string + example: + type: $.type description: |- Named JSONPath expressions to extract the group by values from the event data. Keys must be unique and consist only alphanumeric and underscore characters. TODO: add key format enforcement - example: - type: $.type - description: A meter is a configuration that defines how to match and aggregate events. example: slug: tokens_total description: AI Token Usage @@ -12852,6 +12929,7 @@ components: groupBy: model: $.model type: $.type + description: A meter is a configuration that defines how to match and aggregate events. x-go-type-import: path: github.com/openmeterio/openmeter/pkg/models x-go-type: models.Meter @@ -12863,32 +12941,32 @@ components: from: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' to: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' windowSize: $ref: '#/components/schemas/WindowSize' data: type: array items: $ref: '#/components/schemas/MeterQueryRow' - description: The result of a meter query. example: - from: '2023-01-01T00:00:00Z' - to: '2023-01-02T00:00:00Z' + from: 2023-01-01T00:00:00Z + to: 2023-01-02T00:00:00Z windowSize: DAY data: - value: 12 - windowStart: '2023-01-01T00:00:00Z' - windowEnd: '2023-01-02T00:00:00Z' + windowStart: 2023-01-01T00:00:00Z + windowEnd: 2023-01-02T00:00:00Z subject: customer-1 groupBy: model: gpt-4-turbo type: prompt + description: The result of a meter query. MeterQueryRow: type: object required: @@ -12901,28 +12979,28 @@ components: windowStart: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' windowEnd: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' subject: type: string groupBy: type: object additionalProperties: type: string - description: A row in the result of a meter query. example: value: 12 - windowStart: '2023-01-01T00:00:00Z' - windowEnd: '2023-01-02T00:00:00Z' + windowStart: 2023-01-01T00:00:00Z + windowEnd: 2023-01-02T00:00:00Z subject: customer-1 groupBy: model: gpt-4-turbo type: prompt + description: A row in the result of a meter query. x-go-type-import: path: github.com/openmeterio/openmeter/pkg/models x-go-type: models.MeterQueryRow @@ -12954,9 +13032,9 @@ components: properties: id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification channel. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Channel Unique Identifier readOnly: true type: @@ -12984,16 +13062,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13020,29 +13098,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification channel. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Channel Unique Identifier readOnly: true type: @@ -13053,20 +13131,20 @@ components: title: Channel Type name: type: string + example: customer-webhook description: User friendly name of the channel. title: Channel Name - example: customer-webhook disabled: type: boolean + example: true description: Whether the channel is disabled or not. title: Channel Disabled - example: true default: false url: type: string + example: https://example.com/webhook description: Webhook URL where the notification is sent. title: Webhook URL - example: https://example.com/webhook customHeaders: type: object additionalProperties: @@ -13075,13 +13153,13 @@ components: title: Custom HTTP Headers signingSecret: type: string + example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ description: |- Signing secret used for webhook request validation on the receiving end. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24 title: Signing Secret - example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 description: Notification channel with webhook type. NotificationChannelWebhookCreateRequest: type: object @@ -13098,20 +13176,20 @@ components: title: Channel Type name: type: string + example: customer-webhook description: User friendly name of the channel. title: Channel Name - example: customer-webhook disabled: type: boolean + example: true description: Whether the channel is disabled or not. title: Channel Disabled - example: true default: false url: type: string + example: https://example.com/webhook description: Webhook URL where the notification is sent. title: Webhook URL - example: https://example.com/webhook customHeaders: type: object additionalProperties: @@ -13120,13 +13198,13 @@ components: title: Custom HTTP Headers signingSecret: type: string + example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ description: |- Signing secret used for webhook request validation on the receiving end. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24 title: Signing Secret - example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 description: Request with input parameters for creating new notification channel with webhook type. NotificationEvent: type: object @@ -13140,9 +13218,9 @@ components: properties: id: type: string + example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier of the notification event. - example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 title: Event Identifier readOnly: true type: @@ -13154,8 +13232,8 @@ components: createdAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp when the notification event was created in RFC 3339 format. - example: '2023-01-01T01:01:01.001Z' title: Creation Time readOnly: true rule: @@ -13192,9 +13270,9 @@ components: properties: id: type: string + example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the notification event the payload belongs to. - example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 title: Notification Event Identifier readOnly: true type: @@ -13207,8 +13285,8 @@ components: timestamp: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp when the notification event was created in RFC 3339 format. - example: '2023-01-01T01:01:01.001Z' title: Creation Time readOnly: true data: @@ -13264,20 +13342,20 @@ components: state: allOf: - $ref: '#/components/schemas/NotificationEventDeliveryStatusState' - description: Delivery state of the notification event to the channel. example: SUCCESS + description: Delivery state of the notification event to the channel. readOnly: true reason: type: string + example: Failed to dispatch event due to provider error. description: The reason of the last deliverry state update. title: State Reason - example: Failed to dispatch event due to provider error. readOnly: true updatedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp of when the status was last updated in RFC 3339 format. - example: '2023-01-01T01:01:01.001Z' title: Last Update Time readOnly: true channel: @@ -13317,16 +13395,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13362,29 +13440,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification rule. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Rule Unique Identifier readOnly: true type: @@ -13395,14 +13473,14 @@ components: title: Rule Type name: type: string + example: Balance threshold reached description: The user friendly name of the notification rule. title: Rule Name - example: Balance threshold reached disabled: type: boolean + example: true description: Whether the rule is disabled or not. title: Rule Disabled - example: true default: false channels: type: array @@ -13442,14 +13520,14 @@ components: title: Rule Type name: type: string + example: Balance threshold reached description: The user friendly name of the notification rule. title: Rule Name - example: Balance threshold reached disabled: type: boolean + example: true description: Whether the rule is disabled or not. title: Rule Disabled - example: true default: false thresholds: type: array @@ -13463,9 +13541,9 @@ components: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH minItems: 1 description: List of notification channels the rule is applied to. title: Channels @@ -13494,14 +13572,14 @@ components: value: type: number format: double + example: 100 description: Value of the threshold. title: Threshold Value - example: 100 type: allOf: - $ref: '#/components/schemas/NotificationRuleBalanceThresholdValueType' - description: Type of the threshold. example: NUMBER + description: Type of the threshold. description: Threshold value with multiple supported types. NotificationRuleBalanceThresholdValueType: type: string @@ -13536,16 +13614,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13576,8 +13654,8 @@ components: dueAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: When the payment is due. - example: '2023-01-01T01:01:01.001Z' readOnly: true notes: type: string @@ -13663,13 +13741,13 @@ components: from: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Period start time. - example: '2023-01-01T01:01:01.001Z' to: type: string format: date-time + example: 2023-02-01T01:01:01.001Z description: Period end time. - example: '2023-02-01T01:01:01.001Z' description: A period with a start and end time. Plan: type: object @@ -13686,9 +13764,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -13712,22 +13790,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true key: @@ -13753,15 +13831,15 @@ components: effectiveFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time when the plan becomes effective. When not specified, the plan is a draft. - example: '2023-01-01T01:01:01.001Z' title: Effective start date readOnly: true effectiveTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time when the plan is no longer effective. When not specified, the plan is effective indefinitely. - example: '2023-01-01T01:01:01.001Z' title: Effective end date readOnly: true status: @@ -13854,16 +13932,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13907,9 +13985,9 @@ components: type: string format: duration nullable: true + example: P1Y description: The duration of the phase. title: Duration - example: P1Y rateCards: type: array items: @@ -13932,9 +14010,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The plan ID. - example: 01G65Z755AFWAKHE12NY0CQ9FH key: type: string minLength: 1 @@ -14016,8 +14094,8 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' name: type: string description: @@ -14038,17 +14116,17 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' name: type: string description: type: string customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Create subscription based on plan. PortalToken: type: object @@ -14057,9 +14135,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true subject: type: string @@ -14067,8 +14145,8 @@ components: expiresAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' readOnly: true expired: type: boolean @@ -14076,21 +14154,21 @@ components: createdAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' readOnly: true token: type: string - description: The token is only returned at creation. example: om_portal_IAnD3PpWW2A2Wr8m9jfzeHlGX8xmCXwG.y5q4S-AWqFu6qjfaFz0zQq4Ez28RsnyVwJffX5qxMvo + description: The token is only returned at creation. readOnly: true allowedMeterSlugs: type: array items: type: string - description: Optional, if defined only the specified meters will be allowed. example: - tokens_total + description: Optional, if defined only the specified meters will be allowed. description: |- A consumer portal token. @@ -14250,14 +14328,11 @@ components: allOf: - $ref: '#/components/schemas/FlatPriceWithPaymentTerm' nullable: true + example: {} description: |- The price of the rate card. When null, the feature or service is free. title: Price - example: - type: flat - amount: '100' - paymentTerm: in_arrears description: A flat fee rate card defines a one-time purchase or a recurring fee. RateCardMeteredEntitlement: type: object @@ -14325,8 +14400,8 @@ components: config: type: string format: json - description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. example: '{ "integrations": ["github"] }' + description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. description: Entitlement template of a static entitlement. RateCardUsageBased: type: object @@ -14432,14 +14507,14 @@ components: anchor: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: A date-time anchor to base the recurring period on. - example: '2023-01-01T01:01:01.001Z' title: Anchor time - description: Recurring period with an interval and an anchor. example: interval: DAY intervalISO: P1D - anchor: '2023-01-01T01:01:01.001Z' + anchor: 2023-01-01T01:01:01.001Z + description: Recurring period with an interval and an anchor. RecurringPeriodCreateInput: type: object required: @@ -14453,13 +14528,13 @@ components: anchor: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: A date-time anchor to base the recurring period on. - example: '2023-01-01T01:01:01.001Z' title: Anchor time - description: Recurring period with an interval and an anchor. example: interval: DAY - anchor: '2023-01-01T01:01:01.001Z' + anchor: 2023-01-01T01:01:01.001Z + description: Recurring period with an interval and an anchor. RecurringPeriodInterval: anyOf: - type: string @@ -14488,8 +14563,8 @@ components: effectiveAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time at which the reset takes effect, defaults to now. The reset cannot be in the future. The provided value is truncated to the minute due to how historical meter data is stored. - example: '2023-01-01T01:01:01.001Z' retainAnchor: type: boolean description: |- @@ -14517,9 +14592,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -14543,22 +14618,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true listing: @@ -14598,11 +14673,11 @@ components: readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The app ID. If not provided, it will use the global default for the app type. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: App ID type: type: string @@ -14649,9 +14724,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -14675,22 +14750,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true listing: @@ -14724,7 +14799,6 @@ components: description: |- The masked API key. Only shows the first 8 and last 3 characters. - description: A installed Stripe app object. example: id: 01G65Z755AFWAKHE12NY0CQ9FH type: stripe @@ -14748,11 +14822,12 @@ components: key: stripe_collect_payments name: Collect Payments description: Stripe payments collects outstanding revenue with Stripe customer's default payment method. - createdAt: '2024-01-01T01:01:01.001Z' - updatedAt: '2024-01-01T01:01:01.001Z' + createdAt: 2024-01-01T01:01:01.001Z + updatedAt: 2024-01-01T01:01:01.001Z stripeAccountId: acct_123456789 livemode: true maskedAPIKey: sk_live_************abc + description: A installed Stripe app object. StripeCheckoutSessionMode: type: string enum: @@ -14766,11 +14841,11 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The app ID. If not provided, it will use the global default for the app type. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: App ID type: type: string @@ -14789,10 +14864,10 @@ components: stripeDefaultPaymentMethodId: type: string description: The Stripe default payment method ID. - description: Stripe Customer App Data. example: type: stripe stripeCustomerId: cus_xxxxxxxxxxxxxx + description: Stripe Customer App Data. StripePaymentIntentStatus: type: string enum: @@ -14842,13 +14917,13 @@ components: properties: code: type: string + example: txcd_10000000 pattern: ^txcd_\d{8}$ description: |- Product tax code. See: https://docs.stripe.com/tax/tax-codes title: Tax code - example: txcd_10000000 description: The tax config for Stripe. StripeWebhookEvent: type: object @@ -14889,19 +14964,19 @@ components: properties: namespaceId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH appId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Stripe webhook response. Subject: type: object @@ -14911,49 +14986,48 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the subject. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true key: type: string - description: A unique, human-readable identifier for the subject. example: customer-id + description: A unique, human-readable identifier for the subject. displayName: type: string nullable: true - description: A human-readable display name for the subject. example: Customer Name + description: A human-readable display name for the subject. metadata: type: object additionalProperties: {} nullable: true - example: - hubspotId: '123456' + example: {} currentPeriodStart: type: string format: date-time + example: 2023-01-01T00:00:00Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T00:00:00Z' currentPeriodEnd: type: string format: date-time + example: 2023-02-01T00:00:00Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-02-01T00:00:00Z' stripeCustomerId: type: string nullable: true example: cus_JMOlctsKV8 - description: A subject is a unique identifier for a user or entity. example: id: 01G65Z755AFWAKHE12NY0CQ9FH key: customer-id displayName: Customer Name metadata: hubspotId: '123456' - currentPeriodStart: '2023-01-01T00:00:00Z' - currentPeriodEnd: '2023-02-01T00:00:00Z' + currentPeriodStart: 2023-01-01T00:00:00Z + currentPeriodEnd: 2023-02-01T00:00:00Z stripeCustomerId: cus_JMOlctsKV8 + description: A subject is a unique identifier for a user or entity. SubjectUpsert: type: object required: @@ -14961,42 +15035,41 @@ components: properties: key: type: string - description: A unique, human-readable identifier for the subject. example: customer-id + description: A unique, human-readable identifier for the subject. displayName: type: string nullable: true - description: A human-readable display name for the subject. example: Customer Name + description: A human-readable display name for the subject. metadata: type: object additionalProperties: {} nullable: true - example: - hubspotId: '123456' + example: {} currentPeriodStart: type: string format: date-time + example: 2023-01-01T00:00:00Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T00:00:00Z' currentPeriodEnd: type: string format: date-time + example: 2023-02-01T00:00:00Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-02-01T00:00:00Z' stripeCustomerId: type: string nullable: true example: cus_JMOlctsKV8 - description: A subject is a unique identifier for a user or entity. example: key: customer-id displayName: Customer Name metadata: hubspotId: '123456' - currentPeriodStart: '2023-01-01T00:00:00Z' - currentPeriodEnd: '2023-02-01T00:00:00Z' + currentPeriodStart: 2023-01-01T00:00:00Z + currentPeriodEnd: 2023-02-01T00:00:00Z stripeCustomerId: cus_JMOlctsKV8 + description: A subject is a unique identifier for a user or entity. Subscription: type: object required: @@ -15011,9 +15084,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15037,34 +15110,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' status: allOf: - $ref: '#/components/schemas/SubscriptionStatus' @@ -15072,9 +15145,9 @@ components: readOnly: true customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer ID of the subscription. - example: 01G65Z755AFWAKHE12NY0CQ9FH plan: allOf: - $ref: '#/components/schemas/PlanReference' @@ -15157,9 +15230,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15183,34 +15256,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' status: allOf: - $ref: '#/components/schemas/SubscriptionStatus' @@ -15218,9 +15291,9 @@ components: readOnly: true customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer ID of the subscription. - example: 01G65Z755AFWAKHE12NY0CQ9FH plan: allOf: - $ref: '#/components/schemas/PlanReference' @@ -15252,9 +15325,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15278,34 +15351,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' key: type: string minLength: 1 @@ -15350,14 +15423,11 @@ components: allOf: - $ref: '#/components/schemas/TieredPriceWithCommitments' nullable: true + example: {} description: |- The price of the rate card. When null, the feature or service is free. title: Price - example: - type: flat - amount: '100' - paymentTerm: in_arrears included: allOf: - $ref: '#/components/schemas/SubscriptionItemIncluded' @@ -15395,19 +15465,19 @@ components: type: string format: duration nullable: true + example: P1Y description: |- Interval after the subscription starts to transition to the phase. When null, the phase starts immediately after the subscription starts. title: Start after - example: P1Y duration: type: string format: duration + example: P1M description: |- The intended duration of the new phase. Duration is required when the phase will not be the last phase. title: Duration - example: P1M discounts: type: array items: @@ -15440,9 +15510,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15466,22 +15536,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true key: @@ -15499,13 +15569,13 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time from which the phase is active. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The until which the Phase is active. - example: '2023-01-01T01:01:01.001Z' items: type: array items: @@ -15613,29 +15683,29 @@ components: type: type: string format: uri - description: Type contains a URI that identifies the problem type. example: about:blank + description: Type contains a URI that identifies the problem type. default: about:blank title: type: string - description: A a short, human-readable summary of the problem type. example: Bad Request + description: A a short, human-readable summary of the problem type. status: type: integer format: int16 + example: 400 minimum: 400 maximum: 599 description: The HTTP status code generated by the origin server for this occurrence of the problem. - example: 400 detail: type: string - description: A human-readable explanation specific to this occurrence of the problem. example: The request body must be a JSON object. + description: A human-readable explanation specific to this occurrence of the problem. instance: type: string format: uri - description: A URI reference that identifies the specific occurrence of the problem. example: urn:request:local/JMOlctsKV8-000001 + description: A URI reference that identifies the specific occurrence of the problem. additionalProperties: anyOf: - type: string @@ -15699,29 +15769,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ID of the charge or discount. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true severity: allOf: @@ -15819,9 +15889,9 @@ components: properties: lineId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The line item ID to override. - example: 01G65Z755AFWAKHE12NY0CQ9FH action: allOf: - $ref: '#/components/schemas/VoidInvoiceActionCreateItem' @@ -15869,11 +15939,11 @@ components: nextInvoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time at which the line item should be invoiced again. If not provided, the line item will be re-invoiced now. - example: '2023-01-01T01:01:01.001Z' description: VoidInvoiceLinePendingAction describes how to handle the voidied line item in the invoice. VoidInvoiceLinePendingActionCreateItem: type: object @@ -15887,11 +15957,11 @@ components: nextInvoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time at which the line item should be invoiced again. If not provided, the line item will be re-invoiced now. - example: '2023-01-01T01:01:01.001Z' description: VoidInvoiceLinePendingAction describes how to handle the voidied line item in the invoice. WindowSize: type: string diff --git a/api/openapi.yaml b/api/openapi.yaml index 4aa70aa9e..47aa4448a 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -9,7 +9,6 @@ info: OpenMeter is a cloud native usage metering service. The OpenMeter API allows you to ingest events, query meter usage, and manage resources. tags: - - name: Static Data - name: Meters description: Meters specify how to aggregate events for billing and analytics purposes. Meters can be configured with multiple aggregation methods and groupings. Multiple meters can be created for the same event type, enabling flexible metering scenarios. - name: Events @@ -34,6 +33,8 @@ tags: description: Manage your billing profiles and invoices. Currently in private preview - [contact us](mailto:contact@openmeter.cloud) for access. - name: Apps (Private Preview) description: Manage integrations for extending OpenMeter's functionality. Currently in private preview - [contact us](mailto:contact@openmeter.cloud) for access. + - name: Lookup Information + description: Lookup information for static data like currencies paths: /api/v1/apps: get: @@ -99,8 +100,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -162,8 +163,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -231,8 +232,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -291,8 +292,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -351,8 +352,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -425,9 +426,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH explode: false - $ref: '#/components/parameters/Pagination.page' - $ref: '#/components/parameters/Pagination.pageSize' @@ -491,8 +492,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -568,8 +569,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -631,8 +632,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -696,8 +697,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -961,8 +962,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: expand in: query required: false @@ -1044,8 +1045,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -1106,8 +1107,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1181,8 +1182,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1252,8 +1253,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1316,15 +1317,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: lineId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1386,15 +1387,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: lineId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -1452,15 +1453,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: lineId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1532,8 +1533,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1599,8 +1600,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1668,8 +1669,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -1870,8 +1871,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -1929,8 +1930,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: expand in: query required: false @@ -2000,8 +2001,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2186,8 +2187,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - $ref: '#/components/parameters/PaginatedQuery.page' - $ref: '#/components/parameters/PaginatedQuery.pageSize' - $ref: '#/components/parameters/queryCustomerList.type' @@ -2252,8 +2253,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2326,15 +2327,15 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: appId in: path required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -2393,8 +2394,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2456,8 +2457,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -2525,8 +2526,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -2740,8 +2741,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -3403,6 +3404,59 @@ paths: $ref: '#/components/schemas/UnexpectedProblemResponse' tags: - Entitlements (Beta) + /api/v1/info/currencies: + get: + operationId: listCurrencies + summary: List supported currencies + description: List all supported currencies. + parameters: [] + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Currency' + '400': + description: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/BadRequestProblemResponse' + '401': + description: The request has not been applied because it lacks valid authentication credentials for the target resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/UnauthorizedProblemResponse' + '403': + description: The server understood the request but refuses to authorize it. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ForbiddenProblemResponse' + '500': + description: The server encountered an unexpected condition that prevented it from fulfilling the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/InternalServerErrorProblemResponse' + '503': + 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. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ServiceUnavailableProblemResponse' + default: + description: An unexpected error response. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/UnexpectedProblemResponse' + tags: + - Lookup Information /api/v1/marketplace/listings: get: operationId: listMarketplaceListings @@ -4095,8 +4149,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4164,8 +4218,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4230,8 +4284,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -4294,7 +4348,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: to in: query required: false @@ -4304,7 +4358,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: feature in: query required: false @@ -4338,9 +4392,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - name: channel in: query required: false @@ -4352,9 +4406,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - $ref: '#/components/parameters/Pagination.page' - $ref: '#/components/parameters/Pagination.pageSize' - $ref: '#/components/parameters/NotificationEventOrderByOrdering.order' @@ -4640,8 +4694,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4709,8 +4763,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -4775,8 +4829,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -4835,8 +4889,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '201': description: The request has succeeded and a new resource has been created as a result. @@ -4967,9 +5021,9 @@ paths: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - name: key in: query required: false @@ -5112,9 +5166,9 @@ paths: schema: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string minLength: 1 maxLength: 64 @@ -5184,8 +5238,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -5254,9 +5308,9 @@ paths: schema: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string minLength: 1 maxLength: 64 @@ -5339,8 +5393,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' @@ -5399,8 +5453,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -5463,8 +5517,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -5710,59 +5764,6 @@ paths: $ref: '#/components/schemas/UnexpectedProblemResponse' tags: - Portal - /api/v1/static/currencies: - get: - operationId: listCurrencies - summary: List supported currencies - description: List all supported currencies. - parameters: [] - responses: - '200': - description: The request has succeeded. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Currency' - '400': - description: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). - content: - application/problem+json: - schema: - $ref: '#/components/schemas/BadRequestProblemResponse' - '401': - description: The request has not been applied because it lacks valid authentication credentials for the target resource. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/UnauthorizedProblemResponse' - '403': - description: The server understood the request but refuses to authorize it. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ForbiddenProblemResponse' - '500': - description: The server encountered an unexpected condition that prevented it from fulfilling the request. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/InternalServerErrorProblemResponse' - '503': - 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. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ServiceUnavailableProblemResponse' - default: - description: An unexpected error response. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/UnexpectedProblemResponse' - tags: - - Static Data /api/v1/stripe/checkout/sessions: post: operationId: createStripeCheckoutSession @@ -6234,7 +6235,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z responses: '200': description: The request has succeeded. @@ -6445,7 +6446,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: to in: query required: false @@ -6455,7 +6456,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z - name: windowSize in: query required: true @@ -6664,8 +6665,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ - name: at in: query required: false @@ -6673,7 +6674,7 @@ paths: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z explode: false responses: '200': @@ -6738,8 +6739,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -6814,8 +6815,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -6883,8 +6884,8 @@ paths: effectiveDate: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: If not provided the subscription is canceled immediately. - example: '2023-01-01T01:01:01.001Z' /api/v1/subscriptions/{subscriptionId}/change: post: operationId: changeSubscription @@ -6898,8 +6899,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -6974,8 +6975,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7054,8 +7055,8 @@ paths: required: true schema: type: string - pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ example: 01G65Z755AFWAKHE12NY0CQ9FH + pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ responses: '200': description: The request has succeeded. @@ -7226,9 +7227,9 @@ components: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH explode: false InvoiceListParams.expand: name: expand @@ -7266,7 +7267,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z explode: false InvoiceListParams.issuedBefore: name: issuedBefore @@ -7276,7 +7277,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z explode: false InvoiceListParams.statuses: name: statuses @@ -7367,7 +7368,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z MeterQuery.groupBy: name: groupBy in: query @@ -7399,7 +7400,7 @@ components: schema: type: string format: date-time - example: '2023-01-01T01:01:01.001Z' + example: 2023-01-01T01:01:01.001Z MeterQuery.windowSize: name: windowSize in: query @@ -7661,9 +7662,9 @@ components: Annotations: type: object additionalProperties: {} - description: Set of key-value pairs managed by the system. Cannot be modified by user. example: externalId: 019142cc-a016-796a-8113-1a942fecd26d + description: Set of key-value pairs managed by the system. Cannot be modified by user. App: anyOf: - $ref: '#/components/schemas/StripeApp' @@ -7689,9 +7690,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -7715,22 +7716,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true listing: @@ -7807,15 +7808,15 @@ components: description: type: string description: The capability description. - description: |- - App capability. - - Capabilities only exist in config so they don't extend the Resource model. example: type: collectPayments key: stripe_collect_payment name: Collect Payments description: Stripe payments collects outstanding revenue with Stripe customer's default payment method. + description: |- + App capability. + + Capabilities only exist in config so they don't extend the Resource model. AppCapabilityType: type: string enum: @@ -7858,9 +7859,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: |- App reference @@ -7894,14 +7895,14 @@ components: usage: type: number format: double - description: The total usage of the feature in the period. example: 100 + description: The total usage of the feature in the period. readOnly: true balanceAtStart: type: number format: double - description: The entitlement balance at the start of the period. example: 100 + description: The entitlement balance at the start of the period. readOnly: true description: The balance history window. BillingCollectionAlignment: @@ -7923,29 +7924,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ID of the charge or discount. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true percent: allOf: @@ -8026,9 +8027,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -8052,22 +8053,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true supplier: @@ -8147,27 +8148,27 @@ components: tax: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string description: The tax app used for this workflow x-go-type: string invoicing: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string description: The invoicing app used for this workflow x-go-type: string payment: anyOf: - type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH - type: string description: The payment app used for this workflow x-go-type: string @@ -8231,34 +8232,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true workflow: $ref: '#/components/schemas/BillingProfileCustomerWorkflowOverride' billingProfile: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The billing profile this override is associated with. If not provided, the default billing profile is chosen if available. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Customer specific workflow overrides. BillingProfileCustomerOverrideCreate: type: object @@ -8267,12 +8268,12 @@ components: $ref: '#/components/schemas/BillingProfileCustomerWorkflowOverrideCreate' billingProfile: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The billing profile this override is associated with. If not provided, the default billing profile is chosen if available. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Payload for creating a new or updating an existing customer override. BillingProfileCustomerOverrideOrderBy: type: string @@ -8289,16 +8290,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -8383,16 +8384,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -8501,12 +8502,12 @@ components: interval: type: string format: ISO8601 + example: P1D description: |- 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. - example: P1D default: PT1H description: Workflow collection specifies how to collect the pending line items for an invoice BillingWorkflowCreate: @@ -8535,14 +8536,14 @@ components: draftPeriod: type: string format: ISO8601 - description: The period for the invoice to be kept in draft status for manual reviews. example: P1D + description: The period for the invoice to be kept in draft status for manual reviews. default: P1D dueAfter: type: string format: ISO8601 - description: The period after which the invoice is due. example: P1D + description: The period after which the invoice is due. default: P7D progressiveBilling: type: boolean @@ -8620,13 +8621,13 @@ components: description: The request could not be completed due to a conflict with the current state of the target resource. CountryCode: type: string + example: US minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ description: |- [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. - example: US CreateStripeCheckoutSessionRequest: type: object required: @@ -8635,9 +8636,9 @@ components: properties: appId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: If not provided, the default Stripe app is used if any. - example: 01G65Z755AFWAKHE12NY0CQ9FH customer: anyOf: - $ref: '#/components/schemas/CustomerId' @@ -8694,9 +8695,9 @@ components: properties: customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The OpenMeter customer ID. - example: 01G65Z755AFWAKHE12NY0CQ9FH stripeCustomerId: type: string description: The Stripe customer ID. @@ -8738,8 +8739,8 @@ components: issuedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: IssueAt reflects the time the document was issued. - example: '2023-01-01T01:01:01.001Z' readOnly: true number: allOf: @@ -8779,13 +8780,13 @@ components: description: Currency describes a currency supported by OpenMeter. CurrencyCode: type: string + example: USD minLength: 3 maxLength: 3 pattern: ^[A-Z]{3}$ description: |- Three-letter [ISO4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. Custom three-letter currency codes are also supported for convenience. - example: USD CustomPlanInput: type: object allOf: @@ -8839,8 +8840,8 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' customPlan: $ref: '#/components/schemas/CustomPlanInput' description: Change a custom subscription. @@ -8854,15 +8855,15 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' customPlan: $ref: '#/components/schemas/CustomPlanInput' customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Create a custom subscription. Customer: type: object @@ -8875,9 +8876,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -8901,22 +8902,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true usageAttribution: @@ -8944,20 +8945,20 @@ components: title: Billing Address currentSubscriptionId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The ID of the Subscription if the customer has one. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: Current Subscription ID readOnly: true - description: A customer object. example: id: 01G65Z755AFWAKHE12NY0CQ9FH name: ACME Inc. usageAttribution: subjectKeys: - my_subject_key - createdAt: '2024-01-01T01:01:01.001Z' - updatedAt: '2024-01-01T01:01:01.001Z' + createdAt: 2024-01-01T01:01:01.001Z + updatedAt: 2024-01-01T01:01:01.001Z + description: A customer object. CustomerAppData: anyOf: - $ref: '#/components/schemas/StripeCustomerAppData' @@ -8981,16 +8982,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -9052,9 +9053,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Create Stripe checkout session customer ID. CustomerOrderBy: type: string @@ -9073,16 +9074,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -9312,22 +9313,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -9337,18 +9338,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true type: allOf: @@ -9371,9 +9372,9 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV currentUsagePeriod: allOf: - $ref: '#/components/schemas/Period' @@ -9402,22 +9403,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -9427,18 +9428,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true subjectKey: type: string @@ -9456,9 +9457,9 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV currentUsagePeriod: allOf: - $ref: '#/components/schemas/Period' @@ -9486,11 +9487,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -9530,11 +9531,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -9558,33 +9559,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true amount: type: number format: double + example: 100 minimum: 0 description: The amount to grant. Should be a positive number. - example: 100 priority: type: integer format: uint8 + example: 1 minimum: 1 maximum: 255 description: |- @@ -9594,12 +9596,11 @@ components: When there are several grants available for the same subject, the system selects the grant with the highest priority. In cases where grants share the same priority level, the grant closest to its expiration will be used first. In the case of two grants have identical priorities and expiration dates, the system will use the grant that was created first. - example: 1 effectiveAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Effective date for grants and anchor for recurring grants. Provided value will be ceiled to metering windowSize (minute). - example: '2023-01-01T01:01:01.001Z' expiration: allOf: - $ref: '#/components/schemas/ExpirationPeriod' @@ -9607,52 +9608,52 @@ components: maxRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 minRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 metadata: allOf: - $ref: '#/components/schemas/Metadata' - description: The grant metadata. example: stripePaymentId: pi_4OrAkhLvyihio9p51h9iiFnB + description: The grant metadata. id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true entitlementId: type: string - description: The unique entitlement ULID that the grant is associated with. example: 01ARZ3NDEKTSV4RRFFQ69G5FAV + description: The unique entitlement ULID that the grant is associated with. readOnly: true nextRecurrence: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The next time the grant will recurr. - example: '2023-01-01T01:01:01.001Z' expiresAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the grant expires. - example: '2023-01-01T01:01:01.001Z' readOnly: true voidedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the grant was voided. - example: '2023-01-01T01:01:01.001Z' recurrence: allOf: - $ref: '#/components/schemas/RecurringPeriod' @@ -9668,12 +9669,13 @@ components: amount: type: number format: double + example: 100 minimum: 0 description: The amount to grant. Should be a positive number. - example: 100 priority: type: integer format: uint8 + example: 1 minimum: 1 maximum: 255 description: |- @@ -9683,12 +9685,11 @@ components: When there are several grants available for the same subject, the system selects the grant with the highest priority. In cases where grants share the same priority level, the grant closest to its expiration will be used first. In the case of two grants have identical priorities and expiration dates, the system will use the grant that was created first. - example: 1 effectiveAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Effective date for grants and anchor for recurring grants. Provided value will be ceiled to metering windowSize (minute). - example: '2023-01-01T01:01:01.001Z' expiration: allOf: - $ref: '#/components/schemas/ExpirationPeriod' @@ -9696,25 +9697,25 @@ components: maxRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 minRolloverAmount: type: number format: double + example: 100 description: |- Grants are rolled over at reset, after which they can have a different balance compared to what they had before the reset. Balance after the reset is calculated as: Balance_After_Reset = MIN(MaxRolloverAmount, MAX(Balance_Before_Reset, MinRolloverAmount)) - example: 100 default: 0 metadata: allOf: - $ref: '#/components/schemas/Metadata' - description: The grant metadata. example: stripePaymentId: pi_4OrAkhLvyihio9p51h9iiFnB + description: The grant metadata. recurrence: allOf: - $ref: '#/components/schemas/RecurringPeriodCreateInput' @@ -9776,22 +9777,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -9801,18 +9802,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true subjectKey: type: string @@ -9830,14 +9831,14 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV lastReset: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the last reset happened. - example: '2023-01-01T01:01:01.001Z' readOnly: true currentUsagePeriod: allOf: @@ -9847,8 +9848,8 @@ components: measureUsageFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time from which usage is measured. If not specified on creation, defaults to entitlement creation time. - example: '2023-01-01T01:01:01.001Z' readOnly: true usagePeriod: allOf: @@ -9869,8 +9870,8 @@ components: lastReset: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time the last reset happened. - example: '2023-01-01T01:01:01.001Z' readOnly: true currentUsagePeriod: allOf: @@ -9880,8 +9881,8 @@ components: measureUsageFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time from which usage is measured. If not specified on creation, defaults to entitlement creation time. - example: '2023-01-01T01:01:01.001Z' readOnly: true usagePeriod: allOf: @@ -9906,11 +9907,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -9977,16 +9978,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -10013,27 +10014,27 @@ components: config: type: string format: json - description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. example: '{ "integrations": ["github"] }' + description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true metadata: @@ -10043,18 +10044,18 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true subjectKey: type: string @@ -10072,9 +10073,9 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The feature the subject is entitled to use. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV currentUsagePeriod: allOf: - $ref: '#/components/schemas/Period' @@ -10101,11 +10102,11 @@ components: example: example-feature-key featureId: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The feature the subject is entitled to use. Either featureKey or featureId is required. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV metadata: allOf: - $ref: '#/components/schemas/Metadata' @@ -10121,8 +10122,8 @@ components: config: type: string format: json - description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. example: '{ "integrations": ["github"] }' + description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. description: Create inputs for static entitlement EntitlementType: type: string @@ -10139,31 +10140,31 @@ components: properties: hasAccess: type: boolean - description: Whether the subject has access to the feature. Shared accross all entitlement types. example: true + description: Whether the subject has access to the feature. Shared accross all entitlement types. readOnly: true balance: type: number format: double - description: Only available for metered entitlements. Metered entitlements are built around a balance calculation where feature usage is deducted from the issued grants. Balance represents the remaining balance of the entitlement, it's value never turns negative. example: 100 + description: Only available for metered entitlements. Metered entitlements are built around a balance calculation where feature usage is deducted from the issued grants. Balance represents the remaining balance of the entitlement, it's value never turns negative. readOnly: true usage: type: number format: double - description: Only available for metered entitlements. Returns the total feature usage in the current period. example: 50 + description: Only available for metered entitlements. Returns the total feature usage in the current period. readOnly: true overage: type: number format: double - description: Only available for metered entitlements. Overage represents the usage that wasn't covered by grants, e.g. if the subject had a total feature usage of 100 in the period but they were only granted 80, there would be 20 overage. example: 0 + description: Only available for metered entitlements. Overage represents the usage that wasn't covered by grants, e.g. if the subject had a total feature usage of 100 in the period but they were only granted 80, there would be 20 overage. readOnly: true config: type: string - description: Only available for static entitlements. The JSON parsable config of the entitlement. example: '{ key: "value" }' + description: Only available for static entitlements. The JSON parsable config of the entitlement. readOnly: true description: Entitlements are the core of OpenMeter access management. They define access to features for subjects. Entitlements can be metered, boolean, or static. Event: @@ -10177,33 +10178,33 @@ components: properties: id: type: string + example: 5c10fade-1c9e-4d6c-8275-c52c36731d3c minLength: 1 description: Identifies the event. - example: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: type: string + example: service-name minLength: 1 format: uri-reference description: Identifies the context in which an event happened. - example: service-name specversion: type: string + example: '1.0' minLength: 1 description: The version of the CloudEvents specification which the event uses. - example: '1.0' default: '1.0' type: type: string + example: com.example.someevent minLength: 1 description: Contains a value describing the type of event related to the originating occurrence. - example: com.example.someevent datacontenttype: type: string enum: - application/json nullable: true - description: Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP. example: application/json + description: Content type of the CloudEvents data value. Only the value "application/json" is allowed over HTTP. dataschema: type: string format: uri @@ -10212,14 +10213,14 @@ components: description: Identifies the schema that data adheres to. subject: type: string + example: customer-id minLength: 1 description: Describes the subject of the event in the context of the event producer (identified by source). - example: customer-id time: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp of when the occurrence happened. Must adhere to RFC 3339. - example: '2023-01-01T01:01:01.001Z' nullable: true data: type: object @@ -10228,18 +10229,18 @@ components: description: |- The event payload. Optional, if present it must be a JSON object. - description: |- - CloudEvents Specification JSON Schema - - Optional properties are nullable according to the CloudEvents specification: - OPTIONAL not omitted attributes MAY be represented as a null JSON value. example: id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c source: service-name specversion: '1.0' type: prompt subject: customer-id - time: '2023-01-01T01:01:01.001Z' + time: 2023-01-01T01:01:01.001Z + description: |- + CloudEvents Specification JSON Schema + + Optional properties are nullable according to the CloudEvents specification: + OPTIONAL not omitted attributes MAY be represented as a null JSON value. x-go-type-import: path: github.com/cloudevents/sdk-go/v2/event x-go-type: event.Event @@ -10264,8 +10265,8 @@ components: description: The unit of time for the expiration period. count: type: integer - description: The number of time units in the expiration period. example: 12 + description: The number of time units in the expiration period. description: The grant expiration definition Feature: type: object @@ -10279,29 +10280,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true archivedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp of when the resource was archived. - example: '2023-01-01T01:01:01.001Z' title: Archival Time readOnly: true key: @@ -10317,35 +10318,35 @@ components: metadata: allOf: - $ref: '#/components/schemas/Metadata' - title: Optional metadata example: key: value + title: Optional metadata meterSlug: type: string minLength: 1 maxLength: 64 pattern: ^[a-z0-9]+(?:_[a-z0-9]+)*$ description: A key is a unique string that is used to identify a resource. - title: Meter slug example: tokens_total + title: Meter slug meterGroupByFilters: type: object additionalProperties: type: string + example: + model: gpt-4 + type: input description: |- Optional meter group by filters. Useful if the meter scope is broader than what feature tracks. Example scenario would be a meter tracking all token use with groupBy fields for the model, then the feature could filter for model=gpt-4. title: Meter group by filters - example: - model: gpt-4 - type: input id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Readonly unique ULID identifier. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV readOnly: true description: |- Represents a feature that can be enabled or disabled for a plan. @@ -10369,30 +10370,30 @@ components: metadata: allOf: - $ref: '#/components/schemas/Metadata' - title: Optional metadata example: key: value + title: Optional metadata meterSlug: type: string minLength: 1 maxLength: 64 pattern: ^[a-z0-9]+(?:_[a-z0-9]+)*$ description: A key is a unique string that is used to identify a resource. - title: Meter slug example: tokens_total + title: Meter slug meterGroupByFilters: type: object additionalProperties: type: string + example: + model: gpt-4 + type: input description: |- Optional meter group by filters. Useful if the meter scope is broader than what feature tracks. Example scenario would be a meter tracking all token use with groupBy fields for the model, then the feature could filter for model=gpt-4. title: Meter group by filters - example: - model: gpt-4 - type: input description: |- Represents a feature that can be enabled or disabled for a plan. Used both for product catalog and entitlements. @@ -10404,17 +10405,17 @@ components: properties: id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Unique identifier of a feature. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Feature Unique Identifier key: type: string + example: gpt4_tokens description: |- The key is an immutable unique identifier of the feature used throughout the API, for example when interacting with a subject's entitlements. title: Feature Key - example: gpt4_tokens description: Limited representation of a feature resource which includes only its unique identifiers (id, key). FeatureOrderBy: type: string @@ -10433,16 +10434,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -10515,44 +10516,44 @@ components: usage: type: number format: double - description: The total usage of the grant in the period. example: 100 + description: The total usage of the grant in the period. readOnly: true overage: type: number format: double - description: Overuse that wasn't covered by grants. example: 100 + description: Overuse that wasn't covered by grants. readOnly: true balanceAtStart: type: number format: double - description: entitlement balance at the start of the period. example: 100 + description: entitlement balance at the start of the period. readOnly: true grantBalancesAtStart: type: object additionalProperties: type: number format: double - description: 'The balance breakdown of each active grant at the start of the period: GrantID: Balance' example: 01G65Z755AFWAKHE12NY0CQ9FH: 100 + description: 'The balance breakdown of each active grant at the start of the period: GrantID: Balance' readOnly: true balanceAtEnd: type: number format: double - description: The entitlement balance at the end of the period. example: 100 + description: The entitlement balance at the end of the period. readOnly: true grantBalancesAtEnd: type: object additionalProperties: type: number format: double - description: 'The balance breakdown of each active grant at the end of the period: GrantID: Balance' example: 01G65Z755AFWAKHE12NY0CQ9FH: 100 + description: 'The balance breakdown of each active grant at the end of the period: GrantID: Balance' readOnly: true grantUsages: type: array @@ -10581,16 +10582,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -10605,14 +10606,14 @@ components: properties: grantId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The id of the grant - example: 01G65Z755AFWAKHE12NY0CQ9FH usage: type: number format: double - description: The usage in the period example: 100 + description: The usage in the period description: Usage Record IDResource: type: object @@ -10621,9 +10622,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true description: IDResource is a resouce with an ID. @@ -10653,14 +10654,13 @@ components: ingestedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time the event was ingested. - example: '2023-01-01T01:01:01.001Z' storedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time the event was stored. - example: '2023-01-01T01:01:01.001Z' - description: An ingested event with optional validation error. example: event: id: 5c10fade-1c9e-4d6c-8275-c52c36731d3c @@ -10668,9 +10668,10 @@ components: specversion: '1.0' type: prompt subject: customer-id - time: '2023-01-01T01:01:01.001Z' - ingestedAt: '2023-01-01T01:01:01.001Z' - storedAt: '2023-01-01T01:01:02.001Z' + time: 2023-01-01T01:01:01.001Z + ingestedAt: 2023-01-01T01:01:01.001Z + storedAt: 2023-01-01T01:01:02.001Z + description: An ingested event with optional validation error. InternalServerErrorProblemResponse: type: object allOf: @@ -10693,9 +10694,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true description: @@ -10713,22 +10714,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true type: @@ -10797,29 +10798,29 @@ components: issuedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time the invoice was issued. Depending on the status of the invoice this can mean multiple things: - draft, gathering: The time the invoice will be issued based on the workflow settings. - issued: The time the invoice was issued. - example: '2023-01-01T01:01:01.001Z' readOnly: true draftUntil: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time until the invoice is in draft status. On draft invoice creation it is calculated from the workflow settings. If manual approval is required, the draftUntil time is set. - example: '2023-01-01T01:01:01.001Z' dueAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Due time of the fulfillment of the invoice (if available). - example: '2023-01-01T01:01:01.001Z' readOnly: true period: allOf: @@ -10828,11 +10829,11 @@ components: voidedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time the invoice was voided. If the invoice was voided, this field will be set to the time the invoice was voided. - example: '2023-01-01T01:01:01.001Z' readOnly: true workflow: allOf: @@ -11008,29 +11009,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH status: allOf: - $ref: '#/components/schemas/InvoiceLineStatus' @@ -11099,8 +11100,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' externalIDs: allOf: - $ref: '#/components/schemas/InvoiceLineAppExternalIDs' @@ -11165,9 +11166,9 @@ components: title: Metadata id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH taxConfig: allOf: - $ref: '#/components/schemas/TaxConfig' @@ -11182,8 +11183,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11249,8 +11250,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11322,8 +11323,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11348,9 +11349,9 @@ components: default: regular customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer this line item belongs to. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceFlatFeePendingLineCreate represents the create model for an invoice line that is sold to the customer as a manually added fee. InvoiceGenericDocumentRef: type: object @@ -11409,29 +11410,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ID of the charge or discount. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true percent: allOf: @@ -11542,6 +11543,7 @@ components: description: TaxConfig stores the configuration for a tax line relative to an invoice line. InvoiceNumber: type: string + example: INV-2024-01-01-01 minLength: 1 maxLength: 256 description: |- @@ -11551,7 +11553,6 @@ components: 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) - example: INV-2024-01-01-01 InvoiceOrderBy: type: string enum: @@ -11571,16 +11572,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -11614,9 +11615,9 @@ components: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: |- The pending line items to include in the invoice, if not provided: - all line items that have invoice_at < asOf will be included @@ -11625,16 +11626,16 @@ components: asOf: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time as of which the invoice is created. If not provided, the current time is used. - example: '2023-01-01T01:01:01.001Z' customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer ID for which to create the invoice. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: |- BillingInvoiceActionInput is the input for creating an invoice. @@ -11647,9 +11648,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The ID of the invoice. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true number: allOf: @@ -11680,13 +11681,13 @@ components: draftUntil: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time until the invoice is in draft status. On draft invoice creation it is calculated from the workflow settings. If manual approval is required, the draftUntil time is set. - example: '2023-01-01T01:01:01.001Z' supplier: $ref: '#/components/schemas/BillingPartyReplaceUpdate' customer: @@ -11740,8 +11741,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11766,12 +11767,12 @@ components: default: regular id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- ID of the line. If not specified it will be auto-generated. When discounts are specified, this must be provided, so that the discount can reference it. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceSimulationFlatFeeLine represents a flat fee line item that can be input to the simulation endpoint. InvoiceSimulationInput: type: object @@ -11849,8 +11850,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -11873,12 +11874,12 @@ components: description: The quantity of the item used before this line's period, if the line is billed progressively. id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- ID of the line. If not specified it will be auto-generated. When discounts are specified, this must be provided, so that the discount can reference it. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceSimulationUsageBasedLine represents a usage-based line item that can be input to the simulation endpoint. InvoiceStatus: type: string @@ -12010,29 +12011,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH status: allOf: - $ref: '#/components/schemas/InvoiceLineStatus' @@ -12101,8 +12102,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' externalIDs: allOf: - $ref: '#/components/schemas/InvoiceLineAppExternalIDs' @@ -12170,9 +12171,9 @@ components: title: Metadata id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH taxConfig: allOf: - $ref: '#/components/schemas/TaxConfig' @@ -12187,8 +12188,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12244,8 +12245,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12307,8 +12308,8 @@ components: invoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time this line item should be invoiced. - example: '2023-01-01T01:01:01.001Z' type: type: string enum: @@ -12323,9 +12324,9 @@ components: description: The feature that the usage is based on. customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer this line item belongs to. - example: 01G65Z755AFWAKHE12NY0CQ9FH description: InvoiceUsageBasedLineCreateWithCustomer represents the create model for an invoice line that is sold to the customer based on usage. InvoiceWorkflowInvoicingSettingsReplaceUpdate: type: object @@ -12337,14 +12338,14 @@ components: draftPeriod: type: string format: ISO8601 - description: The period for the invoice to be kept in draft status for manual reviews. example: P1D + description: The period for the invoice to be kept in draft status for manual reviews. default: P1D dueAfter: type: string format: ISO8601 - description: The period after which the invoice is due. example: P1D + description: The period after which the invoice is due. default: P7D description: InvoiceWorkflowInvoicingSettingsReplaceUpdate represents the update model for the invoicing settings of an invoice workflow. InvoiceWorkflowReplaceUpdate: @@ -12371,13 +12372,13 @@ components: readOnly: true sourceBillingProfileID: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- sourceBillingProfileID is the billing profile on which the workflow was based on. The profile is snapshotted on invoice creation, after which it can be altered independently of the profile itself. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true workflow: allOf: @@ -12470,11 +12471,6 @@ components: items: $ref: '#/components/schemas/AppCapability' description: The app's capabilities. - description: |- - A marketplace listing. - Represent an available app in the app marketplace that can be installed to the organization. - - Marketplace apps only exist in config so they don't extend the Resource model. example: type: stripe name: Stripe @@ -12492,6 +12488,11 @@ components: key: stripe_collect_payments name: Collect Payments description: Stripe payments collects outstanding revenue with Stripe customer's default payment method. + description: |- + A marketplace listing. + Represent an available app in the app marketplace that can be installed to the organization. + + Marketplace apps only exist in config so they don't extend the Resource model. MarketplaceListingList: type: object required: @@ -12535,17 +12536,17 @@ components: MeasureUsageFromTime: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' Metadata: type: object additionalProperties: type: string + example: + externalId: 019142cc-a016-796a-8113-1a942fecd26d description: |- Set of key-value pairs. Metadata can be used to store additional information about a resource. - example: - externalId: 019142cc-a016-796a-8113-1a942fecd26d x-go-type: map[string]string Meter: type: object @@ -12558,9 +12559,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the meter. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true slug: type: string @@ -12573,9 +12574,9 @@ components: example: tokens_total description: type: string + example: AI Token Usage minLength: 1 description: A description of the meter. - example: AI Token Usage aggregation: allOf: - $ref: '#/components/schemas/MeterAggregation' @@ -12586,11 +12587,12 @@ components: example: MINUTE eventType: type: string + example: prompt minLength: 1 description: The event type to aggregate. - example: prompt valueProperty: type: string + example: $.tokens minLength: 1 description: |- JSONPath expression to extract the value from the ingested event's data property. @@ -12598,20 +12600,18 @@ components: 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 valueProperty is ignored. - example: $.tokens groupBy: type: object additionalProperties: type: string + example: + type: $.type description: |- Named JSONPath expressions to extract the group by values from the event data. Keys must be unique and consist only alphanumeric and underscore characters. TODO: add key format enforcement - example: - type: $.type - description: A meter is a configuration that defines how to match and aggregate events. example: id: 01G65Z755AFWAKHE12NY0CQ9FH slug: tokens_total @@ -12623,6 +12623,7 @@ components: groupBy: model: $.model type: $.type + description: A meter is a configuration that defines how to match and aggregate events. x-go-type-import: path: github.com/openmeterio/openmeter/pkg/models x-go-type: models.Meter @@ -12647,32 +12648,32 @@ components: from: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' to: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' windowSize: $ref: '#/components/schemas/WindowSize' data: type: array items: $ref: '#/components/schemas/MeterQueryRow' - description: The result of a meter query. example: - from: '2023-01-01T00:00:00Z' - to: '2023-01-02T00:00:00Z' + from: 2023-01-01T00:00:00Z + to: 2023-01-02T00:00:00Z windowSize: DAY data: - value: 12 - windowStart: '2023-01-01T00:00:00Z' - windowEnd: '2023-01-02T00:00:00Z' + windowStart: 2023-01-01T00:00:00Z + windowEnd: 2023-01-02T00:00:00Z subject: customer-1 groupBy: model: gpt-4-turbo type: prompt + description: The result of a meter query. MeterQueryRow: type: object required: @@ -12685,28 +12686,28 @@ components: windowStart: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' windowEnd: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' subject: type: string groupBy: type: object additionalProperties: type: string - description: A row in the result of a meter query. example: value: 12 - windowStart: '2023-01-01T00:00:00Z' - windowEnd: '2023-01-02T00:00:00Z' + windowStart: 2023-01-01T00:00:00Z + windowEnd: 2023-01-02T00:00:00Z subject: customer-1 groupBy: model: gpt-4-turbo type: prompt + description: A row in the result of a meter query. x-go-type-import: path: github.com/openmeterio/openmeter/pkg/models x-go-type: models.MeterQueryRow @@ -12738,9 +12739,9 @@ components: properties: id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification channel. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Channel Unique Identifier readOnly: true type: @@ -12768,16 +12769,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -12804,29 +12805,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification channel. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Channel Unique Identifier readOnly: true type: @@ -12837,20 +12838,20 @@ components: title: Channel Type name: type: string + example: customer-webhook description: User friendly name of the channel. title: Channel Name - example: customer-webhook disabled: type: boolean + example: true description: Whether the channel is disabled or not. title: Channel Disabled - example: true default: false url: type: string + example: https://example.com/webhook description: Webhook URL where the notification is sent. title: Webhook URL - example: https://example.com/webhook customHeaders: type: object additionalProperties: @@ -12859,13 +12860,13 @@ components: title: Custom HTTP Headers signingSecret: type: string + example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ description: |- Signing secret used for webhook request validation on the receiving end. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24 title: Signing Secret - example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 description: Notification channel with webhook type. NotificationChannelWebhookCreateRequest: type: object @@ -12882,20 +12883,20 @@ components: title: Channel Type name: type: string + example: customer-webhook description: User friendly name of the channel. title: Channel Name - example: customer-webhook disabled: type: boolean + example: true description: Whether the channel is disabled or not. title: Channel Disabled - example: true default: false url: type: string + example: https://example.com/webhook description: Webhook URL where the notification is sent. title: Webhook URL - example: https://example.com/webhook customHeaders: type: object additionalProperties: @@ -12904,13 +12905,13 @@ components: title: Custom HTTP Headers signingSecret: type: string + example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 pattern: ^(whsec_)?[a-zA-Z0-9+/=]{32,100}$ description: |- Signing secret used for webhook request validation on the receiving end. Format: `base64` encoded random bytes optionally prefixed with `whsec_`. Recommended size: 24 title: Signing Secret - example: whsec_S6g2HLnTwd9AhHwUIMFggVS9OfoPafN8 description: Request with input parameters for creating new notification channel with webhook type. NotificationEvent: type: object @@ -12924,9 +12925,9 @@ components: properties: id: type: string + example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier of the notification event. - example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 title: Event Identifier readOnly: true type: @@ -12938,8 +12939,8 @@ components: createdAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp when the notification event was created in RFC 3339 format. - example: '2023-01-01T01:01:01.001Z' title: Creation Time readOnly: true rule: @@ -12976,9 +12977,9 @@ components: properties: id: type: string + example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the notification event the payload belongs to. - example: 01J2KNP1YTXQRXHTDJ4KPR7PZ0 title: Notification Event Identifier readOnly: true type: @@ -12991,8 +12992,8 @@ components: timestamp: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp when the notification event was created in RFC 3339 format. - example: '2023-01-01T01:01:01.001Z' title: Creation Time readOnly: true data: @@ -13048,20 +13049,20 @@ components: state: allOf: - $ref: '#/components/schemas/NotificationEventDeliveryStatusState' - description: Delivery state of the notification event to the channel. example: SUCCESS + description: Delivery state of the notification event to the channel. readOnly: true reason: type: string + example: Failed to dispatch event due to provider error. description: The reason of the last deliverry state update. title: State Reason - example: Failed to dispatch event due to provider error. readOnly: true updatedAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Timestamp of when the status was last updated in RFC 3339 format. - example: '2023-01-01T01:01:01.001Z' title: Last Update Time readOnly: true channel: @@ -13101,16 +13102,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13146,29 +13147,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification rule. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Rule Unique Identifier readOnly: true type: @@ -13179,14 +13180,14 @@ components: title: Rule Type name: type: string + example: Balance threshold reached description: The user friendly name of the notification rule. title: Rule Name - example: Balance threshold reached disabled: type: boolean + example: true description: Whether the rule is disabled or not. title: Rule Disabled - example: true default: false channels: type: array @@ -13226,14 +13227,14 @@ components: title: Rule Type name: type: string + example: Balance threshold reached description: The user friendly name of the notification rule. title: Rule Name - example: Balance threshold reached disabled: type: boolean + example: true description: Whether the rule is disabled or not. title: Rule Disabled - example: true default: false thresholds: type: array @@ -13247,9 +13248,9 @@ components: type: array items: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH minItems: 1 description: List of notification channels the rule is applied to. title: Channels @@ -13278,14 +13279,14 @@ components: value: type: number format: double + example: 100 description: Value of the threshold. title: Threshold Value - example: 100 type: allOf: - $ref: '#/components/schemas/NotificationRuleBalanceThresholdValueType' - description: Type of the threshold. example: NUMBER + description: Type of the threshold. description: Threshold value with multiple supported types. NotificationRuleBalanceThresholdValueType: type: string @@ -13310,9 +13311,9 @@ components: properties: id: type: string + example: 01ARZ3NDEKTSV4RRFFQ69G5FAV pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: Identifies the notification rule. - example: 01ARZ3NDEKTSV4RRFFQ69G5FAV title: Rule Unique Identifier readOnly: true type: @@ -13340,16 +13341,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13380,8 +13381,8 @@ components: dueAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: When the payment is due. - example: '2023-01-01T01:01:01.001Z' readOnly: true notes: type: string @@ -13467,13 +13468,13 @@ components: from: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: Period start time. - example: '2023-01-01T01:01:01.001Z' to: type: string format: date-time + example: 2023-02-01T01:01:01.001Z description: Period end time. - example: '2023-02-01T01:01:01.001Z' description: A period with a start and end time. Plan: type: object @@ -13490,9 +13491,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -13516,22 +13517,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true key: @@ -13557,15 +13558,15 @@ components: effectiveFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time when the plan becomes effective. When not specified, the plan is a draft. - example: '2023-01-01T01:01:01.001Z' title: Effective start date readOnly: true effectiveTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The date and time when the plan is no longer effective. When not specified, the plan is effective indefinitely. - example: '2023-01-01T01:01:01.001Z' title: Effective end date readOnly: true status: @@ -13658,16 +13659,16 @@ components: properties: totalCount: type: integer - description: The items in the current page. example: 500 + description: The items in the current page. page: type: integer - description: The items in the current page. example: 1 + description: The items in the current page. pageSize: type: integer - description: The items in the current page. example: 100 + description: The items in the current page. items: type: array items: @@ -13711,9 +13712,9 @@ components: type: string format: duration nullable: true + example: P1Y description: The duration of the phase. title: Duration - example: P1Y rateCards: type: array items: @@ -13736,9 +13737,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The plan ID. - example: 01G65Z755AFWAKHE12NY0CQ9FH key: type: string minLength: 1 @@ -13820,8 +13821,8 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' name: type: string description: @@ -13842,17 +13843,17 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' name: type: string description: type: string customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Create subscription based on plan. PlanVariant: type: object @@ -13872,10 +13873,10 @@ components: variant: allOf: - $ref: '#/components/schemas/PlanVariant' - description: The variant of the plan. - title: Variant example: currency: USD + description: The variant of the plan. + title: Variant currency: allOf: - $ref: '#/components/schemas/CurrencyCode' @@ -13915,9 +13916,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true subject: type: string @@ -13925,8 +13926,8 @@ components: expiresAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' readOnly: true expired: type: boolean @@ -13934,21 +13935,21 @@ components: createdAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T01:01:01.001Z' readOnly: true token: type: string - description: The token is only returned at creation. example: om_portal_IAnD3PpWW2A2Wr8m9jfzeHlGX8xmCXwG.y5q4S-AWqFu6qjfaFz0zQq4Ez28RsnyVwJffX5qxMvo + description: The token is only returned at creation. readOnly: true allowedMeterSlugs: type: array items: type: string - description: Optional, if defined only the specified meters will be allowed. example: - tokens_total + description: Optional, if defined only the specified meters will be allowed. description: |- A consumer portal token. @@ -14129,14 +14130,11 @@ components: allOf: - $ref: '#/components/schemas/FlatPriceWithPaymentTerm' nullable: true + example: {} description: |- The price of the rate card. When null, the feature or service is free. title: Price - example: - type: flat - amount: '100' - paymentTerm: in_arrears description: A flat fee rate card defines a one-time purchase or a recurring fee. RateCardMeteredEntitlement: type: object @@ -14214,14 +14212,11 @@ components: allOf: - $ref: '#/components/schemas/FlatPriceWithPaymentTerm' nullable: true + example: {} description: |- The price of the rate card. When null, the feature or service is free. title: Price - example: - type: flat - amount: '100' - paymentTerm: in_arrears description: Flat fee rate card override. RateCardOverrideUsageBased: type: object @@ -14260,8 +14255,8 @@ components: config: type: string format: json - description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. example: '{ "integrations": ["github"] }' + description: The JSON parsable config of the entitlement. This value is also returned when checking entitlement access and it is useful for configuring fine-grained access settings to the feature, implemented in your own system. Has to be an object. description: Entitlement template of a static entitlement. RateCardType: type: string @@ -14373,14 +14368,14 @@ components: anchor: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: A date-time anchor to base the recurring period on. - example: '2023-01-01T01:01:01.001Z' title: Anchor time - description: Recurring period with an interval and an anchor. example: interval: DAY intervalISO: P1D - anchor: '2023-01-01T01:01:01.001Z' + anchor: 2023-01-01T01:01:01.001Z + description: Recurring period with an interval and an anchor. RecurringPeriodCreateInput: type: object required: @@ -14394,13 +14389,13 @@ components: anchor: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: A date-time anchor to base the recurring period on. - example: '2023-01-01T01:01:01.001Z' title: Anchor time - description: Recurring period with an interval and an anchor. example: interval: DAY - anchor: '2023-01-01T01:01:01.001Z' + anchor: 2023-01-01T01:01:01.001Z + description: Recurring period with an interval and an anchor. RecurringPeriodInterval: anyOf: - type: string @@ -14429,8 +14424,8 @@ components: effectiveAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time at which the reset takes effect, defaults to now. The reset cannot be in the future. The provided value is truncated to the minute due to how historical meter data is stored. - example: '2023-01-01T01:01:01.001Z' retainAnchor: type: boolean description: |- @@ -14458,9 +14453,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -14484,22 +14479,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true listing: @@ -14539,11 +14534,11 @@ components: readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The app ID. If not provided, it will use the global default for the app type. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: App ID type: type: string @@ -14606,9 +14601,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -14632,22 +14627,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true listing: @@ -14681,7 +14676,6 @@ components: description: |- The masked API key. Only shows the first 8 and last 3 characters. - description: A installed Stripe app object. example: id: 01G65Z755AFWAKHE12NY0CQ9FH type: stripe @@ -14705,11 +14699,12 @@ components: key: stripe_collect_payments name: Collect Payments description: Stripe payments collects outstanding revenue with Stripe customer's default payment method. - createdAt: '2024-01-01T01:01:01.001Z' - updatedAt: '2024-01-01T01:01:01.001Z' + createdAt: 2024-01-01T01:01:01.001Z + updatedAt: 2024-01-01T01:01:01.001Z stripeAccountId: acct_123456789 livemode: true maskedAPIKey: sk_live_************abc + description: A installed Stripe app object. StripeCheckoutSessionMode: type: string enum: @@ -14723,11 +14718,11 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: |- The app ID. If not provided, it will use the global default for the app type. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: App ID type: type: string @@ -14746,10 +14741,10 @@ components: stripeDefaultPaymentMethodId: type: string description: The Stripe default payment method ID. - description: Stripe Customer App Data. example: type: stripe stripeCustomerId: cus_xxxxxxxxxxxxxx + description: Stripe Customer App Data. StripePaymentIntentStatus: type: string enum: @@ -14799,13 +14794,13 @@ components: properties: code: type: string + example: txcd_10000000 pattern: ^txcd_\d{8}$ description: |- Product tax code. See: https://docs.stripe.com/tax/tax-codes title: Tax code - example: txcd_10000000 description: The tax config for Stripe. StripeWebhookEvent: type: object @@ -14846,19 +14841,19 @@ components: properties: namespaceId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH appId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ULID (Universally Unique Lexicographically Sortable Identifier). - example: 01G65Z755AFWAKHE12NY0CQ9FH description: Stripe webhook response. Subject: type: object @@ -14868,49 +14863,48 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the subject. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true key: type: string - description: A unique, human-readable identifier for the subject. example: customer-id + description: A unique, human-readable identifier for the subject. displayName: type: string nullable: true - description: A human-readable display name for the subject. example: Customer Name + description: A human-readable display name for the subject. metadata: type: object additionalProperties: {} nullable: true - example: - hubspotId: '123456' + example: {} currentPeriodStart: type: string format: date-time + example: 2023-01-01T00:00:00Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-01-01T00:00:00Z' currentPeriodEnd: type: string format: date-time + example: 2023-02-01T00:00:00Z description: '[RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.' - example: '2023-02-01T00:00:00Z' stripeCustomerId: type: string nullable: true example: cus_JMOlctsKV8 - description: A subject is a unique identifier for a user or entity. example: id: 01G65Z755AFWAKHE12NY0CQ9FH key: customer-id displayName: Customer Name metadata: hubspotId: '123456' - currentPeriodStart: '2023-01-01T00:00:00Z' - currentPeriodEnd: '2023-02-01T00:00:00Z' + currentPeriodStart: 2023-01-01T00:00:00Z + currentPeriodEnd: 2023-02-01T00:00:00Z stripeCustomerId: cus_JMOlctsKV8 + description: A subject is a unique identifier for a user or entity. Subscription: type: object required: @@ -14925,9 +14919,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -14951,34 +14945,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' status: allOf: - $ref: '#/components/schemas/SubscriptionStatus' @@ -14986,9 +14980,9 @@ components: readOnly: true customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer ID of the subscription. - example: 01G65Z755AFWAKHE12NY0CQ9FH plan: allOf: - $ref: '#/components/schemas/PlanReference' @@ -15071,9 +15065,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15097,34 +15091,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' status: allOf: - $ref: '#/components/schemas/SubscriptionStatus' @@ -15132,9 +15126,9 @@ components: readOnly: true customerId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The customer ID of the subscription. - example: 01G65Z755AFWAKHE12NY0CQ9FH plan: allOf: - $ref: '#/components/schemas/PlanReference' @@ -15166,9 +15160,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15192,34 +15186,34 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence start of the resource. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The cadence end of the resource. - example: '2023-01-01T01:01:01.001Z' key: type: string minLength: 1 @@ -15264,14 +15258,11 @@ components: allOf: - $ref: '#/components/schemas/TieredPriceWithCommitments' nullable: true + example: {} description: |- The price of the rate card. When null, the feature or service is free. title: Price - example: - type: flat - amount: '100' - paymentTerm: in_arrears included: allOf: - $ref: '#/components/schemas/SubscriptionItemIncluded' @@ -15310,9 +15301,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15336,22 +15327,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true key: @@ -15369,13 +15360,13 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time from which the phase is active. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The until which the Phase is active. - example: '2023-01-01T01:01:01.001Z' description: Subscription phase, analogous to plan phases. SubscriptionPhaseCreate: type: object @@ -15388,19 +15379,19 @@ components: type: string format: duration nullable: true + example: P1Y description: |- Interval after the subscription starts to transition to the phase. When null, the phase starts immediately after the subscription starts. title: Start after - example: P1Y duration: type: string format: duration + example: P1M description: |- The intended duration of the new phase. Duration is required when the phase will not be the last phase. title: Duration - example: P1M discounts: type: array items: @@ -15433,9 +15424,9 @@ components: properties: id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: A unique identifier for the resource. - example: 01G65Z755AFWAKHE12NY0CQ9FH title: ID readOnly: true name: @@ -15459,22 +15450,22 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true key: @@ -15492,13 +15483,13 @@ components: activeFrom: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The time from which the phase is active. - example: '2023-01-01T01:01:01.001Z' activeTo: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: The until which the Phase is active. - example: '2023-01-01T01:01:01.001Z' items: type: array items: @@ -15635,29 +15626,29 @@ components: type: type: string format: uri - description: Type contains a URI that identifies the problem type. example: about:blank + description: Type contains a URI that identifies the problem type. default: about:blank title: type: string - description: A a short, human-readable summary of the problem type. example: Bad Request + description: A a short, human-readable summary of the problem type. status: type: integer format: int16 + example: 400 minimum: 400 maximum: 599 description: The HTTP status code generated by the origin server for this occurrence of the problem. - example: 400 detail: type: string - description: A human-readable explanation specific to this occurrence of the problem. example: The request body must be a JSON object. + description: A human-readable explanation specific to this occurrence of the problem. instance: type: string format: uri - description: A URI reference that identifies the specific occurrence of the problem. example: urn:request:local/JMOlctsKV8-000001 + description: A URI reference that identifies the specific occurrence of the problem. additionalProperties: anyOf: - type: string @@ -15721,29 +15712,29 @@ components: createdAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was created. - example: '2024-01-01T01:01:01.001Z' title: Creation Time readOnly: true updatedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was last updated. - example: '2024-01-01T01:01:01.001Z' title: Last Update Time readOnly: true deletedAt: type: string format: date-time + example: 2024-01-01T01:01:01.001Z description: Timestamp of when the resource was permanently deleted. - example: '2024-01-01T01:01:01.001Z' title: Deletion Time readOnly: true id: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: ID of the charge or discount. - example: 01G65Z755AFWAKHE12NY0CQ9FH readOnly: true severity: allOf: @@ -15841,9 +15832,9 @@ components: properties: lineId: type: string + example: 01G65Z755AFWAKHE12NY0CQ9FH pattern: ^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$ description: The line item ID to override. - example: 01G65Z755AFWAKHE12NY0CQ9FH action: allOf: - $ref: '#/components/schemas/VoidInvoiceActionCreateItem' @@ -15897,11 +15888,11 @@ components: nextInvoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time at which the line item should be invoiced again. If not provided, the line item will be re-invoiced now. - example: '2023-01-01T01:01:01.001Z' description: VoidInvoiceLinePendingAction describes how to handle the voidied line item in the invoice. VoidInvoiceLinePendingActionCreateItem: type: object @@ -15915,11 +15906,11 @@ components: nextInvoiceAt: type: string format: date-time + example: 2023-01-01T01:01:01.001Z description: |- The time at which the line item should be invoiced again. If not provided, the line item will be re-invoiced now. - example: '2023-01-01T01:01:01.001Z' description: VoidInvoiceLinePendingAction describes how to handle the voidied line item in the invoice. WindowSize: type: string diff --git a/api/spec/src/cloud/main.tsp b/api/spec/src/cloud/main.tsp index 22aab5d0e..9e207ae54 100644 --- a/api/spec/src/cloud/main.tsp +++ b/api/spec/src/cloud/main.tsp @@ -31,6 +31,10 @@ using TypeSpec.OpenAPI; @server("https://openmeter.cloud", "Cloud") @useAuth(CloudTokenAuth | CloudCookieAuth) // Tags will appear in reverse order in the API documentation +@tagMetadata( + "Lookup Information", + #{ description: "Lookup information for static data like currencies" } +) @tagMetadata( "Apps (Private Preview)", #{ @@ -253,10 +257,10 @@ namespace OpenMeterCloud.ProductCatalog { interface Subscriptions extends OpenMeter.ProductCatalog.Subscriptions {} } -namespace OpenMeterCloud.Static { - @route("/api/v1/static") - @tag("Static Data") - interface Currencies extends OpenMeter.Static.Currencies {} +namespace OpenMeterCloud.Info { + @route("/api/v1/info/currencies") + @tag("Lookup Information") + interface Currencies extends OpenMeter.Info.Currencies {} } /** diff --git a/api/spec/src/static/currencies.tsp b/api/spec/src/info/currencies.tsp similarity index 93% rename from api/spec/src/static/currencies.tsp rename to api/spec/src/info/currencies.tsp index 77979a4d4..f943b66f5 100644 --- a/api/spec/src/static/currencies.tsp +++ b/api/spec/src/info/currencies.tsp @@ -1,4 +1,4 @@ -namespace OpenMeter.Static; +namespace OpenMeter.Info; using TypeSpec.Http; using TypeSpec.OpenAPI; diff --git a/api/spec/src/static/main.tsp b/api/spec/src/info/main.tsp similarity index 85% rename from api/spec/src/static/main.tsp rename to api/spec/src/info/main.tsp index 62ef444e5..dc3f9f34f 100644 --- a/api/spec/src/static/main.tsp +++ b/api/spec/src/info/main.tsp @@ -8,4 +8,4 @@ import ".."; import "./currencies.tsp"; import "./routes.tsp"; -namespace OpenMeter.Static; +namespace OpenMeter.Info; diff --git a/api/spec/src/static/routes.tsp b/api/spec/src/info/routes.tsp similarity index 74% rename from api/spec/src/static/routes.tsp rename to api/spec/src/info/routes.tsp index 383b6a4fd..39f8c6738 100644 --- a/api/spec/src/static/routes.tsp +++ b/api/spec/src/info/routes.tsp @@ -1,19 +1,18 @@ import "../rest.tsp"; -namespace OpenMeter.Static; +namespace OpenMeter.Info; using TypeSpec.Http; using TypeSpec.OpenAPI; -@route("/api/v1/static") -@tag("Static Data") +@route("/api/v1/info/currencies") +@tag("Lookup Information") interface Currencies { /** * List all supported currencies. */ @get @operationId("listCurrencies") - @route("/currencies") @summary("List supported currencies") listCurrencies(): Currency[] | OpenMeter.CommonErrors; } diff --git a/api/spec/src/main.tsp b/api/spec/src/main.tsp index d86de7c3e..d6d6abf2a 100644 --- a/api/spec/src/main.tsp +++ b/api/spec/src/main.tsp @@ -20,7 +20,7 @@ import "./notification"; import "./entitlements"; import "./billing"; import "./productcatalog"; -import "./static"; +import "./info"; using TypeSpec.Http; using TypeSpec.Rest; @@ -43,6 +43,10 @@ using TypeSpec.Versioning; }) @server("https://127.0.0.1", "Local") // Tags will appear in reverse order in the API documentation +@tagMetadata( + "Lookup Information", + #{ description: "Lookup information for static data like currencies" } +) @tagMetadata( "Apps (Private Preview)", #{ diff --git a/openmeter/static/httpdriver/currencies.go b/openmeter/info/httpdriver/currencies.go similarity index 100% rename from openmeter/static/httpdriver/currencies.go rename to openmeter/info/httpdriver/currencies.go diff --git a/openmeter/static/httpdriver/driver.go b/openmeter/info/httpdriver/driver.go similarity index 100% rename from openmeter/static/httpdriver/driver.go rename to openmeter/info/httpdriver/driver.go diff --git a/openmeter/static/httpdriver/errors.go b/openmeter/info/httpdriver/errors.go similarity index 100% rename from openmeter/static/httpdriver/errors.go rename to openmeter/info/httpdriver/errors.go diff --git a/openmeter/server/router/static.go b/openmeter/server/router/info.go similarity index 62% rename from openmeter/server/router/static.go rename to openmeter/server/router/info.go index 6d89ae1c5..7ea6ff18d 100644 --- a/openmeter/server/router/static.go +++ b/openmeter/server/router/info.go @@ -3,7 +3,7 @@ package router import "net/http" // List supported currencies -// (GET /api/v1/static/currencies) +// (GET /api/v1/info/currencies) func (a *Router) ListCurrencies(w http.ResponseWriter, r *http.Request) { - a.staticHandler.ListCurrencies().ServeHTTP(w, r) + a.infoHandler.ListCurrencies().ServeHTTP(w, r) } diff --git a/openmeter/server/router/router.go b/openmeter/server/router/router.go index c2ec7f960..6c26fa489 100644 --- a/openmeter/server/router/router.go +++ b/openmeter/server/router/router.go @@ -28,6 +28,7 @@ import ( "github.com/openmeterio/openmeter/openmeter/entitlement" entitlementdriver "github.com/openmeterio/openmeter/openmeter/entitlement/driver" meteredentitlement "github.com/openmeterio/openmeter/openmeter/entitlement/metered" + infohttpdriver "github.com/openmeterio/openmeter/openmeter/info/httpdriver" "github.com/openmeterio/openmeter/openmeter/meter" "github.com/openmeterio/openmeter/openmeter/namespace" "github.com/openmeterio/openmeter/openmeter/namespace/namespacedriver" @@ -40,7 +41,6 @@ import ( plansubscription "github.com/openmeterio/openmeter/openmeter/productcatalog/subscription" subscriptionhttpdriver "github.com/openmeterio/openmeter/openmeter/productcatalog/subscription/http" "github.com/openmeterio/openmeter/openmeter/server/authenticator" - statichttpdriver "github.com/openmeterio/openmeter/openmeter/static/httpdriver" "github.com/openmeterio/openmeter/openmeter/streaming" "github.com/openmeterio/openmeter/openmeter/subscription" "github.com/openmeterio/openmeter/pkg/errorsx" @@ -183,7 +183,7 @@ type Router struct { entitlementHandler entitlementdriver.EntitlementHandler meteredEntitlementHandler entitlementdriver.MeteredEntitlementHandler notificationHandler notificationhttpdriver.Handler - staticHandler statichttpdriver.Handler + infoHandler infohttpdriver.Handler } // Make sure we conform to ServerInterface @@ -238,7 +238,7 @@ func NewRouter(config Config) (*Router, error) { httptransport.WithErrorHandler(config.ErrorHandler), ) - router.staticHandler = statichttpdriver.New( + router.infoHandler = infohttpdriver.New( httptransport.WithErrorHandler(config.ErrorHandler), )