| // Copyright 2017 Google Inc. |
| // |
| // 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.devtools.clouddebugger.v2; |
| |
| import "google/api/annotations.proto"; |
| import "google/devtools/clouddebugger/v2/data.proto"; |
| import "google/protobuf/empty.proto"; |
| |
| option go_package = "google.golang.org/genproto/googleapis/devtools/clouddebugger/v2;clouddebugger"; |
| option java_multiple_files = true; |
| option java_outer_classname = "DebuggerProto"; |
| option java_package = "com.google.devtools.clouddebugger.v2"; |
| |
| |
| // The Debugger service provides the API that allows users to collect run-time |
| // information from a running application, without stopping or slowing it down |
| // and without modifying its state. An application may include one or |
| // more replicated processes performing the same work. |
| // |
| // The application is represented using the Debuggee concept. The Debugger |
| // service provides a way to query for available Debuggees, but does not |
| // provide a way to create one. A debuggee is created using the Controller |
| // service, usually by running a debugger agent with the application. |
| // |
| // The Debugger service enables the client to set one or more Breakpoints on a |
| // Debuggee and collect the results of the set Breakpoints. |
| service Debugger2 { |
| // Sets the breakpoint to the debuggee. |
| rpc SetBreakpoint(SetBreakpointRequest) returns (SetBreakpointResponse) { |
| option (google.api.http) = { post: "/v2/debugger/debuggees/{debuggee_id}/breakpoints/set" body: "breakpoint" }; |
| } |
| |
| // Gets breakpoint information. |
| rpc GetBreakpoint(GetBreakpointRequest) returns (GetBreakpointResponse) { |
| option (google.api.http) = { get: "/v2/debugger/debuggees/{debuggee_id}/breakpoints/{breakpoint_id}" }; |
| } |
| |
| // Deletes the breakpoint from the debuggee. |
| rpc DeleteBreakpoint(DeleteBreakpointRequest) returns (google.protobuf.Empty) { |
| option (google.api.http) = { delete: "/v2/debugger/debuggees/{debuggee_id}/breakpoints/{breakpoint_id}" }; |
| } |
| |
| // Lists all breakpoints for the debuggee. |
| rpc ListBreakpoints(ListBreakpointsRequest) returns (ListBreakpointsResponse) { |
| option (google.api.http) = { get: "/v2/debugger/debuggees/{debuggee_id}/breakpoints" }; |
| } |
| |
| // Lists all the debuggees that the user can set breakpoints to. |
| rpc ListDebuggees(ListDebuggeesRequest) returns (ListDebuggeesResponse) { |
| option (google.api.http) = { get: "/v2/debugger/debuggees" }; |
| } |
| } |
| |
| // Request to set a breakpoint |
| message SetBreakpointRequest { |
| // ID of the debuggee where the breakpoint is to be set. |
| string debuggee_id = 1; |
| |
| // Breakpoint specification to set. |
| // The field 'location' of the breakpoint must be set. |
| Breakpoint breakpoint = 2; |
| |
| // The client version making the call. |
| // Following: `domain/type/version` (e.g., `google.com/intellij/v1`). |
| string client_version = 4; |
| } |
| |
| // Response for setting a breakpoint. |
| message SetBreakpointResponse { |
| // Breakpoint resource. |
| // The field `id` is guaranteed to be set (in addition to the echoed fileds). |
| Breakpoint breakpoint = 1; |
| } |
| |
| // Request to get breakpoint information. |
| message GetBreakpointRequest { |
| // ID of the debuggee whose breakpoint to get. |
| string debuggee_id = 1; |
| |
| // ID of the breakpoint to get. |
| string breakpoint_id = 2; |
| |
| // The client version making the call. |
| // Following: `domain/type/version` (e.g., `google.com/intellij/v1`). |
| string client_version = 4; |
| } |
| |
| // Response for getting breakpoint information. |
| message GetBreakpointResponse { |
| // Complete breakpoint state. |
| // The fields `id` and `location` are guaranteed to be set. |
| Breakpoint breakpoint = 1; |
| } |
| |
| // Request to delete a breakpoint. |
| message DeleteBreakpointRequest { |
| // ID of the debuggee whose breakpoint to delete. |
| string debuggee_id = 1; |
| |
| // ID of the breakpoint to delete. |
| string breakpoint_id = 2; |
| |
| // The client version making the call. |
| // Following: `domain/type/version` (e.g., `google.com/intellij/v1`). |
| string client_version = 3; |
| } |
| |
| // Request to list breakpoints. |
| message ListBreakpointsRequest { |
| // Wrapper message for `Breakpoint.Action`. Defines a filter on the action |
| // field of breakpoints. |
| message BreakpointActionValue { |
| // Only breakpoints with the specified action will pass the filter. |
| Breakpoint.Action value = 1; |
| } |
| |
| // ID of the debuggee whose breakpoints to list. |
| string debuggee_id = 1; |
| |
| // When set to `true`, the response includes the list of breakpoints set by |
| // any user. Otherwise, it includes only breakpoints set by the caller. |
| bool include_all_users = 2; |
| |
| // When set to `true`, the response includes active and inactive |
| // breakpoints. Otherwise, it includes only active breakpoints. |
| bool include_inactive = 3; |
| |
| // When set, the response includes only breakpoints with the specified action. |
| BreakpointActionValue action = 4; |
| |
| // This field is deprecated. The following fields are always stripped out of |
| // the result: `stack_frames`, `evaluated_expressions` and `variable_table`. |
| bool strip_results = 5; |
| |
| // A wait token that, if specified, blocks the call until the breakpoints |
| // list has changed, or a server selected timeout has expired. The value |
| // should be set from the last response. The error code |
| // `google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which |
| // should be called again with the same `wait_token`. |
| string wait_token = 6; |
| |
| // The client version making the call. |
| // Following: `domain/type/version` (e.g., `google.com/intellij/v1`). |
| string client_version = 8; |
| } |
| |
| // Response for listing breakpoints. |
| message ListBreakpointsResponse { |
| // List of breakpoints matching the request. |
| // The fields `id` and `location` are guaranteed to be set on each breakpoint. |
| // The fields: `stack_frames`, `evaluated_expressions` and `variable_table` |
| // are cleared on each breakpoint regardless of it's status. |
| repeated Breakpoint breakpoints = 1; |
| |
| // A wait token that can be used in the next call to `list` (REST) or |
| // `ListBreakpoints` (RPC) to block until the list of breakpoints has changes. |
| string next_wait_token = 2; |
| } |
| |
| // Request to list debuggees. |
| message ListDebuggeesRequest { |
| // Project number of a Google Cloud project whose debuggees to list. |
| string project = 2; |
| |
| // When set to `true`, the result includes all debuggees. Otherwise, the |
| // result includes only debuggees that are active. |
| bool include_inactive = 3; |
| |
| // The client version making the call. |
| // Following: `domain/type/version` (e.g., `google.com/intellij/v1`). |
| string client_version = 4; |
| } |
| |
| // Response for listing debuggees. |
| message ListDebuggeesResponse { |
| // List of debuggees accessible to the calling user. |
| // Note that the `description` field is the only human readable field |
| // that should be displayed to the user. |
| // The fields `debuggee.id` and `description` fields are guaranteed to be |
| // set on each debuggee. |
| repeated Debuggee debuggees = 1; |
| } |