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.



1017
1018
1019
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 1017

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

Instance Attribute Details

#autoscaleGoogle::Apis::BigqueryreservationV1::Autoscale

Auto scaling settings. Corresponds to the JSON property autoscale



857
858
859
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 857

def autoscale
  @autoscale
end

#concurrencyFixnum

Optional. 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 BigQuery CLI. Corresponds to the JSON property concurrency

Returns:

  • (Fixnum)


867
868
869
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 867

def concurrency
  @concurrency
end

#creation_timeString

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

Returns:

  • (String)


872
873
874
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 872

def creation_time
  @creation_time
end

#editionString

Optional. Edition of the reservation. Corresponds to the JSON property edition

Returns:

  • (String)


877
878
879
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 877

def edition
  @edition
end

#ignore_idle_slotsBoolean Also known as: ignore_idle_slots?

Optional. 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)


885
886
887
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 885

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 you create or update a reservation. Corresponds to the JSON property labels

Returns:

  • (Hash<String,String>)


893
894
895
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 893

def labels
  @labels
end

#max_slotsFixnum

Optional. The overall max slots for the reservation, covering slot_capacity ( baseline), idle slots (if ignore_idle_slots is false) and scaled slots. If present, the reservation won't use more than the specified number of slots, even if there is demand and supply (from idle slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may exceed the max_slots value. However, in terms of autoscale.current_slots (which accounts for the additional added slots), it will never exceed the max_slots - baseline. This field must be set together with the scaling_mode enum value, otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . If the max_slots and scaling_mode are set, the autoscale or autoscale. max_slots field must be unset. Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT. However, the autoscale field may still be in the output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots will represent the current slots from autoscaler excluding idle slots. For example, if the max_slots is 1000 and scaling_mode is AUTOSCALE_ONLY, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value between 0 and 1000. If the max_slots is 1000, scaling_mode is ALL_SLOTS, the baseline is 100 and idle slots usage is 200, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots will not be higher than 700. If the max_slots is 1000, scaling_mode is IDLE_SLOTS_ONLY, then in the output, the autoscaler field will be null. If the max_slots and scaling_mode are set, then the ignore_idle_slots field must be aligned with the scaling_mode enum value.(See details in ScalingMode comments). Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT. Please note, the max_slots is for user to manage the part of slots greater than the baseline. Therefore, we don't allow users to set max_slots smaller or equal to the baseline as it will not be meaningful. If the field is present and slot_capacity>=max_slots, requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT. Please note that if max_slots is set to 0, we will treat it as unset. Customers can set max_slots to 0 and set scaling_mode to SCALING_MODE_UNSPECIFIED to disable the max_slots feature. Corresponds to the JSON property maxSlots

Returns:

  • (Fixnum)


929
930
931
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 929

def max_slots
  @max_slots
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)


939
940
941
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 939

def multi_region_auxiliary
  @multi_region_auxiliary
end

#nameString

Identifier. 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)


948
949
950
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 948

def name
  @name
end

#original_primary_locationString

Output only. The location where the reservation was originally created. This is set only during the failover reservation's creation. All billing charges for the failover reservation will be applied to this location. Corresponds to the JSON property originalPrimaryLocation

Returns:

  • (String)


955
956
957
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 955

def original_primary_location
  @original_primary_location
end

#primary_locationString

Output only. The current location of the reservation's primary replica. This field is only set for reservations using the managed disaster recovery feature. Corresponds to the JSON property primaryLocation

Returns:

  • (String)


961
962
963
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 961

def primary_location
  @primary_location
end

#replication_statusGoogle::Apis::BigqueryreservationV1::ReplicationStatus

Disaster Recovery(DR) replication status of the reservation. Corresponds to the JSON property replicationStatus



966
967
968
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 966

def replication_status
  @replication_status
end

#reservation_groupString

Optional. The reservation group that this reservation belongs to. You can set this property when you create or update a reservation. Reservations do not need to belong to a reservation group. Format: projects/project/locations/ location/reservationGroups/reservation_group or just reservation_group Corresponds to the JSON property reservationGroup

Returns:

  • (String)


974
975
976
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 974

def reservation_group
  @reservation_group
end

#scaling_modeString

Optional. The scaling mode for the reservation. If the field is present but max_slots is not present, requests will be rejected with error code google. rpc.Code.INVALID_ARGUMENT. Corresponds to the JSON property scalingMode

Returns:

  • (String)


981
982
983
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 981

def scaling_mode
  @scaling_mode
end

#scheduling_policyGoogle::Apis::BigqueryreservationV1::SchedulingPolicy

The scheduling policy controls how a reservation's resources are distributed. Corresponds to the JSON property schedulingPolicy



986
987
988
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 986

def scheduling_policy
  @scheduling_policy
end

#secondary_locationString

Optional. The current location of the reservation's secondary replica. This field is only set for reservations using the managed disaster recovery feature. Users can set this in create reservation calls to create a failover reservation or in update reservation calls to convert a non-failover reservation to a failover reservation(or vice versa). Corresponds to the JSON property secondaryLocation

Returns:

  • (String)


995
996
997
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 995

def secondary_location
  @secondary_location
end

#slot_capacityFixnum

Optional. 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. 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)


1010
1011
1012
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 1010

def slot_capacity
  @slot_capacity
end

#update_timeString

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

Returns:

  • (String)


1015
1016
1017
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 1015

def update_time
  @update_time
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 1022

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)
  @max_slots = args[:max_slots] if args.key?(:max_slots)
  @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)
  @replication_status = args[:replication_status] if args.key?(:replication_status)
  @reservation_group = args[:reservation_group] if args.key?(:reservation_group)
  @scaling_mode = args[:scaling_mode] if args.key?(:scaling_mode)
  @scheduling_policy = args[:scheduling_policy] if args.key?(:scheduling_policy)
  @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