Class: Google::Apis::ComputeAlpha::Commitment

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Commitment

Returns a new instance of Commitment.



9201
9202
9203
# File 'lib/google/apis/compute_alpha/classes.rb', line 9201

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

Instance Attribute Details

#auto_renewBoolean 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

Returns:

  • (Boolean)


9008
9009
9010
# File 'lib/google/apis/compute_alpha/classes.rb', line 9008

def auto_renew
  @auto_renew
end

#categoryString

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

Returns:

  • (String)


9022
9023
9024
# File 'lib/google/apis/compute_alpha/classes.rb', line 9022

def category
  @category
end

#creation_timestampString

Output only. [Output Only] Creation timestamp inRFC3339 text format. Corresponds to the JSON property creationTimestamp

Returns:

  • (String)


9028
9029
9030
# File 'lib/google/apis/compute_alpha/classes.rb', line 9028

def creation_timestamp
  @creation_timestamp
end

#custom_end_timestampString

[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

Returns:

  • (String)


9035
9036
9037
# File 'lib/google/apis/compute_alpha/classes.rb', line 9035

def custom_end_timestamp
  @custom_end_timestamp
end

#descriptionString

An optional description of the commitment. You can provide this property when you create the resource. Corresponds to the JSON property description

Returns:

  • (String)


9041
9042
9043
# File 'lib/google/apis/compute_alpha/classes.rb', line 9041

def description
  @description
end

#end_timestampString

Output only. [Output Only] Commitment end time inRFC3339 text format. Corresponds to the JSON property endTimestamp

Returns:

  • (String)


9047
9048
9049
# File 'lib/google/apis/compute_alpha/classes.rb', line 9047

def end_timestamp
  @end_timestamp
end

#existing_reservationsArray<String>

Corresponds to the JSON property existingReservations

Returns:

  • (Array<String>)


9052
9053
9054
# File 'lib/google/apis/compute_alpha/classes.rb', line 9052

def existing_reservations
  @existing_reservations
end

#idFixnum

Output only. [Output Only] The unique identifier for the resource. This identifier is defined by the server. Corresponds to the JSON property id

Returns:

  • (Fixnum)


9059
9060
9061
# File 'lib/google/apis/compute_alpha/classes.rb', line 9059

def id
  @id
end

#kindString

Output only. [Output Only] Type of the resource. Always compute#commitment for commitments. Corresponds to the JSON property kind

Returns:

  • (String)


9065
9066
9067
# File 'lib/google/apis/compute_alpha/classes.rb', line 9065

def kind
  @kind
end

#license_resourceGoogle::Apis::ComputeAlpha::LicenseResourceCommitment

Commitment for a particular license resource. Corresponds to the JSON property licenseResource



9070
9071
9072
# File 'lib/google/apis/compute_alpha/classes.rb', line 9070

def license_resource
  @license_resource
end

#merge_source_commitmentsArray<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

Returns:

  • (Array<String>)


9077
9078
9079
# File 'lib/google/apis/compute_alpha/classes.rb', line 9077

def merge_source_commitments
  @merge_source_commitments
end

#nameString

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

Returns:

  • (String)


9088
9089
9090
# File 'lib/google/apis/compute_alpha/classes.rb', line 9088

def name
  @name
end

#paramsGoogle::Apis::ComputeAlpha::CommitmentParams

Additional commitment params. Corresponds to the JSON property params



9093
9094
9095
# File 'lib/google/apis/compute_alpha/classes.rb', line 9093

def params
  @params
end

#persistent_disk_resourcesArray<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



9100
9101
9102
# File 'lib/google/apis/compute_alpha/classes.rb', line 9100

def persistent_disk_resources
  @persistent_disk_resources
end

#planString

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

Returns:

  • (String)


9110
9111
9112
# File 'lib/google/apis/compute_alpha/classes.rb', line 9110

def plan
  @plan
end

#regionString

Output only. [Output Only] URL of the region where the commitment and committed resources are located. Corresponds to the JSON property region

Returns:

  • (String)


9117
9118
9119
# File 'lib/google/apis/compute_alpha/classes.rb', line 9117

def region
  @region
end

#reservationsArray<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



9129
9130
9131
# File 'lib/google/apis/compute_alpha/classes.rb', line 9129

def reservations
  @reservations
end

#resource_statusGoogle::Apis::ComputeAlpha::CommitmentResourceStatus

[Output Only] Contains output only fields. Corresponds to the JSON property resourceStatus



9134
9135
9136
# File 'lib/google/apis/compute_alpha/classes.rb', line 9134

def resource_status
  @resource_status
end

#resourcesArray<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



9141
9142
9143
# File 'lib/google/apis/compute_alpha/classes.rb', line 9141

def resources
  @resources
end

Output only. [Output Only] Server-defined URL for the resource. Corresponds to the JSON property selfLink

Returns:

  • (String)


9146
9147
9148
# File 'lib/google/apis/compute_alpha/classes.rb', line 9146

def self_link
  @self_link
end

Output only. [Output Only] Server-defined URL for this resource with the resource id. Corresponds to the JSON property selfLinkWithId

Returns:

  • (String)


9152
9153
9154
# File 'lib/google/apis/compute_alpha/classes.rb', line 9152

def self_link_with_id
  @self_link_with_id
end

#split_source_commitmentString

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

Returns:

  • (String)


9159
9160
9161
# File 'lib/google/apis/compute_alpha/classes.rb', line 9159

def split_source_commitment
  @split_source_commitment
end

#start_timestampString

Output only. [Output Only] Commitment start time inRFC3339 text format. Corresponds to the JSON property startTimestamp

Returns:

  • (String)


9165
9166
9167
# File 'lib/google/apis/compute_alpha/classes.rb', line 9165

def start_timestamp
  @start_timestamp
end

#statusString

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

Returns:

  • (String)


9173
9174
9175
# File 'lib/google/apis/compute_alpha/classes.rb', line 9173

def status
  @status
end

#status_messageString

Output only. [Output Only] An optional, human-readable explanation of the status. Corresponds to the JSON property statusMessage

Returns:

  • (String)


9179
9180
9181
# File 'lib/google/apis/compute_alpha/classes.rb', line 9179

def status_message
  @status_message
end

#typeString

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

Returns:

  • (String)


9199
9200
9201
# File 'lib/google/apis/compute_alpha/classes.rb', line 9199

def type
  @type
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
# File 'lib/google/apis/compute_alpha/classes.rb', line 9206

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