google-api-ruby-client/generated/google/apis/clouddebugger_v2/classes.rb

1096 lines
43 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
# 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] if args.key?(:kind)
@name = args[:name] if args.key?(:name)
end
end
# ------------------------------------------------------------------------------
# ## Breakpoint (the resource)
# Represents the breakpoint specification, status and results.
class Breakpoint
include Google::Apis::Core::Hashable
# 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
# 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
# Time this breakpoint was created by the server in seconds resolution.
# Corresponds to the JSON property `createTime`
# @return [String]
attr_accessor :create_time
# 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
# 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
# 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
# Breakpoint identifier, unique in the scope of the debuggee.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# 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
# A set of custom breakpoint properties, populated by the agent, to be
# displayed to the user.
# Corresponds to the JSON property `labels`
# @return [Hash<String,String>]
attr_accessor :labels
# Represents a location in the source code.
# Corresponds to the JSON property `location`
# @return [Google::Apis::ClouddebuggerV2::SourceLocation]
attr_accessor :location
# Indicates the severity of the log. Only relevant when action is `LOG`.
# Corresponds to the JSON property `logLevel`
# @return [String]
attr_accessor :log_level
# 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
# The stack at breakpoint time, where stack_frames[0] represents the most
# recently entered function.
# Corresponds to the JSON property `stackFrames`
# @return [Array<Google::Apis::ClouddebuggerV2::StackFrame>]
attr_accessor :stack_frames
# 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
# E-mail address of the user that created this breakpoint
# Corresponds to the JSON property `userEmail`
# @return [String]
attr_accessor :user_email
# 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 variable
# 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)
@action = args[:action] if args.key?(:action)
@condition = args[:condition] if args.key?(:condition)
@create_time = args[:create_time] if args.key?(:create_time)
@evaluated_expressions = args[:evaluated_expressions] if args.key?(:evaluated_expressions)
@expressions = args[:expressions] if args.key?(:expressions)
@final_time = args[:final_time] if args.key?(:final_time)
@id = args[:id] if args.key?(:id)
@is_final_state = args[:is_final_state] if args.key?(:is_final_state)
@labels = args[:labels] if args.key?(:labels)
@location = args[:location] if args.key?(:location)
@log_level = args[:log_level] if args.key?(:log_level)
@log_message_format = args[:log_message_format] if args.key?(:log_message_format)
@stack_frames = args[:stack_frames] if args.key?(:stack_frames)
@status = args[:status] if args.key?(:status)
@user_email = args[:user_email] if args.key?(:user_email)
@variable_table = args[:variable_table] if args.key?(:variable_table)
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
# An alias to a repo revision.
# Corresponds to the JSON property `aliasContext`
# @return [Google::Apis::ClouddebuggerV2::AliasContext]
attr_accessor :alias_context
# The name of an alias (branch, tag, etc.).
# Corresponds to the JSON property `aliasName`
# @return [String]
attr_accessor :alias_name
# 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
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alias_context = args[:alias_context] if args.key?(:alias_context)
@alias_name = args[:alias_name] if args.key?(:alias_name)
@repo_id = args[:repo_id] if args.key?(:repo_id)
@revision_id = args[:revision_id] if args.key?(:revision_id)
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
# 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
# A unique identifier for a cloud repo.
# Corresponds to the JSON property `repoId`
# @return [Google::Apis::ClouddebuggerV2::RepoId]
attr_accessor :repo_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@name = args[:name] if args.key?(:name)
@repo_id = args[:repo_id] if args.key?(:repo_id)
end
end
# A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.
class CloudWorkspaceSourceContext
include Google::Apis::Core::Hashable
# 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
# 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
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@snapshot_id = args[:snapshot_id] if args.key?(:snapshot_id)
@workspace_id = args[:workspace_id] if args.key?(:workspace_id)
end
end
# Represents the debugged application. 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.
# Agents attached to the same debuggee identify themselves as such by using
# exactly the same Debuggee message value when registering.
class Debuggee
include Google::Apis::Core::Hashable
# Version ID of the agent.
# Schema: `domain/language-platform/vmajor.minor` (for example
# `google.com/java-gcp/v1.1`).
# Corresponds to the JSON property `agentVersion`
# @return [String]
attr_accessor :agent_version
# 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
# References to the locations and revisions of the source code used in the
# deployed application.
# Corresponds to the JSON property `extSourceContexts`
# @return [Array<Google::Apis::ClouddebuggerV2::ExtendedSourceContext>]
attr_accessor :ext_source_contexts
# Unique identifier for the debuggee generated by the controller service.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# 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
# If set to `true`, indicates that Controller service does not detect any
# activity from the debuggee agents and the application is possibly stopped.
# Corresponds to the JSON property `isInactive`
# @return [Boolean]
attr_accessor :is_inactive
alias_method :is_inactive?, :is_inactive
# 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
# Project the debuggee is associated with.
# Use project number or id when registering a Google Cloud Platform project.
# Corresponds to the JSON property `project`
# @return [String]
attr_accessor :project
# References to the locations and revisions of the source code used in the
# deployed application.
# Corresponds to the JSON property `sourceContexts`
# @return [Array<Google::Apis::ClouddebuggerV2::SourceContext>]
attr_accessor :source_contexts
# 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
# Uniquifier to further distinguish the application.
# It is possible that different applications might have identical values in
# the debuggee message, thus, incorrectly identified as a single application
# by the Controller service. This field adds salt to further distinguish the
# application. Agents should consider seeding this field with value that
# identifies the code, binary, configuration and environment.
# Corresponds to the JSON property `uniquifier`
# @return [String]
attr_accessor :uniquifier
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@agent_version = args[:agent_version] if args.key?(:agent_version)
@description = args[:description] if args.key?(:description)
@ext_source_contexts = args[:ext_source_contexts] if args.key?(:ext_source_contexts)
@id = args[:id] if args.key?(:id)
@is_disabled = args[:is_disabled] if args.key?(:is_disabled)
@is_inactive = args[:is_inactive] if args.key?(:is_inactive)
@labels = args[:labels] if args.key?(:labels)
@project = args[:project] if args.key?(:project)
@source_contexts = args[:source_contexts] if args.key?(:source_contexts)
@status = args[:status] if args.key?(:status)
@uniquifier = args[:uniquifier] if args.key?(:uniquifier)
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
# 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] if args.key?(:context)
@labels = args[:labels] if args.key?(:labels)
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] if args.key?(:format)
@parameters = args[:parameters] if args.key?(:parameters)
end
end
# A SourceContext referring to a Gerrit project.
class GerritSourceContext
include Google::Apis::Core::Hashable
# An alias to a repo revision.
# Corresponds to the JSON property `aliasContext`
# @return [Google::Apis::ClouddebuggerV2::AliasContext]
attr_accessor :alias_context
# The name of an alias (branch, tag, etc.).
# Corresponds to the JSON property `aliasName`
# @return [String]
attr_accessor :alias_name
# 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
# The URI of a running Gerrit instance.
# Corresponds to the JSON property `hostUri`
# @return [String]
attr_accessor :host_uri
# A revision (commit) ID.
# 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)
@alias_context = args[:alias_context] if args.key?(:alias_context)
@alias_name = args[:alias_name] if args.key?(:alias_name)
@gerrit_project = args[:gerrit_project] if args.key?(:gerrit_project)
@host_uri = args[:host_uri] if args.key?(:host_uri)
@revision_id = args[:revision_id] if args.key?(:revision_id)
end
end
# Response for getting breakpoint information.
class GetBreakpointResponse
include Google::Apis::Core::Hashable
# ------------------------------------------------------------------------------
# ## Breakpoint (the resource)
# 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] if args.key?(:breakpoint)
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 commit hash.
# required.
# Corresponds to the JSON property `revisionId`
# @return [String]
attr_accessor :revision_id
# Git repository URL.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@revision_id = args[:revision_id] if args.key?(:revision_id)
@url = args[:url] if args.key?(:url)
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 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
# If set to `true`, indicates that there is no change to the
# list of active breakpoints and the server-selected timeout has expired.
# The `breakpoints` field would be empty and should be ignored.
# 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] if args.key?(:breakpoints)
@next_wait_token = args[:next_wait_token] if args.key?(:next_wait_token)
@wait_expired = args[:wait_expired] if args.key?(:wait_expired)
end
end
# Response for listing breakpoints.
class ListBreakpointsResponse
include Google::Apis::Core::Hashable
# List of breakpoints matching the request.
# The fields `id` and `location` are guaranteed to be set on each breakpoint.
# The fields: `stack_frames`, `evaluated_expressions` and `variable_table`
# are cleared on each breakpoint regardless of its status.
# 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] if args.key?(:breakpoints)
@next_wait_token = args[:next_wait_token] if args.key?(:next_wait_token)
end
end
# Response for listing debuggees.
class ListDebuggeesResponse
include Google::Apis::Core::Hashable
# List of debuggees accessible to the calling user.
# The fields `debuggee.id` and `description` are guaranteed to be set.
# The `description` field is a human readable field provided by agents and
# can be displayed to users.
# 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] if args.key?(:debuggees)
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] if args.key?(:project_id)
@repo_name = args[:repo_name] if args.key?(:repo_name)
end
end
# Request to register a debuggee.
class RegisterDebuggeeRequest
include Google::Apis::Core::Hashable
# Represents the debugged application. 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.
# Agents attached to the same debuggee identify themselves as such by using
# exactly the same Debuggee message value 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] if args.key?(:debuggee)
end
end
# Response for registering a debuggee.
class RegisterDebuggeeResponse
include Google::Apis::Core::Hashable
# Represents the debugged application. 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.
# Agents attached to the same debuggee identify themselves as such by using
# exactly the same Debuggee message value 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] if args.key?(:debuggee)
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] if args.key?(:project_repo_id)
@uid = args[:uid] if args.key?(:uid)
end
end
# Response for setting a breakpoint.
class SetBreakpointResponse
include Google::Apis::Core::Hashable
# ------------------------------------------------------------------------------
# ## Breakpoint (the resource)
# 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] if args.key?(:breakpoint)
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] if args.key?(:cloud_repo)
@cloud_workspace = args[:cloud_workspace] if args.key?(:cloud_workspace)
@gerrit = args[:gerrit] if args.key?(:gerrit)
@git = args[:git] if args.key?(:git)
end
end
# Represents a location in the source code.
class SourceLocation
include Google::Apis::Core::Hashable
# Column within a line. The first column in a line as the value `1`.
# Agents that do not support setting breakpoints on specific columns ignore
# this field.
# Corresponds to the JSON property `column`
# @return [Fixnum]
attr_accessor :column
# 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
# Path to the source file within the source context of the target binary.
# Corresponds to the JSON property `path`
# @return [String]
attr_accessor :path
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@column = args[:column] if args.key?(:column)
@line = args[:line] if args.key?(:line)
@path = args[:path] if args.key?(:path)
end
end
# Represents a stack frame context.
class StackFrame
include Google::Apis::Core::Hashable
# 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
# Demangled function name at the call site.
# Corresponds to the JSON property `function`
# @return [String]
attr_accessor :function
# 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
# Represents a location in the source code.
# Corresponds to the JSON property `location`
# @return [Google::Apis::ClouddebuggerV2::SourceLocation]
attr_accessor :location
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@arguments = args[:arguments] if args.key?(:arguments)
@function = args[:function] if args.key?(:function)
@locals = args[:locals] if args.key?(:locals)
@location = args[:location] if args.key?(:location)
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
# Represents a message with parameters.
# Corresponds to the JSON property `description`
# @return [Google::Apis::ClouddebuggerV2::FormatMessage]
attr_accessor :description
# 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
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@description = args[:description] if args.key?(:description)
@is_error = args[:is_error] if args.key?(:is_error)
@refers_to = args[:refers_to] if args.key?(:refers_to)
end
end
# Request to update an active breakpoint.
class UpdateActiveBreakpointRequest
include Google::Apis::Core::Hashable
# ------------------------------------------------------------------------------
# ## Breakpoint (the resource)
# 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] if args.key?(:breakpoint)
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
# 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 `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
# 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
# Members contained or pointed to by the variable.
# Corresponds to the JSON property `members`
# @return [Array<Google::Apis::ClouddebuggerV2::Variable>]
attr_accessor :members
# Name of the variable, if any.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# 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
# 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
# Simple value of the variable.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
# 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
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@members = args[:members] if args.key?(:members)
@name = args[:name] if args.key?(:name)
@status = args[:status] if args.key?(:status)
@type = args[:type] if args.key?(:type)
@value = args[:value] if args.key?(:value)
@var_table_index = args[:var_table_index] if args.key?(:var_table_index)
end
end
end
end
end