pub struct AppSpecIngressRulesItem {
pub component: Option<AppSpecIngressRulesItemComponent>,
pub cors: Option<AppSpecIngressRulesItemCors>,
pub match_: Option<AppSpecIngressRulesItemMatch>,
pub redirect: Option<AppSpecIngressRulesItemRedirect>,
}Expand description
AppSpecIngressRulesItem
JSON schema
{
"type": "object",
"properties": {
"component": {
"description": "The component to route to. Only one of `component` or `redirect` may be set.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"description": "The name of the component to route to.",
"examples": [
"web"
],
"type": "string"
},
"preserve_path_prefix": {
"description": "An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with `path=/api` will have requests to `/api/list` trimmed to `/list`. If this value is `true`, the path will remain `/api/list`. Note: this is not applicable for Functions Components and is mutually exclusive with `rewrite`.",
"examples": [
"true"
],
"type": "string"
},
"rewrite": {
"description": "An optional field that will rewrite the path of the component to be what is specified here. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with `path=/api` will have requests to `/api/list` trimmed to `/list`. If you specified the rewrite to be `/v1/`, requests to `/api/list` would be rewritten to `/v1/list`. Note: this is mutually exclusive with `preserve_path_prefix`.",
"examples": [
"/api/v1/"
],
"type": "string"
}
}
},
"cors": {
"type": "object",
"properties": {
"allow_credentials": {
"description": "Whether browsers should expose the response to the client-side JavaScript code when the request’s credentials mode is include. This configures the `Access-Control-Allow-Credentials` header.",
"examples": [
false
],
"type": "boolean"
},
"allow_headers": {
"description": "The set of allowed HTTP request headers. This configures the `Access-Control-Allow-Headers` header.",
"examples": [
[
"Content-Type",
"X-Custom-Header"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"allow_methods": {
"description": "The set of allowed HTTP methods. This configures the `Access-Control-Allow-Methods` header.",
"examples": [
[
"GET",
"OPTIONS",
"POST",
"PUT",
"PATCH",
"DELETE"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"allow_origins": {
"description": "The set of allowed CORS origins.",
"examples": [
[
{
"exact": "https://www.example.com"
},
{
"regex": "^.*example.com"
}
]
],
"type": "array",
"items": {
"type": "object",
"properties": {
"exact": {
"description": "Exact string match. Only 1 of `exact`, `prefix`, or `regex` must be set. An empty string is a valid value and will be serialized explicitly rather than being omitted from the payload.",
"examples": [
"https://www.example.com"
],
"type": [
"string",
"null"
],
"maxLength": 256
},
"prefix": {
"description": "Prefix-based match. Only 1 of `exact`, `prefix`, or `regex` must be set.",
"deprecated": true,
"examples": [
"https://www.example.com"
],
"type": [
"string",
"null"
],
"maxLength": 256
},
"regex": {
"description": "RE2 style regex-based match. Only 1 of `exact`, `prefix`, or `regex` must be set. For more information about RE2 syntax, see: <https://github.com/google/re2/wiki/Syntax>",
"examples": [
"^.*example.com"
],
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}
},
"expose_headers": {
"description": "The set of HTTP response headers that browsers are allowed to access. This configures the `Access-Control-Expose-Headers` header.",
"examples": [
[
"Content-Encoding",
"X-Custom-Header"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"max_age": {
"description": "An optional duration specifying how long browsers can cache the results of a preflight request. This configures the `Access-Control-Max-Age` header.",
"examples": [
"5h30m"
],
"type": "string"
}
}
},
"match": {
"description": "The match configuration for the rule.",
"type": "object",
"properties": {
"authority": {
"description": "The authority to match on.",
"type": "object",
"required": [
"exact"
],
"properties": {
"exact": {
"description": "Exact string match. An empty string is a valid value and will be serialized explicitly rather than being omitted from the payload.",
"examples": [
"example.com"
],
"type": [
"string",
"null"
],
"maxLength": 256
}
}
},
"path": {
"description": "The path to match on.",
"type": "object",
"required": [
"prefix"
],
"properties": {
"prefix": {
"description": "Prefix-based match. For example, `/api` will match `/api`, `/api/`, and any nested paths such as `/api/v1/endpoint`.",
"examples": [
"/api"
],
"type": [
"string",
"null"
],
"maxLength": 256
}
}
}
}
},
"redirect": {
"description": "The redirect configuration for the rule. Only one of `component` or `redirect` may be set.",
"type": "object",
"properties": {
"authority": {
"description": "The authority/host to redirect to. This can be a hostname or IP address. Note: use `port` to set the port.",
"examples": [
"example.com"
],
"type": "string"
},
"port": {
"description": "The port to redirect to.",
"examples": [
443
],
"type": "integer",
"format": "int64"
},
"redirect_code": {
"description": "The redirect code to use. Defaults to `302`. Supported values are 300, 301, 302, 303, 304, 307, 308.",
"examples": [
302
],
"type": "integer",
"format": "int64"
},
"scheme": {
"description": "The scheme to redirect to. Supported values are `http` or `https`. Default: `https`.",
"examples": [
"https"
],
"type": "string"
},
"uri": {
"description": "An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched.",
"examples": [
"/about"
],
"type": "string"
}
}
}
}
}Fields§
§component: Option<AppSpecIngressRulesItemComponent>§cors: Option<AppSpecIngressRulesItemCors>§match_: Option<AppSpecIngressRulesItemMatch>§redirect: Option<AppSpecIngressRulesItemRedirect>Trait Implementations§
Source§impl Clone for AppSpecIngressRulesItem
impl Clone for AppSpecIngressRulesItem
Source§fn clone(&self) -> AppSpecIngressRulesItem
fn clone(&self) -> AppSpecIngressRulesItem
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AppSpecIngressRulesItem
impl Debug for AppSpecIngressRulesItem
Source§impl Default for AppSpecIngressRulesItem
impl Default for AppSpecIngressRulesItem
Source§impl<'de> Deserialize<'de> for AppSpecIngressRulesItem
impl<'de> Deserialize<'de> for AppSpecIngressRulesItem
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&AppSpecIngressRulesItem> for AppSpecIngressRulesItem
impl From<&AppSpecIngressRulesItem> for AppSpecIngressRulesItem
Source§fn from(value: &AppSpecIngressRulesItem) -> Self
fn from(value: &AppSpecIngressRulesItem) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for AppSpecIngressRulesItem
impl RefUnwindSafe for AppSpecIngressRulesItem
impl Send for AppSpecIngressRulesItem
impl Sync for AppSpecIngressRulesItem
impl Unpin for AppSpecIngressRulesItem
impl UnsafeUnpin for AppSpecIngressRulesItem
impl UnwindSafe for AppSpecIngressRulesItem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more