blob: af6821eca2d1ab689bc2aa5d6915a4f80855e8b6 [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package recipes.infra.windows_image_builder.windows_image_builder;
import "recipes/infra/windows_image_builder/offline_winpe_customization.proto";
import "recipes/infra/windows_image_builder/online_windows_customization.proto";
import "recipes/infra/windows_image_builder/sources.proto";
import "recipes/infra/windows_image_builder/actions.proto";
import "recipes/infra/windows_image_builder/windows_iso.proto";
// Image properties recognized by 'infra/windows_image_builder' recipe.
message Image {
// The name of this windows image.
//
// E.g. basic_win10_image
string name = 1;
// The architecture to build for..
Arch arch = 2;
// List of customizations to be performed for this image.
repeated Customization customizations = 3;
}
// Customization is a union of all possible customizations that are supported
message Customization{
oneof customization{
// Customize a WinPE image
offline_winpe_customization.OfflineWinPECustomization offline_winpe_customization = 1;
// Customize an online windows image
online_windows_customization.OnlineWinCustomization online_windows_customization = 2;
// Customize a windows iso image
windows_iso.WinISOImage windows_iso_customization = 3;
}
// Build mode for this customization
CustomizationMode mode = 4;
}
enum Arch {
ARCH_UNSPECIFIED = 0;
ARCH_AMD64 = 1;
ARCH_X86 = 2;
ARCH_AARCH64 = 3;
}
enum CustomizationMode {
// CUST_NORMAL builds this customization only if required. This is the
// default behavior.
CUST_NORMAL = 0;
// CUST_DEBUG starts debug mode builds. Debug mode is currently only
// supported in online windows customization. Debug mode will let the
// process sleep for boot_time on any exceptions.
CUST_DEBUG = 1;
// CUST_FORCE_BUILD will force the customization to build a new image
// every time
CUST_FORCE_BUILD = 2;
}