xref: /aosp_15_r20/external/googleapis/google/cloud/osconfig/agentendpoint/v1/inventory.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2020 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.osconfig.agentendpoint.v1;
18
19import "google/protobuf/timestamp.proto";
20import "google/type/date.proto";
21
22option go_package = "cloud.google.com/go/osconfig/agentendpoint/apiv1/agentendpointpb;agentendpointpb";
23option java_multiple_files = true;
24option java_outer_classname = "InventoryProto";
25option java_package = "com.google.cloud.osconfig.agentendpoint.v1";
26
27// OS Config Inventory is a service for collecting and reporting operating
28// system and package information on VM instances.
29
30// The inventory details of a VM.
31message Inventory {
32  // Operating system information for the VM.
33  message OsInfo {
34    // The VM hostname.
35    string hostname = 1;
36
37    // The operating system long name.
38    // For example 'Debian GNU/Linux 9' or 'Microsoft Window Server 2019
39    // Datacenter'.
40    string long_name = 2;
41
42    // The operating system short name.
43    // For example, 'windows' or 'debian'.
44    string short_name = 3;
45
46    // The version of the operating system.
47    string version = 4;
48
49    // The system architecture of the operating system.
50    string architecture = 5;
51
52    // The kernel version of the operating system.
53    string kernel_version = 6;
54
55    // The kernel release of the operating system.
56    string kernel_release = 7;
57
58    // The current version of the OS Config agent running on the VM.
59    string osconfig_agent_version = 8;
60  }
61
62  // Software package information of the operating system.
63  message SoftwarePackage {
64    // Information about the different types of software packages.
65    oneof details {
66      // Yum package info.
67      // For details about the yum package manager, see
68      // https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/ch-yum.
69      VersionedPackage yum_package = 1;
70
71      // Details of an APT package.
72      // For details about the apt package manager, see
73      // https://wiki.debian.org/Apt.
74      VersionedPackage apt_package = 2;
75
76      // Details of a Zypper package.
77      // For details about the Zypper package manager, see
78      // https://en.opensuse.org/SDB:Zypper_manual.
79      VersionedPackage zypper_package = 3;
80
81      // Details of a Googet package.
82      //  For details about the googet package manager, see
83      //  https://github.com/google/googet.
84      VersionedPackage googet_package = 4;
85
86      // Details of a Zypper patch.
87      // For details about the Zypper package manager, see
88      // https://en.opensuse.org/SDB:Zypper_manual.
89      ZypperPatch zypper_patch = 5;
90
91      // Details of a Windows Update package.
92      // See https://docs.microsoft.com/en-us/windows/win32/api/_wua/ for
93      // information about Windows Update.
94      WindowsUpdatePackage wua_package = 6;
95
96      // Details of a Windows Quick Fix engineering package.
97      // See
98      // https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering
99      // for info in Windows Quick Fix Engineering.
100      WindowsQuickFixEngineeringPackage qfe_package = 7;
101
102      // Details of a COS package.
103      VersionedPackage cos_package = 8;
104
105      // Details of Windows Application.
106      WindowsApplication windows_application = 9;
107    }
108  }
109
110  // Information related to the a standard versioned package.  This includes
111  // package info for APT, Yum, Zypper, and Googet package managers.
112  message VersionedPackage {
113    // The name of the package.
114    string package_name = 1;
115
116    // The system architecture this package is intended for.
117    string architecture = 2;
118
119    // The version of the package.
120    string version = 3;
121  }
122
123  // Details related to a Zypper Patch.
124  message ZypperPatch {
125    // The name of the patch.
126    string patch_name = 1;
127
128    // The category of the patch.
129    string category = 2;
130
131    // The severity specified for this patch
132    string severity = 3;
133
134    // Any summary information provided about this patch.
135    string summary = 4;
136  }
137
138  // Details related to a Windows Update package.
139  // Field data and names are taken from Windows Update API IUpdate Interface:
140  // https://docs.microsoft.com/en-us/windows/win32/api/_wua/
141  // Descriptive fields like title, and description are localized based on
142  // the locale of the VM being updated.
143  message WindowsUpdatePackage {
144    // Categories specified by the Windows Update.
145    message WindowsUpdateCategory {
146      // The identifier of the windows update category.
147      string id = 1;
148
149      // The name of the windows update category.
150      string name = 2;
151    }
152
153    // The localized title of the update package.
154    string title = 1;
155
156    // The localized description of the update package.
157    string description = 2;
158
159    // The categories that are associated with this update package.
160    repeated WindowsUpdateCategory categories = 3;
161
162    // A collection of Microsoft Knowledge Base article IDs that are associated
163    // with the update package.
164    repeated string kb_article_ids = 4;
165
166    // A hyperlink to the language-specific support information for the update.
167    string support_url = 5;
168
169    // A collection of URLs that provide more information about the update
170    // package.
171    repeated string more_info_urls = 6;
172
173    // Gets the identifier of an update package.  Stays the same across
174    // revisions.
175    string update_id = 7;
176
177    // The revision number of this update package.
178    int32 revision_number = 8;
179
180    // The last published date of the update, in (UTC) date and time.
181    google.protobuf.Timestamp last_deployment_change_time = 9;
182  }
183
184  // Information related to a Quick Fix Engineering package.
185  // Fields are taken from Windows QuickFixEngineering Interface and match
186  // the source names:
187  // https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering
188  message WindowsQuickFixEngineeringPackage {
189    // A short textual description of the QFE update.
190    string caption = 1;
191
192    // A textual description of the QFE update.
193    string description = 2;
194
195    // Unique identifier associated with a particular QFE update.
196    string hot_fix_id = 3;
197
198    // Date that the QFE update was installed.  Mapped from installed_on field.
199    google.protobuf.Timestamp install_time = 4;
200  }
201
202  // Details about Windows Application - based on Windows Registry.
203  // All fields in this message are taken from:
204  // https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key
205  message WindowsApplication {
206    // DisplayName field from Windows Registry.
207    string display_name = 1;
208
209    // DisplayVersion field from Windows Registry.
210    string display_version = 2;
211
212    // Publisher field from Windows Registry.
213    string publisher = 3;
214
215    // Installation date field from Windows Registry.
216    google.type.Date install_date = 4;
217
218    // HelpLink field from Windows Registry.
219    string help_link = 5;
220  }
221
222  // Base level operating system information for the VM.
223  OsInfo os_info = 1;
224
225  // A list of installed packages currently on the VM.
226  repeated SoftwarePackage installed_packages = 2;
227
228  // A list of software updates available for the VM as reported by the update
229  // managers.
230  repeated SoftwarePackage available_packages = 3;
231}
232