Class: Google::Apis::BigqueryreservationV1::Reservation

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

Overview

A reservation is a mechanism used to guarantee slots to users.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Reservation

Returns a new instance of Reservation.



531
532
533
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 531

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

Instance Attribute Details

#autoscaleGoogle::Apis::BigqueryreservationV1::Autoscale

Auto scaling settings. Corresponds to the JSON property autoscale



423
424
425
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 423

def autoscale
  @autoscale
end

#concurrencyFixnum

Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as target job concurrency in the Information Schema, DDL and BQ CLI. Corresponds to the JSON property concurrency

Returns:

  • (Fixnum)


433
434
435
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 433

def concurrency
  @concurrency
end

#creation_timeString

Output only. Creation time of the reservation. Corresponds to the JSON property creationTime

Returns:

  • (String)


438
439
440
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 438

def creation_time
  @creation_time
end

#editionString

Edition of the reservation. Corresponds to the JSON property edition

Returns:

  • (String)


443
444
445
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 443

def edition
  @edition
end

#ignore_idle_slotsBoolean Also known as: ignore_idle_slots?

If false, any query or pipeline job using this reservation will use idle slots from other reservations within the same admin project. If true, a query or pipeline job using this reservation will execute with the slot capacity specified in the slot_capacity field at most. Corresponds to the JSON property ignoreIdleSlots

Returns:

  • (Boolean)


451
452
453
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 451

def ignore_idle_slots
  @ignore_idle_slots
end

#labelsHash<String,String>

Optional. The labels associated with this reservation. You can use these to organize and group your reservations. You can set this property when inserting or updating a reservation. Corresponds to the JSON property labels

Returns:

  • (Hash<String,String>)


459
460
461
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 459

def labels
  @labels
end

#multi_region_auxiliaryBoolean Also known as: multi_region_auxiliary?

Applicable only for reservations located within one of the BigQuery multi- regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. NOTE: this is a preview feature. Project must be allow-listed in order to set this field. Corresponds to the JSON property multiRegionAuxiliary

Returns:

  • (Boolean)


469
470
471
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 469

def multi_region_auxiliary
  @multi_region_auxiliary
end

#nameString

The resource name of the reservation, e.g., projects/*/locations/*/ reservations/team1-prod. The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters. Corresponds to the JSON property name

Returns:

  • (String)


478
479
480
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 478

def name
  @name
end

#original_primary_locationString

Optional. The original primary location of the reservation which is set only during its creation and remains unchanged afterwards. It can be used by the customer to answer questions about disaster recovery billing. The field is output only for customers and should not be specified, however, the google.api. field_behavior is not set to OUTPUT_ONLY since these fields are set in rerouted requests sent across regions. Corresponds to the JSON property originalPrimaryLocation

Returns:

  • (String)


488
489
490
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 488

def original_primary_location
  @original_primary_location
end

#primary_locationString

Optional. The primary location of the reservation. The field is only meaningful for reservation used for cross region disaster recovery. The field is output only for customers and should not be specified, however, the google. api.field_behavior is not set to OUTPUT_ONLY since these fields are set in rerouted requests sent across regions. Corresponds to the JSON property primaryLocation

Returns:

  • (String)


497
498
499
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 497

def primary_location
  @primary_location
end

#secondary_locationString

Optional. The secondary location of the reservation which is used for cross region disaster recovery purposes. Customer can set this in create/update reservation calls to create a failover reservation or convert a non-failover reservation to a failover reservation. Corresponds to the JSON property secondaryLocation

Returns:

  • (String)


505
506
507
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 505

def secondary_location
  @secondary_location
end

#slot_capacityFixnum

Baseline slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false, or autoscaling is enabled. If edition is EDITION_UNSPECIFIED and total slot_capacity of the reservation and its siblings exceeds the total slot_count of all capacity commitments, the request will fail with google.rpc.Code.RESOURCE_EXHAUSTED. If edition is any value but EDITION_UNSPECIFIED, then the above requirement is not needed. The total slot_capacity of the reservation and its siblings may exceed the total slot_count of capacity commitments. In that case, the exceeding slots will be charged with the autoscale SKU. You can increase the number of baseline slots in a reservation every few minutes. If you want to decrease your baseline slots, you are limited to once an hour if you have recently changed your baseline slot capacity and your baseline slots exceed your committed slots. Otherwise, you can decrease your baseline slots every few minutes. Corresponds to the JSON property slotCapacity

Returns:

  • (Fixnum)


524
525
526
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 524

def slot_capacity
  @slot_capacity
end

#update_timeString

Output only. Last update time of the reservation. Corresponds to the JSON property updateTime

Returns:

  • (String)


529
530
531
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 529

def update_time
  @update_time
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 536

def update!(**args)
  @autoscale = args[:autoscale] if args.key?(:autoscale)
  @concurrency = args[:concurrency] if args.key?(:concurrency)
  @creation_time = args[:creation_time] if args.key?(:creation_time)
  @edition = args[:edition] if args.key?(:edition)
  @ignore_idle_slots = args[:ignore_idle_slots] if args.key?(:ignore_idle_slots)
  @labels = args[:labels] if args.key?(:labels)
  @multi_region_auxiliary = args[:multi_region_auxiliary] if args.key?(:multi_region_auxiliary)
  @name = args[:name] if args.key?(:name)
  @original_primary_location = args[:original_primary_location] if args.key?(:original_primary_location)
  @primary_location = args[:primary_location] if args.key?(:primary_location)
  @secondary_location = args[:secondary_location] if args.key?(:secondary_location)
  @slot_capacity = args[:slot_capacity] if args.key?(:slot_capacity)
  @update_time = args[:update_time] if args.key?(:update_time)
end