/**
* The IpsecConfig model module.
* @module Ntnx/IpsecConfig
* @version 4.4.1
* @class IpsecConfig
*
* @param { string } preSharedKey Shared secret for authentication between gateway peers
*/
export default class IpsecConfig {
/**
* Constructs a IpsecConfig 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/IpsecConfig} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/IpsecConfig} The populated IpsecConfig 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 IpsecConfig.
* IPSec configuration
* @alias module:Ntnx/IpsecConfig
*
* @param { string } preSharedKey Shared secret for authentication between gateway peers
*/
constructor(preSharedKey: string);
preSharedKey: string;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* Returns Shared secret for authentication between gateway peers
* @return {string}
*/
getPreSharedKey(): string;
/**
* Sets Shared secret for authentication between gateway peers
* @param {string} preSharedKey Shared secret for authentication between gateway peers
*/
setPreSharedKey(preSharedKey: string): void;
/**
* @return {IPAddress}
*/
getLocalVtiIp(): IPAddress;
/**
* @param {IPAddress} localVtiIp
*/
setLocalVtiIp(localVtiIp: IPAddress): void;
localVtiIp: IPAddress;
/**
* @return {IPAddress}
*/
getRemoteVtiIp(): IPAddress;
/**
* @param {IPAddress} remoteVtiIp
*/
setRemoteVtiIp(remoteVtiIp: IPAddress): void;
remoteVtiIp: IPAddress;
/**
* Returns Local IKE authentication Id used for this connection
* @return {string}
*/
getLocalAuthenticationId(): string;
/**
* Sets Local IKE authentication Id used for this connection
* @param {string} localAuthenticationId Local IKE authentication Id used for this connection
*/
setLocalAuthenticationId(localAuthenticationId: string): void;
localAuthenticationId: string;
/**
* Returns IKE authentication Id of the remote peer
* @return {string}
*/
getRemoteAuthenticationId(): string;
/**
* Sets IKE authentication Id of the remote peer
* @param {string} remoteAuthenticationId IKE authentication Id of the remote peer
*/
setRemoteAuthenticationId(remoteAuthenticationId: string): void;
remoteAuthenticationId: string;
/**
* Returns IKE lifetime (seconds)
* @return {Number}
*/
getIkeLifetimeSecs(): number;
/**
* Sets IKE lifetime (seconds)
* @param {Number} ikeLifetimeSecs IKE lifetime (seconds)
*/
setIkeLifetimeSecs(ikeLifetimeSecs: number): void;
ikeLifetimeSecs: number;
/**
* Returns IPSec lifetime (seconds)
* @return {Number}
*/
getIpsecLifetimeSecs(): number;
/**
* Sets IPSec lifetime (seconds)
* @param {Number} ipsecLifetimeSecs IPSec lifetime (seconds)
*/
setIpsecLifetimeSecs(ipsecLifetimeSecs: number): void;
ipsecLifetimeSecs: number;
/**
* Returns Diffie-Hellman group value of 14, 19 or 20 to be used for Perfect Forward Secrecy (PFS)
* @return {Number}
*/
getEspPfsDhGroupNumber(): number;
/**
* Sets Diffie-Hellman group value of 14, 19 or 20 to be used for Perfect Forward Secrecy (PFS)
* @param {Number} espPfsDhGroupNumber Diffie-Hellman group value of 14, 19 or 20 to be used for Perfect Forward Secrecy (PFS)
*/
setEspPfsDhGroupNumber(espPfsDhGroupNumber: number): void;
espPfsDhGroupNumber: number;
/**
* @return {EncryptionAlgorithm}
*/
getIkeEncryptionAlgorithm(): EncryptionAlgorithm;
/**
* @param {EncryptionAlgorithm} ikeEncryptionAlgorithm
*/
setIkeEncryptionAlgorithm(ikeEncryptionAlgorithm: EncryptionAlgorithm): void;
ikeEncryptionAlgorithm: string;
/**
* @return {AuthenticationAlgorithm}
*/
getIkeAuthenticationAlgorithm(): AuthenticationAlgorithm;
/**
* @param {AuthenticationAlgorithm} ikeAuthenticationAlgorithm
*/
setIkeAuthenticationAlgorithm(ikeAuthenticationAlgorithm: AuthenticationAlgorithm): void;
ikeAuthenticationAlgorithm: string;
/**
* @return {EncryptionAlgorithm}
*/
getIpsecEncryptionAlgorithm(): EncryptionAlgorithm;
/**
* @param {EncryptionAlgorithm} ipsecEncryptionAlgorithm
*/
setIpsecEncryptionAlgorithm(ipsecEncryptionAlgorithm: EncryptionAlgorithm): void;
ipsecEncryptionAlgorithm: string;
/**
* @return {AuthenticationAlgorithm}
*/
getIpsecAuthenticationAlgorithm(): AuthenticationAlgorithm;
/**
* @param {AuthenticationAlgorithm} ipsecAuthenticationAlgorithm
*/
setIpsecAuthenticationAlgorithm(ipsecAuthenticationAlgorithm: AuthenticationAlgorithm): void;
ipsecAuthenticationAlgorithm: 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 EncryptionAlgorithm from "./EncryptionAlgorithm";
import AuthenticationAlgorithm from "./AuthenticationAlgorithm";
import ValidationError from "../../../validation/ValidationError";