Class: Google::Apis::OsconfigV1beta::Assignment

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
generated/google/apis/osconfig_v1beta/classes.rb,
generated/google/apis/osconfig_v1beta/representations.rb,
generated/google/apis/osconfig_v1beta/representations.rb

Overview

An assignment represents the group or groups of VM instances that the policy applies to. If an assignment is empty, it applies to all VM instances. Otherwise, the targeted VM instances must meet all the criteria specified. So if both labels and zones are specified, the policy applies to VM instances with those labels and in those zones.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ Assignment

Returns a new instance of Assignment.



159
160
161
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 159

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#group_labelsArray<Google::Apis::OsconfigV1beta::AssignmentGroupLabel>

Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, for example "env=prod or env=staging". Corresponds to the JSON property groupLabels



123
124
125
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 123

def group_labels
  @group_labels
end

#instance_name_prefixesArray<String>

Targets VM instances whose name starts with one of these prefixes. Like labels, this is another way to group VM instances when targeting configs, for example prefix="prod-". Only supported for project-level policies. Corresponds to the JSON property instanceNamePrefixes

Returns:

  • (Array<String>)


131
132
133
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 131

def instance_name_prefixes
  @instance_name_prefixes
end

#instancesArray<String>

Targets any of the instances specified. Instances are specified by their URI in the form zones/[ZONE]/instances/[INSTANCE_NAME]. Instance targeting is uncommon and is supported to facilitate the management of changes by the instance or to target specific VM instances for development and testing. Only supported for project-level policies and must reference instances within this project. Corresponds to the JSON property instances

Returns:

  • (Array<String>)


142
143
144
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 142

def instances
  @instances
end

#os_typesArray<Google::Apis::OsconfigV1beta::AssignmentOsType>

Targets VM instances matching at least one of the following OS types. VM instances must match all supplied criteria for a given OsType to be included. Corresponds to the JSON property osTypes



149
150
151
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 149

def os_types
  @os_types
end

#zonesArray<String>

Targets instances in any of these zones. Leave empty to target instances in any zone. Zonal targeting is uncommon and is supported to facilitate the management of changes by zone. Corresponds to the JSON property zones

Returns:

  • (Array<String>)


157
158
159
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 157

def zones
  @zones
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



164
165
166
167
168
169
170
# File 'generated/google/apis/osconfig_v1beta/classes.rb', line 164

def update!(**args)
  @group_labels = args[:group_labels] if args.key?(:group_labels)
  @instance_name_prefixes = args[:instance_name_prefixes] if args.key?(:instance_name_prefixes)
  @instances = args[:instances] if args.key?(:instances)
  @os_types = args[:os_types] if args.key?(:os_types)
  @zones = args[:zones] if args.key?(:zones)
end