1005 lines
41 KiB
Ruby
1005 lines
41 KiB
Ruby
|
# Copyright 2015 Google Inc.
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
require 'date'
|
||
|
require 'google/apis/core/base_service'
|
||
|
require 'google/apis/core/json_representation'
|
||
|
require 'google/apis/core/hashable'
|
||
|
require 'google/apis/errors'
|
||
|
|
||
|
module Google
|
||
|
module Apis
|
||
|
module ClouddebuggerV2
|
||
|
|
||
|
# Request to register a debuggee.
|
||
|
class RegisterDebuggeeRequest
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `debuggee`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::Debuggee]
|
||
|
attr_accessor :debuggee
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@debuggee = args[:debuggee] unless args[:debuggee].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# 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.
|
||
|
class Debuggee
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Unique identifier for the debuggee generated by the controller service.
|
||
|
# Corresponds to the JSON property `id`
|
||
|
# @return [String]
|
||
|
attr_accessor :id
|
||
|
|
||
|
# Project the debuggee is associated with. Use the project number when
|
||
|
# registering a Google Cloud Platform project.
|
||
|
# Corresponds to the JSON property `project`
|
||
|
# @return [String]
|
||
|
attr_accessor :project
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `uniquifier`
|
||
|
# @return [String]
|
||
|
attr_accessor :uniquifier
|
||
|
|
||
|
# Human readable description of the debuggee. Including a human-readable project
|
||
|
# name, environment name and version information is recommended.
|
||
|
# Corresponds to the JSON property `description`
|
||
|
# @return [String]
|
||
|
attr_accessor :description
|
||
|
|
||
|
# If set to `true`, indicates that the debuggee is considered as inactive by the
|
||
|
# Controller service.
|
||
|
# Corresponds to the JSON property `isInactive`
|
||
|
# @return [Boolean]
|
||
|
attr_accessor :is_inactive
|
||
|
alias_method :is_inactive?, :is_inactive
|
||
|
|
||
|
# 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`).
|
||
|
# Corresponds to the JSON property `agentVersion`
|
||
|
# @return [String]
|
||
|
attr_accessor :agent_version
|
||
|
|
||
|
# If set to `true`, indicates that the agent should disable itself and detach
|
||
|
# from the debuggee.
|
||
|
# Corresponds to the JSON property `isDisabled`
|
||
|
# @return [Boolean]
|
||
|
attr_accessor :is_disabled
|
||
|
alias_method :is_disabled?, :is_disabled
|
||
|
|
||
|
# 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`.
|
||
|
# Corresponds to the JSON property `status`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::StatusMessage]
|
||
|
attr_accessor :status
|
||
|
|
||
|
# 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`.
|
||
|
# Corresponds to the JSON property `sourceContexts`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::SourceContext>]
|
||
|
attr_accessor :source_contexts
|
||
|
|
||
|
# 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`.
|
||
|
# Corresponds to the JSON property `extSourceContexts`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::ExtendedSourceContext>]
|
||
|
attr_accessor :ext_source_contexts
|
||
|
|
||
|
# A set of custom debuggee properties, populated by the agent, to be displayed
|
||
|
# to the user.
|
||
|
# Corresponds to the JSON property `labels`
|
||
|
# @return [Hash<String,String>]
|
||
|
attr_accessor :labels
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@id = args[:id] unless args[:id].nil?
|
||
|
@project = args[:project] unless args[:project].nil?
|
||
|
@uniquifier = args[:uniquifier] unless args[:uniquifier].nil?
|
||
|
@description = args[:description] unless args[:description].nil?
|
||
|
@is_inactive = args[:is_inactive] unless args[:is_inactive].nil?
|
||
|
@agent_version = args[:agent_version] unless args[:agent_version].nil?
|
||
|
@is_disabled = args[:is_disabled] unless args[:is_disabled].nil?
|
||
|
@status = args[:status] unless args[:status].nil?
|
||
|
@source_contexts = args[:source_contexts] unless args[:source_contexts].nil?
|
||
|
@ext_source_contexts = args[:ext_source_contexts] unless args[:ext_source_contexts].nil?
|
||
|
@labels = args[:labels] unless args[:labels].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# 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`.
|
||
|
class StatusMessage
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Distinguishes errors from informational messages.
|
||
|
# Corresponds to the JSON property `isError`
|
||
|
# @return [Boolean]
|
||
|
attr_accessor :is_error
|
||
|
alias_method :is_error?, :is_error
|
||
|
|
||
|
# Reference to which the message applies.
|
||
|
# Corresponds to the JSON property `refersTo`
|
||
|
# @return [String]
|
||
|
attr_accessor :refers_to
|
||
|
|
||
|
# Represents a message with parameters.
|
||
|
# Corresponds to the JSON property `description`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::FormatMessage]
|
||
|
attr_accessor :description
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@is_error = args[:is_error] unless args[:is_error].nil?
|
||
|
@refers_to = args[:refers_to] unless args[:refers_to].nil?
|
||
|
@description = args[:description] unless args[:description].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Represents a message with parameters.
|
||
|
class FormatMessage
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# 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.`
|
||
|
# Corresponds to the JSON property `format`
|
||
|
# @return [String]
|
||
|
attr_accessor :format
|
||
|
|
||
|
# Optional parameters to be embedded into the message.
|
||
|
# Corresponds to the JSON property `parameters`
|
||
|
# @return [Array<String>]
|
||
|
attr_accessor :parameters
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@format = args[:format] unless args[:format].nil?
|
||
|
@parameters = args[:parameters] unless args[:parameters].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# 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.
|
||
|
class SourceContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo
|
||
|
# hosted by the Google Cloud Platform).
|
||
|
# Corresponds to the JSON property `cloudRepo`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::CloudRepoSourceContext]
|
||
|
attr_accessor :cloud_repo
|
||
|
|
||
|
# A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.
|
||
|
# Corresponds to the JSON property `cloudWorkspace`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::CloudWorkspaceSourceContext]
|
||
|
attr_accessor :cloud_workspace
|
||
|
|
||
|
# A SourceContext referring to a Gerrit project.
|
||
|
# Corresponds to the JSON property `gerrit`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::GerritSourceContext]
|
||
|
attr_accessor :gerrit
|
||
|
|
||
|
# A GitSourceContext denotes a particular revision in a third party Git
|
||
|
# repository (e.g. GitHub).
|
||
|
# Corresponds to the JSON property `git`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::GitSourceContext]
|
||
|
attr_accessor :git
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@cloud_repo = args[:cloud_repo] unless args[:cloud_repo].nil?
|
||
|
@cloud_workspace = args[:cloud_workspace] unless args[:cloud_workspace].nil?
|
||
|
@gerrit = args[:gerrit] unless args[:gerrit].nil?
|
||
|
@git = args[:git] unless args[:git].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo
|
||
|
# hosted by the Google Cloud Platform).
|
||
|
class CloudRepoSourceContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# A unique identifier for a cloud repo.
|
||
|
# Corresponds to the JSON property `repoId`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::RepoId]
|
||
|
attr_accessor :repo_id
|
||
|
|
||
|
# A revision ID.
|
||
|
# Corresponds to the JSON property `revisionId`
|
||
|
# @return [String]
|
||
|
attr_accessor :revision_id
|
||
|
|
||
|
# The name of an alias (branch, tag, etc.).
|
||
|
# Corresponds to the JSON property `aliasName`
|
||
|
# @return [String]
|
||
|
attr_accessor :alias_name
|
||
|
|
||
|
# An alias to a repo revision.
|
||
|
# Corresponds to the JSON property `aliasContext`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::AliasContext]
|
||
|
attr_accessor :alias_context
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@repo_id = args[:repo_id] unless args[:repo_id].nil?
|
||
|
@revision_id = args[:revision_id] unless args[:revision_id].nil?
|
||
|
@alias_name = args[:alias_name] unless args[:alias_name].nil?
|
||
|
@alias_context = args[:alias_context] unless args[:alias_context].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# A unique identifier for a cloud repo.
|
||
|
class RepoId
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31)
|
||
|
# and a repo name within that project.
|
||
|
# Corresponds to the JSON property `projectRepoId`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::ProjectRepoId]
|
||
|
attr_accessor :project_repo_id
|
||
|
|
||
|
# A server-assigned, globally unique identifier.
|
||
|
# Corresponds to the JSON property `uid`
|
||
|
# @return [String]
|
||
|
attr_accessor :uid
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@project_repo_id = args[:project_repo_id] unless args[:project_repo_id].nil?
|
||
|
@uid = args[:uid] unless args[:uid].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31)
|
||
|
# and a repo name within that project.
|
||
|
class ProjectRepoId
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# The ID of the project.
|
||
|
# Corresponds to the JSON property `projectId`
|
||
|
# @return [String]
|
||
|
attr_accessor :project_id
|
||
|
|
||
|
# The name of the repo. Leave empty for the default repo.
|
||
|
# Corresponds to the JSON property `repoName`
|
||
|
# @return [String]
|
||
|
attr_accessor :repo_name
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@project_id = args[:project_id] unless args[:project_id].nil?
|
||
|
@repo_name = args[:repo_name] unless args[:repo_name].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# An alias to a repo revision.
|
||
|
class AliasContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# The alias kind.
|
||
|
# Corresponds to the JSON property `kind`
|
||
|
# @return [String]
|
||
|
attr_accessor :kind
|
||
|
|
||
|
# The alias name.
|
||
|
# Corresponds to the JSON property `name`
|
||
|
# @return [String]
|
||
|
attr_accessor :name
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@kind = args[:kind] unless args[:kind].nil?
|
||
|
@name = args[:name] unless args[:name].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.
|
||
|
class CloudWorkspaceSourceContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `workspaceId`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::CloudWorkspaceId]
|
||
|
attr_accessor :workspace_id
|
||
|
|
||
|
# The ID of the snapshot. An empty snapshot_id refers to the most recent
|
||
|
# snapshot.
|
||
|
# Corresponds to the JSON property `snapshotId`
|
||
|
# @return [String]
|
||
|
attr_accessor :snapshot_id
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@workspace_id = args[:workspace_id] unless args[:workspace_id].nil?
|
||
|
@snapshot_id = args[:snapshot_id] unless args[:snapshot_id].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# 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.
|
||
|
class CloudWorkspaceId
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# A unique identifier for a cloud repo.
|
||
|
# Corresponds to the JSON property `repoId`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::RepoId]
|
||
|
attr_accessor :repo_id
|
||
|
|
||
|
# The unique name of the workspace within the repo. This is the name chosen by
|
||
|
# the client in the Source API's CreateWorkspace method.
|
||
|
# Corresponds to the JSON property `name`
|
||
|
# @return [String]
|
||
|
attr_accessor :name
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@repo_id = args[:repo_id] unless args[:repo_id].nil?
|
||
|
@name = args[:name] unless args[:name].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# A SourceContext referring to a Gerrit project.
|
||
|
class GerritSourceContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# The URI of a running Gerrit instance.
|
||
|
# Corresponds to the JSON property `hostUri`
|
||
|
# @return [String]
|
||
|
attr_accessor :host_uri
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `gerritProject`
|
||
|
# @return [String]
|
||
|
attr_accessor :gerrit_project
|
||
|
|
||
|
# A revision (commit) ID.
|
||
|
# Corresponds to the JSON property `revisionId`
|
||
|
# @return [String]
|
||
|
attr_accessor :revision_id
|
||
|
|
||
|
# The name of an alias (branch, tag, etc.).
|
||
|
# Corresponds to the JSON property `aliasName`
|
||
|
# @return [String]
|
||
|
attr_accessor :alias_name
|
||
|
|
||
|
# An alias to a repo revision.
|
||
|
# Corresponds to the JSON property `aliasContext`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::AliasContext]
|
||
|
attr_accessor :alias_context
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@host_uri = args[:host_uri] unless args[:host_uri].nil?
|
||
|
@gerrit_project = args[:gerrit_project] unless args[:gerrit_project].nil?
|
||
|
@revision_id = args[:revision_id] unless args[:revision_id].nil?
|
||
|
@alias_name = args[:alias_name] unless args[:alias_name].nil?
|
||
|
@alias_context = args[:alias_context] unless args[:alias_context].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# A GitSourceContext denotes a particular revision in a third party Git
|
||
|
# repository (e.g. GitHub).
|
||
|
class GitSourceContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Git repository URL.
|
||
|
# Corresponds to the JSON property `url`
|
||
|
# @return [String]
|
||
|
attr_accessor :url
|
||
|
|
||
|
# Git commit hash. required.
|
||
|
# Corresponds to the JSON property `revisionId`
|
||
|
# @return [String]
|
||
|
attr_accessor :revision_id
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@url = args[:url] unless args[:url].nil?
|
||
|
@revision_id = args[:revision_id] unless args[:revision_id].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# An ExtendedSourceContext is a SourceContext combined with additional details
|
||
|
# describing the context.
|
||
|
class ExtendedSourceContext
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `context`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::SourceContext]
|
||
|
attr_accessor :context
|
||
|
|
||
|
# Labels with user defined metadata.
|
||
|
# Corresponds to the JSON property `labels`
|
||
|
# @return [Hash<String,String>]
|
||
|
attr_accessor :labels
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@context = args[:context] unless args[:context].nil?
|
||
|
@labels = args[:labels] unless args[:labels].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for registering a debuggee.
|
||
|
class RegisterDebuggeeResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `debuggee`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::Debuggee]
|
||
|
attr_accessor :debuggee
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@debuggee = args[:debuggee] unless args[:debuggee].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for listing active breakpoints.
|
||
|
class ListActiveBreakpointsResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# List of all active breakpoints. The fields `id` and `location` are guaranteed
|
||
|
# to be set on each breakpoint.
|
||
|
# Corresponds to the JSON property `breakpoints`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Breakpoint>]
|
||
|
attr_accessor :breakpoints
|
||
|
|
||
|
# A wait token that can be used in the next method call to block until the list
|
||
|
# of breakpoints changes.
|
||
|
# Corresponds to the JSON property `nextWaitToken`
|
||
|
# @return [String]
|
||
|
attr_accessor :next_wait_token
|
||
|
|
||
|
# The `wait_expired` field is set to true by the server when the request times
|
||
|
# out and the field `success_on_timeout` is set to true.
|
||
|
# Corresponds to the JSON property `waitExpired`
|
||
|
# @return [Boolean]
|
||
|
attr_accessor :wait_expired
|
||
|
alias_method :wait_expired?, :wait_expired
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@breakpoints = args[:breakpoints] unless args[:breakpoints].nil?
|
||
|
@next_wait_token = args[:next_wait_token] unless args[:next_wait_token].nil?
|
||
|
@wait_expired = args[:wait_expired] unless args[:wait_expired].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Represents the breakpoint specification, status and results.
|
||
|
class Breakpoint
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Breakpoint identifier, unique in the scope of the debuggee.
|
||
|
# Corresponds to the JSON property `id`
|
||
|
# @return [String]
|
||
|
attr_accessor :id
|
||
|
|
||
|
# Action that the agent should perform when the code at the breakpoint location
|
||
|
# is hit.
|
||
|
# Corresponds to the JSON property `action`
|
||
|
# @return [String]
|
||
|
attr_accessor :action
|
||
|
|
||
|
# Represents a location in the source code.
|
||
|
# Corresponds to the JSON property `location`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::SourceLocation]
|
||
|
attr_accessor :location
|
||
|
|
||
|
# Condition that triggers the breakpoint. The condition is a compound boolean
|
||
|
# expression composed using expressions in a programming language at the source
|
||
|
# location.
|
||
|
# Corresponds to the JSON property `condition`
|
||
|
# @return [String]
|
||
|
attr_accessor :condition
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `expressions`
|
||
|
# @return [Array<String>]
|
||
|
attr_accessor :expressions
|
||
|
|
||
|
# 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 `log_message_format` are
|
||
|
# not logged. Example: `Message received, id = $0, count = $1` with `expressions`
|
||
|
# = `[ message.id, message.count ]`.
|
||
|
# Corresponds to the JSON property `logMessageFormat`
|
||
|
# @return [String]
|
||
|
attr_accessor :log_message_format
|
||
|
|
||
|
# Indicates the severity of the log. Only relevant when action is `LOG`.
|
||
|
# Corresponds to the JSON property `logLevel`
|
||
|
# @return [String]
|
||
|
attr_accessor :log_level
|
||
|
|
||
|
# When true, indicates that this is a final result and the breakpoint state will
|
||
|
# not change from here on.
|
||
|
# Corresponds to the JSON property `isFinalState`
|
||
|
# @return [Boolean]
|
||
|
attr_accessor :is_final_state
|
||
|
alias_method :is_final_state?, :is_final_state
|
||
|
|
||
|
# Time this breakpoint was created by the server in seconds resolution.
|
||
|
# Corresponds to the JSON property `createTime`
|
||
|
# @return [String]
|
||
|
attr_accessor :create_time
|
||
|
|
||
|
# Time this breakpoint was finalized as seen by the server in seconds resolution.
|
||
|
# Corresponds to the JSON property `finalTime`
|
||
|
# @return [String]
|
||
|
attr_accessor :final_time
|
||
|
|
||
|
# E-mail address of the user that created this breakpoint
|
||
|
# Corresponds to the JSON property `userEmail`
|
||
|
# @return [String]
|
||
|
attr_accessor :user_email
|
||
|
|
||
|
# 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`.
|
||
|
# Corresponds to the JSON property `status`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::StatusMessage]
|
||
|
attr_accessor :status
|
||
|
|
||
|
# The stack at breakpoint time.
|
||
|
# Corresponds to the JSON property `stackFrames`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::StackFrame>]
|
||
|
attr_accessor :stack_frames
|
||
|
|
||
|
# 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 `members`
|
||
|
# field holds the result of the evaluated expression. If the expression cannot
|
||
|
# be evaluated, the `status` inside the `Variable` will indicate an error and
|
||
|
# contain the error text.
|
||
|
# Corresponds to the JSON property `evaluatedExpressions`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Variable>]
|
||
|
attr_accessor :evaluated_expressions
|
||
|
|
||
|
# 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.
|
||
|
# For example, the same `this` object, which may appear at many levels of the
|
||
|
# stack, can have all of its data stored once in this table. The stack frame
|
||
|
# variables then would hold only a reference to it. The variable `
|
||
|
# var_table_index` field is an index into this repeated field. The stored
|
||
|
# objects are nameless and get their name from the referencing variable. The
|
||
|
# effective variable is a merge of the referencing veariable and the referenced
|
||
|
# variable.
|
||
|
# Corresponds to the JSON property `variableTable`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Variable>]
|
||
|
attr_accessor :variable_table
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@id = args[:id] unless args[:id].nil?
|
||
|
@action = args[:action] unless args[:action].nil?
|
||
|
@location = args[:location] unless args[:location].nil?
|
||
|
@condition = args[:condition] unless args[:condition].nil?
|
||
|
@expressions = args[:expressions] unless args[:expressions].nil?
|
||
|
@log_message_format = args[:log_message_format] unless args[:log_message_format].nil?
|
||
|
@log_level = args[:log_level] unless args[:log_level].nil?
|
||
|
@is_final_state = args[:is_final_state] unless args[:is_final_state].nil?
|
||
|
@create_time = args[:create_time] unless args[:create_time].nil?
|
||
|
@final_time = args[:final_time] unless args[:final_time].nil?
|
||
|
@user_email = args[:user_email] unless args[:user_email].nil?
|
||
|
@status = args[:status] unless args[:status].nil?
|
||
|
@stack_frames = args[:stack_frames] unless args[:stack_frames].nil?
|
||
|
@evaluated_expressions = args[:evaluated_expressions] unless args[:evaluated_expressions].nil?
|
||
|
@variable_table = args[:variable_table] unless args[:variable_table].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Represents a location in the source code.
|
||
|
class SourceLocation
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Path to the source file within the source context of the target binary.
|
||
|
# Corresponds to the JSON property `path`
|
||
|
# @return [String]
|
||
|
attr_accessor :path
|
||
|
|
||
|
# Line inside the file. The first line in the file has the value `1`.
|
||
|
# Corresponds to the JSON property `line`
|
||
|
# @return [Fixnum]
|
||
|
attr_accessor :line
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@path = args[:path] unless args[:path].nil?
|
||
|
@line = args[:line] unless args[:line].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Represents a stack frame context.
|
||
|
class StackFrame
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Demangled function name at the call site.
|
||
|
# Corresponds to the JSON property `function`
|
||
|
# @return [String]
|
||
|
attr_accessor :function
|
||
|
|
||
|
# Represents a location in the source code.
|
||
|
# Corresponds to the JSON property `location`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::SourceLocation]
|
||
|
attr_accessor :location
|
||
|
|
||
|
# Set of arguments passed to this function. Note that this might not be
|
||
|
# populated for all stack frames.
|
||
|
# Corresponds to the JSON property `arguments`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Variable>]
|
||
|
attr_accessor :arguments
|
||
|
|
||
|
# Set of local variables at the stack frame location. Note that this might not
|
||
|
# be populated for all stack frames.
|
||
|
# Corresponds to the JSON property `locals`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Variable>]
|
||
|
attr_accessor :locals
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@function = args[:function] unless args[:function].nil?
|
||
|
@location = args[:location] unless args[:location].nil?
|
||
|
@arguments = args[:arguments] unless args[:arguments].nil?
|
||
|
@locals = args[:locals] unless args[:locals].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# 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 = &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 ``, ``, `
|
||
|
# `. 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 = &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 = &x; T&
|
||
|
# 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&", 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.
|
||
|
class Variable
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Name of the variable, if any.
|
||
|
# Corresponds to the JSON property `name`
|
||
|
# @return [String]
|
||
|
attr_accessor :name
|
||
|
|
||
|
# Simple value of the variable.
|
||
|
# Corresponds to the JSON property `value`
|
||
|
# @return [String]
|
||
|
attr_accessor :value
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `type`
|
||
|
# @return [String]
|
||
|
attr_accessor :type
|
||
|
|
||
|
# Members contained or pointed to by the variable.
|
||
|
# Corresponds to the JSON property `members`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Variable>]
|
||
|
attr_accessor :members
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `varTableIndex`
|
||
|
# @return [Fixnum]
|
||
|
attr_accessor :var_table_index
|
||
|
|
||
|
# 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`.
|
||
|
# Corresponds to the JSON property `status`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::StatusMessage]
|
||
|
attr_accessor :status
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@name = args[:name] unless args[:name].nil?
|
||
|
@value = args[:value] unless args[:value].nil?
|
||
|
@type = args[:type] unless args[:type].nil?
|
||
|
@members = args[:members] unless args[:members].nil?
|
||
|
@var_table_index = args[:var_table_index] unless args[:var_table_index].nil?
|
||
|
@status = args[:status] unless args[:status].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Request to update an active breakpoint.
|
||
|
class UpdateActiveBreakpointRequest
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Represents the breakpoint specification, status and results.
|
||
|
# Corresponds to the JSON property `breakpoint`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::Breakpoint]
|
||
|
attr_accessor :breakpoint
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@breakpoint = args[:breakpoint] unless args[:breakpoint].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for updating an active breakpoint. The message is defined to allow
|
||
|
# future extensions.
|
||
|
class UpdateActiveBreakpointResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for setting a breakpoint.
|
||
|
class SetBreakpointResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Represents the breakpoint specification, status and results.
|
||
|
# Corresponds to the JSON property `breakpoint`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::Breakpoint]
|
||
|
attr_accessor :breakpoint
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@breakpoint = args[:breakpoint] unless args[:breakpoint].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for getting breakpoint information.
|
||
|
class GetBreakpointResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Represents the breakpoint specification, status and results.
|
||
|
# Corresponds to the JSON property `breakpoint`
|
||
|
# @return [Google::Apis::ClouddebuggerV2::Breakpoint]
|
||
|
attr_accessor :breakpoint
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@breakpoint = args[:breakpoint] unless args[:breakpoint].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# A generic empty message that you can re-use to avoid defining duplicated empty
|
||
|
# messages in your APIs. A typical example is to use it as the request or the
|
||
|
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
||
|
# protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
|
||
|
# `Empty` is empty JSON object ````.
|
||
|
class Empty
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for listing breakpoints.
|
||
|
class ListBreakpointsResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# List of all breakpoints with complete state. The fields `id` and `location`
|
||
|
# are guaranteed to be set on each breakpoint.
|
||
|
# Corresponds to the JSON property `breakpoints`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Breakpoint>]
|
||
|
attr_accessor :breakpoints
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `nextWaitToken`
|
||
|
# @return [String]
|
||
|
attr_accessor :next_wait_token
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@breakpoints = args[:breakpoints] unless args[:breakpoints].nil?
|
||
|
@next_wait_token = args[:next_wait_token] unless args[:next_wait_token].nil?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response for listing debuggees.
|
||
|
class ListDebuggeesResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# 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.
|
||
|
# Corresponds to the JSON property `debuggees`
|
||
|
# @return [Array<Google::Apis::ClouddebuggerV2::Debuggee>]
|
||
|
attr_accessor :debuggees
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@debuggees = args[:debuggees] unless args[:debuggees].nil?
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|