Class: Google::Apis::ComputeV1::LocationPolicy

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
lib/google/apis/compute_v1/classes.rb,
lib/google/apis/compute_v1/representations.rb,
lib/google/apis/compute_v1/representations.rb

Overview

Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ LocationPolicy

Returns a new instance of LocationPolicy.



33387
33388
33389
# File 'lib/google/apis/compute_v1/classes.rb', line 33387

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

Instance Attribute Details

#locationsHash<String,Google::Apis::ComputeV1::LocationPolicyLocation>

Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a. The bulkInsert operation doesn't create instances in an AI zone, even if an AI zone is available in the specified region. For example, if you set a DENY preference for us-central1-a, Compute Engine will consider us-central1-b and us-central1-c for instance creation, but not us-central1-ai1a. Also, you can't use the locations[] configuration to allow instance creation in an AI zone. To include an AI zone in bulkInsert operations, use the locationPolicy.zones[] field. Corresponds to the JSON property locations



33373
33374
33375
# File 'lib/google/apis/compute_v1/classes.rb', line 33373

def locations
  @locations
end

#target_shapeString

Strategy for distributing VMs across zones in a region. Corresponds to the JSON property targetShape

Returns:

  • (String)


33378
33379
33380
# File 'lib/google/apis/compute_v1/classes.rb', line 33378

def target_shape
  @target_shape
end

#zonesArray<Google::Apis::ComputeV1::LocationPolicyZoneConfiguration>

The bulkInsert operation applies any preferences set in the locations field to the specific zones listed in the zones field if the same zones are specified in both fields. Corresponds to the JSON property zones



33385
33386
33387
# File 'lib/google/apis/compute_v1/classes.rb', line 33385

def zones
  @zones
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



33392
33393
33394
33395
33396
# File 'lib/google/apis/compute_v1/classes.rb', line 33392

def update!(**args)
  @locations = args[:locations] if args.key?(:locations)
  @target_shape = args[:target_shape] if args.key?(:target_shape)
  @zones = args[:zones] if args.key?(:zones)
end