FlowControlServiceHTTP_CheckHTTP
FlowControlServiceHTTP_CheckHTTP
- application/json
Request Body required
- control_point string
For an SDK based insertion, a Control Point can represent a particular feature or execution block within a Service. In case of Service Mesh or Middleware insertion, a Control Point can identify ingress vs egress calls or distinct listeners or filter chains.
destination object
The destination of a network activity, such as accepting a TCP connection. In a multi hop network activity, the destination represents the receiver of the last hop.
address stringThe address for this socket.
port int64The port for this socket.
protocol stringPossible values: [
TCP
,UDP
]Default value:
TCP
- expect_end boolean
Expect End denotes whether to expect a FlowEnd call for this flow.
- ramp_mode boolean
A flow with ramp_mode flag will only be accepted if at least one ramp component matches and accepts the flow.
request object
Represents a network request, such as an HTTP request.
body stringThe HTTP request body.
headers object
The HTTP request headers.
property name*
stringhost stringThe HTTP request
Host
header value.method stringThe HTTP request method, such as
GET
,POST
.path stringThe request target, as it appears in the first line of the HTTP request. This includes the URL path and query-string. No decoding is performed.
protocol stringThe network protocol used with the request, such as "HTTP/1.0", "HTTP/1.1", or "HTTP/2".
scheme stringThe HTTP URL scheme, such as
http
andhttps
.size int64The HTTP request size in bytes. If unknown, it must be -1.
source object
The source of a network activity, such as starting a TCP connection. In a multi hop network activity, the source represents the sender of the last hop.
address stringThe address for this socket.
port int64The port for this socket.
protocol stringPossible values: [
TCP
,UDP
]Default value:
TCP
- 200
- default
A successful response.
- application/json
- Schema
- Example (from schema)
Schema
check_response object
The response from the check call.
cache_lookup_response object
CacheLookupResponse contains the result of the cache lookup.
global_cache_responses object
property name* object
error stringlookup_status stringPossible values: [
HIT
,MISS
]Default value:
HIT
operation_status stringPossible values: [
SUCCESS
,ERROR
]Default value:
SUCCESS
value byteresult_cache_response object
error stringlookup_status stringPossible values: [
HIT
,MISS
]Default value:
HIT
operation_status stringPossible values: [
SUCCESS
,ERROR
]Default value:
SUCCESS
value byteclassifier_infos object[]
classifiers that were matched for this request.
Array [classifier_index int64error stringPossible values: [
ERROR_NONE
,ERROR_EVAL_FAILED
,ERROR_EMPTY_RESULTSET
,ERROR_AMBIGUOUS_RESULTSET
,ERROR_MULTI_EXPRESSION
,ERROR_EXPRESSION_NOT_MAP
]Default value:
ERROR_NONE
Error information.
policy_hash stringpolicy_name string]control_point control_point of requestdecision_type stringPossible values: [
DECISION_TYPE_ACCEPTED
,DECISION_TYPE_REJECTED
]Default value:
DECISION_TYPE_ACCEPTED
decision_type contains what the decision was.
denied_response_status_code HTTP response codes. For more details: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtmlPossible values: [
Empty
,Continue
,OK
,Created
,Accepted
,NonAuthoritativeInformation
,NoContent
,ResetContent
,PartialContent
,MultiStatus
,AlreadyReported
,IMUsed
,MultipleChoices
,MovedPermanently
,Found
,SeeOther
,NotModified
,UseProxy
,TemporaryRedirect
,PermanentRedirect
,BadRequest
,Unauthorized
,PaymentRequired
,Forbidden
,NotFound
,MethodNotAllowed
,NotAcceptable
,ProxyAuthenticationRequired
,RequestTimeout
,Conflict
,Gone
,LengthRequired
,PreconditionFailed
,PayloadTooLarge
,URITooLong
,UnsupportedMediaType
,RangeNotSatisfiable
,ExpectationFailed
,MisdirectedRequest
,UnprocessableEntity
,Locked
,FailedDependency
,UpgradeRequired
,PreconditionRequired
,TooManyRequests
,RequestHeaderFieldsTooLarge
,InternalServerError
,NotImplemented
,BadGateway
,ServiceUnavailable
,GatewayTimeout
,HTTPVersionNotSupported
,VariantAlsoNegotiates
,InsufficientStorage
,LoopDetected
,NotExtended
,NetworkAuthenticationRequired
]Default value:
Empty
http_status contains the http status code to be returned to the client, if decision_type is REJECTED. Optional.
end date-timeexpect_end booleanExpected End for this request.
flow_label_keys string[]flow label keys that were matched for this request.
flux_meter_infos object[]
flux meters that were matched for this request.
Array [flux_meter_name string]limiter_decisions object[]
limiter_decisions contains information about decision made by each limiter.
Array [component_id stringconcurrency_limiter_info object
label stringrequest_id stringtokens_info object
consumed doublecurrent doubleremaining doubleremaining and current may not provide accurate values in case the request times out while waiting for tokens.
concurrency_scheduler_info object
label stringpriority doublerequest_id stringtokens_info object
consumed doublecurrent doubleremaining doubleremaining and current may not provide accurate values in case the request times out while waiting for tokens.
workload_index stringdenied_response_status_code HTTP response codes. For more details: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtmlPossible values: [
Empty
,Continue
,OK
,Created
,Accepted
,NonAuthoritativeInformation
,NoContent
,ResetContent
,PartialContent
,MultiStatus
,AlreadyReported
,IMUsed
,MultipleChoices
,MovedPermanently
,Found
,SeeOther
,NotModified
,UseProxy
,TemporaryRedirect
,PermanentRedirect
,BadRequest
,Unauthorized
,PaymentRequired
,Forbidden
,NotFound
,MethodNotAllowed
,NotAcceptable
,ProxyAuthenticationRequired
,RequestTimeout
,Conflict
,Gone
,LengthRequired
,PreconditionFailed
,PayloadTooLarge
,URITooLong
,UnsupportedMediaType
,RangeNotSatisfiable
,ExpectationFailed
,MisdirectedRequest
,UnprocessableEntity
,Locked
,FailedDependency
,UpgradeRequired
,PreconditionRequired
,TooManyRequests
,RequestHeaderFieldsTooLarge
,InternalServerError
,NotImplemented
,BadGateway
,ServiceUnavailable
,GatewayTimeout
,HTTPVersionNotSupported
,VariantAlsoNegotiates
,InsufficientStorage
,LoopDetected
,NotExtended
,NetworkAuthenticationRequired
]Default value:
Empty
- Empty: Empty - This code not part of the HTTP status code specification, but it is needed for
enum
type.
dropped booleanload_scheduler_info object
priority doubletokens_info object
consumed doublecurrent doubleremaining doubleremaining and current may not provide accurate values in case the request times out while waiting for tokens.
workload_index stringpolicy_hash stringpolicy_name stringquota_scheduler_info object
label stringpriority doubletokens_info object
consumed doublecurrent doubleremaining doubleremaining and current may not provide accurate values in case the request times out while waiting for tokens.
workload_index stringrate_limiter_info object
label stringtokens_info object
consumed doublecurrent doubleremaining doubleremaining and current may not provide accurate values in case the request times out while waiting for tokens.
reason stringPossible values: [
LIMITER_REASON_UNSPECIFIED
,LIMITER_REASON_KEY_NOT_FOUND
]Default value:
LIMITER_REASON_UNSPECIFIED
sampler_info object
label stringwait_time string]reject_reason stringPossible values: [
REJECT_REASON_NONE
,REJECT_REASON_RATE_LIMITED
,REJECT_REASON_NO_TOKENS
,REJECT_REASON_NOT_SAMPLED
,REJECT_REASON_NO_MATCHING_RAMP
]Default value:
REJECT_REASON_NONE
reject_reason contains the reason for the rejection.
services string[]start date-timetelemetry_flow_labels object
telemetry_flow_labels are labels for telemetry purpose. The keys in telemetry_flow_labels is subset of flow_label_keys.
property name*
stringwait_time stringRecommended minimal amount of time to wait when retrying the request, if decision_type is REJECTED. Optional.
denied_response object
Supplies http attributes for a denied response.
body stringThis field allows the authorization service to send a response body data to the downstream client.
headers object
This field allows the authorization service to send HTTP response headers to the downstream client.
property name*
stringstatus int32This field allows the authorization service to send an HTTP response status code to the downstream client. If not set, Envoy sends
403 Forbidden
HTTP status code by default.- dynamic_metadata object
Optional response metadata that will be emitted as dynamic metadata to be consumed by the next filter.
ok_response object
Supplies http attributes for an ok response.
dynamic_metadata objectheaders object
HTTP entity headers in addition to the original request headers.
property name*
stringstatus object
The
Status
type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatus
message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide.
code int32The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
details object[]
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Array [@type stringA URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in
path/google.protobuf.Duration
). The name should be in a canonical form (e.g., leading "." is not accepted).In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme
http
,https
, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:- If no scheme is provided,
https
is assumed. - An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
- Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one.
Schemes other than
http
,https
(or the empty scheme) might be used with implementation specific semantics.]message stringA developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
{
"check_response": {
"cache_lookup_response": {
"global_cache_responses": {},
"result_cache_response": {
"error": "string",
"lookup_status": "HIT",
"operation_status": "SUCCESS",
"value": "string"
}
},
"classifier_infos": [
{
"classifier_index": "string",
"error": "ERROR_NONE",
"policy_hash": "string",
"policy_name": "string"
}
],
"control_point": "string",
"decision_type": "DECISION_TYPE_ACCEPTED",
"denied_response_status_code": "Empty",
"end": "2024-01-30T19:48:30.924Z",
"expect_end": true,
"flow_label_keys": [
"string"
],
"flux_meter_infos": [
{
"flux_meter_name": "string"
}
],
"limiter_decisions": [
{
"component_id": "string",
"concurrency_limiter_info": {
"label": "string",
"request_id": "string",
"tokens_info": {
"consumed": 0,
"current": 0,
"remaining": 0
}
},
"concurrency_scheduler_info": {
"label": "string",
"priority": 0,
"request_id": "string",
"tokens_info": {
"consumed": 0,
"current": 0,
"remaining": 0
},
"workload_index": "string"
},
"denied_response_status_code": "Empty",
"dropped": true,
"load_scheduler_info": {
"priority": 0,
"tokens_info": {
"consumed": 0,
"current": 0,
"remaining": 0
},
"workload_index": "string"
},
"policy_hash": "string",
"policy_name": "string",
"quota_scheduler_info": {
"label": "string",
"priority": 0,
"tokens_info": {
"consumed": 0,
"current": 0,
"remaining": 0
},
"workload_index": "string"
},
"rate_limiter_info": {
"label": "string",
"tokens_info": {
"consumed": 0,
"current": 0,
"remaining": 0
}
},
"reason": "LIMITER_REASON_UNSPECIFIED",
"sampler_info": {
"label": "string"
},
"wait_time": "string"
}
],
"reject_reason": "REJECT_REASON_NONE",
"services": [
"string"
],
"start": "2024-01-30T19:48:30.925Z",
"telemetry_flow_labels": {},
"wait_time": "string"
},
"denied_response": {
"body": "string",
"headers": {},
"status": 0
},
"dynamic_metadata": {},
"ok_response": {
"dynamic_metadata": {},
"headers": {}
},
"status": {
"code": 0,
"details": [
{
"@type": "string"
}
],
"message": "string"
}
}
An unexpected error response.
- application/json
- Schema
- Example (from schema)
Schema
- code int32
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
details object[]
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Array [@type stringA URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in
path/google.protobuf.Duration
). The name should be in a canonical form (e.g., leading "." is not accepted).In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme
http
,https
, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:- If no scheme is provided,
https
is assumed. - An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error.
- Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one.
Schemes other than
http
,https
(or the empty scheme) might be used with implementation specific semantics.]- message string
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
{
"code": 0,
"details": [
{
"@type": "string"
}
],
"message": "string"
}