// Copyright 2021 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.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/resource.proto"; import "google/cloud/osconfig/v1/inventory.proto"; import "google/cloud/osconfig/v1/vulnerability.proto"; option csharp_namespace = "Google.Cloud.OsConfig.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/v1;osconfig"; option java_multiple_files = true; option java_outer_classname = "OsConfigZonalServiceProto"; option java_package = "com.google.cloud.osconfig.v1"; option php_namespace = "Google\\Cloud\\OsConfig\\V1"; option ruby_package = "Google::Cloud::OsConfig::V1"; // Zonal OS Config API // // The OS Config service is the server-side component that allows users to // manage package installations and patch jobs for Compute Engine VM instances. service OsConfigZonalService { option (google.api.default_host) = "osconfig.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; // Get inventory data for the specified VM instance. If the VM has no // associated inventory, the message `NOT_FOUND` is returned. rpc GetInventory(GetInventoryRequest) returns (Inventory) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/instances/*/inventory}" }; option (google.api.method_signature) = "name"; } // List inventory data for all VM instances in the specified zone. rpc ListInventories(ListInventoriesRequest) returns (ListInventoriesResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/instances/*}/inventories" }; option (google.api.method_signature) = "parent"; } // Gets the vulnerability report for the specified VM instance. Only VMs with // inventory data have vulnerability reports associated with them. rpc GetVulnerabilityReport(GetVulnerabilityReportRequest) returns (VulnerabilityReport) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/instances/*/vulnerabilityReport}" }; option (google.api.method_signature) = "name"; } // List vulnerability reports for all VM instances in the specified zone. rpc ListVulnerabilityReports(ListVulnerabilityReportsRequest) returns (ListVulnerabilityReportsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/instances/*}/vulnerabilityReports" }; option (google.api.method_signature) = "parent"; } }