import _m0 from 'protobufjs/minimal'; import { MaintenancePolicy } from '../../../../yandex/cloud/compute/v1/maintenance'; export declare const protobufPackage = "yandex.cloud.compute.v1"; /** Represents group of dedicated hosts */ export interface HostGroup { /** ID of the group. */ id: string; /** ID of the folder that the group belongs to. */ folderId: string; /** Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ createdAt?: Date; /** Name of the group. The name is unique within the folder. */ name: string; /** Description of the group. */ description: string; /** Resource labels as `key:value` pairs. */ labels: { [key: string]: string; }; /** Availability zone where all dedicated hosts are allocated. */ zoneId: string; /** Status of the group. */ status: HostGroup_Status; /** ID of host type. Resources provided by each host of the group. */ typeId: string; /** Behaviour on maintenance events. */ maintenancePolicy: MaintenancePolicy; /** Scale policy. Only fixed number of hosts are supported at this moment. */ scalePolicy?: ScalePolicy; } export declare enum HostGroup_Status { STATUS_UNSPECIFIED = 0, CREATING = 1, READY = 2, UPDATING = 3, DELETING = 4, UNRECOGNIZED = -1 } export declare function hostGroup_StatusFromJSON(object: any): HostGroup_Status; export declare function hostGroup_StatusToJSON(object: HostGroup_Status): string; export interface HostGroup_LabelsEntry { key: string; value: string; } /** Represents a dedicated host */ export interface Host { /** ID of the host. */ id: string; /** Current status of the host. New instances are unable to start on host in DOWN status. */ status: Host_Status; /** ID of the physical server that the host belongs to. */ serverId: string; /** Set temporarily if maintenance is planned for this host, and a new host was provided as a replacement. */ replacement?: Replacement; } export declare enum Host_Status { STATUS_UNSPECIFIED = 0, UP = 1, DOWN = 2, UNRECOGNIZED = -1 } export declare function host_StatusFromJSON(object: any): Host_Status; export declare function host_StatusToJSON(object: Host_Status): string; export interface ScalePolicy { fixedScale?: ScalePolicy_FixedScale | undefined; } export interface ScalePolicy_FixedScale { size: number; } export interface Replacement { /** ID of the host which replaces this one. */ hostId: string; /** The date and time when this host will be automatically freed of instances. */ deadlineAt?: Date; } export declare const HostGroup: { encode(message: HostGroup, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HostGroup; fromJSON(object: any): HostGroup; toJSON(message: HostGroup): unknown; fromPartial, never>) | undefined; zoneId?: string | undefined; status?: HostGroup_Status | undefined; typeId?: string | undefined; maintenancePolicy?: MaintenancePolicy | undefined; scalePolicy?: ({ fixedScale?: { size?: number | undefined; } | undefined; } & { fixedScale?: ({ size?: number | undefined; } & { size?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): HostGroup; }; export declare const HostGroup_LabelsEntry: { encode(message: HostGroup_LabelsEntry, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HostGroup_LabelsEntry; fromJSON(object: any): HostGroup_LabelsEntry; toJSON(message: HostGroup_LabelsEntry): unknown; fromPartial, never>>(object: I): HostGroup_LabelsEntry; }; export declare const Host: { encode(message: Host, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Host; fromJSON(object: any): Host; toJSON(message: Host): unknown; fromPartial, never>) | undefined; } & Record, never>>(object: I): Host; }; export declare const ScalePolicy: { encode(message: ScalePolicy, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ScalePolicy; fromJSON(object: any): ScalePolicy; toJSON(message: ScalePolicy): unknown; fromPartial, never>) | undefined; } & Record, never>>(object: I): ScalePolicy; }; export declare const ScalePolicy_FixedScale: { encode(message: ScalePolicy_FixedScale, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ScalePolicy_FixedScale; fromJSON(object: any): ScalePolicy_FixedScale; toJSON(message: ScalePolicy_FixedScale): unknown; fromPartial, never>>(object: I): ScalePolicy_FixedScale; }; export declare const Replacement: { encode(message: Replacement, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Replacement; fromJSON(object: any): Replacement; toJSON(message: Replacement): unknown; fromPartial, never>>(object: I): Replacement; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & Record>, never>; export {};