/**
* The RoutingPolicyMatchCondition model module.
* @module Ntnx/RoutingPolicyMatchCondition
* @version 4.4.1
* @class RoutingPolicyMatchCondition
*
* @param { AddressTypeObject } source
*
* @param { AddressTypeObject } destination
*
* @param { ProtocolType } protocolType
*/
export default class RoutingPolicyMatchCondition {
/**
* Constructs a RoutingPolicyMatchCondition 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/RoutingPolicyMatchCondition} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/RoutingPolicyMatchCondition} The populated RoutingPolicyMatchCondition 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 RoutingPolicyMatchCondition.
* Match condition for the traffic that is entering the VPC.
* @alias module:Ntnx/RoutingPolicyMatchCondition
*
* @param { AddressTypeObject } source
*
* @param { AddressTypeObject } destination
*
* @param { ProtocolType } protocolType
*/
constructor(source: AddressTypeObject, destination: AddressTypeObject, protocolType: ProtocolType);
source: AddressTypeObject;
destination: AddressTypeObject;
protocolType: string;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* @return {AddressTypeObject}
*/
getSource(): AddressTypeObject;
/**
* @param {AddressTypeObject} source
*/
setSource(source: AddressTypeObject): void;
/**
* @return {AddressTypeObject}
*/
getDestination(): AddressTypeObject;
/**
* @param {AddressTypeObject} destination
*/
setDestination(destination: AddressTypeObject): void;
/**
* @return {ProtocolType}
*/
getProtocolType(): ProtocolType;
/**
* @param {ProtocolType} protocolType
*/
setProtocolType(protocolType: ProtocolType): void;
/**
* Returns Protocol parameters of the traffic that is exiting/leaving the VPC.
* @return {LayerFourProtocolObject | ICMPObject | ProtocolNumberObject}
*/
getProtocolParameters(): LayerFourProtocolObject | ICMPObject | ProtocolNumberObject;
/**
* Sets Protocol parameters of the traffic that is exiting/leaving the VPC.
* @param {LayerFourProtocolObject | ICMPObject | ProtocolNumberObject} protocolParameters Protocol parameters of the traffic that is exiting/leaving the VPC.
*/
setProtocolParameters(protocolParameters: LayerFourProtocolObject | ICMPObject | ProtocolNumberObject): void;
protocolParameters: ICMPObject | LayerFourProtocolObject | ProtocolNumberObject;
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 AddressTypeObject from "./AddressTypeObject";
import ProtocolType from "./ProtocolType";
import LayerFourProtocolObject from "./LayerFourProtocolObject";
import ICMPObject from "./ICMPObject";
import ProtocolNumberObject from "./ProtocolNumberObject";
import ValidationError from "../../../validation/ValidationError";