in java/com/google/cloud/deploymentmanager/autogen/SpecValidations.java [142:182]
public static void validate(MultiVmDeploymentPackageSpec input) {
checkArgument(input.getTiersCount() > 0, "At least one tier must be specified");
for (VmTierSpec tier : input.getTiersList()) {
checkArgument(
TIER_NAME_REGEX.matcher(tier.getName()).matches(),
"Tier must have a valid lowercased name");
checkArgument(tier.getTitle().length() > 0, "Tier must have a valid title");
validateImages(tier.getImagesList());
validateBootDisk(tier.getBootDisk());
validateAdditionalDisks(tier.getAdditionalDisksList());
validateMachineType(tier.getMachineType());
validateNetworkInterfaces(tier.getNetworkInterfaces());
validateMultiVmFirewallRules(tier.getFirewallRulesList());
validateGcpAuthScopes(tier.getGcpAuthScopesList());
if (tier.hasGceStartupScript()) {
validateStartupScript(tier.getGceStartupScript());
}
if (tier.hasApplicationStatus()) {
validateApplicationStatus(tier.getApplicationStatus());
}
validateMultiVmGceMetadataItems(tier.getGceMetadataItemsList());
validateAccelerators(tier.getAcceleratorsList());
}
validateMultiVmPasswords(input.getPasswordsList());
if (input.hasAdminUrl()) {
validateMultiVmInstanceUrl(input.getAdminUrl(), "Admin URL");
}
if (input.hasSiteUrl()) {
validateMultiVmInstanceUrl(input.getSiteUrl(), "Site URL");
}
if (input.hasPostDeploy()) {
validateMultiVmPostDeployInfo(input.getPostDeploy());
}
if (input.hasDeployInput()) {
validateDeployInput(input.getDeployInput());
}
if (input.hasStackdriver()) {
validateStackdriver(input.getStackdriver());
}
validateMetadataKeyUniqueness(input);
}