import { Long, unknownFieldsSymbol } from "../../../../runtime/protos/index.js"; import type { MessageDescriptor, MessageFns, EnumInstance, EnumClass } from "../../../../runtime/protos/index.js"; import { customJson } from "../../../../runtime/util/logging.js"; import { ChannelCredentials, Client, ClientUnaryCall, ClientOptions, CallOptions, Metadata, ServiceError as GrpcServiceError, handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; import type { SDKInterface } from "../../../../sdk.js"; import { Request as SDKRequestClass, type RetryOptions } from "../../../../runtime/request.js"; import { Operation as OperationWrapper } from "../../../../runtime/operation.js"; import { GetByNameRequest, GetOperationRequest, Operation, OperationService, ResourceMetadata } from "../../common/v1/index.js"; /** Represents the `nebius.billing.v1.EstimateBatchRequest` protobuf message. */ export interface EstimateBatchRequest { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.EstimateBatchRequest"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * List of resource specifications for cost estimation. * Each resource will be priced individually and then aggregated into total costs. * */ resourceSpecs: ResourceSpec[]; /** * Type of offers to be applied to the cost estimate. * */ offerTypes: OfferType[]; /** * Currency for the cost estimate (e.g., "usd", "ils"). Defaults to "usd". * */ currency: string; /** * Filters only time-based resource units, e.g. hour, day, month, etc. * If response contains other resource units like request, token, etc., it will always be presented in response. * */ filterAggregationUnit?: FilterAggregationUnit | undefined; } /** Encodes, decodes, converts, and creates {@link EstimateBatchRequest} messages. */ export declare const EstimateBatchRequest: MessageFns; /** Represents the `nebius.billing.v1.EstimateBatchResponse` protobuf message. */ export interface EstimateBatchResponse { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.EstimateBatchResponse"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `resource_costs` protobuf field. */ resourceCosts: ResourceCost[]; /** * Total cost for all resource units. * */ totalCosts: TotalCost[]; /** * Currency used for the estimate. * */ currency: string; } /** Encodes, decodes, converts, and creates {@link EstimateBatchResponse} messages. */ export declare const EstimateBatchResponse: MessageFns; /** * Defines the gRPC methods for the `nebius.billing.v1.CalculatorService` service. */ export type CalculatorServiceServiceDescription = typeof CalculatorServiceServiceDescription; /** * Describes the gRPC methods for the `nebius.billing.v1.CalculatorService` service. */ export declare const CalculatorServiceServiceDescription: { readonly estimateBatch: { readonly path: "/nebius.billing.v1.CalculatorService/EstimateBatch"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: EstimateBatchRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly sendResetMask: false; readonly requestDeserialize: (value: Buffer) => EstimateBatchRequest; readonly responseSerialize: (value: EstimateBatchResponse) => Buffer; readonly responseDeserialize: (value: Buffer) => EstimateBatchResponse; }; }; /** * Handles server calls for the `nebius.billing.v1.CalculatorService` service. */ export interface CalculatorServiceServer extends UntypedServiceImplementation { /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch: handleUnaryCall; } /** * Defines the low-level gRPC client for the `nebius.billing.v1.CalculatorService` service. */ export interface CalculatorServiceBaseClient extends Client { /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: EstimateBatchResponse) => void): ClientUnaryCall; } /** * Creates low-level gRPC clients for the `nebius.billing.v1.CalculatorService` service. */ export declare const CalculatorServiceBaseClient: { /** Creates a low-level client for the service address. */ new (address: string, credentials: ChannelCredentials, options?: Partial): CalculatorServiceBaseClient; /** Contains the gRPC service description. */ service: typeof CalculatorServiceServiceDescription; /** Contains the fully qualified protobuf service name. */ serviceName: string; }; /** * Calculator service for estimating resource costs. * */ export interface CalculatorService { /** Contains the fully qualified protobuf service name. */ $type: "nebius.billing.v1.CalculatorService"; /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest): SDKRequestClass; /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest, metadata: Metadata): SDKRequestClass; /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; } /** * Calls the `nebius.billing.v1.CalculatorService` service through the Nebius SDK. */ export declare class CalculatorService implements CalculatorService { private sdk; $type: "nebius.billing.v1.CalculatorService"; private addr; private spec; private apiServiceName; /** Creates a client that uses the SDK service address. */ constructor(sdk: SDKInterface); /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest): SDKRequestClass; /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest, metadata: Metadata): SDKRequestClass; /** * Estimates prices for multiple resources. * Returns aggregated hourly and monthly cost estimates for all specified resources. * */ estimateBatch(request: EstimateBatchRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; } /** * List of time aggregation unit values to filter by. * Only costs for these time units will be included in the response, but it doesn't filter not time-based units. * */ export type FilterAggregationUnit_FilterAggregationUnitValue = EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; /** Defines the static values of {@link FilterAggregationUnit_FilterAggregationUnitValue}. */ export interface FilterAggregationUnit_FilterAggregationUnitValueValueMembers { /** * Represents the `FILTER_AGGREGATION_UNIT_UNSPECIFIED` protobuf enum value. */ readonly FILTER_AGGREGATION_UNIT_UNSPECIFIED: EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; /** * Represents the `FILTER_AGGREGATION_UNIT_MINUTE` protobuf enum value. */ readonly FILTER_AGGREGATION_UNIT_MINUTE: EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; /** * Represents the `FILTER_AGGREGATION_UNIT_HOUR` protobuf enum value. */ readonly FILTER_AGGREGATION_UNIT_HOUR: EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; /** * Represents the `FILTER_AGGREGATION_UNIT_DAY` protobuf enum value. */ readonly FILTER_AGGREGATION_UNIT_DAY: EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; /** * Represents the `FILTER_AGGREGATION_UNIT_WEEK` protobuf enum value. */ readonly FILTER_AGGREGATION_UNIT_WEEK: EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; /** * Represents the `FILTER_AGGREGATION_UNIT_MONTH` protobuf enum value. */ readonly FILTER_AGGREGATION_UNIT_MONTH: EnumInstance<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH">; } /** Defines the runtime API for {@link FilterAggregationUnit_FilterAggregationUnitValue}. */ export type FilterAggregationUnit_FilterAggregationUnitValueClass = EnumClass<"UNRECOGNIZED" | "FILTER_AGGREGATION_UNIT_UNSPECIFIED" | "FILTER_AGGREGATION_UNIT_MINUTE" | "FILTER_AGGREGATION_UNIT_HOUR" | "FILTER_AGGREGATION_UNIT_DAY" | "FILTER_AGGREGATION_UNIT_WEEK" | "FILTER_AGGREGATION_UNIT_MONTH"> & FilterAggregationUnit_FilterAggregationUnitValueValueMembers; /** Converts and creates {@link FilterAggregationUnit_FilterAggregationUnitValue} values. */ export declare const FilterAggregationUnit_FilterAggregationUnitValue: FilterAggregationUnit_FilterAggregationUnitValueClass; /** * Aggregation unit type * If unit type is one of minute, hour, day, week, month, then it's time-based * Otherwise it's usage-based * */ export type AggregationUnit_UnitType = EnumInstance<"UNRECOGNIZED" | "UNIT_TYPE_UNSPECIFIED" | "UNIT_TYPE_TIME_BASED" | "UNIT_TYPE_USAGE_BASED">; /** Defines the static values of {@link AggregationUnit_UnitType}. */ export interface AggregationUnit_UnitTypeValueMembers { /** * Represents the `UNIT_TYPE_UNSPECIFIED` protobuf enum value. */ readonly UNIT_TYPE_UNSPECIFIED: EnumInstance<"UNRECOGNIZED" | "UNIT_TYPE_UNSPECIFIED" | "UNIT_TYPE_TIME_BASED" | "UNIT_TYPE_USAGE_BASED">; /** * Represents the `UNIT_TYPE_TIME_BASED` protobuf enum value. */ readonly UNIT_TYPE_TIME_BASED: EnumInstance<"UNRECOGNIZED" | "UNIT_TYPE_UNSPECIFIED" | "UNIT_TYPE_TIME_BASED" | "UNIT_TYPE_USAGE_BASED">; /** * Represents the `UNIT_TYPE_USAGE_BASED` protobuf enum value. */ readonly UNIT_TYPE_USAGE_BASED: EnumInstance<"UNRECOGNIZED" | "UNIT_TYPE_UNSPECIFIED" | "UNIT_TYPE_TIME_BASED" | "UNIT_TYPE_USAGE_BASED">; } /** Defines the runtime API for {@link AggregationUnit_UnitType}. */ export type AggregationUnit_UnitTypeClass = EnumClass<"UNRECOGNIZED" | "UNIT_TYPE_UNSPECIFIED" | "UNIT_TYPE_TIME_BASED" | "UNIT_TYPE_USAGE_BASED"> & AggregationUnit_UnitTypeValueMembers; /** Converts and creates {@link AggregationUnit_UnitType} values. */ export declare const AggregationUnit_UnitType: AggregationUnit_UnitTypeClass; /** * Resource specification for cost estimation. * Contains the specifications for creating and updating different types of resources. * */ export interface ResourceSpec { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.ResourceSpec"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Resource specification for cost estimation. Payload must include billing routing annotations. Must contain * either a create-request or an update-request message for the target resource type. Examples: * type.googleapis.com/nebius.compute.v1.CreateInstanceRequest, type.googleapis.com/nebius.compute.v1.UpdateInstanceRequest and so on * */ spec?: { typeUrl: string; value: Uint8Array; } | undefined; } /** Encodes, decodes, converts, and creates {@link ResourceSpec} messages. */ export declare const ResourceSpec: MessageFns; /** * General total cost with a single fixed amount. * Used for resources with predictable, non-variable pricing. * */ export interface GeneralTotalCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.GeneralTotalCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Cost breakdown including all SKUs and their individual costs. * */ total?: CostBreakdown | undefined; } /** Encodes, decodes, converts, and creates {@link GeneralTotalCost} messages. */ export declare const GeneralTotalCost: MessageFns; /** * Range-based total cost with minimum and maximum bounds. * Used for resources with variable pricing based on usage or scaling. * */ export interface RangeTotalCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.RangeTotalCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Minimum possible cost for the resource group. * Represents the cost when resources are at their minimum configuration. * */ min?: CostBreakdown | undefined; /** * Maximum possible cost for the resource group. * Represents the cost when resources are at their maximum configuration. * */ max?: CostBreakdown | undefined; } /** Encodes, decodes, converts, and creates {@link RangeTotalCost} messages. */ export declare const RangeTotalCost: MessageFns; /** * Cost information for a single resource. * Contains metadata about the resource and its cost. * */ export interface ResourceCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.ResourceCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Resource metadata. * */ metadata?: ResourceMetadata | undefined; /** * Optional field to override the resource metadata. * */ overrideMetadata?: ResourceMetadata | undefined; /** * Unit of the SKU measurement within a resource, e.g. "hour", "day", "month", etc. * */ aggregationUnit?: AggregationUnit | undefined; /** Contains the selected value for the `cost_type` protobuf oneof. */ costType?: { $case: "general"; general: GeneralResourceCost; } | { $case: "fixedInstance"; fixedInstance: FixedInstanceResourceCost; } | { $case: "autoscale"; autoscale: AutoscaleResourceCost; } | undefined; } /** Encodes, decodes, converts, and creates {@link ResourceCost} messages. */ export declare const ResourceCost: MessageFns; /** * General resource cost for single-unit resources. * Used for resources like compute instances or disks where the unit count is not variable. * */ export interface GeneralResourceCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.GeneralResourceCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Cost breakdown for the resource including all SKU costs and total cost. * */ total?: CostBreakdown | undefined; } /** Encodes, decodes, converts, and creates {@link GeneralResourceCost} messages. */ export declare const GeneralResourceCost: MessageFns; /** * Fixed instance resource cost. * Used for resources that have a fixed number of instances. * */ export interface FixedInstanceResourceCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.FixedInstanceResourceCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Total cost for all instances combined. * */ total?: CostBreakdown | undefined; /** * Cost per individual instance. * Multiply by instance_count to get total cost. * */ perInstance?: CostBreakdown | undefined; /** * Number of instances in the configuration. * */ instanceCount: number; } /** Encodes, decodes, converts, and creates {@link FixedInstanceResourceCost} messages. */ export declare const FixedInstanceResourceCost: MessageFns; /** * Autoscale resource cost. * Used for resources that can automatically scale. * */ export interface AutoscaleResourceCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.AutoscaleResourceCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Minimum possible cost when scaled to minimum instances. * */ minCost?: CostBreakdown | undefined; /** * Maximum possible cost when scaled to maximum instances. * */ maxCost?: CostBreakdown | undefined; /** * Cost per individual instance. * Used to calculate costs at any scaling level between min and max. * */ perInstance?: CostBreakdown | undefined; /** * Minimum number of instances in the auto-scaling group. * */ minInstances: number; /** * Maximum number of instances in the auto-scaling group. * */ maxInstances: number; } /** Encodes, decodes, converts, and creates {@link AutoscaleResourceCost} messages. */ export declare const AutoscaleResourceCost: MessageFns; /** * Detailed cost breakdown showing individual SKU costs and totals. * */ export interface CostBreakdown { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.CostBreakdown"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Individual costs for each SKU (Stock Keeping Unit) component. * Each SKU represents a different billable component (e.g., CPU, memory, RAM, etc.). * */ skuCosts: SkuCost[]; /** * Total cost as a decimal string. * Represents the sum of all SKU costs with full precision. * Example: "42.123456789" for precise billing calculations. * */ cost: string; /** * Total cost rounded up to 2 decimal places. * Example: "42.13" * */ costRounded: string; } /** Encodes, decodes, converts, and creates {@link CostBreakdown} messages. */ export declare const CostBreakdown: MessageFns; /** * Cost information for a specific SKU (Stock Keeping Unit). * Represents a single billable component within a resource. * */ export interface SkuCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.SkuCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Unique identifier for the SKU. * */ skuId: string; /** * Quantity of the SKU being used as a decimal string. * Example: "2.123" * */ quantity: string; /** * Quantity rounded up to 2 decimal places. * Example: "2.13" * */ quantityRounded: string; /** * Cost for this SKU as a decimal string. * Calculated as quantity * unit_price with full precision. * Example: "15.6789012345" for precise billing calculations. * */ cost: string; /** * Cost for this SKU rounded up to 2 decimal places. * Example: "15.68" * */ costRounded: string; } /** Encodes, decodes, converts, and creates {@link SkuCost} messages. */ export declare const SkuCost: MessageFns; /** * Total cost for a single resource unit. * */ export interface TotalCost { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.TotalCost"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Aggregation unit. * */ aggregationUnit?: AggregationUnit | undefined; /** Contains the selected value for the `cost_type` protobuf oneof. */ costType?: { $case: "general"; general: GeneralResourceCost; } | { $case: "range"; range: RangeTotalCost; } | undefined; } /** Encodes, decodes, converts, and creates {@link TotalCost} messages. */ export declare const TotalCost: MessageFns; /** * Filters only time-based aggregation units, e.g. hour, day, month, etc. * If response contains other aggregation units like request, token, etc., it will always be presented in response. * */ export interface FilterAggregationUnit { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.FilterAggregationUnit"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * List of time aggregation unit values to filter by. * Only costs for these time units will be included in the response, but it doesn't filter not time-based units. * */ filterAggregationUnitValues: FilterAggregationUnit_FilterAggregationUnitValue[]; } /** Encodes, decodes, converts, and creates {@link FilterAggregationUnit} messages. */ export declare const FilterAggregationUnit: MessageFns; /** Represents the `nebius.billing.v1.AggregationUnit` protobuf message. */ export interface AggregationUnit { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.AggregationUnit"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Resource unit value. * */ unit: string; /** * Resource unit type. * */ unitType: AggregationUnit_UnitType; } /** Encodes, decodes, converts, and creates {@link AggregationUnit} messages. */ export declare const AggregationUnit: MessageFns; /** * OfferType is a enum that specifies the type of offer. * */ export type OfferType = EnumInstance<"UNRECOGNIZED" | "OFFER_TYPE_UNSPECIFIED" | "OFFER_TYPE_CONTRACT_PRICE">; /** Defines the static values of {@link OfferType}. */ export interface OfferTypeValueMembers { /** * Represents the `OFFER_TYPE_UNSPECIFIED` protobuf enum value. */ readonly OFFER_TYPE_UNSPECIFIED: EnumInstance<"UNRECOGNIZED" | "OFFER_TYPE_UNSPECIFIED" | "OFFER_TYPE_CONTRACT_PRICE">; /** * Contract price is a special price for SKU. * */ readonly OFFER_TYPE_CONTRACT_PRICE: EnumInstance<"UNRECOGNIZED" | "OFFER_TYPE_UNSPECIFIED" | "OFFER_TYPE_CONTRACT_PRICE">; } /** Defines the runtime API for {@link OfferType}. */ export type OfferTypeClass = EnumClass<"UNRECOGNIZED" | "OFFER_TYPE_UNSPECIFIED" | "OFFER_TYPE_CONTRACT_PRICE"> & OfferTypeValueMembers; /** Converts and creates {@link OfferType} values. */ export declare const OfferType: OfferTypeClass; /** Represents the `nebius.billing.v1.CreatePricingPolicyRequest` protobuf message. */ export interface CreatePricingPolicyRequest { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.CreatePricingPolicyRequest"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `metadata` protobuf field. */ metadata?: ResourceMetadata | undefined; /** Contains the `spec` protobuf field. */ spec?: PricingPolicySpec | undefined; } /** Encodes, decodes, converts, and creates {@link CreatePricingPolicyRequest} messages. */ export declare const CreatePricingPolicyRequest: MessageFns; /** Represents the `nebius.billing.v1.GetPricingPolicyRequest` protobuf message. */ export interface GetPricingPolicyRequest { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.GetPricingPolicyRequest"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `id` protobuf field. */ id: string; } /** Encodes, decodes, converts, and creates {@link GetPricingPolicyRequest} messages. */ export declare const GetPricingPolicyRequest: MessageFns; /** Represents the `nebius.billing.v1.ListPricingPoliciesRequest` protobuf message. */ export interface ListPricingPoliciesRequest { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.ListPricingPoliciesRequest"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `parent_id` protobuf field. */ parentId: string; /** Contains the `page_size` protobuf field. */ pageSize: Long; /** Contains the `page_token` protobuf field. */ pageToken: string; } /** Encodes, decodes, converts, and creates {@link ListPricingPoliciesRequest} messages. */ export declare const ListPricingPoliciesRequest: MessageFns; /** Represents the `nebius.billing.v1.ListPricingPoliciesResponse` protobuf message. */ export interface ListPricingPoliciesResponse { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.ListPricingPoliciesResponse"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `items` protobuf field. */ items: PricingPolicy[]; /** Contains the `next_page_token` protobuf field. */ nextPageToken: string; } /** Encodes, decodes, converts, and creates {@link ListPricingPoliciesResponse} messages. */ export declare const ListPricingPoliciesResponse: MessageFns; /** Represents the `nebius.billing.v1.UpdatePricingPolicyRequest` protobuf message. */ export interface UpdatePricingPolicyRequest { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.UpdatePricingPolicyRequest"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `metadata` protobuf field. */ metadata?: ResourceMetadata | undefined; /** Contains the `spec` protobuf field. */ spec?: PricingPolicySpec | undefined; } /** Encodes, decodes, converts, and creates {@link UpdatePricingPolicyRequest} messages. */ export declare const UpdatePricingPolicyRequest: MessageFns; /** Represents the `nebius.billing.v1.DeletePricingPolicyRequest` protobuf message. */ export interface DeletePricingPolicyRequest { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.DeletePricingPolicyRequest"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `id` protobuf field. */ id: string; } /** Encodes, decodes, converts, and creates {@link DeletePricingPolicyRequest} messages. */ export declare const DeletePricingPolicyRequest: MessageFns; /** * Defines the gRPC methods for the `nebius.billing.v1.PricingPolicyService` service. */ export type PricingPolicyServiceServiceDescription = typeof PricingPolicyServiceServiceDescription; /** * Describes the gRPC methods for the `nebius.billing.v1.PricingPolicyService` service. */ export declare const PricingPolicyServiceServiceDescription: { readonly create: { readonly path: "/nebius.billing.v1.PricingPolicyService/Create"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: CreatePricingPolicyRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly metadataParentTypes: () => string[] | undefined; readonly sendResetMask: false; readonly requestDeserialize: (value: Buffer) => CreatePricingPolicyRequest; readonly responseSerialize: (value: Operation) => Buffer; readonly responseDeserialize: (value: Buffer) => Operation; }; readonly get: { readonly path: "/nebius.billing.v1.PricingPolicyService/Get"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: GetPricingPolicyRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly metadataParentTypes: () => string[] | undefined; readonly sendResetMask: false; readonly requestDeserialize: (value: Buffer) => GetPricingPolicyRequest; readonly responseSerialize: (value: PricingPolicy) => Buffer; readonly responseDeserialize: (value: Buffer) => PricingPolicy; }; readonly getByName: { readonly path: "/nebius.billing.v1.PricingPolicyService/GetByName"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: GetByNameRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly metadataParentTypes: () => string[] | undefined; readonly sendResetMask: false; readonly requestDeserialize: (value: Buffer) => GetByNameRequest; readonly responseSerialize: (value: PricingPolicy) => Buffer; readonly responseDeserialize: (value: Buffer) => PricingPolicy; }; readonly list: { readonly path: "/nebius.billing.v1.PricingPolicyService/List"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: ListPricingPoliciesRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly metadataParentTypes: () => string[] | undefined; readonly sendResetMask: false; readonly requestDeserialize: (value: Buffer) => ListPricingPoliciesRequest; readonly responseSerialize: (value: ListPricingPoliciesResponse) => Buffer; readonly responseDeserialize: (value: Buffer) => ListPricingPoliciesResponse; }; readonly update: { readonly path: "/nebius.billing.v1.PricingPolicyService/Update"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: UpdatePricingPolicyRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly metadataParentTypes: () => string[] | undefined; readonly sendResetMask: true; readonly requestDeserialize: (value: Buffer) => UpdatePricingPolicyRequest; readonly responseSerialize: (value: Operation) => Buffer; readonly responseDeserialize: (value: Buffer) => Operation; }; readonly delete: { readonly path: "/nebius.billing.v1.PricingPolicyService/Delete"; readonly requestStream: false; readonly responseStream: false; readonly requestSerialize: (value: DeletePricingPolicyRequest) => Buffer; readonly requestDescriptor: () => MessageDescriptor | undefined; readonly metadataParentTypes: () => string[] | undefined; readonly sendResetMask: false; readonly requestDeserialize: (value: Buffer) => DeletePricingPolicyRequest; readonly responseSerialize: (value: Operation) => Buffer; readonly responseDeserialize: (value: Buffer) => Operation; }; }; /** * Handles server calls for the `nebius.billing.v1.PricingPolicyService` service. */ export interface PricingPolicyServiceServer extends UntypedServiceImplementation { /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create: handleUnaryCall; /** * Handles the `Get` RPC. */ get: handleUnaryCall; /** * Handles the `GetByName` RPC. */ getByName: handleUnaryCall; /** * Handles the `List` RPC. */ list: handleUnaryCall; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update: handleUnaryCall; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete: handleUnaryCall; } /** * Defines the low-level gRPC client for the `nebius.billing.v1.PricingPolicyService` service. */ export interface PricingPolicyServiceBaseClient extends Client { /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: Operation) => void): ClientUnaryCall; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: PricingPolicy) => void): ClientUnaryCall; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: PricingPolicy) => void): ClientUnaryCall; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: ListPricingPoliciesResponse) => void): ClientUnaryCall; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: Operation) => void): ClientUnaryCall; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest, metadata: Metadata, options: Partial, callback: (error: GrpcServiceError | null, response: Operation) => void): ClientUnaryCall; } /** * Creates low-level gRPC clients for the `nebius.billing.v1.PricingPolicyService` service. */ export declare const PricingPolicyServiceBaseClient: { /** Creates a low-level client for the service address. */ new (address: string, credentials: ChannelCredentials, options?: Partial): PricingPolicyServiceBaseClient; /** Contains the gRPC service description. */ service: typeof PricingPolicyServiceServiceDescription; /** Contains the fully qualified protobuf service name. */ serviceName: string; }; /** * Manages pricing policies for preemptible VMs. * Modifying methods return an Operation and support `X-Idempotency-Key`; * the common `common.v1.OperationService` is implemented as well. * */ export interface PricingPolicyService { /** Contains the fully qualified protobuf service name. */ $type: "nebius.billing.v1.PricingPolicyService"; /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest): SDKRequestClass>; /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest, metadata: Metadata): SDKRequestClass>; /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass>; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest): SDKRequestClass; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest, metadata: Metadata): SDKRequestClass; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest): SDKRequestClass; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest, metadata: Metadata): SDKRequestClass; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest): SDKRequestClass; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest, metadata: Metadata): SDKRequestClass; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest): SDKRequestClass>; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest, metadata: Metadata): SDKRequestClass>; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass>; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest): SDKRequestClass>; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest, metadata: Metadata): SDKRequestClass>; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass>; } /** Iterates list pages with JavaScript async iteration. */ export interface PricingPolicyService { filter(request: ListPricingPoliciesRequest, metadata?: Metadata, options?: Partial & RetryOptions): AsyncGenerator; } /** * Calls the `nebius.billing.v1.PricingPolicyService` service through the Nebius SDK. */ export declare class PricingPolicyService implements PricingPolicyService { private sdk; $type: "nebius.billing.v1.PricingPolicyService"; private addr; private spec; private apiServiceName; /** Creates a client that uses the SDK service address. */ constructor(sdk: SDKInterface); /** Returns the operation service for this service address. */ getOperationService(): OperationService; /** Lists operations for this service address. */ listOperations(request: Parameters[0], metadata?: Metadata, options?: Partial & RetryOptions): ReturnType; /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest): SDKRequestClass>; /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest, metadata: Metadata): SDKRequestClass>; /** * Creates a pricing policy. A max_price outside the allowed price range fails * with OUT_OF_RANGE; below the current market price it is accepted but the * policy starts SCHEDULING_STATE_BLOCKED. Policies per tenant are * quota-limited (RESOURCE_EXHAUSTED past the limit). * The Operation completes once the policy is ready to back VMs. * */ create(request: CreatePricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass>; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest): SDKRequestClass; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest, metadata: Metadata): SDKRequestClass; /** * Calls the `Get` RPC. */ get(request: GetPricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest): SDKRequestClass; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest, metadata: Metadata): SDKRequestClass; /** * Calls the `GetByName` RPC. */ getByName(request: GetByNameRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest): SDKRequestClass; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest, metadata: Metadata): SDKRequestClass; /** * Calls the `List` RPC. */ list(request: ListPricingPoliciesRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest): SDKRequestClass>; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest, metadata: Metadata): SDKRequestClass>; /** * Updates a pricing policy. `metadata.name` may change any time; the max_price in * `spec.pricing.max_price_v1` only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise). Other spec fields are immutable * (INVALID_ARGUMENT). * */ update(request: UpdatePricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass>; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest): SDKRequestClass>; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest, metadata: Metadata): SDKRequestClass>; /** * Deletes a pricing policy. Requires that no VM runs under the policy and * nothing is being preempted (FAILED_PRECONDITION otherwise). * */ delete(request: DeletePricingPolicyRequest, metadata: Metadata, options: Partial & RetryOptions): SDKRequestClass>; } /** * Represents the `nebius.billing.v1.PricingPolicyStatus.State` protobuf enum. */ export type PricingPolicyStatus_State = EnumInstance<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING">; /** Defines the static values of {@link PricingPolicyStatus_State}. */ export interface PricingPolicyStatus_StateValueMembers { /** * Represents the `STATE_UNSPECIFIED` protobuf enum value. */ readonly STATE_UNSPECIFIED: EnumInstance<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING">; /** * Not ready yet; a VM referencing the policy gets a retryable error. * The state can last while a market price change is applied to the segment. * */ readonly STATE_CREATING: EnumInstance<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING">; /** * Ready; whether VMs may start is `scheduling_state`. * */ readonly STATE_ACTIVE: EnumInstance<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING">; /** * Being deleted; does not accept new VMs. * */ readonly STATE_DELETING: EnumInstance<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING">; /** * The max_price is being changed; scheduling is blocked until the change * is applied. * The state can last while a market price change is applied to the segment. * */ readonly STATE_UPDATING: EnumInstance<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING">; } /** Defines the runtime API for {@link PricingPolicyStatus_State}. */ export type PricingPolicyStatus_StateClass = EnumClass<"UNRECOGNIZED" | "STATE_UNSPECIFIED" | "STATE_CREATING" | "STATE_ACTIVE" | "STATE_DELETING" | "STATE_UPDATING"> & PricingPolicyStatus_StateValueMembers; /** Converts and creates {@link PricingPolicyStatus_State} values. */ export declare const PricingPolicyStatus_State: PricingPolicyStatus_StateClass; /** * Represents the `nebius.billing.v1.PricingPolicyStatus.SchedulingState` protobuf enum. */ export type PricingPolicyStatus_SchedulingState = EnumInstance<"UNRECOGNIZED" | "SCHEDULING_STATE_UNSPECIFIED" | "SCHEDULING_STATE_ALLOWED" | "SCHEDULING_STATE_BLOCKED">; /** Defines the static values of {@link PricingPolicyStatus_SchedulingState}. */ export interface PricingPolicyStatus_SchedulingStateValueMembers { /** * Represents the `SCHEDULING_STATE_UNSPECIFIED` protobuf enum value. */ readonly SCHEDULING_STATE_UNSPECIFIED: EnumInstance<"UNRECOGNIZED" | "SCHEDULING_STATE_UNSPECIFIED" | "SCHEDULING_STATE_ALLOWED" | "SCHEDULING_STATE_BLOCKED">; /** * New VMs may start. * */ readonly SCHEDULING_STATE_ALLOWED: EnumInstance<"UNRECOGNIZED" | "SCHEDULING_STATE_UNSPECIFIED" | "SCHEDULING_STATE_ALLOWED" | "SCHEDULING_STATE_BLOCKED">; /** * The max_price limit is below the market price in force or below a market price * that is being applied; VM creation succeeds once the price falls to it. * */ readonly SCHEDULING_STATE_BLOCKED: EnumInstance<"UNRECOGNIZED" | "SCHEDULING_STATE_UNSPECIFIED" | "SCHEDULING_STATE_ALLOWED" | "SCHEDULING_STATE_BLOCKED">; } /** Defines the runtime API for {@link PricingPolicyStatus_SchedulingState}. */ export type PricingPolicyStatus_SchedulingStateClass = EnumClass<"UNRECOGNIZED" | "SCHEDULING_STATE_UNSPECIFIED" | "SCHEDULING_STATE_ALLOWED" | "SCHEDULING_STATE_BLOCKED"> & PricingPolicyStatus_SchedulingStateValueMembers; /** Converts and creates {@link PricingPolicyStatus_SchedulingState} values. */ export declare const PricingPolicyStatus_SchedulingState: PricingPolicyStatus_SchedulingStateClass; /** * How preemptible VMs are priced: a per-GPU maximum price for one (region, platform). * One policy backs any number of VMs, referenced by id from the preemptible spec. * A VM without a policy is a price-taker and pays the market price. * */ export interface PricingPolicy { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.PricingPolicy"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Parent is a project, immutable. Only VMs in that scope may * reference the policy. Name is unique within the parent, renamable any time. * */ metadata?: ResourceMetadata | undefined; /** Contains the `spec` protobuf field. */ spec?: PricingPolicySpec | undefined; /** Contains the `status` protobuf field. */ status?: PricingPolicyStatus | undefined; } /** Encodes, decodes, converts, and creates {@link PricingPolicy} messages. */ export declare const PricingPolicy: MessageFns; /** Represents the `nebius.billing.v1.PricingPolicySpec` protobuf message. */ export interface PricingPolicySpec { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.PricingPolicySpec"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Preemptible compute instances the policy prices. * */ computeInstanceSpec?: ComputeInstanceSpec | undefined; /** * How the price is set. * */ pricing?: PricingMethod | undefined; } /** Encodes, decodes, converts, and creates {@link PricingPolicySpec} messages. */ export declare const PricingPolicySpec: MessageFns; /** * Preemptible compute instances a pricing policy applies to. * */ export interface ComputeInstanceSpec { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.ComputeInstanceSpec"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the selected value for the `versions` protobuf oneof. */ versions?: { $case: "v1"; v1: ComputeInstanceSpecV1; } | undefined; } /** Encodes, decodes, converts, and creates {@link ComputeInstanceSpec} messages. */ export declare const ComputeInstanceSpec: MessageFns; /** Represents the `nebius.billing.v1.ComputeInstanceSpecV1` protobuf message. */ export interface ComputeInstanceSpecV1 { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.ComputeInstanceSpecV1"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Compute platform. Example: "gpu-h100-sxm". * */ platform: string; } /** Encodes, decodes, converts, and creates {@link ComputeInstanceSpecV1} messages. */ export declare const ComputeInstanceSpecV1: MessageFns; /** * How the price of a pricing policy is set. * */ export interface PricingMethod { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.PricingMethod"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the selected value for the `versions` protobuf oneof. */ versions?: { $case: "maxPriceV1"; maxPriceV1: MaxPriceV1; } | undefined; } /** Encodes, decodes, converts, and creates {@link PricingMethod} messages. */ export declare const PricingMethod: MessageFns; /** * Pricing with a per-GPU maximum price. * */ export interface MaxPriceV1 { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.MaxPriceV1"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** * Per-GPU hourly limit in USD, decimal string 3 digits precision. Example: "3.515". * Must be within the allowed price range (OUT_OF_RANGE otherwise); * a value below the current market price is accepted but blocks scheduling. * Mutable only while `status.running_vm_count` is 0 * (FAILED_PRECONDITION otherwise); the policy reports STATE_UPDATING and * blocks scheduling while the change is applied. * */ maxPrice: string; } /** Encodes, decodes, converts, and creates {@link MaxPriceV1} messages. */ export declare const MaxPriceV1: MessageFns; /** * Observed state of a pricing policy. * */ export interface PricingPolicyStatus { /** Contains the fully qualified protobuf type name. */ $type: "nebius.billing.v1.PricingPolicyStatus"; /** Preserves protobuf fields that this SDK version does not recognize. */ [unknownFieldsSymbol]?: Uint8Array | undefined; /** Returns a safe value for JSON logs. */ [customJson]?: () => unknown; /** Contains the `state` protobuf field. */ state: PricingPolicyStatus_State; /** * SKU resolved from the spec. * */ skuId: string; /** * Whether new VMs may currently start under this policy. * */ schedulingState: PricingPolicyStatus_SchedulingState; /** * Number of VMs currently running under this policy. Nonzero blocks resource * changes and deletion. * */ runningVmCount: Long; /** * ISO 4217 currency code of max_price, e.g. "USD". * */ currency: string; } /** Encodes, decodes, converts, and creates {@link PricingPolicyStatus} messages. */ export declare const PricingPolicyStatus: MessageFns; //# sourceMappingURL=index.d.ts.map