api

package
v1.0.0-beta.63 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package api provides primitives to interact with the openapi HTTP API.

Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT.

Index

Constants

View Source
const (
	CloudCookieAuthScopes      = "CloudCookieAuth.Scopes"
	CloudPortalTokenAuthScopes = "CloudPortalTokenAuth.Scopes"
	CloudTokenAuthScopes       = "CloudTokenAuth.Scopes"
	PortalTokenAuthScopes      = "PortalTokenAuth.Scopes"
)

Variables

This section is empty.

Functions

func GetSwagger

func GetSwagger() (swagger *openapi3.T, err error)

GetSwagger returns the Swagger specification corresponding to the generated code in this file. The external references of Swagger specification are resolved. The logic of resolving external references is tightly connected to "import-mapping" feature. Externally referenced files must be embedded in the corresponding golang packages. Urls can be supported but this task was out of the scope.

func Handler

func Handler(si ServerInterface) http.Handler

Handler creates http.Handler with routing matching OpenAPI spec.

func HandlerFromMux

func HandlerFromMux(si ServerInterface, r chi.Router) http.Handler

HandlerFromMux creates http.Handler with routing matching OpenAPI spec based on the provided mux.

func HandlerFromMuxWithBaseURL

func HandlerFromMuxWithBaseURL(si ServerInterface, r chi.Router, baseURL string) http.Handler

func HandlerWithOptions

func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler

HandlerWithOptions creates http.Handler with additional options

func PathToRawSpec

func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error)

Constructs a synthetic filesystem for resolving external references when loading openapi specifications.

Types

type BadRequestProblemResponse

type BadRequestProblemResponse = Problem

BadRequestProblemResponse A Problem Details object (RFC 7807). Additional properties specific to the problem type may be present.

type ChiServerOptions

type ChiServerOptions struct {
	BaseURL          string
	BaseRouter       chi.Router
	Middlewares      []MiddlewareFunc
	ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)
}

type CreateMeterJSONRequestBody

type CreateMeterJSONRequestBody = Meter

CreateMeterJSONRequestBody defines body for CreateMeter for application/json ContentType.

type CreatePortalTokenJSONRequestBody

type CreatePortalTokenJSONRequestBody = PortalToken

CreatePortalTokenJSONRequestBody defines body for CreatePortalToken for application/json ContentType.

type Event

type Event = event.Event

Event CloudEvents Specification JSON Schema

type IdOrSlug

type IdOrSlug = string

IdOrSlug A unique identifier.

type IngestEventsApplicationCloudeventsBatchPlusJSONBody

type IngestEventsApplicationCloudeventsBatchPlusJSONBody = []Event

IngestEventsApplicationCloudeventsBatchPlusJSONBody defines parameters for IngestEvents.

type IngestEventsApplicationCloudeventsBatchPlusJSONRequestBody

type IngestEventsApplicationCloudeventsBatchPlusJSONRequestBody = IngestEventsApplicationCloudeventsBatchPlusJSONBody

IngestEventsApplicationCloudeventsBatchPlusJSONRequestBody defines body for IngestEvents for application/cloudevents-batch+json ContentType.

type IngestEventsApplicationCloudeventsPlusJSONRequestBody

type IngestEventsApplicationCloudeventsPlusJSONRequestBody = Event

IngestEventsApplicationCloudeventsPlusJSONRequestBody defines body for IngestEvents for application/cloudevents+json ContentType.

type IngestedEvent

type IngestedEvent struct {
	// Event CloudEvents Specification JSON Schema
	Event           Event   `json:"event"`
	ValidationError *string `json:"validationError,omitempty"`
}

IngestedEvent An ingested event with optional validation error.

type InvalidParamFormatError

type InvalidParamFormatError struct {
	ParamName string
	Err       error
}

func (*InvalidParamFormatError) Error

func (e *InvalidParamFormatError) Error() string

func (*InvalidParamFormatError) Unwrap

func (e *InvalidParamFormatError) Unwrap() error

type InvalidatePortalTokensJSONBody

type InvalidatePortalTokensJSONBody struct {
	// Id Invalidate a portal token by ID.
	Id *string `json:"id,omitempty"`

	// Subject Invalidate all portal tokens for a subject.
	Subject *string `json:"subject,omitempty"`
}

InvalidatePortalTokensJSONBody defines parameters for InvalidatePortalTokens.

type InvalidatePortalTokensJSONRequestBody

type InvalidatePortalTokensJSONRequestBody InvalidatePortalTokensJSONBody

InvalidatePortalTokensJSONRequestBody defines body for InvalidatePortalTokens for application/json ContentType.

type ListEventsParams

type ListEventsParams struct {
	// From Start date-time in RFC 3339 format.
	// Inclusive.
	From *QueryFrom `form:"from,omitempty" json:"from,omitempty"`

	// To End date-time in RFC 3339 format.
	// Inclusive.
	To *QueryTo `form:"to,omitempty" json:"to,omitempty"`

	// Limit Number of events to return
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

ListEventsParams defines parameters for ListEvents.

type ListPortalTokensParams

type ListPortalTokensParams struct {
	// Limit Number of portal tokens to return. Default is 25.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
}

ListPortalTokensParams defines parameters for ListPortalTokens.

type Meter

type Meter = models.Meter

Meter A meter is a configuration that defines how to match and aggregate events.

type MeterAggregation

type MeterAggregation = models.MeterAggregation

MeterAggregation The aggregation type to use for the meter.

type MeterIdOrSlug

type MeterIdOrSlug = IdOrSlug

MeterIdOrSlug A unique identifier.

type MeterQueryResult

type MeterQueryResult struct {
	Data []MeterQueryRow `json:"data"`
	From *time.Time      `json:"from,omitempty"`
	To   *time.Time      `json:"to,omitempty"`

	// WindowSize Aggregation window size.
	WindowSize *WindowSize `json:"windowSize,omitempty"`
}

MeterQueryResult The result of a meter query.

type MeterQueryRow

type MeterQueryRow = models.MeterQueryRow

MeterQueryRow A row in the result of a meter query.

type MiddlewareFunc

type MiddlewareFunc func(http.Handler) http.Handler

type NotFoundProblemResponse

type NotFoundProblemResponse = Problem

NotFoundProblemResponse A Problem Details object (RFC 7807). Additional properties specific to the problem type may be present.

type NotImplementedProblemResponse

type NotImplementedProblemResponse = Problem

NotImplementedProblemResponse A Problem Details object (RFC 7807). Additional properties specific to the problem type may be present.

type PortalToken

type PortalToken struct {
	// AllowedMeterSlugs Optional, if defined only the specified meters will be allowed
	AllowedMeterSlugs *[]string  `json:"allowedMeterSlugs,omitempty"`
	CreatedAt         *time.Time `json:"createdAt,omitempty"`
	Expired           *bool      `json:"expired,omitempty"`
	ExpiresAt         *time.Time `json:"expiresAt,omitempty"`
	Id                *string    `json:"id,omitempty"`
	Subject           string     `json:"subject"`

	// Token The token is only returned at creation.
	Token *string `json:"token,omitempty"`
}

PortalToken A consumer portal token.

type Problem

type Problem = models.StatusProblem

Problem A Problem Details object (RFC 7807). Additional properties specific to the problem type may be present.

type QueryFilterGroupBy

type QueryFilterGroupBy map[string]string

QueryFilterGroupBy Simple filter for group bys with exact match. Usage: ?filterGroupBy[type]=input&filterGroupBy[model]=gpt-4

type QueryFilterSubject

type QueryFilterSubject = []string

QueryFilterSubject defines model for queryFilterSubject.

type QueryFrom

type QueryFrom = time.Time

QueryFrom defines model for queryFrom.

type QueryGroupBy

type QueryGroupBy = []string

QueryGroupBy defines model for queryGroupBy.

type QueryMeterParams

type QueryMeterParams struct {
	// From Start date-time in RFC 3339 format.
	// Inclusive.
	From *QueryFrom `form:"from,omitempty" json:"from,omitempty"`

	// To End date-time in RFC 3339 format.
	// Inclusive.
	To *QueryTo `form:"to,omitempty" json:"to,omitempty"`

	// WindowSize If not specified, a single usage aggregate will be returned for the entirety of the specified period for each subject and group.
	WindowSize *QueryWindowSize `form:"windowSize,omitempty" json:"windowSize,omitempty"`

	// WindowTimeZone The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones).
	// If not specified, the UTC timezone will be used.
	WindowTimeZone *QueryWindowTimeZone `form:"windowTimeZone,omitempty" json:"windowTimeZone,omitempty"`

	// Subject Filtering and group by multiple subjects.
	// Usage: ?subject=customer-1&subject=customer-2
	Subject       *QueryFilterSubject `form:"subject,omitempty" json:"subject,omitempty"`
	FilterGroupBy *QueryFilterGroupBy `json:"filterGroupBy,omitempty"`

	// GroupBy If not specified a single aggregate will be returned for each subject and time window.
	// `subject` is a reserved group by value.
	GroupBy *QueryGroupBy `form:"groupBy,omitempty" json:"groupBy,omitempty"`
}

QueryMeterParams defines parameters for QueryMeter.

type QueryPortalMeterParams

type QueryPortalMeterParams struct {
	// From Start date-time in RFC 3339 format.
	// Inclusive.
	From *QueryFrom `form:"from,omitempty" json:"from,omitempty"`

	// To End date-time in RFC 3339 format.
	// Inclusive.
	To *QueryTo `form:"to,omitempty" json:"to,omitempty"`

	// WindowSize If not specified, a single usage aggregate will be returned for the entirety of the specified period for each subject and group.
	WindowSize *QueryWindowSize `form:"windowSize,omitempty" json:"windowSize,omitempty"`

	// WindowTimeZone The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones).
	// If not specified, the UTC timezone will be used.
	WindowTimeZone *QueryWindowTimeZone `form:"windowTimeZone,omitempty" json:"windowTimeZone,omitempty"`
	FilterGroupBy  *QueryFilterGroupBy  `json:"filterGroupBy,omitempty"`

	// GroupBy If not specified a single aggregate will be returned for each subject and time window.
	// `subject` is a reserved group by value.
	GroupBy *QueryGroupBy `form:"groupBy,omitempty" json:"groupBy,omitempty"`
}

QueryPortalMeterParams defines parameters for QueryPortalMeter.

type QueryTo

type QueryTo = time.Time

QueryTo defines model for queryTo.

type QueryWindowSize

type QueryWindowSize = WindowSize

QueryWindowSize Aggregation window size.

type QueryWindowTimeZone

type QueryWindowTimeZone = string

QueryWindowTimeZone defines model for queryWindowTimeZone.

type RequiredHeaderError

type RequiredHeaderError struct {
	ParamName string
	Err       error
}

func (*RequiredHeaderError) Error

func (e *RequiredHeaderError) Error() string

func (*RequiredHeaderError) Unwrap

func (e *RequiredHeaderError) Unwrap() error

type RequiredParamError

type RequiredParamError struct {
	ParamName string
}

func (*RequiredParamError) Error

func (e *RequiredParamError) Error() string

type ServerInterface

type ServerInterface interface {
	// List ingested events
	// (GET /api/v1/events)
	ListEvents(w http.ResponseWriter, r *http.Request, params ListEventsParams)
	// Ingest events
	// (POST /api/v1/events)
	IngestEvents(w http.ResponseWriter, r *http.Request)
	// List meters
	// (GET /api/v1/meters)
	ListMeters(w http.ResponseWriter, r *http.Request)
	// ☁ Create meter
	// (POST /api/v1/meters)
	CreateMeter(w http.ResponseWriter, r *http.Request)
	// ☁ Delete meter
	// (DELETE /api/v1/meters/{meterIdOrSlug})
	DeleteMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug)
	// Get meter
	// (GET /api/v1/meters/{meterIdOrSlug})
	GetMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug)
	// Query meter
	// (GET /api/v1/meters/{meterIdOrSlug}/query)
	QueryMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug, params QueryMeterParams)
	// List meter subjects
	// (GET /api/v1/meters/{meterIdOrSlug}/subjects)
	ListMeterSubjects(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug)
	// Query portal meter
	// (GET /api/v1/portal/meters/{meterSlug}/query)
	QueryPortalMeter(w http.ResponseWriter, r *http.Request, meterSlug string, params QueryPortalMeterParams)
	// ☁ List portal tokens
	// (GET /api/v1/portal/tokens)
	ListPortalTokens(w http.ResponseWriter, r *http.Request, params ListPortalTokensParams)
	// Create portal token
	// (POST /api/v1/portal/tokens)
	CreatePortalToken(w http.ResponseWriter, r *http.Request)
	// ☁ Invalidate portal tokens
	// (POST /api/v1/portal/tokens/invalidate)
	InvalidatePortalTokens(w http.ResponseWriter, r *http.Request)
	// ☁ List subjects
	// (GET /api/v1/subjects)
	ListSubjects(w http.ResponseWriter, r *http.Request)
	// ☁ Upsert subject
	// (POST /api/v1/subjects)
	UpsertSubject(w http.ResponseWriter, r *http.Request)
	// ☁ Delete subject
	// (DELETE /api/v1/subjects/{subjectIdOrKey})
	DeleteSubject(w http.ResponseWriter, r *http.Request, subjectIdOrKey SubjectIdOrKey)
	// ☁ Get subject
	// (GET /api/v1/subjects/{subjectIdOrKey})
	GetSubject(w http.ResponseWriter, r *http.Request, subjectIdOrKey SubjectIdOrKey)
}

ServerInterface represents all server handlers.

type ServerInterfaceWrapper

type ServerInterfaceWrapper struct {
	Handler            ServerInterface
	HandlerMiddlewares []MiddlewareFunc
	ErrorHandlerFunc   func(w http.ResponseWriter, r *http.Request, err error)
}

ServerInterfaceWrapper converts contexts to parameters.

func (*ServerInterfaceWrapper) CreateMeter

func (siw *ServerInterfaceWrapper) CreateMeter(w http.ResponseWriter, r *http.Request)

CreateMeter operation middleware

func (*ServerInterfaceWrapper) CreatePortalToken

func (siw *ServerInterfaceWrapper) CreatePortalToken(w http.ResponseWriter, r *http.Request)

CreatePortalToken operation middleware

func (*ServerInterfaceWrapper) DeleteMeter

func (siw *ServerInterfaceWrapper) DeleteMeter(w http.ResponseWriter, r *http.Request)

DeleteMeter operation middleware

func (*ServerInterfaceWrapper) DeleteSubject

func (siw *ServerInterfaceWrapper) DeleteSubject(w http.ResponseWriter, r *http.Request)

DeleteSubject operation middleware

func (*ServerInterfaceWrapper) GetMeter

func (siw *ServerInterfaceWrapper) GetMeter(w http.ResponseWriter, r *http.Request)

GetMeter operation middleware

func (*ServerInterfaceWrapper) GetSubject

func (siw *ServerInterfaceWrapper) GetSubject(w http.ResponseWriter, r *http.Request)

GetSubject operation middleware

func (*ServerInterfaceWrapper) IngestEvents

func (siw *ServerInterfaceWrapper) IngestEvents(w http.ResponseWriter, r *http.Request)

IngestEvents operation middleware

func (*ServerInterfaceWrapper) InvalidatePortalTokens

func (siw *ServerInterfaceWrapper) InvalidatePortalTokens(w http.ResponseWriter, r *http.Request)

InvalidatePortalTokens operation middleware

func (*ServerInterfaceWrapper) ListEvents

func (siw *ServerInterfaceWrapper) ListEvents(w http.ResponseWriter, r *http.Request)

ListEvents operation middleware

func (*ServerInterfaceWrapper) ListMeterSubjects

func (siw *ServerInterfaceWrapper) ListMeterSubjects(w http.ResponseWriter, r *http.Request)

ListMeterSubjects operation middleware

func (*ServerInterfaceWrapper) ListMeters

func (siw *ServerInterfaceWrapper) ListMeters(w http.ResponseWriter, r *http.Request)

ListMeters operation middleware

func (*ServerInterfaceWrapper) ListPortalTokens

func (siw *ServerInterfaceWrapper) ListPortalTokens(w http.ResponseWriter, r *http.Request)

ListPortalTokens operation middleware

func (*ServerInterfaceWrapper) ListSubjects

func (siw *ServerInterfaceWrapper) ListSubjects(w http.ResponseWriter, r *http.Request)

ListSubjects operation middleware

func (*ServerInterfaceWrapper) QueryMeter

func (siw *ServerInterfaceWrapper) QueryMeter(w http.ResponseWriter, r *http.Request)

QueryMeter operation middleware

func (*ServerInterfaceWrapper) QueryPortalMeter

func (siw *ServerInterfaceWrapper) QueryPortalMeter(w http.ResponseWriter, r *http.Request)

QueryPortalMeter operation middleware

func (*ServerInterfaceWrapper) UpsertSubject

func (siw *ServerInterfaceWrapper) UpsertSubject(w http.ResponseWriter, r *http.Request)

UpsertSubject operation middleware

type Subject

type Subject struct {
	CurrentPeriodEnd   *time.Time              `json:"currentPeriodEnd"`
	CurrentPeriodStart *time.Time              `json:"currentPeriodStart"`
	DisplayName        *string                 `json:"displayName"`
	Id                 *string                 `json:"id,omitempty"`
	Key                string                  `json:"key"`
	Metadata           *map[string]interface{} `json:"metadata"`
	StripeCustomerId   *string                 `json:"stripeCustomerId"`
}

Subject A subject is a unique identifier for a user or entity.

type SubjectIdOrKey

type SubjectIdOrKey = string

SubjectIdOrKey defines model for subjectIdOrKey.

type TooManyValuesForParamError

type TooManyValuesForParamError struct {
	ParamName string
	Count     int
}

func (*TooManyValuesForParamError) Error

type UnauthorizedProblemResponse

type UnauthorizedProblemResponse = Problem

UnauthorizedProblemResponse A Problem Details object (RFC 7807). Additional properties specific to the problem type may be present.

type UnescapedCookieParamError

type UnescapedCookieParamError struct {
	ParamName string
	Err       error
}

func (*UnescapedCookieParamError) Error

func (e *UnescapedCookieParamError) Error() string

func (*UnescapedCookieParamError) Unwrap

func (e *UnescapedCookieParamError) Unwrap() error

type UnexpectedProblemResponse

type UnexpectedProblemResponse = Problem

UnexpectedProblemResponse A Problem Details object (RFC 7807). Additional properties specific to the problem type may be present.

type Unimplemented

type Unimplemented struct{}

func (Unimplemented) CreateMeter

func (_ Unimplemented) CreateMeter(w http.ResponseWriter, r *http.Request)

☁ Create meter (POST /api/v1/meters)

func (Unimplemented) CreatePortalToken

func (_ Unimplemented) CreatePortalToken(w http.ResponseWriter, r *http.Request)

Create portal token (POST /api/v1/portal/tokens)

func (Unimplemented) DeleteMeter

func (_ Unimplemented) DeleteMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug)

☁ Delete meter (DELETE /api/v1/meters/{meterIdOrSlug})

func (Unimplemented) DeleteSubject

func (_ Unimplemented) DeleteSubject(w http.ResponseWriter, r *http.Request, subjectIdOrKey SubjectIdOrKey)

☁ Delete subject (DELETE /api/v1/subjects/{subjectIdOrKey})

func (Unimplemented) GetMeter

func (_ Unimplemented) GetMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug)

Get meter (GET /api/v1/meters/{meterIdOrSlug})

func (Unimplemented) GetSubject

func (_ Unimplemented) GetSubject(w http.ResponseWriter, r *http.Request, subjectIdOrKey SubjectIdOrKey)

☁ Get subject (GET /api/v1/subjects/{subjectIdOrKey})

func (Unimplemented) IngestEvents

func (_ Unimplemented) IngestEvents(w http.ResponseWriter, r *http.Request)

Ingest events (POST /api/v1/events)

func (Unimplemented) InvalidatePortalTokens

func (_ Unimplemented) InvalidatePortalTokens(w http.ResponseWriter, r *http.Request)

☁ Invalidate portal tokens (POST /api/v1/portal/tokens/invalidate)

func (Unimplemented) ListEvents

func (_ Unimplemented) ListEvents(w http.ResponseWriter, r *http.Request, params ListEventsParams)

List ingested events (GET /api/v1/events)

func (Unimplemented) ListMeterSubjects

func (_ Unimplemented) ListMeterSubjects(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug)

List meter subjects (GET /api/v1/meters/{meterIdOrSlug}/subjects)

func (Unimplemented) ListMeters

func (_ Unimplemented) ListMeters(w http.ResponseWriter, r *http.Request)

List meters (GET /api/v1/meters)

func (Unimplemented) ListPortalTokens

func (_ Unimplemented) ListPortalTokens(w http.ResponseWriter, r *http.Request, params ListPortalTokensParams)

☁ List portal tokens (GET /api/v1/portal/tokens)

func (Unimplemented) ListSubjects

func (_ Unimplemented) ListSubjects(w http.ResponseWriter, r *http.Request)

☁ List subjects (GET /api/v1/subjects)

func (Unimplemented) QueryMeter

func (_ Unimplemented) QueryMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug MeterIdOrSlug, params QueryMeterParams)

Query meter (GET /api/v1/meters/{meterIdOrSlug}/query)

func (Unimplemented) QueryPortalMeter

func (_ Unimplemented) QueryPortalMeter(w http.ResponseWriter, r *http.Request, meterSlug string, params QueryPortalMeterParams)

Query portal meter (GET /api/v1/portal/meters/{meterSlug}/query)

func (Unimplemented) UpsertSubject

func (_ Unimplemented) UpsertSubject(w http.ResponseWriter, r *http.Request)

☁ Upsert subject (POST /api/v1/subjects)

type UnmarshalingParamError

type UnmarshalingParamError struct {
	ParamName string
	Err       error
}

func (*UnmarshalingParamError) Error

func (e *UnmarshalingParamError) Error() string

func (*UnmarshalingParamError) Unwrap

func (e *UnmarshalingParamError) Unwrap() error

type UpsertSubjectJSONBody

type UpsertSubjectJSONBody = []Subject

UpsertSubjectJSONBody defines parameters for UpsertSubject.

type UpsertSubjectJSONRequestBody

type UpsertSubjectJSONRequestBody = UpsertSubjectJSONBody

UpsertSubjectJSONRequestBody defines body for UpsertSubject for application/json ContentType.

type WindowSize

type WindowSize = models.WindowSize

WindowSize Aggregation window size.

Directories

Path Synopsis
client
go
Package openmeter provides primitives to interact with the openapi HTTP API.
Package openmeter provides primitives to interact with the openapi HTTP API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL