Class: Google::Apis::BigqueryreservationV1::Reservation
- Inherits:
-
Object
- Object
- Google::Apis::BigqueryreservationV1::Reservation
- 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
-
#autoscale ⇒ Google::Apis::BigqueryreservationV1::Autoscale
Auto scaling settings.
-
#concurrency ⇒ Fixnum
Optional.
-
#creation_time ⇒ String
Output only.
-
#edition ⇒ String
Optional.
-
#ignore_idle_slots ⇒ Boolean
(also: #ignore_idle_slots?)
Optional.
-
#labels ⇒ Hash<String,String>
Optional.
-
#max_slots ⇒ Fixnum
Optional.
-
#multi_region_auxiliary ⇒ Boolean
(also: #multi_region_auxiliary?)
Applicable only for reservations located within one of the BigQuery multi- regions (US or EU).
-
#name ⇒ String
Identifier.
-
#original_primary_location ⇒ String
Output only.
-
#primary_location ⇒ String
Output only.
-
#replication_status ⇒ Google::Apis::BigqueryreservationV1::ReplicationStatus
Disaster Recovery(DR) replication status of the reservation.
-
#reservation_group ⇒ String
Optional.
-
#scaling_mode ⇒ String
Optional.
-
#scheduling_policy ⇒ Google::Apis::BigqueryreservationV1::SchedulingPolicy
The scheduling policy controls how a reservation's resources are distributed.
-
#secondary_location ⇒ String
Optional.
-
#slot_capacity ⇒ Fixnum
Optional.
-
#update_time ⇒ String
Output only.
Instance Method Summary collapse
-
#initialize(**args) ⇒ Reservation
constructor
A new instance of Reservation.
-
#update!(**args) ⇒ Object
Update properties of this object.
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
#autoscale ⇒ Google::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 |
#concurrency ⇒ Fixnum
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
867 868 869 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 867 def concurrency @concurrency end |
#creation_time ⇒ String
Output only. Creation time of the reservation.
Corresponds to the JSON property creationTime
872 873 874 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 872 def creation_time @creation_time end |
#edition ⇒ String
Optional. Edition of the reservation.
Corresponds to the JSON property edition
877 878 879 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 877 def edition @edition end |
#ignore_idle_slots ⇒ Boolean 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
885 886 887 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 885 def ignore_idle_slots @ignore_idle_slots end |
#labels ⇒ Hash<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
893 894 895 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 893 def labels @labels end |
#max_slots ⇒ Fixnum
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
929 930 931 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 929 def max_slots @max_slots end |
#multi_region_auxiliary ⇒ Boolean 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
939 940 941 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 939 def multi_region_auxiliary @multi_region_auxiliary end |
#name ⇒ String
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
948 949 950 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 948 def name @name end |
#original_primary_location ⇒ String
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
955 956 957 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 955 def original_primary_location @original_primary_location end |
#primary_location ⇒ String
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
961 962 963 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 961 def primary_location @primary_location end |
#replication_status ⇒ Google::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_group ⇒ String
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
974 975 976 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 974 def reservation_group @reservation_group end |
#scaling_mode ⇒ String
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
981 982 983 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 981 def scaling_mode @scaling_mode end |
#scheduling_policy ⇒ Google::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_location ⇒ String
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
995 996 997 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 995 def secondary_location @secondary_location end |
#slot_capacity ⇒ Fixnum
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
1010 1011 1012 |
# File 'lib/google/apis/bigqueryreservation_v1/classes.rb', line 1010 def slot_capacity @slot_capacity end |
#update_time ⇒ String
Output only. Last update time of the reservation.
Corresponds to the JSON property updateTime
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 |