<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="clouddebugger_v2.html">Google Cloud Debugger API</a> . <a href="clouddebugger_v2.debugger.html">debugger</a> . <a href="clouddebugger_v2.debugger.debuggees.html">debuggees</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="clouddebugger_v2.debugger.debuggees.breakpoints.html">breakpoints()</a></code>
</p>
<p class="firstline">Returns the breakpoints Resource.</p>

<p class="toc_element">
  <code><a href="#list">list(clientVersion=None, includeInactive=None, project=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all the debuggees that the user can set breakpoints to.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(clientVersion=None, includeInactive=None, project=None, x__xgafv=None)</code>
  <pre>Lists all the debuggees that the user can set breakpoints to.

Args:
  clientVersion: string, The client version making the call. Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
  includeInactive: boolean, When set to `true`, the result includes all debuggees. Otherwise, the result includes only debuggees that are active.
  project: string, Project number of a Google Cloud project whose debuggees to list.
  x__xgafv: string, V1 error format.

Returns:
  An object of the form:

    { # Response for listing debuggees.
    "debuggees": [ # List of debuggees accessible to the calling user. Note that the `description` field is the only human readable field that should be displayed to the user. The fields `debuggee.id` and `description` fields are guaranteed to be set on each debuggee.
      { # Represents the application to debug. The application may include one or more 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. 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`. # 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.
          "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. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
                "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 (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
                    "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.
                },
                "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.
              },
            },
            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
              "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 (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
                  "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 repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (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 with a path point to a unique revision of a single file or directory. # Any source context.
              "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. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
                  "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 (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
                      "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.
                  },
                  "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.
                },
              },
              "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
                "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 (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
                    "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 repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (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.
      },
    ],
  }</pre>
</div>

</body></html>