namespace NpgsqlRest; public enum RoutineType { Table, View, Function, Procedure, Other, SqlFile } public enum CrudType { Select, Insert, Update, Delete } public enum Method { GET, PUT, POST, DELETE } public enum RequestParamType { QueryString, BodyJson } public enum ParamType { QueryString, BodyJson, BodyParam, HeaderParam, PathParam } public enum CommentHeader { None, Simple, Full } public enum TextResponseNullHandling { EmptyString, NullLiteral, NoContent } public enum QueryStringNullHandling { EmptyString, NullLiteral, Ignore } public enum SslRequirement { Ignore, Warning, Required } public enum PostgresNoticeLevels { INFO, NOTICE, WARNING } public enum ServiceProviderObject { /// /// Connection is not provided in service provider. Connection is supplied either by ConnectionString or by DataSource option. /// None, /// /// NpgsqlRest attempts to get NpgsqlDataSource from service provider (assuming one is provided). /// NpgsqlDataSource, /// /// NpgsqlRest attempts to get NpgsqlConnection from service provider (assuming one is provided). /// NpgsqlConnection } public enum CommentsMode { /// /// Routine comments are ignored. /// Ignore, /// /// Creates all endpoints and parses comments for to configure endpoint meta data. /// ParseAll, /// /// Legacy alias of , kept for back-compat. Behaves identically: an /// endpoint is created when its comment has an HTTP tag OR a plugin requests an endpoint (e.g. `mcp`). /// OnlyWithHttpTag, /// /// Creates only endpoints whose comment opts the routine in via a recognized EXPOSURE tag — an /// HTTP tag (HTTP endpoint) or a plugin annotation that requests an endpoint (e.g. `mcp`, which can /// be HTTP+MCP, or MCP-only when combined with `internal`). Transport-agnostic. Modifier-only /// comments (e.g. just `authorize`, `cached`, or `openapi hide` on a non-HTTP routine) create nothing. /// OnlyAnnotated } public enum RequestHeadersMode { /// /// Ignore request headers, don't send them to PostgreSQL (default). /// Ignore, /// /// Send all request headers as json object to PostgreSQL by executing set_config('context.headers', headers, false) before routine call. /// Context, /// /// Send all request headers as json object to PostgreSQL as default routine parameter with name set by RequestHeadersParameterName option. /// This parameter has to have the default value (null) in the routine and have to be text or json type. /// Parameter } public enum PostgresConnectionNoticeLoggingMode { /// /// Log only connection messages. /// MessageOnly, /// /// Log last stack trace and message. /// FirstStackFrameAndMessage, /// /// Log full stack trace and message. /// FullStackAndMessage } public enum SseEventsScope { /// /// All sessions with matching security context (RequiresAuthorization + AuthorizeRoles) /// Matching, /// /// All authorized sessions /// Authorize, /// /// All connected sessions regardless of authorization /// All } /// /// Source of a value bound to a BeforeRoutineCommand parameter at request time. /// public enum BeforeRoutineCommandParameterSource { /// /// Value comes from a user claim. Parameter Name is the claim type to look up on HttpContext.User. /// Multi-value claims are joined the same way as ContextKeyClaimsMapping. Missing claims bind to NULL. /// Claim, /// /// Value comes from a request header. Parameter Name is the header name. Missing headers bind to NULL. /// RequestHeader, /// /// Value is the client IP address (uses the same resolution as IpAddressContextKey). Parameter Name is ignored. /// IpAddress }