arbiter-servant-openapi-0.1.0.0
arbiter-servant-openapi
Safe HaskellNone
LanguageGHC2024

Arbiter.Servant.OpenApi

Description

OpenAPI 3 description of ArbiterAPI. The route types define paths, methods, parameters, bodies, responses, and status codes. RegistryToAPI expands to the server route tree and includes each queue by its registry name with its payload and result schemas.

Each payload requires a ToSchema instance. For generic JSON, use deriving anyclass (ToSchema). This module defines a Value instance for free-form payloads.

Handwritten schemas are present for handwritten JSON encodings. Each schema applies the applicable record constructor. Missing, misordered, or incorrect field types cause a compile error. Generic encodings use generic schemas.

Synopsis

The document

Source #openApiSpec :: forall (registry :: JobPayloadRegistry). HasOpenApi (ArbiterAPI registry) => Value

The description of a registry's API, from its route types.

Serving it

Source #type OpenApiAPI = "openapi.json" :> Get '[JSON] Value

The document's own route, for mounting beside ArbiterAPI.

Source #openApiServer :: forall (registry :: JobPayloadRegistry). HasOpenApi (ArbiterAPI registry) => Server OpenApiAPI

Serve the description of a registry's API.

Orphan instances

ToParamSchema JobStatus Source # 
Instance details

ToParamSchema ArchiveSortColumn Source # 
Instance details

ToParamSchema DLQSortColumn Source # 
Instance details

ToParamSchema JobSortColumn Source # 
Instance details

ToParamSchema SortDir Source # 
Instance details

ToSchema Value Source #

A caller-defined payload or result.

Instance details

ToSchema ConcurrencyKey Source # 
Instance details

ToSchema ConcurrencyKeyView Source # 
Instance details

ToSchema ConcurrencyPolicyUpdate Source # 
Instance details

ToSchema ConcurrencyPolicyView Source # 
Instance details

ToSchema CronScheduleRow Source # 
Instance details

ToSchema CronScheduleUpdate Source # 
Instance details

ToSchema PgDbHealth Source # 
Instance details

ToSchema PgTableHealth Source # 
Instance details

ToSchema DedupKey Source # 
Instance details

ToSchema JobStatus Source # 
Instance details

ToSchema QueueOverview Source # 
Instance details

ToSchema QueueStats Source # 
Instance details

ToSchema QueueRow Source # 
Instance details

ToSchema RateLimitKey Source # 
Instance details

ToSchema RateLimitBucketView Source # 
Instance details

ToSchema RateLimitPolicyUpdate Source # 
Instance details

ToSchema RateLimitPolicyView Source # 
Instance details

ToSchema WorkerHealth Source # 
Instance details

ToSchema WorkerRow Source # 
Instance details

ToSchema AllStatsResponse Source # 
Instance details

ToSchema BatchDeleteRequest Source # 
Instance details

ToSchema BatchDeleteResponse Source # 
Instance details

ToSchema ClaimRequest Source # 
Instance details

ToSchema ConcurrencyKeysResponse Source # 
Instance details

ToSchema ConcurrencyPoliciesResponse Source # 
Instance details

ToSchema ConcurrencyReconcileResponse Source # 
Instance details

ToSchema CronScheduleView Source # 
Instance details

ToSchema CronSchedulesResponse Source # 
Instance details

ToSchema ExtendRequest Source # 
Instance details

ToSchema HealthResponse Source # 
Instance details

ToSchema HealthStatus Source # 
Instance details

ToSchema JobLease Source # 
Instance details

ToSchema LivenessResponse Source # 
Instance details

ToSchema MaintenanceResponse Source # 
Instance details

ToSchema QueuesResponse Source # 
Instance details

ToSchema RateLimitBucketsResponse Source # 
Instance details

ToSchema RateLimitPoliciesResponse Source # 
Instance details

ToSchema RateLimitResetResponse Source # 
Instance details

ToSchema StatsResponse Source # 
Instance details

ToSchema WorkersResponse Source # 
Instance details

ToSchema result => ToSchema (AckRequest result) Source #

Ack request with an optional queue result.

Instance details

ToSchema payload => ToSchema (ApiArchiveJob payload) Source # 
Instance details

ToSchema payload => ToSchema (ApiDLQJob payload) Source # 
Instance details

ToSchema payload => ToSchema (ApiJob payload) Source # 
Instance details

ToSchema payload => ToSchema (ApiJobWithStatus payload) Source # 
Instance details

ToSchema payload => ToSchema (ApiJobWrite payload) Source # 
Instance details

ToSchema payload => ToSchema (ArchiveResponse payload) Source # 
Instance details

ToSchema payload => ToSchema (BatchInsertRequest payload) Source # 
Instance details

ToSchema payload => ToSchema (BatchInsertResponse payload) Source # 
Instance details

ToSchema payload => ToSchema (ClaimResponse payload) Source #

Schema for claimed jobs under the JSON field jobs.

Instance details

ToSchema payload => ToSchema (DLQResponse payload) Source # 
Instance details

ToSchema payload => ToSchema (JobResponse (ApiJob payload)) Source # 
Instance details

ToSchema payload => ToSchema (JobResponse (ApiJobWithStatus payload)) Source # 
Instance details

ToSchema payload => ToSchema (JobsResponse payload) Source # 
Instance details