<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">Stackdriver Debugger API</a> . <a href="clouddebugger_v2.controller.html">controller</a> . <a href="clouddebugger_v2.controller.debuggees.html">debuggees</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="clouddebugger_v2.controller.debuggees.breakpoints.html">breakpoints()</a></code>
</p>
<p class="firstline">Returns the breakpoints Resource.</p>

<p class="toc_element">
  <code><a href="#register">register(body, x__xgafv=None)</a></code></p>
<p class="firstline">Registers the debuggee with the controller service.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="register">register(body, x__xgafv=None)</code>
  <pre>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.
    },
  }</pre>
</div>

</body></html>