UNPKG

@yandex-cloud/nodejs-sdk

Version:
1,015 lines 369 kB
/// <reference types="node" /> import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from "@grpc/grpc-js"; import _m0 from "protobufjs/minimal"; import { FieldMask } from "../../../../google/protobuf/field_mask"; import { RouteOptions, VirtualHost } from "../../../../yandex/cloud/apploadbalancer/v1/virtual_host"; import { HttpRouter } from "../../../../yandex/cloud/apploadbalancer/v1/http_router"; import { Operation } from "../../../../yandex/cloud/operation/operation"; export declare const protobufPackage = "yandex.cloud.apploadbalancer.v1"; export interface GetHttpRouterRequest { $type: "yandex.cloud.apploadbalancer.v1.GetHttpRouterRequest"; /** * ID of the HTTP router to return. * * To get the HTTP router ID, make a [HttpRouterService.List] request. */ httpRouterId: string; } export interface ListHttpRoutersRequest { $type: "yandex.cloud.apploadbalancer.v1.ListHttpRoutersRequest"; /** * ID of the folder to list HTTP routers in. * * To get the folder ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request. */ folderId: 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 [ListHttpRoutersResponse.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 * [ListHttpRoutersResponse.next_page_token] returned by a previous list request. */ pageToken: string; /** * A filter expression that filters HTTP routers listed in the response. * * The expression must specify: * 1. The field name. Currently you can use filtering only on [HttpRouter.name] field. * 2. An `=` operator. * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z][-a-z0-9]{1,61}[a-z0-9]`. * Example of a filter: `name=my-http-router`. */ filter: string; } export interface ListHttpRoutersResponse { $type: "yandex.cloud.apploadbalancer.v1.ListHttpRoutersResponse"; /** List of HTTP routers in the specified folder. */ httpRouters: HttpRouter[]; /** * Token for getting the next page of the list. If the number of results is greater than * the specified [ListHttpRoutersRequest.page_size], use `next_page_token` as the value * for the [ListHttpRoutersRequest.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 DeleteHttpRouterRequest { $type: "yandex.cloud.apploadbalancer.v1.DeleteHttpRouterRequest"; /** * ID of the HTTP router to delete. * * To get the HTTP router ID, make a [HttpRouterService.List] request. */ httpRouterId: string; } export interface DeleteHttpRouterMetadata { $type: "yandex.cloud.apploadbalancer.v1.DeleteHttpRouterMetadata"; /** ID of the HTTP router that is being deleted. */ httpRouterId: string; } export interface UpdateHttpRouterRequest { $type: "yandex.cloud.apploadbalancer.v1.UpdateHttpRouterRequest"; /** * ID of the HTTP router to update. * * To get the HTTP router ID, make a [HttpRouterService.List] request. */ httpRouterId: string; /** Field mask that specifies which attributes of the HTTP router should be updated. */ updateMask?: FieldMask; /** * New name for the HTTP router. * The name must be unique within the folder. */ name: string; /** New description of the HTTP router. */ description: string; /** * HTTP router labels as `key:value` pairs. * For details about the concept, see [documentation](/docs/overview/concepts/services#labels). * * Existing set of labels is completely replaced by the provided set, so if you just want * to add or remove a label: * 1. Get the current set of labels with a [HttpRouterService.Get] request. * 2. Add or remove a label in this set. * 3. Send the new set in this field. */ labels: { [key: string]: string; }; /** * New virtual hosts that combine routes inside the router. * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/http-router#virtual-host). * * Only one virtual host with no authority (default match) can be specified. * * Existing list of virtual hosts is completely replaced by the specified list, so if you just want to add or remove * a virtual host, make a [VirtualHostService.Create] request or a [VirtualHostService.Delete] request. */ virtualHosts: VirtualHost[]; /** New route options for the HTTP router. */ routeOptions?: RouteOptions; } export interface UpdateHttpRouterRequest_LabelsEntry { $type: "yandex.cloud.apploadbalancer.v1.UpdateHttpRouterRequest.LabelsEntry"; key: string; value: string; } export interface UpdateHttpRouterMetadata { $type: "yandex.cloud.apploadbalancer.v1.UpdateHttpRouterMetadata"; /** ID of the HTTP router that is being updated. */ httpRouterId: string; } export interface CreateHttpRouterRequest { $type: "yandex.cloud.apploadbalancer.v1.CreateHttpRouterRequest"; /** * ID of the folder to create an HTTP router in. * * To get the folder ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request. */ folderId: string; /** * Name of the HTTP router. * The name must be unique within the folder. */ name: string; /** Description of the HTTP router. */ description: string; /** * HTTP router labels as `key:value` pairs. * For details about the concept, see [documentation](/docs/overview/concepts/services#labels). */ labels: { [key: string]: string; }; /** * Virtual hosts that combine routes inside the router. * For details about the concept, see [documentation](/docs/application-load-balancer/concepts/http-router#virtual-host). * * Only one virtual host with no authority (default match) can be specified. */ virtualHosts: VirtualHost[]; /** Route options for the HTTP router. */ routeOptions?: RouteOptions; } export interface CreateHttpRouterRequest_LabelsEntry { $type: "yandex.cloud.apploadbalancer.v1.CreateHttpRouterRequest.LabelsEntry"; key: string; value: string; } export interface CreateHttpRouterMetadata { $type: "yandex.cloud.apploadbalancer.v1.CreateHttpRouterMetadata"; /** ID of the HTTP router that is being created. */ httpRouterId: string; } export interface ListHttpRouterOperationsRequest { $type: "yandex.cloud.apploadbalancer.v1.ListHttpRouterOperationsRequest"; /** * ID of the HTTP router to get operations for. * * To get the HTTP router ID, use a [HttpRouterService.List] request. */ httpRouterId: string; /** * The maximum number of results per page that should be returned. If the number of available * results is larger than [page_size], the service returns a [ListHttpRouterOperationsResponse.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 * [ListHttpRouterOperationsResponse.next_page_token] returned by a previous list request. */ pageToken: string; } export interface ListHttpRouterOperationsResponse { $type: "yandex.cloud.apploadbalancer.v1.ListHttpRouterOperationsResponse"; /** List of operations for the specified HTTP router. */ operations: Operation[]; /** * Token for getting the next page of the list. If the number of results is greater than * the specified [ListHttpRouterOperationsRequest.page_size], use `next_page_token` as the value * for the [ListHttpRouterOperationsRequest.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 declare const GetHttpRouterRequest: { $type: "yandex.cloud.apploadbalancer.v1.GetHttpRouterRequest"; encode(message: GetHttpRouterRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): GetHttpRouterRequest; fromJSON(object: any): GetHttpRouterRequest; toJSON(message: GetHttpRouterRequest): unknown; fromPartial<I extends { httpRouterId?: string | undefined; } & { httpRouterId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "httpRouterId">, never>>(object: I): GetHttpRouterRequest; }; export declare const ListHttpRoutersRequest: { $type: "yandex.cloud.apploadbalancer.v1.ListHttpRoutersRequest"; encode(message: ListHttpRoutersRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ListHttpRoutersRequest; fromJSON(object: any): ListHttpRoutersRequest; toJSON(message: ListHttpRoutersRequest): unknown; fromPartial<I extends { pageSize?: number | undefined; pageToken?: string | undefined; filter?: string | undefined; folderId?: string | undefined; } & { pageSize?: number | undefined; pageToken?: string | undefined; filter?: string | undefined; folderId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "pageSize" | "pageToken" | "filter" | "folderId">, never>>(object: I): ListHttpRoutersRequest; }; export declare const ListHttpRoutersResponse: { $type: "yandex.cloud.apploadbalancer.v1.ListHttpRoutersResponse"; encode(message: ListHttpRoutersResponse, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ListHttpRoutersResponse; fromJSON(object: any): ListHttpRoutersResponse; toJSON(message: ListHttpRoutersResponse): unknown; fromPartial<I extends { nextPageToken?: string | undefined; httpRouters?: { description?: string | undefined; id?: string | undefined; name?: string | undefined; createdAt?: Date | undefined; folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: 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; 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; }[] | undefined; } & { nextPageToken?: string | undefined; httpRouters?: ({ description?: string | undefined; id?: string | undefined; name?: string | undefined; createdAt?: Date | undefined; folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: 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; 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; }[] & ({ description?: string | undefined; id?: string | undefined; name?: string | undefined; createdAt?: Date | undefined; folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: 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; 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; } & { description?: string | undefined; id?: string | undefined; name?: string | undefined; createdAt?: Date | undefined; folderId?: string | undefined; labels?: ({ [x: string]: string | undefined; [x: number]: string | undefined; } & { [x: string]: string | undefined; [x: number]: string | undefined; } & Record<Exclude<keyof I["httpRouters"][number]["labels"], string | number>, never>) | 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; } & { modifyRequestHeaders?: ({ replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; }[] & ({ replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; } & { replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; } & Record<Exclude<keyof I["httpRouters"][number]["routeOptions"]["modifyRequestHeaders"][number], "$type" | "replace" | "name" | "append" | "remove" | "rename">, never>)[] & Record<Exclude<keyof I["httpRouters"][number]["routeOptions"]["modifyRequestHeaders"], "$type" | keyof { replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; }[]>, never>) | undefined; modifyResponseHeaders?: ({ replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; }[] & ({ replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; } & { replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; } & Record<Exclude<keyof I["httpRouters"][number]["routeOptions"]["modifyResponseHeaders"][number], "$type" | "replace" | "name" | "append" | "remove" | "rename">, never>)[] & Record<Exclude<keyof I["httpRouters"][number]["routeOptions"]["modifyResponseHeaders"], "$type" | keyof { replace?: string | undefined; name?: string | undefined; append?: string | undefined; remove?: boolean | undefined; rename?: string | undefined; }[]>, never>) | 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; } & { 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; }[] & ({ andPrincipals?: { header?: { name?: string | undefined; value?: { exactMatch?: string | undefined; prefixMatch?: string | undefined; regexMatch?: string | undefined; } | undefined; } | undefined; remoteIp?: string | undefined; any?: boolean | undefined; }[] | undefined; } & { andPrincipals?: ({ header?: { name?: string | undefined; value?: { exactMatch?: string | undefined; prefixMatch?: string | undefined; regexMatch?: string | undefined; } | undefined; } | undefined; remoteIp?: string | undefined; any?: boolean | undefined; }[] & ({ header?: { name?: string | undefined; value?: { exactMatch?: string | undefined; prefixMatch?: string | undefined; regexMatch?: string | undefined; } | undefined; } | undefined; remoteIp?: string | undefined; any?: boolean | undefined; } & { header?: ({ name?: string | undefined; value?: { exactMatch?: string | undefined; prefixMatch?: string | undefined; regexMatch?: string | undefined; } | undefined; } & { name?: string | undefined; value?: ({ exactMatch?: string |