# Copyright 2017, Google Inc. All rights reserved. # # 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. module Google module Monitoring module V3 # The description of a dynamic collection of monitored resources. Each group # has a filter that is matched against monitored resources and their associated # metadata. If a group's filter matches an available monitored resource, then # that resource is a member of that group. Groups can contain any number of # monitored resources, and each monitored resource can be a member of any # number of groups. # # Groups can be nested in parent-child hierarchies. The +parentName+ field # identifies an optional parent for each group. If a group has a parent, then # the only monitored resources available to be matched by the group's filter # are the resources contained in the parent group. In other words, a group # contains the monitored resources that match its filter and the filters of all # the group's ancestors. A group without a parent can contain any monitored # resource. # # For example, consider an infrastructure running a set of instances with two # user-defined tags: +"environment"+ and +"role"+. A parent group has a filter, # +environment="production"+. A child of that parent group has a filter, # +role="transcoder"+. The parent group contains all instances in the # production environment, regardless of their roles. The child group contains # instances that have the transcoder role *and* are in the production # environment. # # The monitored resources contained in a group can change at any moment, # depending on what resources exist and what filters are associated with the # group and its ancestors. # @!attribute [rw] name # @return [String] # Output only. The name of this group. The format is # +"projects/{project_id_or_number}/groups/{group_id}"+. # When creating a group, this field is ignored and a new name is created # consisting of the project specified in the call to +CreateGroup+ # and a unique +{group_id}+ that is generated automatically. # @!attribute [rw] display_name # @return [String] # A user-assigned name for this group, used only for display purposes. # @!attribute [rw] parent_name # @return [String] # The name of the group's parent, if it has one. # The format is +"projects/{project_id_or_number}/groups/{group_id}"+. # For groups with no parent, +parentName+ is the empty string, +""+. # @!attribute [rw] filter # @return [String] # The filter used to determine which monitored resources belong to this group. # @!attribute [rw] is_cluster # @return [true, false] # If true, the members of this group are considered to be a cluster. # The system can perform additional analysis on groups that are clusters. class Group; end end end end