123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- // 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.agentendpoint.v1;
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/cloud/osconfig/agentendpoint/v1/inventory.proto";
- import "google/cloud/osconfig/agentendpoint/v1/tasks.proto";
- option go_package = "google.golang.org/genproto/googleapis/cloud/osconfig/agentendpoint/v1;agentendpoint";
- option java_multiple_files = true;
- option java_outer_classname = "AgentEndpointProto";
- option java_package = "com.google.cloud.osconfig.agentendpoint.v1";
- // OS Config agent endpoint API.
- service AgentEndpointService {
- option (google.api.default_host) = "osconfig.googleapis.com";
- // Stream established by client to receive Task notifications.
- rpc ReceiveTaskNotification(ReceiveTaskNotificationRequest) returns (stream ReceiveTaskNotificationResponse) {
- option (google.api.method_signature) = "instance_id_token,agent_version";
- }
- // Signals the start of a task execution and returns the task info.
- rpc StartNextTask(StartNextTaskRequest) returns (StartNextTaskResponse) {
- option (google.api.method_signature) = "instance_id_token";
- }
- // Signals an intermediary progress checkpoint in task execution.
- rpc ReportTaskProgress(ReportTaskProgressRequest) returns (ReportTaskProgressResponse) {
- option (google.api.method_signature) = "instance_id_token,task_id,task_type";
- }
- // Signals that the task execution is complete and optionally returns the next
- // task.
- rpc ReportTaskComplete(ReportTaskCompleteRequest) returns (ReportTaskCompleteResponse) {
- option (google.api.method_signature) = "instance_id_token,task_id,task_type,error_message";
- }
- // Registers the agent running on the VM.
- rpc RegisterAgent(RegisterAgentRequest) returns (RegisterAgentResponse) {
- option (google.api.method_signature) = "instance_id_token,agent_version,supported_capabilities";
- }
- // Reports the VMs current inventory.
- rpc ReportInventory(ReportInventoryRequest) returns (ReportInventoryResponse) {
- option (google.api.method_signature) = "instance_id_token,inventory_checksum,inventory";
- }
- }
- // A request message to receive task notifications.
- message ReceiveTaskNotificationRequest {
- // Required. This is the Compute Engine instance identity token described in
- // https://cloud.google.com/compute/docs/instances/verifying-instance-identity
- // where the audience is 'osconfig.googleapis.com' and the format is 'full'.
- string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The version of the agent making the request.
- string agent_version = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // The streaming rpc message that will notify the agent when it has a task
- // it needs to perform on the instance.
- message ReceiveTaskNotificationResponse {
- }
- // A request message for signaling the start of a task execution.
- message StartNextTaskRequest {
- // Required. This is the Compute Engine instance identity token described in
- // https://cloud.google.com/compute/docs/instances/verifying-instance-identity
- // where the audience is 'osconfig.googleapis.com' and the format is 'full'.
- string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // A response message that contains the details of the task to work on.
- message StartNextTaskResponse {
- // The details of the task that should be worked on. Can be empty if there
- // is no new task to work on.
- Task task = 1;
- }
- // A request message for reporting the progress of current task.
- message ReportTaskProgressRequest {
- // Required. This is the Compute Engine instance identity token described in
- // https://cloud.google.com/compute/docs/instances/verifying-instance-identity
- // where the audience is 'osconfig.googleapis.com' and the format is 'full'.
- string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. Unique identifier of the task this applies to.
- string task_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The type of task to report progress on.
- //
- // Progress must include the appropriate message based on this enum as
- // specified below:
- // APPLY_PATCHES = ApplyPatchesTaskProgress
- // EXEC_STEP = Progress not supported for this type.
- // APPLY_CONFIG_TASK = ApplyConfigTaskProgress
- TaskType task_type = 3 [(google.api.field_behavior) = REQUIRED];
- // Intermediate progress of the current task.
- oneof progress {
- // Details about the progress of the apply patches task.
- ApplyPatchesTaskProgress apply_patches_task_progress = 4;
- // Details about the progress of the exec step task.
- ExecStepTaskProgress exec_step_task_progress = 5;
- // Details about the progress of the apply config task.
- ApplyConfigTaskProgress apply_config_task_progress = 6;
- }
- }
- // The response message after the agent reported the current task progress.
- message ReportTaskProgressResponse {
- // Instructs agent to continue or not.
- TaskDirective task_directive = 1;
- }
- // A request message for signaling the completion of a task execution.
- message ReportTaskCompleteRequest {
- // Required. This is the Compute Engine instance identity token described in
- // https://cloud.google.com/compute/docs/instances/verifying-instance-identity
- // where the audience is 'osconfig.googleapis.com' and the format is 'full'.
- string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. Unique identifier of the task this applies to.
- string task_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The type of task to report completed.
- //
- // Output must include the appropriate message based on this enum as
- // specified below:
- // APPLY_PATCHES = ApplyPatchesTaskOutput
- // EXEC_STEP = ExecStepTaskOutput
- // APPLY_CONFIG_TASK = ApplyConfigTaskOutput
- TaskType task_type = 3 [(google.api.field_behavior) = REQUIRED];
- // Descriptive error message if the task execution ended in error.
- string error_message = 4;
- // Final output details of the current task.
- oneof output {
- // Final output details of the apply patches task;
- ApplyPatchesTaskOutput apply_patches_task_output = 5;
- // Final output details of the exec step task;
- ExecStepTaskOutput exec_step_task_output = 6;
- // Final output details of the apply config task;
- ApplyConfigTaskOutput apply_config_task_output = 7;
- }
- }
- // The response message after the agent signaled the current task complete.
- message ReportTaskCompleteResponse {
- }
- // The request message for registering the agent.
- message RegisterAgentRequest {
- // Required. This is the Compute Engine instance identity token described in
- // https://cloud.google.com/compute/docs/instances/verifying-instance-identity
- // where the audience is 'osconfig.googleapis.com' and the format is 'full'.
- string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The version of the agent.
- string agent_version = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The capabilities supported by the agent. Supported values are:
- // PATCH_GA
- // GUEST_POLICY_BETA
- // CONFIG_V1
- repeated string supported_capabilities = 3 [(google.api.field_behavior) = REQUIRED];
- // The operating system long name.
- // For example 'Debian GNU/Linux 9' or 'Microsoft Window Server 2019
- // Datacenter'.
- string os_long_name = 4;
- // The operating system short name.
- // For example, 'windows' or 'debian'.
- string os_short_name = 5;
- // The version of the operating system.
- string os_version = 6;
- // The system architecture of the operating system.
- string os_architecture = 7;
- }
- // The response message after the agent registered.
- message RegisterAgentResponse {
- }
- // The request message for having the agent report inventory.
- message ReportInventoryRequest {
- // Required. This is the Compute Engine instance identity token described in
- // https://cloud.google.com/compute/docs/instances/verifying-instance-identity
- // where the audience is 'osconfig.googleapis.com' and the format is 'full'.
- string instance_id_token = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. This is a client created checksum that should be generated based on the
- // contents of the reported inventory. This will be used by the service to
- // determine if it has the latest version of inventory.
- string inventory_checksum = 2 [(google.api.field_behavior) = REQUIRED];
- // Optional. This is the details of the inventory. Should only be provided if the
- // inventory has changed since the last report, or if instructed by the
- // service to provide full inventory.
- Inventory inventory = 3 [(google.api.field_behavior) = OPTIONAL];
- }
- // The response message after the agent has reported inventory.
- message ReportInventoryResponse {
- // If true, the full inventory should be reported back to the server.
- bool report_full_inventory = 1;
- }
|