docs: docs update (#911)

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-api-python-client/issues/new/choose) before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
index 7b02115..66f4be0 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
@@ -81,10 +81,10 @@
   <code><a href="#get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets breakpoint information.</p>
 <p class="toc_element">
-  <code><a href="#list">list(debuggeeId, stripResults=None, includeInactive=None, x__xgafv=None, clientVersion=None, includeAllUsers=None, action_value=None, waitToken=None)</a></code></p>
+  <code><a href="#list">list(debuggeeId, waitToken=None, clientVersion=None, action_value=None, includeInactive=None, includeAllUsers=None, stripResults=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists all breakpoints for the debuggee.</p>
 <p class="toc_element">
-  <code><a href="#set">set(debuggeeId, body=None, clientVersion=None, canaryOption=None, x__xgafv=None)</a></code></p>
+  <code><a href="#set">set(debuggeeId, body=None, canaryOption=None, clientVersion=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the breakpoint to the debuggee.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -134,12 +134,14 @@
   An object of the form:
 
     { # Response for getting breakpoint information.
-    "breakpoint": { # ------------------------------------------------------------------------------ # Complete breakpoint state.
+    &quot;breakpoint&quot;: { # ------------------------------------------------------------------------------ # Complete breakpoint state.
         # The fields `id` and `location` are guaranteed to be set.
         # ## Breakpoint (the resource)
         #
         # Represents the breakpoint specification, status and results.
-      "status": { # Represents a contextual status message. # Breakpoint status.
+      &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
+          # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
+      &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
           #
           # The status includes an error flag and a human readable message.
           # This field is usually unset. The message can be either
@@ -158,24 +160,39 @@
           # specific parts of the containing object.
           # For example, the `Breakpoint.status` field can indicate an error referring
           # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-        "isError": True or False, # Distinguishes errors from informational messages.
-        "refersTo": "A String", # Reference to which the message applies.
-        "description": { # Represents a message with parameters. # Status message text.
-          "parameters": [ # Optional parameters to be embedded into the message.
-            "A String",
+        &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+        &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+          &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+            &quot;A String&quot;,
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+          &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
               # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
               # character.
               #
               # Examples:
               #
-              # *   `Failed to load '$0' which helps debug $1 the first time it
+              # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
               #     is loaded.  Again, $0 is very important.`
               # *   `Please pay $$10 to use $0 instead of $1.`
         },
+        &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
       },
-      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+      &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
+      &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
+      &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
+      &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
+      &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
+        &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+        &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+            # Agents that do not support setting breakpoints on specific columns ignore
+            # this field.
+        &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+      },
+      &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
+      &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
           # traffic optimization.  It enables storing a variable once and reference
           # it from multiple variables, including variables stored in the
           # `variable_table` itself.
@@ -194,7 +211,7 @@
             #
             #     int x = 5
             #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
             #
             # 2) A compound object:
             #
@@ -205,10 +222,10 @@
             #     T x = { 3, 7 };
             #
             #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;x&quot;,
+            #         type: &quot;T&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 3) A pointer where the pointee was captured:
@@ -217,11 +234,11 @@
             #     T* p = &amp;x;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 4) A pointer where the pointee was not captured:
@@ -229,10 +246,10 @@
             #     T* p = new T;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00400400&quot;
+            #         status { is_error: true, description { format: &quot;unavailable&quot; } }
             #     }
             #
             # The status should describe the reason for the missing value,
@@ -245,10 +262,10 @@
             #     int* p = new int(7);
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
+            #         name: &quot;p&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int*&quot;,
+            #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
             #
             # 6) An unnamed pointer where the pointee was not captured:
             #
@@ -256,15 +273,15 @@
             #     int** pp = &amp;p;
             #
             #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
+            #         name: &quot;pp&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int**&quot;,
             #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
+            #             value: &quot;0x00400400&quot;,
+            #             type: &quot;int*&quot;
             #             status {
             #                 is_error: true,
-            #                 description: { format: "unavailable" } }
+            #                 description: { format: &quot;unavailable&quot; } }
             #             }
             #         }
             #     }
@@ -282,13 +299,13 @@
             #     T* p = &amp;x;
             #     T&amp; r = x;
             #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&amp;", var_table_index: 3 }
+            #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+            #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+            #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
             #
             #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # Note that the pointer address is stored with the referencing variable
@@ -296,7 +313,10 @@
             # to be shared between pointers and references.
             #
             # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+          &quot;members&quot;: [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
               # unset. A status of a single variable only applies to that variable or
               # expression. The rest of breakpoint data still remains valid. Variables
               # might be reported in error state even when breakpoint is not in final
@@ -319,39 +339,36 @@
               # specific parts of the containing object.
               # For example, the `Breakpoint.status` field can indicate an error referring
               # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
+            &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+            &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+              &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                &quot;A String&quot;,
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                   # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                   # character.
                   #
                   # Examples:
                   #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                   #     is loaded.  Again, $0 is very important.`
                   # *   `Please pay $$10 to use $0 instead of $1.`
             },
+            &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
           },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+          &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+          &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
               # `var_table_index`, `type` goes next to `value`. The interpretation of
               # a type is agent specific. It is recommended to include the dynamic type
               # rather than a static type of an object.
+          &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
         },
       ],
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+      &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
+      &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
           # the breakpoint hits. The message may include parameter placeholders `$0`,
           # `$1`, etc. These placeholders are replaced with the evaluated value
           # of the appropriate expression. Expressions not referenced in
@@ -359,378 +376,17 @@
           #
           # Example: `Message received, id = $0, count = $1` with
           # `expressions` = `[ message.id, message.count ]`.
-      "state": "A String", # The current state of the breakpoint.
-      "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+      &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
           # displayed to the user.
-        "a_key": "A String",
+        &quot;a_key&quot;: &quot;A String&quot;,
       },
-      "stackFrames": [ # The stack at breakpoint time, where stack_frames[0] represents the most
-          # recently entered function.
-        { # Represents a stack frame context.
-          "function": "A String", # Demangled function name at the call site.
-          "arguments": [ # Set of arguments passed to this function.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &amp;p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #     T&amp; r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&amp;", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
-          "locals": [ # Set of local variables at the stack frame location.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &amp;p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #     T&amp; r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&amp;", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "column": 42, # Column within a line. The first column in a line as the value `1`.
-                # Agents that do not support setting breakpoints on specific columns ignore
-                # this field.
-            "path": "A String", # Path to the source file within the source context of the target binary.
-            "line": 42, # Line inside the file. The first line in the file has the value `1`.
-          },
-        },
-      ],
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
-      "canaryExpireTime": "A String", # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
-          # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "column": 42, # Column within a line. The first column in a line as the value `1`.
-            # Agents that do not support setting breakpoints on specific columns ignore
-            # this field.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
-      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+      &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
           # The expressions are composed using expressions in the programming language
           # at the source location. If the breakpoint action is `LOG`, the evaluated
           # expressions are included in log statements.
-        "A String",
+        &quot;A String&quot;,
       ],
-      "isFinalState": True or False, # When true, indicates that this is a final result and the
-          # breakpoint state will not change from here on.
-      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+      &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
           # The evaluated expressions appear in exactly the same order they
           # are listed in the `expressions` field.
           # The `name` field holds the original expression text, the `value` or
@@ -744,7 +400,7 @@
             #
             #     int x = 5
             #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
             #
             # 2) A compound object:
             #
@@ -755,10 +411,10 @@
             #     T x = { 3, 7 };
             #
             #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;x&quot;,
+            #         type: &quot;T&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 3) A pointer where the pointee was captured:
@@ -767,11 +423,11 @@
             #     T* p = &amp;x;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 4) A pointer where the pointee was not captured:
@@ -779,10 +435,10 @@
             #     T* p = new T;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00400400&quot;
+            #         status { is_error: true, description { format: &quot;unavailable&quot; } }
             #     }
             #
             # The status should describe the reason for the missing value,
@@ -795,10 +451,10 @@
             #     int* p = new int(7);
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
+            #         name: &quot;p&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int*&quot;,
+            #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
             #
             # 6) An unnamed pointer where the pointee was not captured:
             #
@@ -806,15 +462,15 @@
             #     int** pp = &amp;p;
             #
             #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
+            #         name: &quot;pp&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int**&quot;,
             #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
+            #             value: &quot;0x00400400&quot;,
+            #             type: &quot;int*&quot;
             #             status {
             #                 is_error: true,
-            #                 description: { format: "unavailable" } }
+            #                 description: { format: &quot;unavailable&quot; } }
             #             }
             #         }
             #     }
@@ -832,13 +488,13 @@
             #     T* p = &amp;x;
             #     T&amp; r = x;
             #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&amp;", var_table_index: 3 }
+            #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+            #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+            #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
             #
             #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # Note that the pointer address is stored with the referencing variable
@@ -846,7 +502,10 @@
             # to be shared between pointers and references.
             #
             # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+          &quot;members&quot;: [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
               # unset. A status of a single variable only applies to that variable or
               # expression. The rest of breakpoint data still remains valid. Variables
               # might be reported in error state even when breakpoint is not in final
@@ -869,39 +528,380 @@
               # specific parts of the containing object.
               # For example, the `Breakpoint.status` field can indicate an error referring
               # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
+            &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+            &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+              &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                &quot;A String&quot;,
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                   # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                   # character.
                   #
                   # Examples:
                   #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                   #     is loaded.  Again, $0 is very important.`
                   # *   `Please pay $$10 to use $0 instead of $1.`
             },
+            &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
           },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+          &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+          &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
               # `var_table_index`, `type` goes next to `value`. The interpretation of
               # a type is agent specific. It is recommended to include the dynamic type
               # rather than a static type of an object.
+          &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
         },
       ],
-      "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-      "condition": "A String", # Condition that triggers the breakpoint.
+      &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
+          # breakpoint state will not change from here on.
+      &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
+          # recently entered function.
+        { # Represents a stack frame context.
+          &quot;arguments&quot;: [ # Set of arguments passed to this function.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: &quot;x&quot;,
+                #         type: &quot;T&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00400400&quot;
+                #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int*&quot;,
+                #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &amp;p;
+                #
+                #     {  // Captured variable
+                #         name: &quot;pp&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int**&quot;,
+                #         members {
+                #             value: &quot;0x00400400&quot;,
+                #             type: &quot;int*&quot;
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: &quot;unavailable&quot; } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #     T&amp; r = x;
+                #
+                #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+                #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+                #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              &quot;members&quot;: [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+                &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                  &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+                &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+              },
+              &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+              &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+              &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+            },
+          ],
+          &quot;locals&quot;: [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: &quot;x&quot;,
+                #         type: &quot;T&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00400400&quot;
+                #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int*&quot;,
+                #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &amp;p;
+                #
+                #     {  // Captured variable
+                #         name: &quot;pp&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int**&quot;,
+                #         members {
+                #             value: &quot;0x00400400&quot;,
+                #             type: &quot;int*&quot;
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: &quot;unavailable&quot; } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #     T&amp; r = x;
+                #
+                #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+                #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+                #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              &quot;members&quot;: [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+                &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                  &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+                &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+              },
+              &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+              &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+              &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+            },
+          ],
+          &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
+            &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+            &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+                # Agents that do not support setting breakpoints on specific columns ignore
+                # this field.
+            &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+          },
+          &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
+        },
+      ],
+      &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
           # The condition is a compound boolean expression composed using expressions
           # in a programming language at the source location.
     },
@@ -909,37 +909,37 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(debuggeeId, stripResults=None, includeInactive=None, x__xgafv=None, clientVersion=None, includeAllUsers=None, action_value=None, waitToken=None)</code>
+    <code class="details" id="list">list(debuggeeId, waitToken=None, clientVersion=None, action_value=None, includeInactive=None, includeAllUsers=None, stripResults=None, x__xgafv=None)</code>
   <pre>Lists all breakpoints for the debuggee.
 
 Args:
   debuggeeId: string, Required. ID of the debuggee whose breakpoints to list. (required)
-  stripResults: boolean, This field is deprecated. The following fields are always stripped out of
-the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
-  includeInactive: boolean, When set to `true`, the response includes active and inactive
-breakpoints. Otherwise, it includes only active breakpoints.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-  clientVersion: string, Required. The client version making the call.
-Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-  includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by
-any user. Otherwise, it includes only breakpoints set by the caller.
-  action_value: string, Only breakpoints with the specified action will pass the filter.
   waitToken: string, 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`.
+  clientVersion: string, Required. The client version making the call.
+Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
+  action_value: string, Only breakpoints with the specified action will pass the filter.
+  includeInactive: boolean, When set to `true`, the response includes active and inactive
+breakpoints. Otherwise, it includes only active breakpoints.
+  includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by
+any user. Otherwise, it includes only breakpoints set by the caller.
+  stripResults: boolean, This field is deprecated. The following fields are always stripped out of
+the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response for listing breakpoints.
-    "nextWaitToken": "A String", # A wait token that can be used in the next call to `list` (REST) or
+    &quot;nextWaitToken&quot;: &quot;A String&quot;, # 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.
-    "breakpoints": [ # List of breakpoints matching the request.
+    &quot;breakpoints&quot;: [ # 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 its status.
@@ -947,7 +947,9 @@
           # ## Breakpoint (the resource)
           #
           # Represents the breakpoint specification, status and results.
-        "status": { # Represents a contextual status message. # Breakpoint status.
+        &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
+            # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
+        &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
             #
             # The status includes an error flag and a human readable message.
             # This field is usually unset. The message can be either
@@ -966,24 +968,39 @@
             # specific parts of the containing object.
             # For example, the `Breakpoint.status` field can indicate an error referring
             # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-          "isError": True or False, # Distinguishes errors from informational messages.
-          "refersTo": "A String", # Reference to which the message applies.
-          "description": { # Represents a message with parameters. # Status message text.
-            "parameters": [ # Optional parameters to be embedded into the message.
-              "A String",
+          &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+          &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+            &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+              &quot;A String&quot;,
             ],
-            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+            &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                 # character.
                 #
                 # Examples:
                 #
-                # *   `Failed to load '$0' which helps debug $1 the first time it
+                # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                 #     is loaded.  Again, $0 is very important.`
                 # *   `Please pay $$10 to use $0 instead of $1.`
           },
+          &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
         },
-        "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+        &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
+        &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
+        &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
+            # breakpoint location is hit.
+        &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
+        &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
+        &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
+          &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+          &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+              # Agents that do not support setting breakpoints on specific columns ignore
+              # this field.
+          &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+        },
+        &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
+            # resolution.
+        &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
             # traffic optimization.  It enables storing a variable once and reference
             # it from multiple variables, including variables stored in the
             # `variable_table` itself.
@@ -1002,7 +1019,7 @@
               #
               #     int x = 5
               #
-              #     { name: "x", value: "5", type: "int" }  // Captured variable
+              #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
               #
               # 2) A compound object:
               #
@@ -1013,10 +1030,10 @@
               #     T x = { 3, 7 };
               #
               #     {  // Captured variable
-              #         name: "x",
-              #         type: "T",
-              #         members { name: "m1", value: "3", type: "int" },
-              #         members { name: "m2", value: "7", type: "int" }
+              #         name: &quot;x&quot;,
+              #         type: &quot;T&quot;,
+              #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+              #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
               #     }
               #
               # 3) A pointer where the pointee was captured:
@@ -1025,11 +1042,11 @@
               #     T* p = &amp;x;
               #
               #     {   // Captured variable
-              #         name: "p",
-              #         type: "T*",
-              #         value: "0x00500500",
-              #         members { name: "m1", value: "3", type: "int" },
-              #         members { name: "m2", value: "7", type: "int" }
+              #         name: &quot;p&quot;,
+              #         type: &quot;T*&quot;,
+              #         value: &quot;0x00500500&quot;,
+              #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+              #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
               #     }
               #
               # 4) A pointer where the pointee was not captured:
@@ -1037,10 +1054,10 @@
               #     T* p = new T;
               #
               #     {   // Captured variable
-              #         name: "p",
-              #         type: "T*",
-              #         value: "0x00400400"
-              #         status { is_error: true, description { format: "unavailable" } }
+              #         name: &quot;p&quot;,
+              #         type: &quot;T*&quot;,
+              #         value: &quot;0x00400400&quot;
+              #         status { is_error: true, description { format: &quot;unavailable&quot; } }
               #     }
               #
               # The status should describe the reason for the missing value,
@@ -1053,10 +1070,10 @@
               #     int* p = new int(7);
               #
               #     {   // Captured variable
-              #         name: "p",
-              #         value: "0x00500500",
-              #         type: "int*",
-              #         members { value: "7", type: "int" } }
+              #         name: &quot;p&quot;,
+              #         value: &quot;0x00500500&quot;,
+              #         type: &quot;int*&quot;,
+              #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
               #
               # 6) An unnamed pointer where the pointee was not captured:
               #
@@ -1064,15 +1081,15 @@
               #     int** pp = &amp;p;
               #
               #     {  // Captured variable
-              #         name: "pp",
-              #         value: "0x00500500",
-              #         type: "int**",
+              #         name: &quot;pp&quot;,
+              #         value: &quot;0x00500500&quot;,
+              #         type: &quot;int**&quot;,
               #         members {
-              #             value: "0x00400400",
-              #             type: "int*"
+              #             value: &quot;0x00400400&quot;,
+              #             type: &quot;int*&quot;
               #             status {
               #                 is_error: true,
-              #                 description: { format: "unavailable" } }
+              #                 description: { format: &quot;unavailable&quot; } }
               #             }
               #         }
               #     }
@@ -1090,13 +1107,13 @@
               #     T* p = &amp;x;
               #     T&amp; r = x;
               #
-              #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-              #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-              #     { name: "r", type="T&amp;", var_table_index: 3 }
+              #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+              #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+              #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
               #
               #     {  // Shared variable table entry #3:
-              #         members { name: "m1", value: "3", type: "int" },
-              #         members { name: "m2", value: "7", type: "int" }
+              #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+              #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
               #     }
               #
               # Note that the pointer address is stored with the referencing variable
@@ -1104,7 +1121,10 @@
               # to be shared between pointers and references.
               #
               # The type field is optional. The debugger agent may or may not support it.
-            "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+            &quot;members&quot;: [ # Members contained or pointed to by the variable.
+              # Object with schema name: Variable
+            ],
+            &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
                 # unset. A status of a single variable only applies to that variable or
                 # expression. The rest of breakpoint data still remains valid. Variables
                 # might be reported in error state even when breakpoint is not in final
@@ -1127,39 +1147,36 @@
                 # specific parts of the containing object.
                 # For example, the `Breakpoint.status` field can indicate an error referring
                 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-              "isError": True or False, # Distinguishes errors from informational messages.
-              "refersTo": "A String", # Reference to which the message applies.
-              "description": { # Represents a message with parameters. # Status message text.
-                "parameters": [ # Optional parameters to be embedded into the message.
-                  "A String",
+              &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+              &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                  &quot;A String&quot;,
                 ],
-                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                     # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                     # character.
                     #
                     # Examples:
                     #
-                    # *   `Failed to load '$0' which helps debug $1 the first time it
+                    # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                     #     is loaded.  Again, $0 is very important.`
                     # *   `Please pay $$10 to use $0 instead of $1.`
               },
+              &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
             },
-            "name": "A String", # Name of the variable, if any.
-            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                # one variable can reference the same variable in the table. The
-                # `var_table_index` field is an index into `variable_table` in Breakpoint.
-            "value": "A String", # Simple value of the variable.
-            "members": [ # Members contained or pointed to by the variable.
-              # Object with schema name: Variable
-            ],
-            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+            &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+            &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
                 # `var_table_index`, `type` goes next to `value`. The interpretation of
                 # a type is agent specific. It is recommended to include the dynamic type
                 # rather than a static type of an object.
+            &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                # one variable can reference the same variable in the table. The
+                # `var_table_index` field is an index into `variable_table` in Breakpoint.
+            &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
           },
         ],
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
-        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+        &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
+        &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
             # the breakpoint hits. The message may include parameter placeholders `$0`,
             # `$1`, etc. These placeholders are replaced with the evaluated value
             # of the appropriate expression. Expressions not referenced in
@@ -1167,378 +1184,17 @@
             #
             # Example: `Message received, id = $0, count = $1` with
             # `expressions` = `[ message.id, message.count ]`.
-        "state": "A String", # The current state of the breakpoint.
-        "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-        "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+        &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
             # displayed to the user.
-          "a_key": "A String",
+          &quot;a_key&quot;: &quot;A String&quot;,
         },
-        "stackFrames": [ # The stack at breakpoint time, where stack_frames[0] represents the most
-            # recently entered function.
-          { # Represents a stack frame context.
-            "function": "A String", # Demangled function name at the call site.
-            "arguments": [ # Set of arguments passed to this function.
-                # Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type.
-                  # Note how the following variables are represented:
-                  #
-                  # 1) A simple variable:
-                  #
-                  #     int x = 5
-                  #
-                  #     { name: "x", value: "5", type: "int" }  // Captured variable
-                  #
-                  # 2) A compound object:
-                  #
-                  #     struct T {
-                  #         int m1;
-                  #         int m2;
-                  #     };
-                  #     T x = { 3, 7 };
-                  #
-                  #     {  // Captured variable
-                  #         name: "x",
-                  #         type: "T",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 3) A pointer where the pointee was captured:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &amp;x;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00500500",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 4) A pointer where the pointee was not captured:
-                  #
-                  #     T* p = new T;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00400400"
-                  #         status { is_error: true, description { format: "unavailable" } }
-                  #     }
-                  #
-                  # The status should describe the reason for the missing value,
-                  # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-                  #
-                  # Note that a null pointer should not have members.
-                  #
-                  # 5) An unnamed value:
-                  #
-                  #     int* p = new int(7);
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         value: "0x00500500",
-                  #         type: "int*",
-                  #         members { value: "7", type: "int" } }
-                  #
-                  # 6) An unnamed pointer where the pointee was not captured:
-                  #
-                  #     int* p = new int(7);
-                  #     int** pp = &amp;p;
-                  #
-                  #     {  // Captured variable
-                  #         name: "pp",
-                  #         value: "0x00500500",
-                  #         type: "int**",
-                  #         members {
-                  #             value: "0x00400400",
-                  #             type: "int*"
-                  #             status {
-                  #                 is_error: true,
-                  #                 description: { format: "unavailable" } }
-                  #             }
-                  #         }
-                  #     }
-                  #
-                  # To optimize computation, memory and network traffic, variables that
-                  # repeat in the output multiple times can be stored once in a shared
-                  # variable table and be referenced using the `var_table_index` field.  The
-                  # variables stored in the shared table are nameless and are essentially
-                  # a partition of the complete variable. To reconstruct the complete
-                  # variable, merge the referencing variable with the referenced variable.
-                  #
-                  # When using the shared variable table, the following variables:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &amp;x;
-                  #     T&amp; r = x;
-                  #
-                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                  #     { name: "r", type="T&amp;", var_table_index: 3 }
-                  #
-                  #     {  // Shared variable table entry #3:
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # Note that the pointer address is stored with the referencing variable
-                  # and not with the referenced variable. This allows the referenced variable
-                  # to be shared between pointers and references.
-                  #
-                  # The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                    # unset. A status of a single variable only applies to that variable or
-                    # expression. The rest of breakpoint data still remains valid. Variables
-                    # might be reported in error state even when breakpoint is not in final
-                    # state.
-                    #
-                    # The message may refer to variable name with `refers_to` set to
-                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                    # In either case variable value and members will be unset.
-                    #
-                    # Example of error message applied to name: `Invalid expression syntax`.
-                    #
-                    # Example of information message applied to value: `Not captured`.
-                    #
-                    # Examples of error message applied to value:
-                    #
-                    # *   `Malformed string`,
-                    # *   `Field f not found in class C`
-                    # *   `Null pointer dereference`
-                    # The message can indicate an error or informational status, and refer to
-                    # specific parts of the containing object.
-                    # For example, the `Breakpoint.status` field can indicate an error referring
-                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                  "isError": True or False, # Distinguishes errors from informational messages.
-                  "refersTo": "A String", # Reference to which the message applies.
-                  "description": { # Represents a message with parameters. # Status message text.
-                    "parameters": [ # Optional parameters to be embedded into the message.
-                      "A String",
-                    ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                        # character.
-                        #
-                        # Examples:
-                        #
-                        # *   `Failed to load '$0' which helps debug $1 the first time it
-                        #     is loaded.  Again, $0 is very important.`
-                        # *   `Please pay $$10 to use $0 instead of $1.`
-                  },
-                },
-                "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                    # one variable can reference the same variable in the table. The
-                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
-                "value": "A String", # Simple value of the variable.
-                "members": [ # Members contained or pointed to by the variable.
-                  # Object with schema name: Variable
-                ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                    # `var_table_index`, `type` goes next to `value`. The interpretation of
-                    # a type is agent specific. It is recommended to include the dynamic type
-                    # rather than a static type of an object.
-              },
-            ],
-            "locals": [ # Set of local variables at the stack frame location.
-                # Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type.
-                  # Note how the following variables are represented:
-                  #
-                  # 1) A simple variable:
-                  #
-                  #     int x = 5
-                  #
-                  #     { name: "x", value: "5", type: "int" }  // Captured variable
-                  #
-                  # 2) A compound object:
-                  #
-                  #     struct T {
-                  #         int m1;
-                  #         int m2;
-                  #     };
-                  #     T x = { 3, 7 };
-                  #
-                  #     {  // Captured variable
-                  #         name: "x",
-                  #         type: "T",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 3) A pointer where the pointee was captured:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &amp;x;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00500500",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 4) A pointer where the pointee was not captured:
-                  #
-                  #     T* p = new T;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00400400"
-                  #         status { is_error: true, description { format: "unavailable" } }
-                  #     }
-                  #
-                  # The status should describe the reason for the missing value,
-                  # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-                  #
-                  # Note that a null pointer should not have members.
-                  #
-                  # 5) An unnamed value:
-                  #
-                  #     int* p = new int(7);
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         value: "0x00500500",
-                  #         type: "int*",
-                  #         members { value: "7", type: "int" } }
-                  #
-                  # 6) An unnamed pointer where the pointee was not captured:
-                  #
-                  #     int* p = new int(7);
-                  #     int** pp = &amp;p;
-                  #
-                  #     {  // Captured variable
-                  #         name: "pp",
-                  #         value: "0x00500500",
-                  #         type: "int**",
-                  #         members {
-                  #             value: "0x00400400",
-                  #             type: "int*"
-                  #             status {
-                  #                 is_error: true,
-                  #                 description: { format: "unavailable" } }
-                  #             }
-                  #         }
-                  #     }
-                  #
-                  # To optimize computation, memory and network traffic, variables that
-                  # repeat in the output multiple times can be stored once in a shared
-                  # variable table and be referenced using the `var_table_index` field.  The
-                  # variables stored in the shared table are nameless and are essentially
-                  # a partition of the complete variable. To reconstruct the complete
-                  # variable, merge the referencing variable with the referenced variable.
-                  #
-                  # When using the shared variable table, the following variables:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &amp;x;
-                  #     T&amp; r = x;
-                  #
-                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                  #     { name: "r", type="T&amp;", var_table_index: 3 }
-                  #
-                  #     {  // Shared variable table entry #3:
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # Note that the pointer address is stored with the referencing variable
-                  # and not with the referenced variable. This allows the referenced variable
-                  # to be shared between pointers and references.
-                  #
-                  # The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                    # unset. A status of a single variable only applies to that variable or
-                    # expression. The rest of breakpoint data still remains valid. Variables
-                    # might be reported in error state even when breakpoint is not in final
-                    # state.
-                    #
-                    # The message may refer to variable name with `refers_to` set to
-                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                    # In either case variable value and members will be unset.
-                    #
-                    # Example of error message applied to name: `Invalid expression syntax`.
-                    #
-                    # Example of information message applied to value: `Not captured`.
-                    #
-                    # Examples of error message applied to value:
-                    #
-                    # *   `Malformed string`,
-                    # *   `Field f not found in class C`
-                    # *   `Null pointer dereference`
-                    # The message can indicate an error or informational status, and refer to
-                    # specific parts of the containing object.
-                    # For example, the `Breakpoint.status` field can indicate an error referring
-                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                  "isError": True or False, # Distinguishes errors from informational messages.
-                  "refersTo": "A String", # Reference to which the message applies.
-                  "description": { # Represents a message with parameters. # Status message text.
-                    "parameters": [ # Optional parameters to be embedded into the message.
-                      "A String",
-                    ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                        # character.
-                        #
-                        # Examples:
-                        #
-                        # *   `Failed to load '$0' which helps debug $1 the first time it
-                        #     is loaded.  Again, $0 is very important.`
-                        # *   `Please pay $$10 to use $0 instead of $1.`
-                  },
-                },
-                "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                    # one variable can reference the same variable in the table. The
-                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
-                "value": "A String", # Simple value of the variable.
-                "members": [ # Members contained or pointed to by the variable.
-                  # Object with schema name: Variable
-                ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                    # `var_table_index`, `type` goes next to `value`. The interpretation of
-                    # a type is agent specific. It is recommended to include the dynamic type
-                    # rather than a static type of an object.
-              },
-            ],
-            "location": { # Represents a location in the source code. # Source location of the call site.
-              "column": 42, # Column within a line. The first column in a line as the value `1`.
-                  # Agents that do not support setting breakpoints on specific columns ignore
-                  # this field.
-              "path": "A String", # Path to the source file within the source context of the target binary.
-              "line": 42, # Line inside the file. The first line in the file has the value `1`.
-            },
-          },
-        ],
-        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
-        "canaryExpireTime": "A String", # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
-            # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
-        "location": { # Represents a location in the source code. # Breakpoint source location.
-          "column": 42, # Column within a line. The first column in a line as the value `1`.
-              # Agents that do not support setting breakpoints on specific columns ignore
-              # this field.
-          "path": "A String", # Path to the source file within the source context of the target binary.
-          "line": 42, # Line inside the file. The first line in the file has the value `1`.
-        },
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-            # resolution.
-        "action": "A String", # Action that the agent should perform when the code at the
-            # breakpoint location is hit.
-        "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+        &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
             # The expressions are composed using expressions in the programming language
             # at the source location. If the breakpoint action is `LOG`, the evaluated
             # expressions are included in log statements.
-          "A String",
+          &quot;A String&quot;,
         ],
-        "isFinalState": True or False, # When true, indicates that this is a final result and the
-            # breakpoint state will not change from here on.
-        "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+        &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
             # The evaluated expressions appear in exactly the same order they
             # are listed in the `expressions` field.
             # The `name` field holds the original expression text, the `value` or
@@ -1552,7 +1208,7 @@
               #
               #     int x = 5
               #
-              #     { name: "x", value: "5", type: "int" }  // Captured variable
+              #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
               #
               # 2) A compound object:
               #
@@ -1563,10 +1219,10 @@
               #     T x = { 3, 7 };
               #
               #     {  // Captured variable
-              #         name: "x",
-              #         type: "T",
-              #         members { name: "m1", value: "3", type: "int" },
-              #         members { name: "m2", value: "7", type: "int" }
+              #         name: &quot;x&quot;,
+              #         type: &quot;T&quot;,
+              #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+              #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
               #     }
               #
               # 3) A pointer where the pointee was captured:
@@ -1575,11 +1231,11 @@
               #     T* p = &amp;x;
               #
               #     {   // Captured variable
-              #         name: "p",
-              #         type: "T*",
-              #         value: "0x00500500",
-              #         members { name: "m1", value: "3", type: "int" },
-              #         members { name: "m2", value: "7", type: "int" }
+              #         name: &quot;p&quot;,
+              #         type: &quot;T*&quot;,
+              #         value: &quot;0x00500500&quot;,
+              #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+              #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
               #     }
               #
               # 4) A pointer where the pointee was not captured:
@@ -1587,10 +1243,10 @@
               #     T* p = new T;
               #
               #     {   // Captured variable
-              #         name: "p",
-              #         type: "T*",
-              #         value: "0x00400400"
-              #         status { is_error: true, description { format: "unavailable" } }
+              #         name: &quot;p&quot;,
+              #         type: &quot;T*&quot;,
+              #         value: &quot;0x00400400&quot;
+              #         status { is_error: true, description { format: &quot;unavailable&quot; } }
               #     }
               #
               # The status should describe the reason for the missing value,
@@ -1603,10 +1259,10 @@
               #     int* p = new int(7);
               #
               #     {   // Captured variable
-              #         name: "p",
-              #         value: "0x00500500",
-              #         type: "int*",
-              #         members { value: "7", type: "int" } }
+              #         name: &quot;p&quot;,
+              #         value: &quot;0x00500500&quot;,
+              #         type: &quot;int*&quot;,
+              #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
               #
               # 6) An unnamed pointer where the pointee was not captured:
               #
@@ -1614,15 +1270,15 @@
               #     int** pp = &amp;p;
               #
               #     {  // Captured variable
-              #         name: "pp",
-              #         value: "0x00500500",
-              #         type: "int**",
+              #         name: &quot;pp&quot;,
+              #         value: &quot;0x00500500&quot;,
+              #         type: &quot;int**&quot;,
               #         members {
-              #             value: "0x00400400",
-              #             type: "int*"
+              #             value: &quot;0x00400400&quot;,
+              #             type: &quot;int*&quot;
               #             status {
               #                 is_error: true,
-              #                 description: { format: "unavailable" } }
+              #                 description: { format: &quot;unavailable&quot; } }
               #             }
               #         }
               #     }
@@ -1640,13 +1296,13 @@
               #     T* p = &amp;x;
               #     T&amp; r = x;
               #
-              #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-              #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-              #     { name: "r", type="T&amp;", var_table_index: 3 }
+              #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+              #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+              #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
               #
               #     {  // Shared variable table entry #3:
-              #         members { name: "m1", value: "3", type: "int" },
-              #         members { name: "m2", value: "7", type: "int" }
+              #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+              #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
               #     }
               #
               # Note that the pointer address is stored with the referencing variable
@@ -1654,7 +1310,10 @@
               # to be shared between pointers and references.
               #
               # The type field is optional. The debugger agent may or may not support it.
-            "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+            &quot;members&quot;: [ # Members contained or pointed to by the variable.
+              # Object with schema name: Variable
+            ],
+            &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
                 # unset. A status of a single variable only applies to that variable or
                 # expression. The rest of breakpoint data still remains valid. Variables
                 # might be reported in error state even when breakpoint is not in final
@@ -1677,39 +1336,380 @@
                 # specific parts of the containing object.
                 # For example, the `Breakpoint.status` field can indicate an error referring
                 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-              "isError": True or False, # Distinguishes errors from informational messages.
-              "refersTo": "A String", # Reference to which the message applies.
-              "description": { # Represents a message with parameters. # Status message text.
-                "parameters": [ # Optional parameters to be embedded into the message.
-                  "A String",
+              &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+              &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                  &quot;A String&quot;,
                 ],
-                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                     # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                     # character.
                     #
                     # Examples:
                     #
-                    # *   `Failed to load '$0' which helps debug $1 the first time it
+                    # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                     #     is loaded.  Again, $0 is very important.`
                     # *   `Please pay $$10 to use $0 instead of $1.`
               },
+              &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
             },
-            "name": "A String", # Name of the variable, if any.
-            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                # one variable can reference the same variable in the table. The
-                # `var_table_index` field is an index into `variable_table` in Breakpoint.
-            "value": "A String", # Simple value of the variable.
-            "members": [ # Members contained or pointed to by the variable.
-              # Object with schema name: Variable
-            ],
-            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+            &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+            &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
                 # `var_table_index`, `type` goes next to `value`. The interpretation of
                 # a type is agent specific. It is recommended to include the dynamic type
                 # rather than a static type of an object.
+            &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                # one variable can reference the same variable in the table. The
+                # `var_table_index` field is an index into `variable_table` in Breakpoint.
+            &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
           },
         ],
-        "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-        "condition": "A String", # Condition that triggers the breakpoint.
+        &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
+            # breakpoint state will not change from here on.
+        &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
+            # recently entered function.
+          { # Represents a stack frame context.
+            &quot;arguments&quot;: [ # Set of arguments passed to this function.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: &quot;x&quot;,
+                  #         type: &quot;T&quot;,
+                  #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                  #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &amp;x;
+                  #
+                  #     {   // Captured variable
+                  #         name: &quot;p&quot;,
+                  #         type: &quot;T*&quot;,
+                  #         value: &quot;0x00500500&quot;,
+                  #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                  #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: &quot;p&quot;,
+                  #         type: &quot;T*&quot;,
+                  #         value: &quot;0x00400400&quot;
+                  #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: &quot;p&quot;,
+                  #         value: &quot;0x00500500&quot;,
+                  #         type: &quot;int*&quot;,
+                  #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &amp;p;
+                  #
+                  #     {  // Captured variable
+                  #         name: &quot;pp&quot;,
+                  #         value: &quot;0x00500500&quot;,
+                  #         type: &quot;int**&quot;,
+                  #         members {
+                  #             value: &quot;0x00400400&quot;,
+                  #             type: &quot;int*&quot;
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: &quot;unavailable&quot; } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &amp;x;
+                  #     T&amp; r = x;
+                  #
+                  #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+                  #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+                  #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                  #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                &quot;members&quot;: [ # Members contained or pointed to by the variable.
+                  # Object with schema name: Variable
+                ],
+                &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                  &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+                  &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                    &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                      &quot;A String&quot;,
+                    ],
+                    &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
+                  },
+                  &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+                },
+                &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+                &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
+                &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
+                &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+              },
+            ],
+            &quot;locals&quot;: [ # Set of local variables at the stack frame location.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: &quot;x&quot;,
+                  #         type: &quot;T&quot;,
+                  #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                  #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &amp;x;
+                  #
+                  #     {   // Captured variable
+                  #         name: &quot;p&quot;,
+                  #         type: &quot;T*&quot;,
+                  #         value: &quot;0x00500500&quot;,
+                  #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                  #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: &quot;p&quot;,
+                  #         type: &quot;T*&quot;,
+                  #         value: &quot;0x00400400&quot;
+                  #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: &quot;p&quot;,
+                  #         value: &quot;0x00500500&quot;,
+                  #         type: &quot;int*&quot;,
+                  #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &amp;p;
+                  #
+                  #     {  // Captured variable
+                  #         name: &quot;pp&quot;,
+                  #         value: &quot;0x00500500&quot;,
+                  #         type: &quot;int**&quot;,
+                  #         members {
+                  #             value: &quot;0x00400400&quot;,
+                  #             type: &quot;int*&quot;
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: &quot;unavailable&quot; } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &amp;x;
+                  #     T&amp; r = x;
+                  #
+                  #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+                  #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+                  #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                  #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                &quot;members&quot;: [ # Members contained or pointed to by the variable.
+                  # Object with schema name: Variable
+                ],
+                &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                  &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+                  &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                    &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                      &quot;A String&quot;,
+                    ],
+                    &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
+                  },
+                  &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+                },
+                &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+                &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
+                &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
+                &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+              },
+            ],
+            &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
+              &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+              &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+                  # Agents that do not support setting breakpoints on specific columns ignore
+                  # this field.
+              &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+            },
+            &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
+          },
+        ],
+        &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
             # The condition is a compound boolean expression composed using expressions
             # in a programming language at the source location.
       },
@@ -1718,7 +1718,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="set">set(debuggeeId, body=None, clientVersion=None, canaryOption=None, x__xgafv=None)</code>
+    <code class="details" id="set">set(debuggeeId, body=None, canaryOption=None, clientVersion=None, x__xgafv=None)</code>
   <pre>Sets the breakpoint to the debuggee.
 
 Args:
@@ -1730,7 +1730,9 @@
     # ## Breakpoint (the resource)
     # 
     # Represents the breakpoint specification, status and results.
-  "status": { # Represents a contextual status message. # Breakpoint status.
+  &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
+      # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
+  &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
       # 
       # The status includes an error flag and a human readable message.
       # This field is usually unset. The message can be either
@@ -1749,24 +1751,39 @@
       # specific parts of the containing object.
       # For example, the `Breakpoint.status` field can indicate an error referring
       # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-    "isError": True or False, # Distinguishes errors from informational messages.
-    "refersTo": "A String", # Reference to which the message applies.
-    "description": { # Represents a message with parameters. # Status message text.
-      "parameters": [ # Optional parameters to be embedded into the message.
-        "A String",
+    &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+    &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+      &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+        &quot;A String&quot;,
       ],
-      "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+      &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
           # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
           # character.
           #
           # Examples:
           #
-          # *   `Failed to load '$0' which helps debug $1 the first time it
+          # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
           #     is loaded.  Again, $0 is very important.`
           # *   `Please pay $$10 to use $0 instead of $1.`
     },
+    &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
   },
-  "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
+  &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
+  &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
+      # breakpoint location is hit.
+  &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
+  &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
+  &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
+    &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+    &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+        # Agents that do not support setting breakpoints on specific columns ignore
+        # this field.
+    &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+  },
+  &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
+      # resolution.
+  &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
       # traffic optimization.  It enables storing a variable once and reference
       # it from multiple variables, including variables stored in the
       # `variable_table` itself.
@@ -1785,7 +1802,7 @@
         #
         #     int x = 5
         #
-        #     { name: "x", value: "5", type: "int" }  // Captured variable
+        #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
         #
         # 2) A compound object:
         #
@@ -1796,10 +1813,10 @@
         #     T x = { 3, 7 };
         #
         #     {  // Captured variable
-        #         name: "x",
-        #         type: "T",
-        #         members { name: "m1", value: "3", type: "int" },
-        #         members { name: "m2", value: "7", type: "int" }
+        #         name: &quot;x&quot;,
+        #         type: &quot;T&quot;,
+        #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+        #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
         #     }
         #
         # 3) A pointer where the pointee was captured:
@@ -1808,11 +1825,11 @@
         #     T* p = &amp;x;
         #
         #     {   // Captured variable
-        #         name: "p",
-        #         type: "T*",
-        #         value: "0x00500500",
-        #         members { name: "m1", value: "3", type: "int" },
-        #         members { name: "m2", value: "7", type: "int" }
+        #         name: &quot;p&quot;,
+        #         type: &quot;T*&quot;,
+        #         value: &quot;0x00500500&quot;,
+        #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+        #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
         #     }
         #
         # 4) A pointer where the pointee was not captured:
@@ -1820,10 +1837,10 @@
         #     T* p = new T;
         #
         #     {   // Captured variable
-        #         name: "p",
-        #         type: "T*",
-        #         value: "0x00400400"
-        #         status { is_error: true, description { format: "unavailable" } }
+        #         name: &quot;p&quot;,
+        #         type: &quot;T*&quot;,
+        #         value: &quot;0x00400400&quot;
+        #         status { is_error: true, description { format: &quot;unavailable&quot; } }
         #     }
         #
         # The status should describe the reason for the missing value,
@@ -1836,10 +1853,10 @@
         #     int* p = new int(7);
         #
         #     {   // Captured variable
-        #         name: "p",
-        #         value: "0x00500500",
-        #         type: "int*",
-        #         members { value: "7", type: "int" } }
+        #         name: &quot;p&quot;,
+        #         value: &quot;0x00500500&quot;,
+        #         type: &quot;int*&quot;,
+        #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
         #
         # 6) An unnamed pointer where the pointee was not captured:
         #
@@ -1847,15 +1864,15 @@
         #     int** pp = &amp;p;
         #
         #     {  // Captured variable
-        #         name: "pp",
-        #         value: "0x00500500",
-        #         type: "int**",
+        #         name: &quot;pp&quot;,
+        #         value: &quot;0x00500500&quot;,
+        #         type: &quot;int**&quot;,
         #         members {
-        #             value: "0x00400400",
-        #             type: "int*"
+        #             value: &quot;0x00400400&quot;,
+        #             type: &quot;int*&quot;
         #             status {
         #                 is_error: true,
-        #                 description: { format: "unavailable" } }
+        #                 description: { format: &quot;unavailable&quot; } }
         #             }
         #         }
         #     }
@@ -1873,13 +1890,13 @@
         #     T* p = &amp;x;
         #     T&amp; r = x;
         #
-        #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-        #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-        #     { name: "r", type="T&amp;", var_table_index: 3 }
+        #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+        #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+        #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
         #
         #     {  // Shared variable table entry #3:
-        #         members { name: "m1", value: "3", type: "int" },
-        #         members { name: "m2", value: "7", type: "int" }
+        #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+        #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
         #     }
         #
         # Note that the pointer address is stored with the referencing variable
@@ -1887,7 +1904,10 @@
         # to be shared between pointers and references.
         #
         # The type field is optional. The debugger agent may or may not support it.
-      "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+      &quot;members&quot;: [ # Members contained or pointed to by the variable.
+        # Object with schema name: Variable
+      ],
+      &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
           # unset. A status of a single variable only applies to that variable or
           # expression. The rest of breakpoint data still remains valid. Variables
           # might be reported in error state even when breakpoint is not in final
@@ -1910,39 +1930,36 @@
           # specific parts of the containing object.
           # For example, the `Breakpoint.status` field can indicate an error referring
           # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-        "isError": True or False, # Distinguishes errors from informational messages.
-        "refersTo": "A String", # Reference to which the message applies.
-        "description": { # Represents a message with parameters. # Status message text.
-          "parameters": [ # Optional parameters to be embedded into the message.
-            "A String",
+        &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+        &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+          &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+            &quot;A String&quot;,
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+          &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
               # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
               # character.
               #
               # Examples:
               #
-              # *   `Failed to load '$0' which helps debug $1 the first time it
+              # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
               #     is loaded.  Again, $0 is very important.`
               # *   `Please pay $$10 to use $0 instead of $1.`
         },
+        &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
       },
-      "name": "A String", # Name of the variable, if any.
-      "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-          # one variable can reference the same variable in the table. The
-          # `var_table_index` field is an index into `variable_table` in Breakpoint.
-      "value": "A String", # Simple value of the variable.
-      "members": [ # Members contained or pointed to by the variable.
-        # Object with schema name: Variable
-      ],
-      "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+      &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+      &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
           # `var_table_index`, `type` goes next to `value`. The interpretation of
           # a type is agent specific. It is recommended to include the dynamic type
           # rather than a static type of an object.
+      &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+          # one variable can reference the same variable in the table. The
+          # `var_table_index` field is an index into `variable_table` in Breakpoint.
+      &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
     },
   ],
-  "userEmail": "A String", # E-mail address of the user that created this breakpoint
-  "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+  &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
+  &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
       # the breakpoint hits. The message may include parameter placeholders `$0`,
       # `$1`, etc. These placeholders are replaced with the evaluated value
       # of the appropriate expression. Expressions not referenced in
@@ -1950,378 +1967,17 @@
       # 
       # Example: `Message received, id = $0, count = $1` with
       # `expressions` = `[ message.id, message.count ]`.
-  "state": "A String", # The current state of the breakpoint.
-  "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-  "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+  &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
       # displayed to the user.
-    "a_key": "A String",
+    &quot;a_key&quot;: &quot;A String&quot;,
   },
-  "stackFrames": [ # The stack at breakpoint time, where stack_frames[0] represents the most
-      # recently entered function.
-    { # Represents a stack frame context.
-      "function": "A String", # Demangled function name at the call site.
-      "arguments": [ # Set of arguments passed to this function.
-          # Note that this might not be populated for all stack frames.
-        { # Represents a variable or an argument possibly of a compound object type.
-            # Note how the following variables are represented:
-            #
-            # 1) A simple variable:
-            #
-            #     int x = 5
-            #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
-            #
-            # 2) A compound object:
-            #
-            #     struct T {
-            #         int m1;
-            #         int m2;
-            #     };
-            #     T x = { 3, 7 };
-            #
-            #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # 3) A pointer where the pointee was captured:
-            #
-            #     T x = { 3, 7 };
-            #     T* p = &amp;x;
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # 4) A pointer where the pointee was not captured:
-            #
-            #     T* p = new T;
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
-            #     }
-            #
-            # The status should describe the reason for the missing value,
-            # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-            #
-            # Note that a null pointer should not have members.
-            #
-            # 5) An unnamed value:
-            #
-            #     int* p = new int(7);
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
-            #
-            # 6) An unnamed pointer where the pointee was not captured:
-            #
-            #     int* p = new int(7);
-            #     int** pp = &amp;p;
-            #
-            #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
-            #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
-            #             status {
-            #                 is_error: true,
-            #                 description: { format: "unavailable" } }
-            #             }
-            #         }
-            #     }
-            #
-            # To optimize computation, memory and network traffic, variables that
-            # repeat in the output multiple times can be stored once in a shared
-            # variable table and be referenced using the `var_table_index` field.  The
-            # variables stored in the shared table are nameless and are essentially
-            # a partition of the complete variable. To reconstruct the complete
-            # variable, merge the referencing variable with the referenced variable.
-            #
-            # When using the shared variable table, the following variables:
-            #
-            #     T x = { 3, 7 };
-            #     T* p = &amp;x;
-            #     T&amp; r = x;
-            #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&amp;", var_table_index: 3 }
-            #
-            #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # Note that the pointer address is stored with the referencing variable
-            # and not with the referenced variable. This allows the referenced variable
-            # to be shared between pointers and references.
-            #
-            # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-              # unset. A status of a single variable only applies to that variable or
-              # expression. The rest of breakpoint data still remains valid. Variables
-              # might be reported in error state even when breakpoint is not in final
-              # state.
-              #
-              # The message may refer to variable name with `refers_to` set to
-              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-              # In either case variable value and members will be unset.
-              #
-              # Example of error message applied to name: `Invalid expression syntax`.
-              #
-              # Example of information message applied to value: `Not captured`.
-              #
-              # Examples of error message applied to value:
-              #
-              # *   `Malformed string`,
-              # *   `Field f not found in class C`
-              # *   `Null pointer dereference`
-              # The message can indicate an error or informational status, and refer to
-              # specific parts of the containing object.
-              # For example, the `Breakpoint.status` field can indicate an error referring
-              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
-              ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                  # character.
-                  #
-                  # Examples:
-                  #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
-                  #     is loaded.  Again, $0 is very important.`
-                  # *   `Please pay $$10 to use $0 instead of $1.`
-            },
-          },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-              # `var_table_index`, `type` goes next to `value`. The interpretation of
-              # a type is agent specific. It is recommended to include the dynamic type
-              # rather than a static type of an object.
-        },
-      ],
-      "locals": [ # Set of local variables at the stack frame location.
-          # Note that this might not be populated for all stack frames.
-        { # Represents a variable or an argument possibly of a compound object type.
-            # Note how the following variables are represented:
-            #
-            # 1) A simple variable:
-            #
-            #     int x = 5
-            #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
-            #
-            # 2) A compound object:
-            #
-            #     struct T {
-            #         int m1;
-            #         int m2;
-            #     };
-            #     T x = { 3, 7 };
-            #
-            #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # 3) A pointer where the pointee was captured:
-            #
-            #     T x = { 3, 7 };
-            #     T* p = &amp;x;
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # 4) A pointer where the pointee was not captured:
-            #
-            #     T* p = new T;
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
-            #     }
-            #
-            # The status should describe the reason for the missing value,
-            # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-            #
-            # Note that a null pointer should not have members.
-            #
-            # 5) An unnamed value:
-            #
-            #     int* p = new int(7);
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
-            #
-            # 6) An unnamed pointer where the pointee was not captured:
-            #
-            #     int* p = new int(7);
-            #     int** pp = &amp;p;
-            #
-            #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
-            #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
-            #             status {
-            #                 is_error: true,
-            #                 description: { format: "unavailable" } }
-            #             }
-            #         }
-            #     }
-            #
-            # To optimize computation, memory and network traffic, variables that
-            # repeat in the output multiple times can be stored once in a shared
-            # variable table and be referenced using the `var_table_index` field.  The
-            # variables stored in the shared table are nameless and are essentially
-            # a partition of the complete variable. To reconstruct the complete
-            # variable, merge the referencing variable with the referenced variable.
-            #
-            # When using the shared variable table, the following variables:
-            #
-            #     T x = { 3, 7 };
-            #     T* p = &amp;x;
-            #     T&amp; r = x;
-            #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&amp;", var_table_index: 3 }
-            #
-            #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # Note that the pointer address is stored with the referencing variable
-            # and not with the referenced variable. This allows the referenced variable
-            # to be shared between pointers and references.
-            #
-            # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-              # unset. A status of a single variable only applies to that variable or
-              # expression. The rest of breakpoint data still remains valid. Variables
-              # might be reported in error state even when breakpoint is not in final
-              # state.
-              #
-              # The message may refer to variable name with `refers_to` set to
-              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-              # In either case variable value and members will be unset.
-              #
-              # Example of error message applied to name: `Invalid expression syntax`.
-              #
-              # Example of information message applied to value: `Not captured`.
-              #
-              # Examples of error message applied to value:
-              #
-              # *   `Malformed string`,
-              # *   `Field f not found in class C`
-              # *   `Null pointer dereference`
-              # The message can indicate an error or informational status, and refer to
-              # specific parts of the containing object.
-              # For example, the `Breakpoint.status` field can indicate an error referring
-              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
-              ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                  # character.
-                  #
-                  # Examples:
-                  #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
-                  #     is loaded.  Again, $0 is very important.`
-                  # *   `Please pay $$10 to use $0 instead of $1.`
-            },
-          },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-              # `var_table_index`, `type` goes next to `value`. The interpretation of
-              # a type is agent specific. It is recommended to include the dynamic type
-              # rather than a static type of an object.
-        },
-      ],
-      "location": { # Represents a location in the source code. # Source location of the call site.
-        "column": 42, # Column within a line. The first column in a line as the value `1`.
-            # Agents that do not support setting breakpoints on specific columns ignore
-            # this field.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-    },
-  ],
-  "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
-  "canaryExpireTime": "A String", # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
-      # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
-  "location": { # Represents a location in the source code. # Breakpoint source location.
-    "column": 42, # Column within a line. The first column in a line as the value `1`.
-        # Agents that do not support setting breakpoints on specific columns ignore
-        # this field.
-    "path": "A String", # Path to the source file within the source context of the target binary.
-    "line": 42, # Line inside the file. The first line in the file has the value `1`.
-  },
-  "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-      # resolution.
-  "action": "A String", # Action that the agent should perform when the code at the
-      # breakpoint location is hit.
-  "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+  &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
       # The expressions are composed using expressions in the programming language
       # at the source location. If the breakpoint action is `LOG`, the evaluated
       # expressions are included in log statements.
-    "A String",
+    &quot;A String&quot;,
   ],
-  "isFinalState": True or False, # When true, indicates that this is a final result and the
-      # breakpoint state will not change from here on.
-  "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+  &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
       # The evaluated expressions appear in exactly the same order they
       # are listed in the `expressions` field.
       # The `name` field holds the original expression text, the `value` or
@@ -2335,7 +1991,7 @@
         #
         #     int x = 5
         #
-        #     { name: "x", value: "5", type: "int" }  // Captured variable
+        #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
         #
         # 2) A compound object:
         #
@@ -2346,10 +2002,10 @@
         #     T x = { 3, 7 };
         #
         #     {  // Captured variable
-        #         name: "x",
-        #         type: "T",
-        #         members { name: "m1", value: "3", type: "int" },
-        #         members { name: "m2", value: "7", type: "int" }
+        #         name: &quot;x&quot;,
+        #         type: &quot;T&quot;,
+        #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+        #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
         #     }
         #
         # 3) A pointer where the pointee was captured:
@@ -2358,11 +2014,11 @@
         #     T* p = &amp;x;
         #
         #     {   // Captured variable
-        #         name: "p",
-        #         type: "T*",
-        #         value: "0x00500500",
-        #         members { name: "m1", value: "3", type: "int" },
-        #         members { name: "m2", value: "7", type: "int" }
+        #         name: &quot;p&quot;,
+        #         type: &quot;T*&quot;,
+        #         value: &quot;0x00500500&quot;,
+        #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+        #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
         #     }
         #
         # 4) A pointer where the pointee was not captured:
@@ -2370,10 +2026,10 @@
         #     T* p = new T;
         #
         #     {   // Captured variable
-        #         name: "p",
-        #         type: "T*",
-        #         value: "0x00400400"
-        #         status { is_error: true, description { format: "unavailable" } }
+        #         name: &quot;p&quot;,
+        #         type: &quot;T*&quot;,
+        #         value: &quot;0x00400400&quot;
+        #         status { is_error: true, description { format: &quot;unavailable&quot; } }
         #     }
         #
         # The status should describe the reason for the missing value,
@@ -2386,10 +2042,10 @@
         #     int* p = new int(7);
         #
         #     {   // Captured variable
-        #         name: "p",
-        #         value: "0x00500500",
-        #         type: "int*",
-        #         members { value: "7", type: "int" } }
+        #         name: &quot;p&quot;,
+        #         value: &quot;0x00500500&quot;,
+        #         type: &quot;int*&quot;,
+        #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
         #
         # 6) An unnamed pointer where the pointee was not captured:
         #
@@ -2397,15 +2053,15 @@
         #     int** pp = &amp;p;
         #
         #     {  // Captured variable
-        #         name: "pp",
-        #         value: "0x00500500",
-        #         type: "int**",
+        #         name: &quot;pp&quot;,
+        #         value: &quot;0x00500500&quot;,
+        #         type: &quot;int**&quot;,
         #         members {
-        #             value: "0x00400400",
-        #             type: "int*"
+        #             value: &quot;0x00400400&quot;,
+        #             type: &quot;int*&quot;
         #             status {
         #                 is_error: true,
-        #                 description: { format: "unavailable" } }
+        #                 description: { format: &quot;unavailable&quot; } }
         #             }
         #         }
         #     }
@@ -2423,13 +2079,13 @@
         #     T* p = &amp;x;
         #     T&amp; r = x;
         #
-        #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-        #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-        #     { name: "r", type="T&amp;", var_table_index: 3 }
+        #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+        #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+        #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
         #
         #     {  // Shared variable table entry #3:
-        #         members { name: "m1", value: "3", type: "int" },
-        #         members { name: "m2", value: "7", type: "int" }
+        #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+        #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
         #     }
         #
         # Note that the pointer address is stored with the referencing variable
@@ -2437,7 +2093,10 @@
         # to be shared between pointers and references.
         #
         # The type field is optional. The debugger agent may or may not support it.
-      "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+      &quot;members&quot;: [ # Members contained or pointed to by the variable.
+        # Object with schema name: Variable
+      ],
+      &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
           # unset. A status of a single variable only applies to that variable or
           # expression. The rest of breakpoint data still remains valid. Variables
           # might be reported in error state even when breakpoint is not in final
@@ -2460,46 +2119,387 @@
           # specific parts of the containing object.
           # For example, the `Breakpoint.status` field can indicate an error referring
           # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-        "isError": True or False, # Distinguishes errors from informational messages.
-        "refersTo": "A String", # Reference to which the message applies.
-        "description": { # Represents a message with parameters. # Status message text.
-          "parameters": [ # Optional parameters to be embedded into the message.
-            "A String",
+        &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+        &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+          &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+            &quot;A String&quot;,
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+          &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
               # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
               # character.
               #
               # Examples:
               #
-              # *   `Failed to load '$0' which helps debug $1 the first time it
+              # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
               #     is loaded.  Again, $0 is very important.`
               # *   `Please pay $$10 to use $0 instead of $1.`
         },
+        &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
       },
-      "name": "A String", # Name of the variable, if any.
-      "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-          # one variable can reference the same variable in the table. The
-          # `var_table_index` field is an index into `variable_table` in Breakpoint.
-      "value": "A String", # Simple value of the variable.
-      "members": [ # Members contained or pointed to by the variable.
-        # Object with schema name: Variable
-      ],
-      "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+      &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+      &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
           # `var_table_index`, `type` goes next to `value`. The interpretation of
           # a type is agent specific. It is recommended to include the dynamic type
           # rather than a static type of an object.
+      &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+          # one variable can reference the same variable in the table. The
+          # `var_table_index` field is an index into `variable_table` in Breakpoint.
+      &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
     },
   ],
-  "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-  "condition": "A String", # Condition that triggers the breakpoint.
+  &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
+      # breakpoint state will not change from here on.
+  &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
+      # recently entered function.
+    { # Represents a stack frame context.
+      &quot;arguments&quot;: [ # Set of arguments passed to this function.
+          # Note that this might not be populated for all stack frames.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: &quot;x&quot;,
+            #         type: &quot;T&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &amp;x;
+            #
+            #     {   // Captured variable
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00400400&quot;
+            #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: &quot;p&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int*&quot;,
+            #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &amp;p;
+            #
+            #     {  // Captured variable
+            #         name: &quot;pp&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int**&quot;,
+            #         members {
+            #             value: &quot;0x00400400&quot;,
+            #             type: &quot;int*&quot;
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: &quot;unavailable&quot; } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &amp;x;
+            #     T&amp; r = x;
+            #
+            #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+            #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+            #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          &quot;members&quot;: [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+            &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+            &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+              &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                &quot;A String&quot;,
+              ],
+              &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
+            },
+            &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+          &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
+          &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+        },
+      ],
+      &quot;locals&quot;: [ # Set of local variables at the stack frame location.
+          # Note that this might not be populated for all stack frames.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: &quot;x&quot;,
+            #         type: &quot;T&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &amp;x;
+            #
+            #     {   // Captured variable
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00400400&quot;
+            #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: &quot;p&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int*&quot;,
+            #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &amp;p;
+            #
+            #     {  // Captured variable
+            #         name: &quot;pp&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int**&quot;,
+            #         members {
+            #             value: &quot;0x00400400&quot;,
+            #             type: &quot;int*&quot;
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: &quot;unavailable&quot; } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &amp;x;
+            #     T&amp; r = x;
+            #
+            #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+            #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+            #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          &quot;members&quot;: [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+            &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+            &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+              &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                &quot;A String&quot;,
+              ],
+              &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
+            },
+            &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+          &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
+          &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+        },
+      ],
+      &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
+        &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+        &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+            # Agents that do not support setting breakpoints on specific columns ignore
+            # this field.
+        &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+      },
+      &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
+    },
+  ],
+  &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
       # The condition is a compound boolean expression composed using expressions
       # in a programming language at the source location.
 }
 
+  canaryOption: string, The canary option set by the user upon setting breakpoint.
   clientVersion: string, Required. The client version making the call.
 Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
-  canaryOption: string, The canary option set by the user upon setting breakpoint.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -2509,12 +2509,14 @@
   An object of the form:
 
     { # Response for setting a breakpoint.
-    "breakpoint": { # ------------------------------------------------------------------------------ # Breakpoint resource.
+    &quot;breakpoint&quot;: { # ------------------------------------------------------------------------------ # Breakpoint resource.
         # The field `id` is guaranteed to be set (in addition to the echoed fields).
         # ## Breakpoint (the resource)
         #
         # Represents the breakpoint specification, status and results.
-      "status": { # Represents a contextual status message. # Breakpoint status.
+      &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
+          # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
+      &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
           #
           # The status includes an error flag and a human readable message.
           # This field is usually unset. The message can be either
@@ -2533,24 +2535,39 @@
           # specific parts of the containing object.
           # For example, the `Breakpoint.status` field can indicate an error referring
           # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-        "isError": True or False, # Distinguishes errors from informational messages.
-        "refersTo": "A String", # Reference to which the message applies.
-        "description": { # Represents a message with parameters. # Status message text.
-          "parameters": [ # Optional parameters to be embedded into the message.
-            "A String",
+        &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+        &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+          &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+            &quot;A String&quot;,
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+          &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
               # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
               # character.
               #
               # Examples:
               #
-              # *   `Failed to load '$0' which helps debug $1 the first time it
+              # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
               #     is loaded.  Again, $0 is very important.`
               # *   `Please pay $$10 to use $0 instead of $1.`
         },
+        &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
       },
-      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+      &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
+      &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
+      &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
+      &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
+      &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
+        &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+        &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+            # Agents that do not support setting breakpoints on specific columns ignore
+            # this field.
+        &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+      },
+      &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
+      &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
           # traffic optimization.  It enables storing a variable once and reference
           # it from multiple variables, including variables stored in the
           # `variable_table` itself.
@@ -2569,7 +2586,7 @@
             #
             #     int x = 5
             #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
             #
             # 2) A compound object:
             #
@@ -2580,10 +2597,10 @@
             #     T x = { 3, 7 };
             #
             #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;x&quot;,
+            #         type: &quot;T&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 3) A pointer where the pointee was captured:
@@ -2592,11 +2609,11 @@
             #     T* p = &amp;x;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 4) A pointer where the pointee was not captured:
@@ -2604,10 +2621,10 @@
             #     T* p = new T;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00400400&quot;
+            #         status { is_error: true, description { format: &quot;unavailable&quot; } }
             #     }
             #
             # The status should describe the reason for the missing value,
@@ -2620,10 +2637,10 @@
             #     int* p = new int(7);
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
+            #         name: &quot;p&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int*&quot;,
+            #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
             #
             # 6) An unnamed pointer where the pointee was not captured:
             #
@@ -2631,15 +2648,15 @@
             #     int** pp = &amp;p;
             #
             #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
+            #         name: &quot;pp&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int**&quot;,
             #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
+            #             value: &quot;0x00400400&quot;,
+            #             type: &quot;int*&quot;
             #             status {
             #                 is_error: true,
-            #                 description: { format: "unavailable" } }
+            #                 description: { format: &quot;unavailable&quot; } }
             #             }
             #         }
             #     }
@@ -2657,13 +2674,13 @@
             #     T* p = &amp;x;
             #     T&amp; r = x;
             #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&amp;", var_table_index: 3 }
+            #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+            #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+            #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
             #
             #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # Note that the pointer address is stored with the referencing variable
@@ -2671,7 +2688,10 @@
             # to be shared between pointers and references.
             #
             # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+          &quot;members&quot;: [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
               # unset. A status of a single variable only applies to that variable or
               # expression. The rest of breakpoint data still remains valid. Variables
               # might be reported in error state even when breakpoint is not in final
@@ -2694,39 +2714,36 @@
               # specific parts of the containing object.
               # For example, the `Breakpoint.status` field can indicate an error referring
               # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
+            &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+            &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+              &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                &quot;A String&quot;,
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                   # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                   # character.
                   #
                   # Examples:
                   #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                   #     is loaded.  Again, $0 is very important.`
                   # *   `Please pay $$10 to use $0 instead of $1.`
             },
+            &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
           },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+          &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+          &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
               # `var_table_index`, `type` goes next to `value`. The interpretation of
               # a type is agent specific. It is recommended to include the dynamic type
               # rather than a static type of an object.
+          &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
         },
       ],
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+      &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
+      &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
           # the breakpoint hits. The message may include parameter placeholders `$0`,
           # `$1`, etc. These placeholders are replaced with the evaluated value
           # of the appropriate expression. Expressions not referenced in
@@ -2734,378 +2751,17 @@
           #
           # Example: `Message received, id = $0, count = $1` with
           # `expressions` = `[ message.id, message.count ]`.
-      "state": "A String", # The current state of the breakpoint.
-      "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+      &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
           # displayed to the user.
-        "a_key": "A String",
+        &quot;a_key&quot;: &quot;A String&quot;,
       },
-      "stackFrames": [ # The stack at breakpoint time, where stack_frames[0] represents the most
-          # recently entered function.
-        { # Represents a stack frame context.
-          "function": "A String", # Demangled function name at the call site.
-          "arguments": [ # Set of arguments passed to this function.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &amp;p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #     T&amp; r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&amp;", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
-          "locals": [ # Set of local variables at the stack frame location.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &amp;p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &amp;x;
-                #     T&amp; r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&amp;", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "column": 42, # Column within a line. The first column in a line as the value `1`.
-                # Agents that do not support setting breakpoints on specific columns ignore
-                # this field.
-            "path": "A String", # Path to the source file within the source context of the target binary.
-            "line": 42, # Line inside the file. The first line in the file has the value `1`.
-          },
-        },
-      ],
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
-      "canaryExpireTime": "A String", # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
-          # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "column": 42, # Column within a line. The first column in a line as the value `1`.
-            # Agents that do not support setting breakpoints on specific columns ignore
-            # this field.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
-      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+      &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
           # The expressions are composed using expressions in the programming language
           # at the source location. If the breakpoint action is `LOG`, the evaluated
           # expressions are included in log statements.
-        "A String",
+        &quot;A String&quot;,
       ],
-      "isFinalState": True or False, # When true, indicates that this is a final result and the
-          # breakpoint state will not change from here on.
-      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+      &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
           # The evaluated expressions appear in exactly the same order they
           # are listed in the `expressions` field.
           # The `name` field holds the original expression text, the `value` or
@@ -3119,7 +2775,7 @@
             #
             #     int x = 5
             #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
             #
             # 2) A compound object:
             #
@@ -3130,10 +2786,10 @@
             #     T x = { 3, 7 };
             #
             #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;x&quot;,
+            #         type: &quot;T&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 3) A pointer where the pointee was captured:
@@ -3142,11 +2798,11 @@
             #     T* p = &amp;x;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # 4) A pointer where the pointee was not captured:
@@ -3154,10 +2810,10 @@
             #     T* p = new T;
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
+            #         name: &quot;p&quot;,
+            #         type: &quot;T*&quot;,
+            #         value: &quot;0x00400400&quot;
+            #         status { is_error: true, description { format: &quot;unavailable&quot; } }
             #     }
             #
             # The status should describe the reason for the missing value,
@@ -3170,10 +2826,10 @@
             #     int* p = new int(7);
             #
             #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
+            #         name: &quot;p&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int*&quot;,
+            #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
             #
             # 6) An unnamed pointer where the pointee was not captured:
             #
@@ -3181,15 +2837,15 @@
             #     int** pp = &amp;p;
             #
             #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
+            #         name: &quot;pp&quot;,
+            #         value: &quot;0x00500500&quot;,
+            #         type: &quot;int**&quot;,
             #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
+            #             value: &quot;0x00400400&quot;,
+            #             type: &quot;int*&quot;
             #             status {
             #                 is_error: true,
-            #                 description: { format: "unavailable" } }
+            #                 description: { format: &quot;unavailable&quot; } }
             #             }
             #         }
             #     }
@@ -3207,13 +2863,13 @@
             #     T* p = &amp;x;
             #     T&amp; r = x;
             #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&amp;", var_table_index: 3 }
+            #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+            #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+            #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
             #
             #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
+            #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+            #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
             #     }
             #
             # Note that the pointer address is stored with the referencing variable
@@ -3221,7 +2877,10 @@
             # to be shared between pointers and references.
             #
             # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+          &quot;members&quot;: [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
               # unset. A status of a single variable only applies to that variable or
               # expression. The rest of breakpoint data still remains valid. Variables
               # might be reported in error state even when breakpoint is not in final
@@ -3244,39 +2903,380 @@
               # specific parts of the containing object.
               # For example, the `Breakpoint.status` field can indicate an error referring
               # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
+            &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+            &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+              &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                &quot;A String&quot;,
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
                   # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
                   # character.
                   #
                   # Examples:
                   #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
                   #     is loaded.  Again, $0 is very important.`
                   # *   `Please pay $$10 to use $0 instead of $1.`
             },
+            &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
           },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+          &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+          &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
               # `var_table_index`, `type` goes next to `value`. The interpretation of
               # a type is agent specific. It is recommended to include the dynamic type
               # rather than a static type of an object.
+          &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
         },
       ],
-      "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-      "condition": "A String", # Condition that triggers the breakpoint.
+      &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
+          # breakpoint state will not change from here on.
+      &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
+          # recently entered function.
+        { # Represents a stack frame context.
+          &quot;arguments&quot;: [ # Set of arguments passed to this function.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: &quot;x&quot;,
+                #         type: &quot;T&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00400400&quot;
+                #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int*&quot;,
+                #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &amp;p;
+                #
+                #     {  // Captured variable
+                #         name: &quot;pp&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int**&quot;,
+                #         members {
+                #             value: &quot;0x00400400&quot;,
+                #             type: &quot;int*&quot;
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: &quot;unavailable&quot; } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #     T&amp; r = x;
+                #
+                #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+                #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+                #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              &quot;members&quot;: [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+                &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                  &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+                &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+              },
+              &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+              &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+              &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+            },
+          ],
+          &quot;locals&quot;: [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: &quot;x&quot;,
+                #         type: &quot;T&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         type: &quot;T*&quot;,
+                #         value: &quot;0x00400400&quot;
+                #         status { is_error: true, description { format: &quot;unavailable&quot; } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: &quot;p&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int*&quot;,
+                #         members { value: &quot;7&quot;, type: &quot;int&quot; } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &amp;p;
+                #
+                #     {  // Captured variable
+                #         name: &quot;pp&quot;,
+                #         value: &quot;0x00500500&quot;,
+                #         type: &quot;int**&quot;,
+                #         members {
+                #             value: &quot;0x00400400&quot;,
+                #             type: &quot;int*&quot;
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: &quot;unavailable&quot; } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &amp;x;
+                #     T&amp; r = x;
+                #
+                #     { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; }  // Captured variables
+                #     { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
+                #     { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
+                #         members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              &quot;members&quot;: [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
+                &quot;description&quot;: { # Represents a message with parameters. # Status message text.
+                  &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+                &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
+              },
+              &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
+              &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+              &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
+            },
+          ],
+          &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
+            &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
+            &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
+                # Agents that do not support setting breakpoints on specific columns ignore
+                # this field.
+            &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
+          },
+          &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
+        },
+      ],
+      &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
           # The condition is a compound boolean expression composed using expressions
           # in a programming language at the source location.
     },