Class: Google::Apis::ComputeAlpha::Commitment
- Inherits:
-
Object
- Object
- Google::Apis::ComputeAlpha::Commitment
- Includes:
- Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
- Defined in:
- lib/google/apis/compute_alpha/classes.rb,
lib/google/apis/compute_alpha/representations.rb,
lib/google/apis/compute_alpha/representations.rb
Overview
Represents a regional resource-based commitment resource. Creating this commitment resource means that you are purchasing a resource-based committed use contract, with an explicit start and end time. You can purchase resource-based commitments for both hardware and software resources. For more information, read Resource-based committed use discounts
Instance Attribute Summary collapse
-
#auto_renew ⇒ Boolean
(also: #auto_renew?)
Specifies whether to automatically renew the commitment at the end of its current term.
-
#category ⇒ String
The category of the commitment; specifies whether the commitment is for hardware or software resources.
-
#creation_timestamp ⇒ String
Output only.
-
#custom_end_timestamp ⇒ String
[Input Only] Optional, specifies the requested commitment end time inRFC3339 text format.
-
#description ⇒ String
An optional description of the commitment.
-
#end_timestamp ⇒ String
Output only.
-
#existing_reservations ⇒ Array<String>
Corresponds to the JSON property
existingReservations. -
#id ⇒ Fixnum
Output only.
-
#kind ⇒ String
Output only.
-
#license_resource ⇒ Google::Apis::ComputeAlpha::LicenseResourceCommitment
Commitment for a particular license resource.
-
#merge_source_commitments ⇒ Array<String>
The list of source commitments that you are merging to create the new merged commitment.
-
#name ⇒ String
Name of the commitment.
-
#params ⇒ Google::Apis::ComputeAlpha::CommitmentParams
Additional commitment params.
-
#persistent_disk_resources ⇒ Array<Google::Apis::ComputeAlpha::PersistentDiskResourceCommitment>
Optional.
-
#plan ⇒ String
The minimum time duration that you commit to purchasing resources.
-
#region ⇒ String
Output only.
-
#reservations ⇒ Array<Google::Apis::ComputeAlpha::Reservation>
The list of new reservations that you want to create and attach to this commitment.
-
#resource_status ⇒ Google::Apis::ComputeAlpha::CommitmentResourceStatus
[Output Only] Contains output only fields.
-
#resources ⇒ Array<Google::Apis::ComputeAlpha::ResourceCommitment>
The list of all the hardware resources, with their types and amounts, that you want to commit to.
-
#self_link ⇒ String
Output only.
-
#self_link_with_id ⇒ String
Output only.
-
#split_source_commitment ⇒ String
The source commitment from which you are transferring resources to create the new split commitment.
-
#start_timestamp ⇒ String
Output only.
-
#status ⇒ String
Output only.
-
#status_message ⇒ String
Output only.
-
#type ⇒ String
The type of commitment; specifies the machine series for which you want to commit to purchasing resources.
Instance Method Summary collapse
-
#initialize(**args) ⇒ Commitment
constructor
A new instance of Commitment.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ Commitment
Returns a new instance of Commitment.
9619 9620 9621 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9619 def initialize(**args) update!(**args) end |
Instance Attribute Details
#auto_renew ⇒ Boolean Also known as: auto_renew?
Specifies whether to automatically renew the commitment at the end of its
current term. The default value is false. If you set the field
to true, each time your commitment reaches the end of its
term, Compute Engine automatically renews it for another term. You can
update this field anytime before the commitment expires. For example, if
the commitment is set to expire at 12 AM UTC-8 on January 3, 2027, you can
update this field until 11:59 PM UTC-8 on January 2, 2027.
Corresponds to the JSON property autoRenew
9426 9427 9428 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9426 def auto_renew @auto_renew end |
#category ⇒ String
The category of the commitment; specifies whether the commitment is for
hardware or software resources. Category MACHINE specifies
that you are committing to hardware machine resources such asVCPU or MEMORY,
listed in resources.
Category LICENSE specifies that you are committing to software
licenses, listed in licenseResources.
Note that if you specify MACHINE commitments, then you must
also specify a type to indicate the machine series of the
hardware resource that you are committing to.
Corresponds to the JSON property category
9440 9441 9442 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9440 def category @category end |
#creation_timestamp ⇒ String
Output only. [Output Only] Creation timestamp inRFC3339
text format.
Corresponds to the JSON property creationTimestamp
9446 9447 9448 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9446 def @creation_timestamp end |
#custom_end_timestamp ⇒ String
[Input Only] Optional, specifies the requested commitment end time inRFC3339
text format. Use this option when the desired
commitment's end date is later than the start date + term duration.
Corresponds to the JSON property customEndTimestamp
9453 9454 9455 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9453 def @custom_end_timestamp end |
#description ⇒ String
An optional description of the commitment. You can provide this property
when you create the resource.
Corresponds to the JSON property description
9459 9460 9461 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9459 def description @description end |
#end_timestamp ⇒ String
Output only. [Output Only] Commitment end time inRFC3339
text format.
Corresponds to the JSON property endTimestamp
9465 9466 9467 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9465 def @end_timestamp end |
#existing_reservations ⇒ Array<String>
Corresponds to the JSON property existingReservations
9470 9471 9472 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9470 def existing_reservations @existing_reservations end |
#id ⇒ Fixnum
Output only. [Output Only] The unique identifier for the resource. This
identifier is
defined by the server.
Corresponds to the JSON property id
9477 9478 9479 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9477 def id @id end |
#kind ⇒ String
Output only. [Output Only] Type of the resource. Always compute#commitment
for commitments.
Corresponds to the JSON property kind
9483 9484 9485 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9483 def kind @kind end |
#license_resource ⇒ Google::Apis::ComputeAlpha::LicenseResourceCommitment
Commitment for a particular license resource.
Corresponds to the JSON property licenseResource
9488 9489 9490 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9488 def license_resource @license_resource end |
#merge_source_commitments ⇒ Array<String>
The list of source commitments that you are merging to create the new
merged commitment. For more information, see
Merging commitments.
Corresponds to the JSON property mergeSourceCommitments
9495 9496 9497 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9495 def merge_source_commitments @merge_source_commitments end |
#name ⇒ String
Name of the commitment. You must specify a name when you purchase the
commitment. The name must be 1-63 characters long, and comply withRFC1035.
Specifically, the name must be 1-63 characters long and match the regular
expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first
character must be a lowercase letter, and all following characters must
be a dash, lowercase letter, or digit, except the last character, which
cannot be a dash.
Corresponds to the JSON property name
9506 9507 9508 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9506 def name @name end |
#params ⇒ Google::Apis::ComputeAlpha::CommitmentParams
Additional commitment params.
Corresponds to the JSON property params
9511 9512 9513 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9511 def params @params end |
#persistent_disk_resources ⇒ Array<Google::Apis::ComputeAlpha::PersistentDiskResourceCommitment>
Optional. Used when category is PERSISTENT_DISK.
Each entry in the list represents a commitment to a specific Persistent
Disk product type and dimension.
Corresponds to the JSON property persistentDiskResources
9518 9519 9520 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9518 def persistent_disk_resources @persistent_disk_resources end |
#plan ⇒ String
The minimum time duration that you commit to purchasing resources.
The plan that you choose determines the preset term length of the
commitment (which is 1 year or 3 years) and affects the discount rate that
you receive for your resources. Committing to a longer time duration
typically gives you a higher discount rate. The supported values for this
field are TWELVE_MONTH (1 year), andTHIRTY_SIX_MONTH (3 years).
Corresponds to the JSON property plan
9528 9529 9530 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9528 def plan @plan end |
#region ⇒ String
Output only. [Output Only] URL of the region where the commitment and
committed
resources are located.
Corresponds to the JSON property region
9535 9536 9537 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9535 def region @region end |
#reservations ⇒ Array<Google::Apis::ComputeAlpha::Reservation>
The list of new reservations that you want to create and attach to this
commitment.
You must attach reservations to your commitment if your commitment
specifies any GPUs or Local SSD disks. For more information, see
Attach reservations to resource-based commitments.
Specify this property only if you want to create new
reservations to attach. To attach existing reservations, specify
theexistingReservations property instead.
Corresponds to the JSON property reservations
9547 9548 9549 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9547 def reservations @reservations end |
#resource_status ⇒ Google::Apis::ComputeAlpha::CommitmentResourceStatus
[Output Only] Contains output only fields.
Corresponds to the JSON property resourceStatus
9552 9553 9554 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9552 def resource_status @resource_status end |
#resources ⇒ Array<Google::Apis::ComputeAlpha::ResourceCommitment>
The list of all the hardware resources, with their types and amounts, that
you want to commit to. Specify as a separate entry in the list for each
individual resource type.
Corresponds to the JSON property resources
9559 9560 9561 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9559 def resources @resources end |
#self_link ⇒ String
Output only. [Output Only] Server-defined URL for the resource.
Corresponds to the JSON property selfLink
9564 9565 9566 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9564 def self_link @self_link end |
#self_link_with_id ⇒ String
Output only. [Output Only] Server-defined URL for this resource with the
resource id.
Corresponds to the JSON property selfLinkWithId
9570 9571 9572 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9570 def self_link_with_id @self_link_with_id end |
#split_source_commitment ⇒ String
The source commitment from which you are transferring resources to create
the new split commitment. For more information, see
Split commitments.
Corresponds to the JSON property splitSourceCommitment
9577 9578 9579 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9577 def split_source_commitment @split_source_commitment end |
#start_timestamp ⇒ String
Output only. [Output Only] Commitment start time inRFC3339
text format.
Corresponds to the JSON property startTimestamp
9583 9584 9585 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9583 def @start_timestamp end |
#status ⇒ String
Output only. [Output Only] Status of the commitment with regards to eventual
expiration
(each commitment has an end date defined). Status can be one of the
following values: NOT_YET_ACTIVE, ACTIVE, orEXPIRED.
Corresponds to the JSON property status
9591 9592 9593 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9591 def status @status end |
#status_message ⇒ String
Output only. [Output Only] An optional, human-readable explanation of the
status.
Corresponds to the JSON property statusMessage
9597 9598 9599 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9597 def @status_message end |
#type ⇒ String
The type of commitment; specifies the
machine series for which you want to commit to purchasing resources.
The choice of machine series affects the discount rate and the eligible
resource types.
The type must be one of the following:ACCELERATOR_OPTIMIZED,
ACCELERATOR_OPTIMIZED_A3,ACCELERATOR_OPTIMIZED_A3_MEGA,COMPUTE_OPTIMIZED,
COMPUTE_OPTIMIZED_C2D,
COMPUTE_OPTIMIZED_C3, COMPUTE_OPTIMIZED_C3D,COMPUTE_OPTIMIZED_H3,
GENERAL_PURPOSE,GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2,GENERAL_PURPOSE_N2,
GENERAL_PURPOSE_N2D,GENERAL_PURPOSE_N4, GENERAL_PURPOSE_T2D,GRAPHICS_OPTIMIZED,
GRAPHICS_OPTIMIZED_G4,GRAPHICS_OPTIMIZED_G4_VGPU,MEMORY_OPTIMIZED,
MEMORY_OPTIMIZED_M3,MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For
example, type MEMORY_OPTIMIZED specifies a commitment that
applies only to eligible resources of memory optimized M1 and M2 machine
series. Type GENERAL_PURPOSE specifies a commitment that
applies only to eligible resources of general purpose N1 machine series.
Corresponds to the JSON property type
9617 9618 9619 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9617 def type @type end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 |
# File 'lib/google/apis/compute_alpha/classes.rb', line 9624 def update!(**args) @auto_renew = args[:auto_renew] if args.key?(:auto_renew) @category = args[:category] if args.key?(:category) @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp) @custom_end_timestamp = args[:custom_end_timestamp] if args.key?(:custom_end_timestamp) @description = args[:description] if args.key?(:description) @end_timestamp = args[:end_timestamp] if args.key?(:end_timestamp) @existing_reservations = args[:existing_reservations] if args.key?(:existing_reservations) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @license_resource = args[:license_resource] if args.key?(:license_resource) @merge_source_commitments = args[:merge_source_commitments] if args.key?(:merge_source_commitments) @name = args[:name] if args.key?(:name) @params = args[:params] if args.key?(:params) @persistent_disk_resources = args[:persistent_disk_resources] if args.key?(:persistent_disk_resources) @plan = args[:plan] if args.key?(:plan) @region = args[:region] if args.key?(:region) @reservations = args[:reservations] if args.key?(:reservations) @resource_status = args[:resource_status] if args.key?(:resource_status) @resources = args[:resources] if args.key?(:resources) @self_link = args[:self_link] if args.key?(:self_link) @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id) @split_source_commitment = args[:split_source_commitment] if args.key?(:split_source_commitment) @start_timestamp = args[:start_timestamp] if args.key?(:start_timestamp) @status = args[:status] if args.key?(:status) @status_message = args[:status_message] if args.key?(:status_message) @type = args[:type] if args.key?(:type) end |