#[non_exhaustive]pub struct Commitment {Show 23 fields
pub auto_renew: Option<bool>,
pub category: Option<Category>,
pub creation_timestamp: Option<String>,
pub custom_end_timestamp: Option<String>,
pub description: Option<String>,
pub end_timestamp: Option<String>,
pub existing_reservations: Vec<String>,
pub id: Option<u64>,
pub kind: Option<String>,
pub license_resource: Option<LicenseResourceCommitment>,
pub merge_source_commitments: Vec<String>,
pub name: Option<String>,
pub plan: Option<Plan>,
pub region: Option<String>,
pub reservations: Vec<Reservation>,
pub resource_status: Option<CommitmentResourceStatus>,
pub resources: Vec<ResourceCommitment>,
pub self_link: Option<String>,
pub split_source_commitment: Option<String>,
pub start_timestamp: Option<String>,
pub status: Option<Status>,
pub status_message: Option<String>,
pub type: Option<Type>,
/* private fields */
}region-commitments only.Expand description
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
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.auto_renew: Option<bool>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.
category: Option<Category>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.
creation_timestamp: Option<String>Output only. [Output Only] Creation timestamp inRFC3339 text format.
custom_end_timestamp: Option<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.
description: Option<String>An optional description of the commitment. You can provide this property when you create the resource.
end_timestamp: Option<String>Output only. [Output Only] Commitment end time inRFC3339 text format.
existing_reservations: Vec<String>§id: Option<u64>Output only. [Output Only] The unique identifier for the resource. This identifier is defined by the server.
kind: Option<String>Output only. [Output Only] Type of the resource. Always compute#commitment for commitments.
license_resource: Option<LicenseResourceCommitment>The license specification required as part of a license commitment.
merge_source_commitments: Vec<String>The list of source commitments that you are merging to create the new merged commitment. For more information, see Merging commitments.
name: Option<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.
plan: Option<Plan>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).
region: Option<String>Output only. [Output Only] URL of the region where the commitment and committed resources are located.
reservations: Vec<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.
resource_status: Option<CommitmentResourceStatus>Output only. [Output Only] Status information for Commitment resource.
resources: Vec<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.
self_link: Option<String>Output only. [Output Only] Server-defined URL for the resource.
split_source_commitment: Option<String>The source commitment from which you are transferring resources to create the new split commitment. For more information, see Split commitments.
start_timestamp: Option<String>Output only. [Output Only] Commitment start time inRFC3339 text format.
status: Option<Status>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.
status_message: Option<String>Output only. [Output Only] An optional, human-readable explanation of the status.
type: Option<Type>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,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.
Implementations§
Source§impl Commitment
impl Commitment
pub fn new() -> Self
Sourcepub fn set_auto_renew<T>(self, v: T) -> Self
pub fn set_auto_renew<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_auto_renew<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_auto_renew<T>(self, v: Option<T>) -> Self
Sets or clears the value of auto_renew.
§Example
let x = Commitment::new().set_or_clear_auto_renew(Some(false));
let x = Commitment::new().set_or_clear_auto_renew(None::<bool>);Sourcepub fn set_category<T>(self, v: T) -> Self
pub fn set_category<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_category<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_category<T>(self, v: Option<T>) -> Self
Sets or clears the value of category.
§Example
use google_cloud_compute_v1::model::commitment::Category;
let x0 = Commitment::new().set_or_clear_category(Some(Category::License));
let x1 = Commitment::new().set_or_clear_category(Some(Category::Machine));
let x_none = Commitment::new().set_or_clear_category(None::<Category>);Sourcepub fn set_creation_timestamp<T>(self, v: T) -> Self
pub fn set_creation_timestamp<T>(self, v: T) -> Self
Sets the value of creation_timestamp.
§Example
let x = Commitment::new().set_creation_timestamp("example");Sourcepub fn set_or_clear_creation_timestamp<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_creation_timestamp<T>(self, v: Option<T>) -> Self
Sets or clears the value of creation_timestamp.
§Example
let x = Commitment::new().set_or_clear_creation_timestamp(Some("example"));
let x = Commitment::new().set_or_clear_creation_timestamp(None::<String>);Sourcepub fn set_custom_end_timestamp<T>(self, v: T) -> Self
pub fn set_custom_end_timestamp<T>(self, v: T) -> Self
Sets the value of custom_end_timestamp.
§Example
let x = Commitment::new().set_custom_end_timestamp("example");Sourcepub fn set_or_clear_custom_end_timestamp<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_custom_end_timestamp<T>(self, v: Option<T>) -> Self
Sets or clears the value of custom_end_timestamp.
§Example
let x = Commitment::new().set_or_clear_custom_end_timestamp(Some("example"));
let x = Commitment::new().set_or_clear_custom_end_timestamp(None::<String>);Sourcepub fn set_description<T>(self, v: T) -> Self
pub fn set_description<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_description<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_description<T>(self, v: Option<T>) -> Self
Sets or clears the value of description.
§Example
let x = Commitment::new().set_or_clear_description(Some("example"));
let x = Commitment::new().set_or_clear_description(None::<String>);Sourcepub fn set_end_timestamp<T>(self, v: T) -> Self
pub fn set_end_timestamp<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_end_timestamp<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_end_timestamp<T>(self, v: Option<T>) -> Self
Sets or clears the value of end_timestamp.
§Example
let x = Commitment::new().set_or_clear_end_timestamp(Some("example"));
let x = Commitment::new().set_or_clear_end_timestamp(None::<String>);Sourcepub fn set_existing_reservations<T, V>(self, v: T) -> Self
pub fn set_existing_reservations<T, V>(self, v: T) -> Self
Sets the value of existing_reservations.
§Example
let x = Commitment::new().set_existing_reservations(["a", "b", "c"]);Sourcepub fn set_or_clear_id<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_id<T>(self, v: Option<T>) -> Self
Sourcepub fn set_or_clear_kind<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_kind<T>(self, v: Option<T>) -> Self
Sourcepub fn set_license_resource<T>(self, v: T) -> Selfwhere
T: Into<LicenseResourceCommitment>,
pub fn set_license_resource<T>(self, v: T) -> Selfwhere
T: Into<LicenseResourceCommitment>,
Sets the value of license_resource.
§Example
use google_cloud_compute_v1::model::LicenseResourceCommitment;
let x = Commitment::new().set_license_resource(LicenseResourceCommitment::default()/* use setters */);Sourcepub fn set_or_clear_license_resource<T>(self, v: Option<T>) -> Selfwhere
T: Into<LicenseResourceCommitment>,
pub fn set_or_clear_license_resource<T>(self, v: Option<T>) -> Selfwhere
T: Into<LicenseResourceCommitment>,
Sets or clears the value of license_resource.
§Example
use google_cloud_compute_v1::model::LicenseResourceCommitment;
let x = Commitment::new().set_or_clear_license_resource(Some(LicenseResourceCommitment::default()/* use setters */));
let x = Commitment::new().set_or_clear_license_resource(None::<LicenseResourceCommitment>);Sourcepub fn set_merge_source_commitments<T, V>(self, v: T) -> Self
pub fn set_merge_source_commitments<T, V>(self, v: T) -> Self
Sets the value of merge_source_commitments.
§Example
let x = Commitment::new().set_merge_source_commitments(["a", "b", "c"]);Sourcepub fn set_or_clear_name<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_name<T>(self, v: Option<T>) -> Self
Sourcepub fn set_or_clear_plan<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_plan<T>(self, v: Option<T>) -> Self
Sets or clears the value of plan.
§Example
use google_cloud_compute_v1::model::commitment::Plan;
let x0 = Commitment::new().set_or_clear_plan(Some(Plan::ThirtySixMonth));
let x1 = Commitment::new().set_or_clear_plan(Some(Plan::TwelveMonth));
let x_none = Commitment::new().set_or_clear_plan(None::<Plan>);Sourcepub fn set_region<T>(self, v: T) -> Self
pub fn set_region<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_region<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_region<T>(self, v: Option<T>) -> Self
Sourcepub fn set_reservations<T, V>(self, v: T) -> Self
pub fn set_reservations<T, V>(self, v: T) -> Self
Sets the value of reservations.
§Example
use google_cloud_compute_v1::model::Reservation;
let x = Commitment::new()
.set_reservations([
Reservation::default()/* use setters */,
Reservation::default()/* use (different) setters */,
]);Sourcepub fn set_resource_status<T>(self, v: T) -> Selfwhere
T: Into<CommitmentResourceStatus>,
pub fn set_resource_status<T>(self, v: T) -> Selfwhere
T: Into<CommitmentResourceStatus>,
Sets the value of resource_status.
§Example
use google_cloud_compute_v1::model::CommitmentResourceStatus;
let x = Commitment::new().set_resource_status(CommitmentResourceStatus::default()/* use setters */);Sourcepub fn set_or_clear_resource_status<T>(self, v: Option<T>) -> Selfwhere
T: Into<CommitmentResourceStatus>,
pub fn set_or_clear_resource_status<T>(self, v: Option<T>) -> Selfwhere
T: Into<CommitmentResourceStatus>,
Sets or clears the value of resource_status.
§Example
use google_cloud_compute_v1::model::CommitmentResourceStatus;
let x = Commitment::new().set_or_clear_resource_status(Some(CommitmentResourceStatus::default()/* use setters */));
let x = Commitment::new().set_or_clear_resource_status(None::<CommitmentResourceStatus>);Sourcepub fn set_resources<T, V>(self, v: T) -> Self
pub fn set_resources<T, V>(self, v: T) -> Self
Sourcepub fn set_self_link<T>(self, v: T) -> Self
pub fn set_self_link<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_self_link<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_self_link<T>(self, v: Option<T>) -> Self
Sourcepub fn set_split_source_commitment<T>(self, v: T) -> Self
pub fn set_split_source_commitment<T>(self, v: T) -> Self
Sets the value of split_source_commitment.
§Example
let x = Commitment::new().set_split_source_commitment("example");Sourcepub fn set_or_clear_split_source_commitment<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_split_source_commitment<T>(self, v: Option<T>) -> Self
Sets or clears the value of split_source_commitment.
§Example
let x = Commitment::new().set_or_clear_split_source_commitment(Some("example"));
let x = Commitment::new().set_or_clear_split_source_commitment(None::<String>);Sourcepub fn set_start_timestamp<T>(self, v: T) -> Self
pub fn set_start_timestamp<T>(self, v: T) -> Self
Sets the value of start_timestamp.
§Example
let x = Commitment::new().set_start_timestamp("example");Sourcepub fn set_or_clear_start_timestamp<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_start_timestamp<T>(self, v: Option<T>) -> Self
Sets or clears the value of start_timestamp.
§Example
let x = Commitment::new().set_or_clear_start_timestamp(Some("example"));
let x = Commitment::new().set_or_clear_start_timestamp(None::<String>);Sourcepub fn set_status<T>(self, v: T) -> Self
pub fn set_status<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_status<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_status<T>(self, v: Option<T>) -> Self
Sets or clears the value of status.
§Example
use google_cloud_compute_v1::model::commitment::Status;
let x0 = Commitment::new().set_or_clear_status(Some(Status::Cancelled));
let x1 = Commitment::new().set_or_clear_status(Some(Status::Creating));
let x2 = Commitment::new().set_or_clear_status(Some(Status::Expired));
let x_none = Commitment::new().set_or_clear_status(None::<Status>);Sourcepub fn set_status_message<T>(self, v: T) -> Self
pub fn set_status_message<T>(self, v: T) -> Self
Sets the value of status_message.
§Example
let x = Commitment::new().set_status_message("example");Sourcepub fn set_or_clear_status_message<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_status_message<T>(self, v: Option<T>) -> Self
Sets or clears the value of status_message.
§Example
let x = Commitment::new().set_or_clear_status_message(Some("example"));
let x = Commitment::new().set_or_clear_status_message(None::<String>);Sourcepub fn set_or_clear_type<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_type<T>(self, v: Option<T>) -> Self
Sets or clears the value of r#type.
§Example
use google_cloud_compute_v1::model::commitment::Type;
let x0 = Commitment::new().set_or_clear_type(Some(Type::AcceleratorOptimizedA3));
let x1 = Commitment::new().set_or_clear_type(Some(Type::AcceleratorOptimizedA3Mega));
let x2 = Commitment::new().set_or_clear_type(Some(Type::AcceleratorOptimizedA3Ultra));
let x_none = Commitment::new().set_or_clear_type(None::<Type>);Trait Implementations§
Source§impl Clone for Commitment
impl Clone for Commitment
Source§fn clone(&self) -> Commitment
fn clone(&self) -> Commitment
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more