# Stackdriver Debugger API . controller . debuggees

## Instance Methods

Returns the breakpoints Resource.

Registers the debuggee with the controller service.

### Method Details

`register(body, x__xgafv=None)`

    Registers the debuggee with the controller service.

    All agents attached to the same application should call this method with
    the same request content to get back the same stable `debuggee_id`. Agents
    should call this method again whenever `google.rpc.Code.NOT_FOUND` is
    returned from any controller method.

    This allows the controller service to disable the agent or recover from any
    data loss. If the debuggee is disabled by the server, the response will
    have `is_disabled` set to `true`.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # Request to register a debuggee.
        "debuggee": { # Represents the application to debug. The application may include one or more # Debuggee information to register.
            # The fields `project`, `uniquifier`, `description` and `agent_version`
            # of the debuggee must be set.
            # replicated processes executing the same code. Each of these processes is
            # attached with a debugger agent, carrying out the debugging commands.
            # The agents attached to the same debuggee are identified by using exactly the
            # same field values when registering.
          "status": { # Represents a contextual status message. # Human readable message to be displayed to the user about this debuggee.
              # Absence of this field indicates no status. The message can be either
              # informational or an error status.
              # 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.`
            },
          },
          "description": "A String", # Human readable description of the debuggee.
              # Including a human-readable project name, environment name and version
              # information is recommended.
          "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and
              # detach from the debuggee.
          "labels": { # A set of custom debuggee properties, populated by the agent, to be
              # displayed to the user.
            "a_key": "A String",
          },
          "uniquifier": "A String", # Debuggee uniquifier within the project.
              # Any string that identifies the application within the project can be used.
              # Including environment and version or build IDs is recommended.
          "project": "A String", # Project the debuggee is associated with.
              # Use the project number when registering a Google Cloud Platform project.
          "sourceContexts": [ # References to the locations and revisions of the source code used in the
              # deployed application.
              #
              # NOTE: This field is deprecated. Consumers should use
              # `ext_source_contexts` if it is not empty. Debug agents should populate
              # both this field and `ext_source_contexts`.
            { # A SourceContext is a reference to a tree of files. A SourceContext together
                # with a path point to a unique revision of a single file or directory.
              "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
                "snapshotId": "A String", # The ID of the snapshot.
                    # An empty snapshot_id refers to the most recent snapshot.
                "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                    # A cloud workspace is a place associated with a repo where modified files
                    # can be stored before they are committed.
                  "name": "A String", # The unique name of the workspace within the repo.  This is the name
                      # chosen by the client in the Source API's CreateWorkspace method.
                  "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                    "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                        # (e.g. winged-cargo-31) and a repo name within that project.
                      "projectId": "A String", # The ID of the project.
                      "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                    },
                    "uid": "A String", # A server-assigned, globally unique identifier.
                  },
                },
              },
              "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
                  # repo (a repo hosted by the Google Cloud Platform).
                "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                  "kind": "A String", # The alias kind.
                  "name": "A String", # The alias name.
                },
                "revisionId": "A String", # A revision ID.
                "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                      # (e.g. winged-cargo-31) and a repo name within that project.
                    "projectId": "A String", # The ID of the project.
                    "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                  },
                  "uid": "A String", # A server-assigned, globally unique identifier.
                },
              },
              "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
                  # repository (e.g. GitHub).
                "url": "A String", # Git repository URL.
                "revisionId": "A String", # Git commit hash.
                    # required.
              },
              "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
                "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                  "kind": "A String", # The alias kind.
                  "name": "A String", # The alias name.
                },
                "revisionId": "A String", # A revision (commit) ID.
                "hostUri": "A String", # The URI of a running Gerrit instance.
                "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                    # "project/subproject" is a valid project name.
                    # The "repo name" is hostURI/project.
              },
            },
          ],
          "extSourceContexts": [ # References to the locations and revisions of the source code used in the
              # deployed application.
              #
              # Contexts describing a remote repo related to the source code
              # have a `category` label of `remote_repo`. Source snapshot source
              # contexts have a `category` of `snapshot`.
            { # An ExtendedSourceContext is a SourceContext combined with additional
                # details describing the context.
              "labels": { # Labels with user defined metadata.
                "a_key": "A String",
              },
              "context": { # A SourceContext is a reference to a tree of files. A SourceContext together # Any source context.
                  # with a path point to a unique revision of a single file or directory.
                "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
                  "snapshotId": "A String", # The ID of the snapshot.
                      # An empty snapshot_id refers to the most recent snapshot.
                  "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                      # A cloud workspace is a place associated with a repo where modified files
                      # can be stored before they are committed.
                    "name": "A String", # The unique name of the workspace within the repo.  This is the name
                        # chosen by the client in the Source API's CreateWorkspace method.
                    "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                      "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                          # (e.g. winged-cargo-31) and a repo name within that project.
                        "projectId": "A String", # The ID of the project.
                        "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                      },
                      "uid": "A String", # A server-assigned, globally unique identifier.
                    },
                  },
                },
                "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
                    # repo (a repo hosted by the Google Cloud Platform).
                  "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                    "kind": "A String", # The alias kind.
                    "name": "A String", # The alias name.
                  },
                  "revisionId": "A String", # A revision ID.
                  "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                  "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
                    "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                        # (e.g. winged-cargo-31) and a repo name within that project.
                      "projectId": "A String", # The ID of the project.
                      "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                    },
                    "uid": "A String", # A server-assigned, globally unique identifier.
                  },
                },
                "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
                    # repository (e.g. GitHub).
                  "url": "A String", # Git repository URL.
                  "revisionId": "A String", # Git commit hash.
                      # required.
                },
                "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
                  "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                    "kind": "A String", # The alias kind.
                    "name": "A String", # The alias name.
                  },
                  "revisionId": "A String", # A revision (commit) ID.
                  "hostUri": "A String", # The URI of a running Gerrit instance.
                  "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                  "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                      # "project/subproject" is a valid project name.
                      # The "repo name" is hostURI/project.
                },
              },
            },
          ],
          "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as
              # following: `domain/type/vmajor.minor` (for example
              # `google.com/gcp-java/v1.1`).
          "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by
              # the Controller service.
          "id": "A String", # Unique identifier for the debuggee generated by the controller service.
        },
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response for registering a debuggee.
        "debuggee": { # Represents the application to debug. The application may include one or more # Debuggee resource.
            # The field `id` is guranteed to be set (in addition to the echoed fields).
            # replicated processes executing the same code. Each of these processes is
            # attached with a debugger agent, carrying out the debugging commands.
            # The agents attached to the same debuggee are identified by using exactly the
            # same field values when registering.
          "status": { # Represents a contextual status message. # Human readable message to be displayed to the user about this debuggee.
              # Absence of this field indicates no status. The message can be either
              # informational or an error status.
              # 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.`
            },
          },
          "description": "A String", # Human readable description of the debuggee.
              # Including a human-readable project name, environment name and version
              # information is recommended.
          "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and
              # detach from the debuggee.
          "labels": { # A set of custom debuggee properties, populated by the agent, to be
              # displayed to the user.
            "a_key": "A String",
          },
          "uniquifier": "A String", # Debuggee uniquifier within the project.
              # Any string that identifies the application within the project can be used.
              # Including environment and version or build IDs is recommended.
          "project": "A String", # Project the debuggee is associated with.
              # Use the project number when registering a Google Cloud Platform project.
          "sourceContexts": [ # References to the locations and revisions of the source code used in the
              # deployed application.
              #
              # NOTE: This field is deprecated. Consumers should use
              # `ext_source_contexts` if it is not empty. Debug agents should populate
              # both this field and `ext_source_contexts`.
            { # A SourceContext is a reference to a tree of files. A SourceContext together
                # with a path point to a unique revision of a single file or directory.
              "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
                "snapshotId": "A String", # The ID of the snapshot.
                    # An empty snapshot_id refers to the most recent snapshot.
                "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                    # A cloud workspace is a place associated with a repo where modified files
                    # can be stored before they are committed.
                  "name": "A String", # The unique name of the workspace within the repo.  This is the name
                      # chosen by the client in the Source API's CreateWorkspace method.
                  "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                    "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                        # (e.g. winged-cargo-31) and a repo name within that project.
                      "projectId": "A String", # The ID of the project.
                      "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                    },
                    "uid": "A String", # A server-assigned, globally unique identifier.
                  },
                },
              },
              "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
                  # repo (a repo hosted by the Google Cloud Platform).
                "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                  "kind": "A String", # The alias kind.
                  "name": "A String", # The alias name.
                },
                "revisionId": "A String", # A revision ID.
                "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                      # (e.g. winged-cargo-31) and a repo name within that project.
                    "projectId": "A String", # The ID of the project.
                    "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                  },
                  "uid": "A String", # A server-assigned, globally unique identifier.
                },
              },
              "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
                  # repository (e.g. GitHub).
                "url": "A String", # Git repository URL.
                "revisionId": "A String", # Git commit hash.
                    # required.
              },
              "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
                "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                  "kind": "A String", # The alias kind.
                  "name": "A String", # The alias name.
                },
                "revisionId": "A String", # A revision (commit) ID.
                "hostUri": "A String", # The URI of a running Gerrit instance.
                "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                    # "project/subproject" is a valid project name.
                    # The "repo name" is hostURI/project.
              },
            },
          ],
          "extSourceContexts": [ # References to the locations and revisions of the source code used in the
              # deployed application.
              #
              # Contexts describing a remote repo related to the source code
              # have a `category` label of `remote_repo`. Source snapshot source
              # contexts have a `category` of `snapshot`.
            { # An ExtendedSourceContext is a SourceContext combined with additional
                # details describing the context.
              "labels": { # Labels with user defined metadata.
                "a_key": "A String",
              },
              "context": { # A SourceContext is a reference to a tree of files. A SourceContext together # Any source context.
                  # with a path point to a unique revision of a single file or directory.
                "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
                  "snapshotId": "A String", # The ID of the snapshot.
                      # An empty snapshot_id refers to the most recent snapshot.
                  "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                      # A cloud workspace is a place associated with a repo where modified files
                      # can be stored before they are committed.
                    "name": "A String", # The unique name of the workspace within the repo.  This is the name
                        # chosen by the client in the Source API's CreateWorkspace method.
                    "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                      "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                          # (e.g. winged-cargo-31) and a repo name within that project.
                        "projectId": "A String", # The ID of the project.
                        "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                      },
                      "uid": "A String", # A server-assigned, globally unique identifier.
                    },
                  },
                },
                "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
                    # repo (a repo hosted by the Google Cloud Platform).
                  "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                    "kind": "A String", # The alias kind.
                    "name": "A String", # The alias name.
                  },
                  "revisionId": "A String", # A revision ID.
                  "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                  "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
                    "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                        # (e.g. winged-cargo-31) and a repo name within that project.
                      "projectId": "A String", # The ID of the project.
                      "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                    },
                    "uid": "A String", # A server-assigned, globally unique identifier.
                  },
                },
                "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
                    # repository (e.g. GitHub).
                  "url": "A String", # Git repository URL.
                  "revisionId": "A String", # Git commit hash.
                      # required.
                },
                "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
                  "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                    "kind": "A String", # The alias kind.
                    "name": "A String", # The alias name.
                  },
                  "revisionId": "A String", # A revision (commit) ID.
                  "hostUri": "A String", # The URI of a running Gerrit instance.
                  "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                  "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                      # "project/subproject" is a valid project name.
                      # The "repo name" is hostURI/project.
                },
              },
            },
          ],
          "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as
              # following: `domain/type/vmajor.minor` (for example
              # `google.com/gcp-java/v1.1`).
          "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by
              # the Controller service.
          "id": "A String", # Unique identifier for the debuggee generated by the controller service.
        },
      }