/**
* The VolumeGroupAttachment model module.
* @module Ntnx/VolumeGroupAttachment
* @version 4.3.1
* @class VolumeGroupAttachment
*
* @param { EntityReference } volumeGroup
*
* @param { AttachmentType } attachmentType
*/
export default class VolumeGroupAttachment {
/**
* Constructs a VolumeGroupAttachment 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/VolumeGroupAttachment} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/VolumeGroupAttachment} The populated VolumeGroupAttachment 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 VolumeGroupAttachment.
* Volume Group attachment.
* @alias module:Ntnx/VolumeGroupAttachment
*
* @param { EntityReference } volumeGroup
*
* @param { AttachmentType } attachmentType
*/
constructor(volumeGroup: EntityReference, attachmentType: AttachmentType);
volumeGroup: EntityReference;
attachmentType: string;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* @return {EntityReference}
*/
getVolumeGroup(): EntityReference;
/**
* @param {EntityReference} volumeGroup
*/
setVolumeGroup(volumeGroup: EntityReference): void;
/**
* @return {AttachmentType}
*/
getAttachmentType(): AttachmentType;
/**
* @param {AttachmentType} attachmentType
*/
setAttachmentType(attachmentType: AttachmentType): void;
/**
* @return {Protocol}
*/
getProtocol(): Protocol;
/**
* @param {Protocol} protocol
*/
setProtocol(protocol: Protocol): void;
protocol: string;
/**
* Returns Attachment protocol specific settings. This field is only applicable when attachmentType is `EXTERNAL_ATTACH`. Client secret must be specified for mutual `CHAP` authentications.
* @return {IscsiFeatures}
*/
getClientFeatures(): IscsiFeatures;
/**
* Sets Attachment protocol specific settings. This field is only applicable when attachmentType is `EXTERNAL_ATTACH`. Client secret must be specified for mutual `CHAP` authentications.
* @param {IscsiFeatures} clientFeatures Attachment protocol specific settings. This field is only applicable when attachmentType is `EXTERNAL_ATTACH`. Client secret must be specified for mutual `CHAP` authentications.
*/
setClientFeatures(clientFeatures: IscsiFeatures): void;
clientFeatures: IscsiFeatures;
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 EntityReference from "./EntityReference";
import AttachmentType from "../../../volumes/v4/config/AttachmentType";
import Protocol from "../../../volumes/v4/config/Protocol";
import IscsiFeatures from "./IscsiFeatures";
import ValidationError from "../../../validation/ValidationError";