import _m0 from 'protobufjs/minimal';
import { ResourcesSpec, AttachedDiskSpec, NetworkInterfaceSpec } from '../../../../../../yandex/cloud/compute/v1/instance_service';
export declare const protobufPackage = "yandex.cloud.loadtesting.api.v1.agent";
export interface CreateComputeInstance {
    /** Resource labels as `key:value` pairs. */
    labels: {
        [key: string]: string;
    };
    /**
     * ID of the availability zone where the instance resides.
     * To get a list of available zones, use the [yandex.cloud.compute.v1.ZoneService.List] request
     */
    zoneId: string;
    /**
     * Computing resources of the instance, such as the amount of memory and number of cores.
     * To get a list of available values, see [Levels of core performance](/docs/compute/concepts/performance-levels).
     */
    resourcesSpec?: ResourcesSpec;
    /**
     * The metadata `key:value` pairs that will be assigned to this instance. This includes custom metadata and predefined keys.
     * The total size of all keys and values must be less than 512 KB.
     *
     * Values are free-form strings, and only have meaning as interpreted by the programs which configure the instance.
     * The values must be 256 KB or less.
     *
     * For example, you may use the metadata in order to provide your public SSH key to the instance.
     * For more information, see [Metadata](/docs/compute/concepts/vm-metadata).
     */
    metadata: {
        [key: string]: string;
    };
    /** Boot disk to attach to the instance. */
    bootDiskSpec?: AttachedDiskSpec;
    /**
     * Network configuration for the instance. Specifies how the network interface is configured
     * to interact with other services on the internal network and on the internet.
     * Currently only one network interface is supported per instance.
     */
    networkInterfaceSpecs: NetworkInterfaceSpec[];
    /**
     * ID of the service account to use for [authentication inside the instance](/docs/compute/operations/vm-connect/auth-inside-vm).
     * To get the service account ID, use a [yandex.cloud.iam.v1.ServiceAccountService.List] request.
     */
    serviceAccountId: string;
    /**
     * ID of the [Compute VM platform](/docs/compute/concepts/vm-platforms) on which the agent will be created.
     * Default value: "standard-v2"
     */
    platformId: string;
}
export interface CreateComputeInstance_LabelsEntry {
    key: string;
    value: string;
}
export interface CreateComputeInstance_MetadataEntry {
    key: string;
    value: string;
}
export declare const CreateComputeInstance: {
    encode(message: CreateComputeInstance, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateComputeInstance;
    fromJSON(object: any): CreateComputeInstance;
    toJSON(message: CreateComputeInstance): unknown;
    fromPartial<I extends {
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        zoneId?: string | undefined;
        resourcesSpec?: {
            memory?: number | undefined;
            cores?: number | undefined;
            coreFraction?: number | undefined;
            gpus?: number | undefined;
        } | undefined;
        metadata?: {
            [x: string]: string | undefined;
        } | undefined;
        bootDiskSpec?: {
            mode?: import("../../../../../../yandex/cloud/compute/v1/instance_service").AttachedDiskSpec_Mode | undefined;
            deviceName?: string | undefined;
            autoDelete?: boolean | undefined;
            diskSpec?: {
                name?: string | undefined;
                description?: string | undefined;
                typeId?: string | undefined;
                size?: number | undefined;
                imageId?: string | undefined;
                snapshotId?: string | undefined;
                diskPlacementPolicy?: {
                    placementGroupId?: string | undefined;
                    placementGroupPartition?: number | undefined;
                } | undefined;
                blockSize?: number | undefined;
                kmsKeyId?: string | undefined;
            } | undefined;
            diskId?: string | undefined;
        } | undefined;
        networkInterfaceSpecs?: {
            subnetId?: string | undefined;
            primaryV4AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            primaryV6AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            securityGroupIds?: string[] | undefined;
            index?: string | undefined;
        }[] | undefined;
        serviceAccountId?: string | undefined;
        platformId?: string | undefined;
    } & {
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        zoneId?: string | undefined;
        resourcesSpec?: ({
            memory?: number | undefined;
            cores?: number | undefined;
            coreFraction?: number | undefined;
            gpus?: number | undefined;
        } & {
            memory?: number | undefined;
            cores?: number | undefined;
            coreFraction?: number | undefined;
            gpus?: number | undefined;
        } & Record<Exclude<keyof I["resourcesSpec"], keyof ResourcesSpec>, never>) | undefined;
        metadata?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["metadata"], string | number>, never>) | undefined;
        bootDiskSpec?: ({
            mode?: import("../../../../../../yandex/cloud/compute/v1/instance_service").AttachedDiskSpec_Mode | undefined;
            deviceName?: string | undefined;
            autoDelete?: boolean | undefined;
            diskSpec?: {
                name?: string | undefined;
                description?: string | undefined;
                typeId?: string | undefined;
                size?: number | undefined;
                imageId?: string | undefined;
                snapshotId?: string | undefined;
                diskPlacementPolicy?: {
                    placementGroupId?: string | undefined;
                    placementGroupPartition?: number | undefined;
                } | undefined;
                blockSize?: number | undefined;
                kmsKeyId?: string | undefined;
            } | undefined;
            diskId?: string | undefined;
        } & {
            mode?: import("../../../../../../yandex/cloud/compute/v1/instance_service").AttachedDiskSpec_Mode | undefined;
            deviceName?: string | undefined;
            autoDelete?: boolean | undefined;
            diskSpec?: ({
                name?: string | undefined;
                description?: string | undefined;
                typeId?: string | undefined;
                size?: number | undefined;
                imageId?: string | undefined;
                snapshotId?: string | undefined;
                diskPlacementPolicy?: {
                    placementGroupId?: string | undefined;
                    placementGroupPartition?: number | undefined;
                } | undefined;
                blockSize?: number | undefined;
                kmsKeyId?: string | undefined;
            } & {
                name?: string | undefined;
                description?: string | undefined;
                typeId?: string | undefined;
                size?: number | undefined;
                imageId?: string | undefined;
                snapshotId?: string | undefined;
                diskPlacementPolicy?: ({
                    placementGroupId?: string | undefined;
                    placementGroupPartition?: number | undefined;
                } & {
                    placementGroupId?: string | undefined;
                    placementGroupPartition?: number | undefined;
                } & Record<Exclude<keyof I["bootDiskSpec"]["diskSpec"]["diskPlacementPolicy"], keyof import("../../../../compute/v1/disk").DiskPlacementPolicy>, never>) | undefined;
                blockSize?: number | undefined;
                kmsKeyId?: string | undefined;
            } & Record<Exclude<keyof I["bootDiskSpec"]["diskSpec"], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").AttachedDiskSpec_DiskSpec>, never>) | undefined;
            diskId?: string | undefined;
        } & Record<Exclude<keyof I["bootDiskSpec"], keyof AttachedDiskSpec>, never>) | undefined;
        networkInterfaceSpecs?: ({
            subnetId?: string | undefined;
            primaryV4AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            primaryV6AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            securityGroupIds?: string[] | undefined;
            index?: string | undefined;
        }[] & ({
            subnetId?: string | undefined;
            primaryV4AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            primaryV6AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            securityGroupIds?: string[] | undefined;
            index?: string | undefined;
        } & {
            subnetId?: string | undefined;
            primaryV4AddressSpec?: ({
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } & {
                address?: string | undefined;
                oneToOneNatSpec?: ({
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } & {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: ({
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] & ({
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    } & {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV4AddressSpec"]["oneToOneNatSpec"]["dnsRecordSpecs"][number], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").DnsRecordSpec>, never>)[] & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV4AddressSpec"]["oneToOneNatSpec"]["dnsRecordSpecs"], keyof {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV4AddressSpec"]["oneToOneNatSpec"], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").OneToOneNatSpec>, never>) | undefined;
                dnsRecordSpecs?: ({
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] & ({
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                } & {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV4AddressSpec"]["dnsRecordSpecs"][number], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").DnsRecordSpec>, never>)[] & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV4AddressSpec"]["dnsRecordSpecs"], keyof {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV4AddressSpec"], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").PrimaryAddressSpec>, never>) | undefined;
            primaryV6AddressSpec?: ({
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } & {
                address?: string | undefined;
                oneToOneNatSpec?: ({
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } & {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: ({
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] & ({
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    } & {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV6AddressSpec"]["oneToOneNatSpec"]["dnsRecordSpecs"][number], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").DnsRecordSpec>, never>)[] & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV6AddressSpec"]["oneToOneNatSpec"]["dnsRecordSpecs"], keyof {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV6AddressSpec"]["oneToOneNatSpec"], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").OneToOneNatSpec>, never>) | undefined;
                dnsRecordSpecs?: ({
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] & ({
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                } & {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV6AddressSpec"]["dnsRecordSpecs"][number], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").DnsRecordSpec>, never>)[] & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV6AddressSpec"]["dnsRecordSpecs"], keyof {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["primaryV6AddressSpec"], keyof import("../../../../../../yandex/cloud/compute/v1/instance_service").PrimaryAddressSpec>, never>) | undefined;
            securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["networkInterfaceSpecs"][number]["securityGroupIds"], keyof string[]>, never>) | undefined;
            index?: string | undefined;
        } & Record<Exclude<keyof I["networkInterfaceSpecs"][number], keyof NetworkInterfaceSpec>, never>)[] & Record<Exclude<keyof I["networkInterfaceSpecs"], keyof {
            subnetId?: string | undefined;
            primaryV4AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            primaryV6AddressSpec?: {
                address?: string | undefined;
                oneToOneNatSpec?: {
                    ipVersion?: import("../../../../compute/v1/instance").IpVersion | undefined;
                    address?: string | undefined;
                    dnsRecordSpecs?: {
                        fqdn?: string | undefined;
                        dnsZoneId?: string | undefined;
                        ttl?: number | undefined;
                        ptr?: boolean | undefined;
                    }[] | undefined;
                } | undefined;
                dnsRecordSpecs?: {
                    fqdn?: string | undefined;
                    dnsZoneId?: string | undefined;
                    ttl?: number | undefined;
                    ptr?: boolean | undefined;
                }[] | undefined;
            } | undefined;
            securityGroupIds?: string[] | undefined;
            index?: string | undefined;
        }[]>, never>) | undefined;
        serviceAccountId?: string | undefined;
        platformId?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateComputeInstance>, never>>(object: I): CreateComputeInstance;
};
export declare const CreateComputeInstance_LabelsEntry: {
    encode(message: CreateComputeInstance_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateComputeInstance_LabelsEntry;
    fromJSON(object: any): CreateComputeInstance_LabelsEntry;
    toJSON(message: CreateComputeInstance_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateComputeInstance_LabelsEntry>, never>>(object: I): CreateComputeInstance_LabelsEntry;
};
export declare const CreateComputeInstance_MetadataEntry: {
    encode(message: CreateComputeInstance_MetadataEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateComputeInstance_MetadataEntry;
    fromJSON(object: any): CreateComputeInstance_MetadataEntry;
    toJSON(message: CreateComputeInstance_MetadataEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateComputeInstance_MetadataEntry>, never>>(object: I): CreateComputeInstance_MetadataEntry;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
