1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
# 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 CloudprofilerV2
# CreateProfileRequest describes a profile resource online creation request. The
# deployment field must be populated. The profile_type specifies the list of
# profile types supported by the agent. The creation call will hang until a
# profile of one of these types needs to be collected.
class CreateProfileRequest
include Google::Apis::Core::Hashable
# Deployment contains the deployment identification information.
# Corresponds to the JSON property `deployment`
# @return [Google::Apis::CloudprofilerV2::Deployment]
attr_accessor :deployment
# One or more profile types that the agent is capable of providing.
# Corresponds to the JSON property `profileType`
# @return [Array<String>]
attr_accessor :profile_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@deployment = args[:deployment] if args.key?(:deployment)
@profile_type = args[:profile_type] if args.key?(:profile_type)
end
end
# Deployment contains the deployment identification information.
class Deployment
include Google::Apis::Core::Hashable
# Labels identify the deployment within the user universe and same target.
# Validation regex for label names: `^[a-z0-9]([a-z0-9-]`0,61`[a-z0-9])?$`.
# Value for an individual label must be <= 512 bytes, the total size of all
# label names and values must be <= 1024 bytes. Label named "language" can be
# used to record the programming language of the profiled deployment. The
# standard choices for the value include "java", "go", "python", "ruby", "nodejs"
# , "php", "dotnet". For deployments running on Google Cloud Platform, "zone" or
# "region" label should be present describing the deployment location. An
# example of a zone is "us-central1-a", an example of a region is "us-central1"
# or "us-central".
# Corresponds to the JSON property `labels`
# @return [Hash<String,String>]
attr_accessor :labels
# Project ID is the ID of a cloud project. Validation regex: `^a-z`4,61`[a-z0-9]$
# `.
# Corresponds to the JSON property `projectId`
# @return [String]
attr_accessor :project_id
# Target is the service name used to group related deployments: * Service name
# for GAE Flex / Standard. * Cluster and container name for GKE. * User-
# specified string for direct GCE profiling (e.g. Java). * Job name for Dataflow.
# Validation regex: `^[a-z]([-a-z0-9_.]`0,253`[a-z0-9])?$`.
# Corresponds to the JSON property `target`
# @return [String]
attr_accessor :target
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@labels = args[:labels] if args.key?(:labels)
@project_id = args[:project_id] if args.key?(:project_id)
@target = args[:target] if args.key?(:target)
end
end
# Profile resource.
class Profile
include Google::Apis::Core::Hashable
# Deployment contains the deployment identification information.
# Corresponds to the JSON property `deployment`
# @return [Google::Apis::CloudprofilerV2::Deployment]
attr_accessor :deployment
# Duration of the profiling session. Input (for the offline mode) or output (for
# the online mode). The field represents requested profiling duration. It may
# slightly differ from the effective profiling duration, which is recorded in
# the profile data, in case the profiling can't be stopped immediately (e.g. in
# case stopping the profiling is handled asynchronously).
# Corresponds to the JSON property `duration`
# @return [String]
attr_accessor :duration
# Input only. Labels associated to this specific profile. These labels will get
# merged with the deployment labels for the final data set. See documentation on
# deployment labels for validation rules and limits.
# Corresponds to the JSON property `labels`
# @return [Hash<String,String>]
attr_accessor :labels
# Output only. Opaque, server-assigned, unique ID for this profile.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Input only. Profile bytes, as a gzip compressed serialized proto, the format
# is https://github.com/google/pprof/blob/master/proto/profile.proto.
# Corresponds to the JSON property `profileBytes`
# NOTE: Values are automatically base64 encoded/decoded in the client library.
# @return [String]
attr_accessor :profile_bytes
# Type of profile. For offline mode, this must be specified when creating the
# profile. For online mode it is assigned and returned by the server.
# Corresponds to the JSON property `profileType`
# @return [String]
attr_accessor :profile_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@deployment = args[:deployment] if args.key?(:deployment)
@duration = args[:duration] if args.key?(:duration)
@labels = args[:labels] if args.key?(:labels)
@name = args[:name] if args.key?(:name)
@profile_bytes = args[:profile_bytes] if args.key?(:profile_bytes)
@profile_type = args[:profile_type] if args.key?(:profile_type)
end
end
end
end
end
|