Documentation ¶
Overview ¶
Package types contains request/response types and codes for the server.
Index ¶
- Constants
- func BadPatchOperationErr(op string) error
- func BadPatchPathErr(path string) error
- func IsBadRequest(err error) bool
- type AdhocQueryResultSetV1
- type BadRequestErr
- type BindingV1
- type BindingsV1
- type CompileRequestV1
- type CompileResponseV1
- type DataRequestV1
- type DataResponseV1
- type DiagnosticsResponseElementV1
- type DiagnosticsResponseV1
- type ErrorV1
- type ExplainModeV1
- type MetricsV1
- type PartialEvaluationResultV1
- type PatchV1
- type PolicyDeleteResponseV1
- type PolicyGetResponseV1
- type PolicyListResponseV1
- type PolicyPutResponseV1
- type PolicyV1
- type QueryRequestV1
- type QueryResponseV1
- type TraceEventV1
- type TraceV1
- type TraceV1Pretty
- type TraceV1Raw
- type WatchResponseV1
Constants ¶
const ( CodeInternal = "internal_error" CodeEvaluation = "evaluation_error" CodeInvalidParameter = "invalid_parameter" CodeInvalidOperation = "invalid_operation" CodeResourceNotFound = "resource_not_found" CodeResourceConflict = "resource_conflict" CodeUndefinedDocument = "undefined_document" )
Error codes returned by OPA's REST API.
const ( MsgCompileModuleError = "error(s) occurred while compiling module(s)" MsgParseQueryError = "error(s) occurred while parsing query" MsgCompileQueryError = "error(s) occurred while compiling query" MsgEvaluationError = "error(s) occurred while evaluating query" MsgUndefinedError = "document missing or undefined" MsgDiagnosticsDisabled = "diagnostics are not enabled" MsgPluginConfigError = "error(s) occurred while configuring plugin(s)" )
Messages included in error responses.
const ( // ParamQueryV1 defines the name of the HTTP URL parameter that specifies // values for the request query. ParamQueryV1 = "q" // ParamInputV1 defines the name of the HTTP URL parameter that specifies // values for the "input" document. ParamInputV1 = "input" // ParamPrettyV1 defines the name of the HTTP URL parameter that indicates // the client wants to receive a pretty-printed version of the response. ParamPrettyV1 = "pretty" // ParamExplainV1 defines the name of the HTTP URL parameter that indicates the // client wants to receive explanations in addition to the result. ParamExplainV1 = "explain" // ParamMetricsV1 defines the name of the HTTP URL parameter that indicates // the client wants to receive performance metrics in addition to the // result. ParamMetricsV1 = "metrics" // ParamInstrumentV1 defines the name of the HTTP URL parameter that // indicates the client wants to receive instrumentation data for // diagnosing performance issues. ParamInstrumentV1 = "instrument" // ParamPartialV1 defines the name of the HTTP URL parameter that indicates // the client wants the partial evaluation optimization to be used during // query evaluation. ParamPartialV1 = "partial" // ParamWatchV1 defines the name of the HTTP URL parameter that indicates // the client wants to set a watch on the current query or data reference. ParamWatchV1 = "watch" )
Variables ¶
This section is empty.
Functions ¶
func BadPatchOperationErr ¶
BadPatchOperationErr returns BadRequestErr indicating the patch operation was invalid.
func BadPatchPathErr ¶
BadPatchPathErr returns BadRequestErr indicating the patch path was invalid.
func IsBadRequest ¶
IsBadRequest returns true if err is a BadRequestErr.
Types ¶
type AdhocQueryResultSetV1 ¶
type AdhocQueryResultSetV1 []map[string]interface{}
AdhocQueryResultSetV1 models the result of a Query API query.
type BadRequestErr ¶
type BadRequestErr string
BadRequestErr represents an error condition raised if the caller passes invalid parameters.
func (BadRequestErr) Error ¶
func (err BadRequestErr) Error() string
type BindingV1 ¶
BindingV1 represents a single term binding.
func NewBindingsV1 ¶
NewBindingsV1 returns a new BindingsV1 object.
type CompileRequestV1 ¶ added in v0.9.0
type CompileRequestV1 struct { Input *interface{} `json:"input"` Query string `json:"query"` Unknowns *[]string `json:"unknowns"` }
CompileRequestV1 models the request message for Compile API operations.
type CompileResponseV1 ¶ added in v0.9.0
type CompileResponseV1 struct { Result *interface{} `json:"result,omitempty"` Explanation TraceV1 `json:"explanation,omitempty"` Metrics MetricsV1 `json:"metrics,omitempty"` }
CompileResponseV1 models the response messaage for Compile API operations.
type DataRequestV1 ¶
type DataRequestV1 struct {
Input *interface{} `json:"input"`
}
DataRequestV1 models the request message for Data API POST operations.
type DataResponseV1 ¶
type DataResponseV1 struct { DecisionID string `json:"decision_id,omitempty"` Explanation TraceV1 `json:"explanation,omitempty"` Metrics MetricsV1 `json:"metrics,omitempty"` Result *interface{} `json:"result,omitempty"` }
DataResponseV1 models the response message for Data API read operations.
type DiagnosticsResponseElementV1 ¶ added in v0.5.5
type DiagnosticsResponseElementV1 struct { Revision string `json:"revision,omitempty"` DecisionID string `json:"decision_id,omitempty"` RemoteAddr string `json:"remote_addr"` Query string `json:"query"` Timestamp string `json:"timestamp"` Input interface{} `json:"input,omitempty"` Result *interface{} `json:"result,omitempty"` Error *ErrorV1 `json:"error,omitempty"` Explanation TraceV1 `json:"explanation,omitempty"` Metrics MetricsV1 `json:"metrics,omitempty"` }
DiagnosticsResponseElementV1 models an element in the response message for the Diagnostics API.
type DiagnosticsResponseV1 ¶ added in v0.5.9
type DiagnosticsResponseV1 struct {
Result []DiagnosticsResponseElementV1 `json:"result"`
}
DiagnosticsResponseV1 models the response message for diagnostics reads.
type ErrorV1 ¶
type ErrorV1 struct { Code string `json:"code"` Message string `json:"message"` Errors []error `json:"errors,omitempty"` }
ErrorV1 models an error response sent to the client.
func NewErrorV1 ¶
NewErrorV1 returns a new ErrorV1 object.
func (*ErrorV1) WithASTErrors ¶
WithASTErrors updates e to include detailed AST errors.
type ExplainModeV1 ¶
type ExplainModeV1 string
ExplainModeV1 defines supported values for the "explain" query parameter.
const ( ExplainOffV1 ExplainModeV1 = "off" ExplainFullV1 ExplainModeV1 = "full" )
Explanation mode enumeration.
type MetricsV1 ¶ added in v0.4.9
type MetricsV1 map[string]interface{}
MetricsV1 models a collection of performance metrics.
type PartialEvaluationResultV1 ¶ added in v0.9.0
type PartialEvaluationResultV1 struct { Queries []ast.Body `json:"queries,omitempty"` Support []*ast.Module `json:"support,omitempty"` }
PartialEvaluationResultV1 represents the output of partial evaluation and is included in Compile API responses.
type PatchV1 ¶
type PatchV1 struct { Op string `json:"op"` Path string `json:"path"` Value interface{} `json:"value"` }
PatchV1 models a single patch operation against a document.
type PolicyDeleteResponseV1 ¶ added in v0.5.6
type PolicyDeleteResponseV1 struct {
Metrics MetricsV1 `json:"metrics,omitempty"`
}
PolicyDeleteResponseV1 models the response message for the Policy API delete operation.
type PolicyGetResponseV1 ¶
type PolicyGetResponseV1 struct {
Result PolicyV1 `json:"result"`
}
PolicyGetResponseV1 models the response message for the Policy API get operation.
type PolicyListResponseV1 ¶
type PolicyListResponseV1 struct {
Result []PolicyV1 `json:"result"`
}
PolicyListResponseV1 models the response mesasge for the Policy API list operation.
type PolicyPutResponseV1 ¶
type PolicyPutResponseV1 struct {
Metrics MetricsV1 `json:"metrics,omitempty"`
}
PolicyPutResponseV1 models the response message for the Policy API put operation.
type QueryRequestV1 ¶ added in v0.10.0
type QueryRequestV1 struct {
Query string `json:"query"`
}
QueryRequestV1 models the request message for Query API operations.
type QueryResponseV1 ¶
type QueryResponseV1 struct { Explanation TraceV1 `json:"explanation,omitempty"` Metrics MetricsV1 `json:"metrics,omitempty"` Result AdhocQueryResultSetV1 `json:"result,omitempty"` }
QueryResponseV1 models the response message for Query API operations.
type TraceEventV1 ¶
type TraceEventV1 struct { Op string `json:"op"` QueryID uint64 `json:"query_id"` ParentID uint64 `json:"parent_id"` Type string `json:"type"` Node interface{} `json:"node"` Locals BindingsV1 `json:"locals"` Message string `json:"message,omitempty"` }
TraceEventV1 represents a step in the query evaluation process.
func (*TraceEventV1) UnmarshalJSON ¶
func (te *TraceEventV1) UnmarshalJSON(bs []byte) error
UnmarshalJSON deserializes a TraceEventV1 object. The Node field is deserialized based on the type hint from the type property in the JSON object.
type TraceV1 ¶
type TraceV1 json.RawMessage
TraceV1 models the trace result returned for queries that include the "explain" parameter.
func NewTraceV1 ¶
NewTraceV1 returns a new TraceV1 object.
func (TraceV1) MarshalJSON ¶ added in v0.5.5
MarshalJSON unmarshals the TraceV1 to a JSON representation.
func (*TraceV1) UnmarshalJSON ¶ added in v0.5.5
UnmarshalJSON unmarshals the TraceV1 from a JSON representation.
type TraceV1Pretty ¶ added in v0.5.5
type TraceV1Pretty []string
TraceV1Pretty models the trace result returned for queries that include the "explain" parameter. The trace is modelled as a human readable array of strings representing the evaluation of the query.
func (*TraceV1Pretty) UnmarshalJSON ¶ added in v0.5.5
func (t *TraceV1Pretty) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the TraceV1Pretty from a JSON representation.
type TraceV1Raw ¶ added in v0.5.5
type TraceV1Raw []TraceEventV1
TraceV1Raw models the trace result returned for queries that include the "explain" parameter. The trace is modelled as series of trace events that identify the expression, local term bindings, query hierarchy, etc.
func (*TraceV1Raw) UnmarshalJSON ¶ added in v0.5.5
func (t *TraceV1Raw) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the TraceV1Raw from a JSON representation.
type WatchResponseV1 ¶ added in v0.5.3
type WatchResponseV1 struct { Explanation TraceV1 `json:"explanation,omitempty"` Metrics MetricsV1 `json:"metrics,omitempty"` Result interface{} `json:"result,omitempty"` // The Error needs to be in the response since we've hijacked the connection // when writing WatchResponseV1 streams. Error *ErrorV1 `json:"error,omitempty"` }
WatchResponseV1 models a message in the response stream for a watch.