/**
* The IpReserveSpec model module.
* @module Ntnx/IpReserveSpec
* @version 4.4.1
* @class IpReserveSpec
*
* @param { ReserveType } reserveType
*/
export default class IpReserveSpec {
/**
* Constructs a IpReserveSpec from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from data to obj if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:Ntnx/IpReserveSpec} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/IpReserveSpec} The populated IpReserveSpec instance.
*/
static constructFromObject(data: any, obj?: any, callFromChild?: boolean): any;
/**
* Converts a given snake_case string to camelCase.
* @param {string} snakeStr - The input string in snake_case format.
* @returns {string} - The converted string in camelCase format.
*/
static snakeToCamel(snakeStr: string): string;
/**
* Constructs a new IpReserveSpec.
* Input required to reserve IP addresses on a subnet.
* @alias module:Ntnx/IpReserveSpec
*
* @param { ReserveType } reserveType
*/
constructor(reserveType: ReserveType);
reserveType: string;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* Returns Number of IP addresses reserved.
* @return {Number}
*/
getCount(): number;
/**
* Sets Number of IP addresses reserved.
* @param {Number} count Number of IP addresses reserved.
*/
setCount(count: number): void;
count: number;
/**
* @return {IPAddress}
*/
getStartIpAddress(): IPAddress;
/**
* @param {IPAddress} startIpAddress
*/
setStartIpAddress(startIpAddress: IPAddress): void;
startIpAddress: IPAddress;
/**
* Returns List of IP addresses to reserve.
* @return {IPAddress[]}
*/
getIpAddresses(): IPAddress[];
/**
* Sets List of IP addresses to reserve.
* @param {IPAddress[]} ipAddresses List of IP addresses to reserve.
*/
setIpAddresses(ipAddresses: IPAddress[]): void;
ipAddresses: IPAddress[];
/**
* @return {ReserveType}
*/
getReserveType(): ReserveType;
/**
* @param {ReserveType} reserveType
*/
setReserveType(reserveType: ReserveType): void;
/**
* Returns Optional context to associate with a reserved IP address.
* @return {string}
*/
getClientContext(): string;
/**
* Sets Optional context to associate with a reserved IP address.
* @param {string} clientContext Optional context to associate with a reserved IP address.
*/
setClientContext(clientContext: string): void;
clientContext: string;
get$Reserved(): any;
get$ObjectType(): string;
get$UnknownFields(): any;
toJson(forMutation: any): any;
validate(scope: any, properties: any, ...args: any[]): Promise;
validateProperty(scope: any, property: any): ValidationError;
#private;
}
import IPAddress from "../../../common/v1/config/IPAddress";
import ReserveType from "./ReserveType";
import ValidationError from "../../../validation/ValidationError";