Smart Web Security Load Balancer API, gRPC: LoadBalancerService.Create
Creates a load balancer in the specified folder.
gRPC request
rpc Create (CreateLoadBalancerRequest) returns (operation.Operation)
CreateLoadBalancerRequest
{
"folder_id": "string",
"labels": "map<string, string>",
"name": "string",
"description": "string",
"domains": [
{
"name": "string",
"server_name": "string",
"description": "string",
"security_profile_id": "string",
"http_backend": {
"targets": [
{
"ip_address": "string",
"description": "string",
"port": "int64"
}
],
"use_http2": "bool",
"use_tls": "bool",
"sni": "string",
"trusted_ca_bytes": "string",
"timeout": "google.protobuf.Duration",
"idle_timeout": "google.protobuf.Duration",
"session_affinity": {
// Includes only one of the fields `connection`, `header`, `cookie`
"connection": {
"source_ip": "bool"
},
"header": {
"header_name": "string"
},
"cookie": {
"name": "string",
"ttl": "google.protobuf.Duration",
"path": "string"
}
// end of the list of possible fields
}
},
"tls_listener": {
"enabled": "bool",
"certificate_id": "string",
"port": "int64",
"enable_http1": "bool"
},
"http_listener": {
"enabled": "bool",
"redirect_to_https": "bool",
"port": "int64"
},
"solid_waf_settings": {
"solid_waf_profile_id": "string",
"session_affinity": {
// Includes only one of the fields `connection`, `header`, `cookie`
"connection": {
"source_ip": "bool"
},
"header": {
"header_name": "string"
},
"cookie": {
"name": "string",
"ttl": "google.protobuf.Duration",
"path": "string"
}
// end of the list of possible fields
},
"web_app_id": "string"
},
"rate_limit": {
"all_requests_per_second": "int64",
"requests_per_ip_per_second": "int64"
}
}
],
"service_account_id": "string",
"region_id": "string",
"deletion_protection": "bool",
"log_options": {
"log_group_id": "string",
"disable": "bool",
"discard_rules": [
{
"http_codes": [
"int64"
],
"http_code_intervals": [
"HttpCodeInterval"
],
"discard_percent": "google.protobuf.Int64Value"
}
]
},
"resource_units": "int64",
"route_options": {
"modify_request_headers": [
{
"name": "string",
// Includes only one of the fields `append`, `replace`, `remove`, `rename`
"append": "string",
"replace": "string",
"remove": "bool",
"rename": "string"
// end of the list of possible fields
}
],
"modify_response_headers": [
{
"name": "string",
// Includes only one of the fields `append`, `replace`, `remove`, `rename`
"append": "string",
"replace": "string",
"remove": "bool",
"rename": "string"
// end of the list of possible fields
}
]
}
}
|
Field |
Description |
|
folder_id |
string Required field. ID of the folder to create the load balancer in. |
|
labels |
object (map<string, string>) Resource labels as |
|
name |
string Name of the load balancer. |
|
description |
string Description of the load balancer. |
|
domains[] |
Domains served by the load balancer. |
|
service_account_id |
string ID of the service account used to access dependent resources. |
|
region_id |
string ID of the region where the load balancer is located. |
|
deletion_protection |
bool Protects the load balancer from accidental deletion. |
|
log_options |
Cloud Logging settings. |
|
resource_units |
int64 Number of initially allocated resource units. |
|
route_options |
Options that apply to all domains. |
Domain
A domain served by a Smart Web Security load balancer.
|
Field |
Description |
|
name |
string Unique name of domain within the balancer. Value must match the regular expression |
|
server_name |
string Required field. Server name or wildcard to be matched against SNI in a TLS connection and authority(host) header. The string length in characters must be 1-255. Value must match the regular expression |
|
description |
string Domain description. The maximum string length in characters is 512. |
|
security_profile_id |
string Security Profile ID of SmartWebSecurity service. |
|
http_backend |
Backend settings. |
|
tls_listener |
Optional TLS listener settings. |
|
http_listener |
Optional plaintext listener settings. |
|
solid_waf_settings |
Optional Solid WAF settings. |
|
rate_limit |
Optional rate limit settings. |
HttpBackend
|
Field |
Description |
|
targets[] |
List of targets. The number of elements must be in the range 1-20. |
|
use_http2 |
bool Enables HTTP2 for upstream requests. |
|
use_tls |
bool Enable TLS for upstream requests. |
|
sni |
string SNI string for TLS connections. The maximum string length in characters is 255. Value must match the regular expression |
|
trusted_ca_bytes |
string Trusted certificate authority certificates bundle (PEM text). |
|
timeout |
Backend timeout. If not set, default is 300 seconds. |
|
idle_timeout |
Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout. |
|
session_affinity |
Session affinity. |
Target
|
Field |
Description |
|
ip_address |
string IPv4 address. The string length in characters must be 1-40. |
|
description |
string Target description. The maximum string length in characters is 128. |
|
port |
int64 Target port. Acceptable values are 1 to 65535, inclusive. |
SessionAffinity
|
Field |
Description |
|
connection |
Session affinity based on source IP address. Includes only one of the fields |
|
header |
Session affinity based on an HTTP header. Includes only one of the fields |
|
cookie |
Session affinity based on a cookie. Includes only one of the fields |
ConnectionSessionAffinity
|
Field |
Description |
|
source_ip |
bool IP address. |
HeaderSessionAffinity
|
Field |
Description |
|
header_name |
string Header name. The string length in characters must be 1-256. |
CookieSessionAffinity
|
Field |
Description |
|
name |
string Cookie name. The string length in characters must be 1-256. |
|
ttl |
If not set, session cookie will be used (not persisted between browser restarts). |
|
path |
string Optional cookie path. The string length in characters must be 0-256. |
TlsListener
|
Field |
Description |
|
enabled |
bool Enable TLS listener. |
|
certificate_id |
string Certificate ID in the Certificate Manager. |
|
port |
int64 Listener port. If value is not set, used 443 by default. Acceptable values are 0 to 65535, inclusive. |
|
enable_http1 |
bool Enables HTTP/1.0 and HTTP/1.1 support and disables HTTP/2. |
HttpListener
|
Field |
Description |
|
enabled |
bool Enable http (plaintext) listener. |
|
redirect_to_https |
bool Automatically redirect from HTTP to HTTPS. |
|
port |
int64 Listener port. If value is not set, used 80 by default. Acceptable values are 0 to 65535, inclusive. |
SolidWafSettings
|
Field |
Description |
|
solid_waf_profile_id |
string ID of the Solid WAF profile. |
|
session_affinity |
Session affinity to analyzers. If not set, ConnectionSessionAffinity will be used. |
|
web_app_id |
string ID of the Solid WAF web app. |
RateLimit
|
Field |
Description |
|
all_requests_per_second |
int64 Rate limit for all requests.
The minimum value is 0. |
|
requests_per_ip_per_second |
int64 Rate limit for individual IP addresses.
The minimum value is 0. |
LogOptions
|
Field |
Description |
|
log_group_id |
string ID of Cloud Logging log group. Value must match the regular expression |
|
disable |
bool Do not send logs to Cloud Logging log group. |
|
discard_rules[] |
Ordered list of rules, first matching rule applies. The maximum number of elements is 30. |
LogDiscardRule
LogDiscardRule discards a fraction of logs with certain codes.
If neither codes or intervals are provided, rule applies to all logs.
|
Field |
Description |
|
http_codes[] |
int64 HTTP codes that should be discarded. The maximum number of elements is 500. Acceptable values are 100 to 599, inclusive. |
|
http_code_intervals[] |
enum HttpCodeInterval Groups of HTTP codes like 4xx that should be discarded. The maximum number of elements is 10.
|
|
discard_percent |
Percent of logs to be discarded: 0 - keep all, 100 or unset - discard all. Acceptable values are 0 to 100, inclusive. |
RouteOptions
|
Field |
Description |
|
modify_request_headers[] |
Apply the following modifications to the request headers. |
|
modify_response_headers[] |
Apply the following modifications to the response headers. |
HeaderModification
This is similar to the proposal for Envoy API v3, see
https://github.com/envoyproxy/envoy/issues/8947#issuecomment-551973469
|
Field |
Description |
|
name |
string Required field. Name of the header. |
|
append |
string Append string to the header value. Includes only one of the fields Header values support the following formatters: |
|
replace |
string New value for a header. Includes only one of the fields Header values support the following formatters: |
|
remove |
bool Remove the header. Includes only one of the fields Header values support the following formatters: |
|
rename |
string New name for a header. Includes only one of the fields Header values support the following formatters: |
operation.Operation
{
"id": "string",
"description": "string",
"created_at": "google.protobuf.Timestamp",
"created_by": "string",
"modified_at": "google.protobuf.Timestamp",
"done": "bool",
"metadata": "google.protobuf.Any",
// Includes only one of the fields `error`, `response`
"error": "google.rpc.Status",
"response": "google.protobuf.Any"
// end of the list of possible fields
}
An Operation resource. For more information, see Operation.
|
Field |
Description |
|
id |
string ID of the operation. |
|
description |
string Description of the operation. 0-256 characters long. |
|
created_at |
Creation timestamp. |
|
created_by |
string ID of the user or service account who initiated the operation. |
|
modified_at |
The time when the Operation resource was last modified. |
|
done |
bool If the value is |
|
metadata |
Service-specific metadata associated with the operation. |
|
error |
The error result of the operation in case of failure or cancellation. Includes only one of the fields The operation result. |
|
response |
The normal response of the operation in case of success. Includes only one of the fields The operation result. |