123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772 |
- // Copyright 2020 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.cloud.osconfig.v1beta;
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/protobuf/field_mask.proto";
- import "google/protobuf/timestamp.proto";
- option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1beta;osconfig";
- option java_outer_classname = "GuestPolicies";
- option java_package = "com.google.cloud.osconfig.v1beta";
- // An OS Config resource representing a guest configuration policy. These
- // policies represent the desired state for VM instance guest environments
- // including packages to install or remove, package repository configurations,
- // and software to install.
- message GuestPolicy {
- option (google.api.resource) = {
- type: "osconfig.googleapis.com/GuestPolicy"
- pattern: "projects/{project}/guestPolicies/{guest_policy}"
- };
- // Required. Unique name of the resource in this project using one of the following
- // forms:
- // `projects/{project_number}/guestPolicies/{guest_policy_id}`.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // Description of the guest policy. Length of the description is limited
- // to 1024 characters.
- string description = 2;
- // Output only. Time this guest policy was created.
- google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Last time this guest policy was updated.
- google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Required. Specifies the VM instances that are assigned to this policy. This allows
- // you to target sets or groups of VM instances by different parameters such
- // as labels, names, OS, or zones.
- //
- // If left empty, all VM instances underneath this policy are targeted.
- //
- // At the same level in the resource hierarchy (that is within a project), the
- // service prevents the creation of multiple policies that conflict with
- // each other. For more information, see how the service [handles assignment
- // conflicts](/compute/docs/os-config-management/create-guest-policy#handle-conflicts).
- Assignment assignment = 6 [(google.api.field_behavior) = REQUIRED];
- // The software packages to be managed by this policy.
- repeated Package packages = 7;
- // A list of package repositories to configure on the VM instance. This is
- // done before any other configs are applied so they can use these repos.
- // Package repositories are only configured if the corresponding package
- // manager(s) are available.
- repeated PackageRepository package_repositories = 8;
- // A list of Recipes to install on the VM instance.
- repeated SoftwareRecipe recipes = 9;
- // The etag for this guest policy.
- // If this is provided on update, it must match the server's etag.
- string etag = 10;
- }
- // An assignment represents the group or groups of VM instances that the policy
- // applies to.
- //
- // If an assignment is empty, it applies to all VM instances. Otherwise, the
- // targeted VM instances must meet all the criteria specified. So if both
- // labels and zones are specified, the policy applies to VM instances with those
- // labels and in those zones.
- message Assignment {
- // Represents a group of VM intances that can be identified as having all
- // these labels, for example "env=prod and app=web".
- message GroupLabel {
- // Google Compute Engine instance labels that must be present for an
- // instance to be included in this assignment group.
- map<string, string> labels = 1;
- }
- // Defines the criteria for selecting VM Instances by OS type.
- message OsType {
- // Targets VM instances with OS Inventory enabled and having the following
- // OS short name, for example "debian" or "windows".
- string os_short_name = 1;
- // Targets VM instances with OS Inventory enabled and having the following
- // following OS version.
- string os_version = 2;
- // Targets VM instances with OS Inventory enabled and having the following
- // OS architecture.
- string os_architecture = 3;
- }
- // Targets instances matching at least one of these label sets. This allows
- // an assignment to target disparate groups, for example "env=prod or
- // env=staging".
- repeated GroupLabel group_labels = 1;
- // Targets instances in any of these zones. Leave empty to target instances
- // in any zone.
- //
- // Zonal targeting is uncommon and is supported to facilitate the management
- // of changes by zone.
- repeated string zones = 2;
- // Targets any of the instances specified. Instances are specified by their
- // URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`.
- //
- // Instance targeting is uncommon and is supported to facilitate the
- // management of changes by the instance or to target specific VM instances
- // for development and testing.
- //
- // Only supported for project-level policies and must reference instances
- // within this project.
- repeated string instances = 3;
- // Targets VM instances whose name starts with one of these prefixes.
- //
- // Like labels, this is another way to group VM instances when targeting
- // configs, for example prefix="prod-".
- //
- // Only supported for project-level policies.
- repeated string instance_name_prefixes = 4;
- // Targets VM instances matching at least one of the following OS types.
- //
- // VM instances must match all supplied criteria for a given OsType to be
- // included.
- repeated OsType os_types = 5;
- }
- // The desired state that the OS Config agent maintains on the VM instance.
- enum DesiredState {
- // The default is to ensure the package is installed.
- DESIRED_STATE_UNSPECIFIED = 0;
- // The agent ensures that the package is installed.
- INSTALLED = 1;
- // The agent ensures that the package is installed and
- // periodically checks for and install any updates.
- UPDATED = 2;
- // The agent ensures that the package is not installed and uninstall it
- // if detected.
- REMOVED = 3;
- }
- // Package is a reference to the software package to be installed or removed.
- // The agent on the VM instance uses the system package manager to apply the
- // config.
- //
- //
- // These are the commands that the agent uses to install or remove
- // packages.
- //
- // Apt
- // install: `apt-get update && apt-get -y install package1 package2 package3`
- // remove: `apt-get -y remove package1 package2 package3`
- //
- // Yum
- // install: `yum -y install package1 package2 package3`
- // remove: `yum -y remove package1 package2 package3`
- //
- // Zypper
- // install: `zypper install package1 package2 package3`
- // remove: `zypper rm package1 package2`
- //
- // Googet
- // install: `googet -noconfirm install package1 package2 package3`
- // remove: `googet -noconfirm remove package1 package2 package3`
- message Package {
- // Types of package managers that may be used to manage this package.
- enum Manager {
- // The default behavior is ANY.
- MANAGER_UNSPECIFIED = 0;
- // Apply this package config using the default system package manager.
- ANY = 1;
- // Apply this package config only if Apt is available on the system.
- APT = 2;
- // Apply this package config only if Yum is available on the system.
- YUM = 3;
- // Apply this package config only if Zypper is available on the system.
- ZYPPER = 4;
- // Apply this package config only if GooGet is available on the system.
- GOO = 5;
- }
- // Required. The name of the package. A package is uniquely identified for conflict
- // validation by checking the package name and the manager(s) that the
- // package targets.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // The desired_state the agent should maintain for this package. The
- // default is to ensure the package is installed.
- DesiredState desired_state = 2;
- // Type of package manager that can be used to install this package.
- // If a system does not have the package manager, the package is not
- // installed or removed no error message is returned. By default,
- // or if you specify `ANY`,
- // the agent attempts to install and remove this package using the default
- // package manager. This is useful when creating a policy that applies to
- // different types of systems.
- //
- // The default behavior is ANY.
- Manager manager = 3;
- }
- // Represents a single Apt package repository. This repository is added to
- // a repo file that is stored at
- // `/etc/apt/sources.list.d/google_osconfig.list`.
- message AptRepository {
- // Type of archive.
- enum ArchiveType {
- // Unspecified.
- ARCHIVE_TYPE_UNSPECIFIED = 0;
- // DEB indicates that the archive contains binary files.
- DEB = 1;
- // DEB_SRC indicates that the archive contains source files.
- DEB_SRC = 2;
- }
- // Type of archive files in this repository. The default behavior is DEB.
- ArchiveType archive_type = 1;
- // Required. URI for this repository.
- string uri = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. Distribution of this repository.
- string distribution = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. List of components for this repository. Must contain at least one item.
- repeated string components = 4 [(google.api.field_behavior) = REQUIRED];
- // URI of the key file for this repository. The agent maintains
- // a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg` containing
- // all the keys in any applied guest policy.
- string gpg_key = 5;
- }
- // Represents a single Yum package repository. This repository is added to a
- // repo file that is stored at `/etc/yum.repos.d/google_osconfig.repo`.
- message YumRepository {
- // Required. A one word, unique name for this repository. This is
- // the `repo id` in the Yum config file and also the `display_name` if
- // `display_name` is omitted. This id is also used as the unique identifier
- // when checking for guest policy conflicts.
- string id = 1 [(google.api.field_behavior) = REQUIRED];
- // The display name of the repository.
- string display_name = 2;
- // Required. The location of the repository directory.
- string base_url = 3 [(google.api.field_behavior) = REQUIRED];
- // URIs of GPG keys.
- repeated string gpg_keys = 4;
- }
- // Represents a single Zypper package repository. This repository is added to a
- // repo file that is stored at `/etc/zypp/repos.d/google_osconfig.repo`.
- message ZypperRepository {
- // Required. A one word, unique name for this repository. This is
- // the `repo id` in the zypper config file and also the `display_name` if
- // `display_name` is omitted. This id is also used as the unique identifier
- // when checking for guest policy conflicts.
- string id = 1 [(google.api.field_behavior) = REQUIRED];
- // The display name of the repository.
- string display_name = 2;
- // Required. The location of the repository directory.
- string base_url = 3 [(google.api.field_behavior) = REQUIRED];
- // URIs of GPG keys.
- repeated string gpg_keys = 4;
- }
- // Represents a Goo package repository. These is added to a repo file
- // that is stored at C:/ProgramData/GooGet/repos/google_osconfig.repo.
- message GooRepository {
- // Required. The name of the repository.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The url of the repository.
- string url = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // A package repository.
- message PackageRepository {
- // A specific type of repository.
- oneof repository {
- // An Apt Repository.
- AptRepository apt = 1;
- // A Yum Repository.
- YumRepository yum = 2;
- // A Zypper Repository.
- ZypperRepository zypper = 3;
- // A Goo Repository.
- GooRepository goo = 4;
- }
- }
- // A software recipe is a set of instructions for installing and configuring a
- // piece of software. It consists of a set of artifacts that are
- // downloaded, and a set of steps that install, configure, and/or update the
- // software.
- //
- // Recipes support installing and updating software from artifacts in the
- // following formats:
- // Zip archive, Tar archive, Windows MSI, Debian package, and RPM package.
- //
- // Additionally, recipes support executing a script (either defined in a file or
- // directly in this api) in bash, sh, cmd, and powershell.
- //
- // Updating a software recipe
- //
- // If a recipe is assigned to an instance and there is a recipe with the same
- // name but a lower version already installed and the assigned state
- // of the recipe is `UPDATED`, then the recipe is updated to
- // the new version.
- //
- // Script Working Directories
- //
- // Each script or execution step is run in its own temporary directory which
- // is deleted after completing the step.
- message SoftwareRecipe {
- // Specifies a resource to be used in the recipe.
- message Artifact {
- // Specifies an artifact available via some URI.
- message Remote {
- // URI from which to fetch the object. It should contain both the protocol
- // and path following the format {protocol}://{location}.
- string uri = 1;
- // Must be provided if `allow_insecure` is `false`.
- // SHA256 checksum in hex format, to compare to the checksum of the
- // artifact. If the checksum is not empty and it doesn't match the
- // artifact then the recipe installation fails before running any of the
- // steps.
- string checksum = 2;
- }
- // Specifies an artifact available as a Google Cloud Storage object.
- message Gcs {
- // Bucket of the Google Cloud Storage object.
- // Given an example URL:
- // `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
- // this value would be `my-bucket`.
- string bucket = 1;
- // Name of the Google Cloud Storage object.
- // As specified [here]
- // (https://cloud.google.com/storage/docs/naming#objectnames)
- // Given an example URL:
- // `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
- // this value would be `foo/bar`.
- string object = 2;
- // Must be provided if allow_insecure is false.
- // Generation number of the Google Cloud Storage object.
- // `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
- // this value would be `1234567`.
- int64 generation = 3;
- }
- // Required. Id of the artifact, which the installation and update steps of this
- // recipe can reference. Artifacts in a recipe cannot have the same id.
- string id = 1 [(google.api.field_behavior) = REQUIRED];
- // A specific type of artifact.
- oneof artifact {
- // A generic remote artifact.
- Remote remote = 2;
- // A Google Cloud Storage artifact.
- Gcs gcs = 3;
- }
- // Defaults to false. When false, recipes are subject to validations
- // based on the artifact type:
- //
- // Remote: A checksum must be specified, and only protocols with
- // transport-layer security are permitted.
- // GCS: An object generation number must be specified.
- bool allow_insecure = 4;
- }
- // An action that can be taken as part of installing or updating a recipe.
- message Step {
- // Copies the artifact to the specified path on the instance.
- message CopyFile {
- // Required. The id of the relevant artifact in the recipe.
- string artifact_id = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The absolute path on the instance to put the file.
- string destination = 2 [(google.api.field_behavior) = REQUIRED];
- // Whether to allow this step to overwrite existing files. If this is
- // false and the file already exists the file is not overwritten
- // and the step is considered a success. Defaults to false.
- bool overwrite = 3;
- // Consists of three octal digits which represent, in
- // order, the permissions of the owner, group, and other users for the
- // file (similarly to the numeric mode used in the linux chmod utility).
- // Each digit represents a three bit number with the 4 bit
- // corresponding to the read permissions, the 2 bit corresponds to the
- // write bit, and the one bit corresponds to the execute permission.
- // Default behavior is 755.
- //
- // Below are some examples of permissions and their associated values:
- // read, write, and execute: 7
- // read and execute: 5
- // read and write: 6
- // read only: 4
- string permissions = 4;
- }
- // Extracts an archive of the type specified in the specified directory.
- message ExtractArchive {
- // Specifying the type of archive.
- enum ArchiveType {
- // Indicates that the archive type isn't specified.
- ARCHIVE_TYPE_UNSPECIFIED = 0;
- // Indicates that the archive is a tar archive with no encryption.
- TAR = 1;
- // Indicates that the archive is a tar archive with gzip encryption.
- TAR_GZIP = 2;
- // Indicates that the archive is a tar archive with bzip encryption.
- TAR_BZIP = 3;
- // Indicates that the archive is a tar archive with lzma encryption.
- TAR_LZMA = 4;
- // Indicates that the archive is a tar archive with xz encryption.
- TAR_XZ = 5;
- // Indicates that the archive is a zip archive.
- ZIP = 11;
- }
- // Required. The id of the relevant artifact in the recipe.
- string artifact_id = 1 [(google.api.field_behavior) = REQUIRED];
- // Directory to extract archive to.
- // Defaults to `/` on Linux or `C:\` on Windows.
- string destination = 2;
- // Required. The type of the archive to extract.
- ArchiveType type = 3 [(google.api.field_behavior) = REQUIRED];
- }
- // Installs an MSI file.
- message InstallMsi {
- // Required. The id of the relevant artifact in the recipe.
- string artifact_id = 1 [(google.api.field_behavior) = REQUIRED];
- // The flags to use when installing the MSI
- // defaults to ["/i"] (i.e. the install flag).
- repeated string flags = 2;
- // Return codes that indicate that the software installed or updated
- // successfully. Behaviour defaults to [0]
- repeated int32 allowed_exit_codes = 3;
- }
- // Installs a deb via dpkg.
- message InstallDpkg {
- // Required. The id of the relevant artifact in the recipe.
- string artifact_id = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Installs an rpm file via the rpm utility.
- message InstallRpm {
- // Required. The id of the relevant artifact in the recipe.
- string artifact_id = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Executes an artifact or local file.
- message ExecFile {
- // Location of the file to execute.
- oneof location_type {
- // The id of the relevant artifact in the recipe.
- string artifact_id = 1;
- // The absolute path of the file on the local filesystem.
- string local_path = 2;
- }
- // Arguments to be passed to the provided executable.
- repeated string args = 3;
- // Defaults to [0]. A list of possible return values that the program
- // can return to indicate a success.
- repeated int32 allowed_exit_codes = 4;
- }
- // Runs a script through an interpreter.
- message RunScript {
- // The interpreter used to execute a script.
- enum Interpreter {
- // Default value for ScriptType.
- INTERPRETER_UNSPECIFIED = 0;
- // Indicates that the script is run with `/bin/sh` on Linux and `cmd`
- // on windows.
- SHELL = 1;
- // Indicates that the script is run with powershell.
- POWERSHELL = 3;
- }
- // Required. The shell script to be executed.
- string script = 1 [(google.api.field_behavior) = REQUIRED];
- // Return codes that indicate that the software installed or updated
- // successfully. Behaviour defaults to [0]
- repeated int32 allowed_exit_codes = 2;
- // The script interpreter to use to run the script. If no interpreter is
- // specified the script is executed directly, which likely
- // only succeed for scripts with
- // [shebang lines](https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
- Interpreter interpreter = 3;
- }
- // A specific type of step.
- oneof step {
- // Copies a file onto the instance.
- CopyFile file_copy = 1;
- // Extracts an archive into the specified directory.
- ExtractArchive archive_extraction = 2;
- // Installs an MSI file.
- InstallMsi msi_installation = 3;
- // Installs a deb file via dpkg.
- InstallDpkg dpkg_installation = 4;
- // Installs an rpm file via the rpm utility.
- InstallRpm rpm_installation = 5;
- // Executes an artifact or local file.
- ExecFile file_exec = 6;
- // Runs commands in a shell.
- RunScript script_run = 7;
- }
- }
- // Required. Unique identifier for the recipe. Only one recipe with a given name is
- // installed on an instance.
- //
- // Names are also used to identify resources which helps to determine whether
- // guest policies have conflicts. This means that requests to create multiple
- // recipes with the same name and version are rejected since they
- // could potentially have conflicting assignments.
- string name = 1 [(google.api.field_behavior) = REQUIRED];
- // The version of this software recipe. Version can be up to 4 period
- // separated numbers (e.g. 12.34.56.78).
- string version = 2;
- // Resources available to be used in the steps in the recipe.
- repeated Artifact artifacts = 3;
- // Actions to be taken for installing this recipe. On failure it stops
- // executing steps and does not attempt another installation. Any steps taken
- // (including partially completed steps) are not rolled back.
- repeated Step install_steps = 4;
- // Actions to be taken for updating this recipe. On failure it stops
- // executing steps and does not attempt another update for this recipe. Any
- // steps taken (including partially completed steps) are not rolled back.
- repeated Step update_steps = 5;
- // Default is INSTALLED. The desired state the agent should maintain for this
- // recipe.
- //
- // INSTALLED: The software recipe is installed on the instance but
- // won't be updated to new versions.
- // UPDATED: The software recipe is installed on the instance. The recipe is
- // updated to a higher version, if a higher version of the recipe is
- // assigned to this instance.
- // REMOVE: Remove is unsupported for software recipes and attempts to
- // create or update a recipe to the REMOVE state is rejected.
- DesiredState desired_state = 6;
- }
- // A request message for creating a guest policy.
- message CreateGuestPolicyRequest {
- // Required. The resource name of the parent using one of the following forms:
- // `projects/{project_number}`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "osconfig.googleapis.com/GuestPolicy"
- }
- ];
- // Required. The logical name of the guest policy in the project
- // with the following restrictions:
- //
- // * Must contain only lowercase letters, numbers, and hyphens.
- // * Must start with a letter.
- // * Must be between 1-63 characters.
- // * Must end with a number or a letter.
- // * Must be unique within the project.
- string guest_policy_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The GuestPolicy to create.
- GuestPolicy guest_policy = 3 [(google.api.field_behavior) = REQUIRED];
- }
- // A request message for retrieving a guest policy.
- message GetGuestPolicyRequest {
- // Required. The resource name of the guest policy using one of the following forms:
- // `projects/{project_number}/guestPolicies/{guest_policy_id}`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "osconfig.googleapis.com/GuestPolicy"
- }
- ];
- }
- // A request message for listing guest policies.
- message ListGuestPoliciesRequest {
- // Required. The resource name of the parent using one of the following forms:
- // `projects/{project_number}`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "osconfig.googleapis.com/GuestPolicy"
- }
- ];
- // The maximum number of guest policies to return.
- int32 page_size = 2;
- // A pagination token returned from a previous call to `ListGuestPolicies`
- // that indicates where this listing should continue from.
- string page_token = 3;
- }
- // A response message for listing guest policies.
- message ListGuestPoliciesResponse {
- // The list of GuestPolicies.
- repeated GuestPolicy guest_policies = 1;
- // A pagination token that can be used to get the next page
- // of guest policies.
- string next_page_token = 2;
- }
- // A request message for updating a guest policy.
- message UpdateGuestPolicyRequest {
- // Required. The updated GuestPolicy.
- GuestPolicy guest_policy = 1 [(google.api.field_behavior) = REQUIRED];
- // Field mask that controls which fields of the guest policy should be
- // updated.
- google.protobuf.FieldMask update_mask = 2;
- }
- // A request message for deleting a guest policy.
- message DeleteGuestPolicyRequest {
- // Required. The resource name of the guest policy using one of the following forms:
- // `projects/{project_number}/guestPolicies/{guest_policy_id}`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "osconfig.googleapis.com/GuestPolicy"
- }
- ];
- }
- // A request message for getting the effective guest policy assigned to the
- // instance.
- message LookupEffectiveGuestPolicyRequest {
- // Required. The VM instance whose policies are being looked up.
- string instance = 1 [(google.api.field_behavior) = REQUIRED];
- // Short name of the OS running on the instance. The OS Config agent only
- // provides this field for targeting if OS Inventory is enabled for that
- // instance.
- string os_short_name = 2;
- // Version of the OS running on the instance. The OS Config agent only
- // provides this field for targeting if OS Inventory is enabled for that
- // VM instance.
- string os_version = 3;
- // Architecture of OS running on the instance. The OS Config agent only
- // provides this field for targeting if OS Inventory is enabled for that
- // instance.
- string os_architecture = 4;
- }
- // The effective guest policy that applies to a VM instance.
- message EffectiveGuestPolicy {
- // A guest policy package including its source.
- message SourcedPackage {
- // Name of the guest policy providing this config.
- string source = 1;
- // A software package to configure on the VM instance.
- Package package = 2;
- }
- // A guest policy package repository including its source.
- message SourcedPackageRepository {
- // Name of the guest policy providing this config.
- string source = 1;
- // A software package repository to configure on the VM instance.
- PackageRepository package_repository = 2;
- }
- // A guest policy recipe including its source.
- message SourcedSoftwareRecipe {
- // Name of the guest policy providing this config.
- string source = 1;
- // A software recipe to configure on the VM instance.
- SoftwareRecipe software_recipe = 2;
- }
- // List of package configurations assigned to the VM instance.
- repeated SourcedPackage packages = 1;
- // List of package repository configurations assigned to the VM instance.
- repeated SourcedPackageRepository package_repositories = 2;
- // List of recipes assigned to the VM instance.
- repeated SourcedSoftwareRecipe software_recipes = 3;
- }
|