/**
* The RecommendationSpec model module.
* @module Ntnx/RecommendationSpec
* @version 4.3.1
* @class RecommendationSpec
* @param { EntityType | TargetEntity | EntityUpdateSpec | EntityDeploySpec } recommendationSpec Specification for computing upgrade recommendations. Accepts one of four input types: an array of entity types (SOFTWARE/FIRMWARE) for broad recommendations, an array of target entities identified by class/model/version, an array of entity update specs with specific UUID-to-version mappings, or an array of deploy specs for pre-deployment planning.
*
*/
export default class RecommendationSpec {
/**
* Constructs a RecommendationSpec 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/RecommendationSpec} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/RecommendationSpec} The populated RecommendationSpec 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 RecommendationSpec.
* Specification for computing upgrade recommendations. Accepts one of four input types: an array of entity types (SOFTWARE/FIRMWARE) for broad recommendations, an array of target entities identified by class/model/version, an array of entity update specs with specific UUID-to-version mappings, or an array of deploy specs for pre-deployment planning.
* @alias module:Ntnx/RecommendationSpec
* @param { EntityType | TargetEntity | EntityUpdateSpec | EntityDeploySpec } recommendationSpec Specification for computing upgrade recommendations. Accepts one of four input types: an array of entity types (SOFTWARE/FIRMWARE) for broad recommendations, an array of target entities identified by class/model/version, an array of entity update specs with specific UUID-to-version mappings, or an array of deploy specs for pre-deployment planning.
*
*/
constructor(recommendationSpec: EntityType | TargetEntity | EntityUpdateSpec | EntityDeploySpec);
recommendationSpec: string | EntityUpdateSpec | EntityDeploySpec | TargetEntity;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* Returns Specification for computing upgrade recommendations. Accepts one of four input types: an array of entity types (SOFTWARE/FIRMWARE) for broad recommendations, an array of target entities identified by class/model/version, an array of entity update specs with specific UUID-to-version mappings, or an array of deploy specs for pre-deployment planning.
* @return {EntityType[] | TargetEntity[] | EntityUpdateSpec[] | EntityDeploySpec[]}
*/
getRecommendationSpec(): EntityType[] | TargetEntity[] | EntityUpdateSpec[] | EntityDeploySpec[];
/**
* Sets Specification for computing upgrade recommendations. Accepts one of four input types: an array of entity types (SOFTWARE/FIRMWARE) for broad recommendations, an array of target entities identified by class/model/version, an array of entity update specs with specific UUID-to-version mappings, or an array of deploy specs for pre-deployment planning.
* @param {EntityType[] | TargetEntity[] | EntityUpdateSpec[] | EntityDeploySpec[]} recommendationSpec Specification for computing upgrade recommendations. Accepts one of four input types: an array of entity types (SOFTWARE/FIRMWARE) for broad recommendations, an array of target entities identified by class/model/version, an array of entity update specs with specific UUID-to-version mappings, or an array of deploy specs for pre-deployment planning.
*/
setRecommendationSpec(recommendationSpec: EntityType[] | TargetEntity[] | EntityUpdateSpec[] | EntityDeploySpec[]): void;
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 EntityUpdateSpec from "../common/EntityUpdateSpec";
import EntityDeploySpec from "../common/EntityDeploySpec";
import TargetEntity from "./TargetEntity";
import EntityType from "../common/EntityType";
import ValidationError from "../../../validation/ValidationError";