@yandex-cloud/nodejs-sdk
Version:
Yandex.Cloud NodeJS SDK
1,043 lines (1,042 loc) • 260 kB
TypeScript
/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from "@grpc/grpc-js";
import _m0 from "protobufjs/minimal";
import { RouteOptions, VirtualHost, Route, HeaderModification, HttpRoute, GrpcRoute } from "../../../../yandex/cloud/apploadbalancer/v1/virtual_host";
import { FieldMask } from "../../../../google/protobuf/field_mask";
import { Operation } from "../../../../yandex/cloud/operation/operation";
export declare const protobufPackage = "yandex.cloud.apploadbalancer.v1";
export interface GetVirtualHostRequest {
$type: "yandex.cloud.apploadbalancer.v1.GetVirtualHostRequest";
/**
* ID of the HTTP router that the virtual host belongs to.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* Name of the virtual host to return.
*
* To get the virtual host name, make a [VirtualHostService.List] request.
*/
virtualHostName: string;
}
export interface ListVirtualHostsRequest {
$type: "yandex.cloud.apploadbalancer.v1.ListVirtualHostsRequest";
/**
* ID of the HTTP router to list virtual hosts in.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* The maximum number of results per page to return. If the number of available
* results is larger than `page_size`, the service returns a [ListVirtualHostsResponse.next_page_token]
* that can be used to get the next page of results in subsequent list requests.
* Default value: 100.
*/
pageSize: number;
/**
* Page token. To get the next page of results, set `page_token` to the
* [ListVirtualHostsResponse.next_page_token] returned by a previous list request.
*/
pageToken: string;
}
export interface ListVirtualHostsResponse {
$type: "yandex.cloud.apploadbalancer.v1.ListVirtualHostsResponse";
/** List of virtual hosts of the specified HTTP router. */
virtualHosts: VirtualHost[];
/**
* Token for getting the next page of the list. If the number of results is greater than
* the specified [ListVirtualHostsRequest.page_size], use `next_page_token` as the value
* for the [ListVirtualHostsRequest.page_token] parameter in the next list request.
*
* Each subsequent page will have its own `next_page_token` to continue paging through the results.
*/
nextPageToken: string;
}
export interface CreateVirtualHostRequest {
$type: "yandex.cloud.apploadbalancer.v1.CreateVirtualHostRequest";
/**
* ID of the HTTP router to create a virtual host in.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/** Name of the virtual host. The name must be unique within the HTTP router and cannot be changed after creation. */
name: string;
/**
* List of domains that are attributed to the virtual host.
*
* The host is selected to process the request received by the load balancer
* if the domain specified in the HTTP/1.1 `Host` header or the HTTP/2 `:authority` pseudo-header matches a domain
* specified in the host.
*
* A wildcard asterisk character (`*`) matches 0 or more characters.
*
* If not specified, all domains are attributed to the host, which is the same as specifying a `*` value.
* An HTTP router must not contain more than one virtual host to which all domains are attributed.
*/
authority: string[];
/**
* Routes of the virtual host.
*
* A route contains a set of conditions (predicates) that are used by the load balancer to select the route
* for the request and an action on the request.
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/http-router#routes).
*
* The order of routes matters: the first route whose predicate matches the request is selected.
* The most specific routes should be at the top of the list, so that they are not overridden.
* For example, if the first HTTP route is configured, via [HttpRoute.match], to match paths prefixed with just `/`,
* other routes are never matched.
*/
routes: Route[];
/** Modifications that are made to the headers of incoming HTTP requests before they are forwarded to backends. */
modifyRequestHeaders: HeaderModification[];
/**
* Modifications that are made to the headers of HTTP responses received from backends
* before responses are forwarded to clients.
*/
modifyResponseHeaders: HeaderModification[];
/** Route options for the virtual host. */
routeOptions?: RouteOptions;
}
export interface CreateVirtualHostMetadata {
$type: "yandex.cloud.apploadbalancer.v1.CreateVirtualHostMetadata";
/** ID of the HTTP router that the virtual host is being created in. */
httpRouterId: string;
/** Name of the virtual host that is being created. */
virtualHostName: string;
}
export interface UpdateVirtualHostRequest {
$type: "yandex.cloud.apploadbalancer.v1.UpdateVirtualHostRequest";
/**
* ID of the HTTP router to update a virtual host in.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* Name of the virtual host.
*
* Used only to refer to the virtual host. The name of a host cannot be changed.
*
* To get the virtual host name, make a [VirtualHostService.List] request.
*/
virtualHostName: string;
/** Field mask that specifies which attributes of the virtual host should be updated. */
updateMask?: FieldMask;
/**
* New list of domains to attribute to the virtual host.
*
* The host is selected to process the request received by the load balancer
* if the domain specified in the HTTP/1.1 `Host` header or the HTTP/2 `:authority` pseudo-header matches a domain
* specified in the host.
*
* A wildcard asterisk character (`*`) matches 0 or more characters.
*
* Existing list of domains is completely replaced by the specified list.
*
* If not specified, all domains are attributed to the host, which is the same as specifying a `*` value.
* An HTTP router must not contain more than one virtual host to which all domains are attributed.
*/
authority: string[];
/**
* New list of routes of the virtual host.
*
* A route contains a set of conditions (predicates) that are used by the load balancer to select the route
* for the request and an action on the request.
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/http-router#routes).
*
* The order of routes matters: the first route whose predicate matches the request is selected.
* The most specific routes should be at the top of the list, so that they are not overridden.
* For example, if the first HTTP route is configured, via [HttpRoute.match], to match paths prefixed with just `/`,
* other routes are never matched.
*
* Existing list of routes is completely replaced by the specified list, so if you just want to remove a route,
* make a [VirtualHostService.RemoveRoute] request.
*/
routes: Route[];
/**
* New list of modifications that are made to the headers of incoming HTTP requests
* before they are forwarded to backends.
*
* Existing list of modifications is completely replaced by the specified list.
*/
modifyRequestHeaders: HeaderModification[];
/**
* New list of modifications that are made to the headers of HTTP responses received from backends
* before responses are forwarded to clients.
*
* Existing list of modifications is completely replaced by the specified list.
*/
modifyResponseHeaders: HeaderModification[];
/** New route options for the virtual host. */
routeOptions?: RouteOptions;
}
export interface UpdateVirtualHostMetadata {
$type: "yandex.cloud.apploadbalancer.v1.UpdateVirtualHostMetadata";
/** ID of the HTTP router that the virtual host is being updated in. */
httpRouterId: string;
/** Name of the virtual host that is being updated. */
virtualHostName: string;
}
export interface DeleteVirtualHostRequest {
$type: "yandex.cloud.apploadbalancer.v1.DeleteVirtualHostRequest";
/**
* ID of the HTTP router to delete a virtual host from.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* Name of the virtual host to delete.
*
* To get the virtual host name, make a [VirtualHostService.List] request.
*/
virtualHostName: string;
}
export interface DeleteVirtualHostMetadata {
$type: "yandex.cloud.apploadbalancer.v1.DeleteVirtualHostMetadata";
/** ID of the HTTP router that the virtual host is being deleted from. */
httpRouterId: string;
/** Name of the virtual host that is being deleted. */
virtualHostName: string;
}
export interface RemoveRouteRequest {
$type: "yandex.cloud.apploadbalancer.v1.RemoveRouteRequest";
/**
* ID of the HTTP router to delete a route from.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* Name of the virtual host to delete a route from.
*
* To get the virtual host name, make a [VirtualHostService.List] request.
*/
virtualHostName: string;
/**
* Name of the route to delete.
*
* To get the route name, make a [VirtualHostService.Get] request.
*/
routeName: string;
}
export interface RemoveRouteMetadata {
$type: "yandex.cloud.apploadbalancer.v1.RemoveRouteMetadata";
/** ID of the HTTP router that the route is being deleted from. */
httpRouterId: string;
/** Name of the virtual host that the route is being deleted from. */
virtualHostName: string;
/** Name of the route that is being deleted. */
routeName: string;
}
export interface UpdateRouteRequest {
$type: "yandex.cloud.apploadbalancer.v1.UpdateRouteRequest";
/**
* ID of the HTTP router to update a route in.
*
* To get the HTTP router ID, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* Name of the virtual host to update a route in.
*
* To get the virtual host name, make a [VirtualHostService.List] request.
*/
virtualHostName: string;
/**
* Name of the route to update.
*
* To get the route name, make a [VirtualHostService.Get] request.
*/
routeName: string;
/** Field mask that specifies which attributes of the route should be updated. */
updateMask?: FieldMask;
/** New settings of the HTTP route. */
http?: HttpRoute | undefined;
/** New settings of the gRPC route. */
grpc?: GrpcRoute | undefined;
/** New route options for the route. */
routeOptions?: RouteOptions;
}
export interface UpdateRouteMetadata {
$type: "yandex.cloud.apploadbalancer.v1.UpdateRouteMetadata";
/** ID of the HTTP router that the route is being updated in. */
httpRouterId: string;
/** Name of the virtual host that the route is being updated in. */
virtualHostName: string;
/** Name of the route that is being updated. */
routeName: string;
}
export declare const GetVirtualHostRequest: {
$type: "yandex.cloud.apploadbalancer.v1.GetVirtualHostRequest";
encode(message: GetVirtualHostRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): GetVirtualHostRequest;
fromJSON(object: any): GetVirtualHostRequest;
toJSON(message: GetVirtualHostRequest): unknown;
fromPartial<I extends {
httpRouterId?: string | undefined;
virtualHostName?: string | undefined;
} & {
httpRouterId?: string | undefined;
virtualHostName?: string | undefined;
} & Record<Exclude<keyof I, "$type" | "httpRouterId" | "virtualHostName">, never>>(object: I): GetVirtualHostRequest;
};
export declare const ListVirtualHostsRequest: {
$type: "yandex.cloud.apploadbalancer.v1.ListVirtualHostsRequest";
encode(message: ListVirtualHostsRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ListVirtualHostsRequest;
fromJSON(object: any): ListVirtualHostsRequest;
toJSON(message: ListVirtualHostsRequest): unknown;
fromPartial<I extends {
pageSize?: number | undefined;
pageToken?: string | undefined;
httpRouterId?: string | undefined;
} & {
pageSize?: number | undefined;
pageToken?: string | undefined;
httpRouterId?: string | undefined;
} & Record<Exclude<keyof I, "$type" | "pageSize" | "pageToken" | "httpRouterId">, never>>(object: I): ListVirtualHostsRequest;
};
export declare const ListVirtualHostsResponse: {
$type: "yandex.cloud.apploadbalancer.v1.ListVirtualHostsResponse";
encode(message: ListVirtualHostsResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ListVirtualHostsResponse;
fromJSON(object: any): ListVirtualHostsResponse;
toJSON(message: ListVirtualHostsResponse): unknown;
fromPartial<I extends {
nextPageToken?: string | undefined;
virtualHosts?: {
name?: string | undefined;
authority?: string[] | undefined;
routes?: {
name?: string | undefined;
http?: {
match?: {
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} | undefined;
route?: {
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
prefixRewrite?: string | undefined;
upgradeTypes?: string[] | undefined;
} | undefined;
redirect?: {
replaceScheme?: string | undefined;
replaceHost?: string | undefined;
replacePort?: number | undefined;
replacePath?: string | undefined;
replacePrefix?: string | undefined;
removeQuery?: boolean | undefined;
responseCode?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RedirectAction_RedirectResponseCode | undefined;
} | undefined;
directResponse?: {
status?: number | undefined;
body?: {
text?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
grpc?: {
match?: {
fqmn?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
route?: {
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
maxTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
statusResponse?: {
status?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").GrpcStatusResponseAction_Status | undefined;
} | undefined;
} | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
}[] | undefined;
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
}[] | undefined;
} & {
nextPageToken?: string | undefined;
virtualHosts?: ({
name?: string | undefined;
authority?: string[] | undefined;
routes?: {
name?: string | undefined;
http?: {
match?: {
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} | undefined;
route?: {
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
prefixRewrite?: string | undefined;
upgradeTypes?: string[] | undefined;
} | undefined;
redirect?: {
replaceScheme?: string | undefined;
replaceHost?: string | undefined;
replacePort?: number | undefined;
replacePath?: string | undefined;
replacePrefix?: string | undefined;
removeQuery?: boolean | undefined;
responseCode?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RedirectAction_RedirectResponseCode | undefined;
} | undefined;
directResponse?: {
status?: number | undefined;
body?: {
text?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
grpc?: {
match?: {
fqmn?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
route?: {
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
maxTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
statusResponse?: {
status?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").GrpcStatusResponseAction_Status | undefined;
} | undefined;
} | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
}[] | undefined;
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
}[] & ({
name?: string | undefined;
authority?: string[] | undefined;
routes?: {
name?: string | undefined;
http?: {
match?: {
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} | undefined;
route?: {
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
prefixRewrite?: string | undefined;
upgradeTypes?: string[] | undefined;
} | undefined;
redirect?: {
replaceScheme?: string | undefined;
replaceHost?: string | undefined;
replacePort?: number | undefined;
replacePath?: string | undefined;
replacePrefix?: string | undefined;
removeQuery?: boolean | undefined;
responseCode?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RedirectAction_RedirectResponseCode | undefined;
} | undefined;
directResponse?: {
status?: number | undefined;
body?: {
text?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
grpc?: {
match?: {
fqmn?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
route?: {
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
maxTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
statusResponse?: {
status?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").GrpcStatusResponseAction_Status | undefined;
} | undefined;
} | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
}[] | undefined;
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
} & {
name?: string | undefined;
authority?: (string[] & string[] & Record<Exclude<keyof I["virtualHosts"][number]["authority"], "$type" | keyof string[]>, never>) | undefined;
routes?: ({
name?: string | undefined;
http?: {
match?: {
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} | undefined;
route?: {
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
prefixRewrite?: string | undefined;
upgradeTypes?: string[] | undefined;
} | undefined;
redirect?: {
replaceScheme?: string | undefined;
replaceHost?: string | undefined;
replacePort?: number | undefined;
replacePath?: string | undefined;
replacePrefix?: string | undefined;
removeQuery?: boolean | undefined;
responseCode?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RedirectAction_RedirectResponseCode | undefined;
} | undefined;
directResponse?: {
status?: number | undefined;
body?: {
text?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
grpc?: {
match?: {
fqmn?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
route?: {
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
maxTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
statusResponse?: {
status?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").GrpcStatusResponseAction_Status | undefined;
} | undefined;
} | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
}[] & ({
name?: string | undefined;
http?: {
match?: {
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} | undefined;
route?: {
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
prefixRewrite?: string | undefined;
upgradeTypes?: string[] | undefined;
} | undefined;
redirect?: {
replaceScheme?: string | undefined;
replaceHost?: string | undefined;
replacePort?: number | undefined;
replacePath?: string | undefined;
replacePrefix?: string | undefined;
removeQuery?: boolean | undefined;
responseCode?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RedirectAction_RedirectResponseCode | undefined;
} | undefined;
directResponse?: {
status?: number | undefined;
body?: {
text?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
grpc?: {
match?: {
fqmn?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
route?: {
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
maxTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
statusResponse?: {
status?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").GrpcStatusResponseAction_Status | undefined;
} | undefined;
} | undefined;
routeOptions?: {
modifyRequestHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
modifyResponseHeaders?: {
replace?: string | undefined;
name?: string | undefined;
append?: string | undefined;
remove?: boolean | undefined;
rename?: string | undefined;
}[] | undefined;
rbac?: {
action?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RBAC_Action | undefined;
principals?: {
andPrincipals?: {
header?: {
name?: string | undefined;
value?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
} | undefined;
remoteIp?: string | undefined;
any?: boolean | undefined;
}[] | undefined;
}[] | undefined;
} | undefined;
securityProfileId?: string | undefined;
} | undefined;
} & {
name?: string | undefined;
http?: ({
match?: {
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} | undefined;
route?: {
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
backendGroupId?: string | undefined;
idleTimeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
hostRewrite?: string | undefined;
autoHostRewrite?: boolean | undefined;
prefixRewrite?: string | undefined;
upgradeTypes?: string[] | undefined;
} | undefined;
redirect?: {
replaceScheme?: string | undefined;
replaceHost?: string | undefined;
replacePort?: number | undefined;
replacePath?: string | undefined;
replacePrefix?: string | undefined;
removeQuery?: boolean | undefined;
responseCode?: import("../../../../yandex/cloud/apploadbalancer/v1/virtual_host").RedirectAction_RedirectResponseCode | undefined;
} | undefined;
directResponse?: {
status?: number | undefined;
body?: {
text?: string | undefined;
} | undefined;
} | undefined;
} & {
match?: ({
path?: {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} | undefined;
httpMethod?: string[] | undefined;
} & {
path?: ({
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} & {
exactMatch?: string | undefined;
prefixMatch?: string | undefined;
regexMatch?: string | undefined;
} & Record<Exclude<keyof I["virtualHosts"][number]["routes"][number]["http"]["match"]["path"], "$type" | "exactMatch" | "prefixMatch" | "regexMatch">, never>) | undefined;
httpMethod?: (string[] & string[] & Record<Exclude<keyof I["virtualHosts"][number]["routes"][number]["http"]["match"]["httpMethod"], "$type" | keyof string[]>, never>) | undefined;
} & Record<Exclude<keyof I["virtualHosts"][number]["routes"][number]["http"]["match"], "$type" | "path" | "httpMethod">, never>) | undefined;
route?: ({
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;