Skip to main content

Commitment

Struct Commitment 

Source
#[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 */
}
Available on crate feature 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
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional 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

Source

pub fn new() -> Self

Source

pub fn set_auto_renew<T>(self, v: T) -> Self
where T: Into<bool>,

Sets the value of auto_renew.

§Example
let x = Commitment::new().set_auto_renew(true);
Source

pub fn set_or_clear_auto_renew<T>(self, v: Option<T>) -> Self
where T: Into<bool>,

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>);
Source

pub fn set_category<T>(self, v: T) -> Self
where T: Into<Category>,

Sets the value of category.

§Example
use google_cloud_compute_v1::model::commitment::Category;
let x0 = Commitment::new().set_category(Category::License);
let x1 = Commitment::new().set_category(Category::Machine);
Source

pub fn set_or_clear_category<T>(self, v: Option<T>) -> Self
where T: Into<Category>,

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>);
Source

pub fn set_creation_timestamp<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of creation_timestamp.

§Example
let x = Commitment::new().set_creation_timestamp("example");
Source

pub fn set_or_clear_creation_timestamp<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_custom_end_timestamp<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of custom_end_timestamp.

§Example
let x = Commitment::new().set_custom_end_timestamp("example");
Source

pub fn set_or_clear_custom_end_timestamp<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_description<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of description.

§Example
let x = Commitment::new().set_description("example");
Source

pub fn set_or_clear_description<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_end_timestamp<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of end_timestamp.

§Example
let x = Commitment::new().set_end_timestamp("example");
Source

pub fn set_or_clear_end_timestamp<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_existing_reservations<T, V>(self, v: T) -> Self
where T: IntoIterator<Item = V>, V: Into<String>,

Sets the value of existing_reservations.

§Example
let x = Commitment::new().set_existing_reservations(["a", "b", "c"]);
Source

pub fn set_id<T>(self, v: T) -> Self
where T: Into<u64>,

Sets the value of id.

§Example
let x = Commitment::new().set_id(42_u32);
Source

pub fn set_or_clear_id<T>(self, v: Option<T>) -> Self
where T: Into<u64>,

Sets or clears the value of id.

§Example
let x = Commitment::new().set_or_clear_id(Some(42_u32));
let x = Commitment::new().set_or_clear_id(None::<u32>);
Source

pub fn set_kind<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of kind.

§Example
let x = Commitment::new().set_kind("example");
Source

pub fn set_or_clear_kind<T>(self, v: Option<T>) -> Self
where T: Into<String>,

Sets or clears the value of kind.

§Example
let x = Commitment::new().set_or_clear_kind(Some("example"));
let x = Commitment::new().set_or_clear_kind(None::<String>);
Source

pub fn set_license_resource<T>(self, v: T) -> Self

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 */);
Source

pub fn set_or_clear_license_resource<T>(self, v: Option<T>) -> Self

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>);
Source

pub fn set_merge_source_commitments<T, V>(self, v: T) -> Self
where T: IntoIterator<Item = V>, V: Into<String>,

Sets the value of merge_source_commitments.

§Example
let x = Commitment::new().set_merge_source_commitments(["a", "b", "c"]);
Source

pub fn set_name<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of name.

§Example
let x = Commitment::new().set_name("example");
Source

pub fn set_or_clear_name<T>(self, v: Option<T>) -> Self
where T: Into<String>,

Sets or clears the value of name.

§Example
let x = Commitment::new().set_or_clear_name(Some("example"));
let x = Commitment::new().set_or_clear_name(None::<String>);
Source

pub fn set_plan<T>(self, v: T) -> Self
where T: Into<Plan>,

Sets the value of plan.

§Example
use google_cloud_compute_v1::model::commitment::Plan;
let x0 = Commitment::new().set_plan(Plan::ThirtySixMonth);
let x1 = Commitment::new().set_plan(Plan::TwelveMonth);
Source

pub fn set_or_clear_plan<T>(self, v: Option<T>) -> Self
where T: Into<Plan>,

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>);
Source

pub fn set_region<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of region.

§Example
let x = Commitment::new().set_region("example");
Source

pub fn set_or_clear_region<T>(self, v: Option<T>) -> Self
where T: Into<String>,

Sets or clears the value of region.

§Example
let x = Commitment::new().set_or_clear_region(Some("example"));
let x = Commitment::new().set_or_clear_region(None::<String>);
Source

pub fn set_reservations<T, V>(self, v: T) -> Self
where T: IntoIterator<Item = V>, V: Into<Reservation>,

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 */,
    ]);
Source

pub fn set_resource_status<T>(self, v: T) -> Self

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 */);
Source

pub fn set_or_clear_resource_status<T>(self, v: Option<T>) -> Self

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>);
Source

pub fn set_resources<T, V>(self, v: T) -> Self
where T: IntoIterator<Item = V>, V: Into<ResourceCommitment>,

Sets the value of resources.

§Example
use google_cloud_compute_v1::model::ResourceCommitment;
let x = Commitment::new()
    .set_resources([
        ResourceCommitment::default()/* use setters */,
        ResourceCommitment::default()/* use (different) setters */,
    ]);

Sets the value of self_link.

§Example
let x = Commitment::new().set_self_link("example");

Sets or clears the value of self_link.

§Example
let x = Commitment::new().set_or_clear_self_link(Some("example"));
let x = Commitment::new().set_or_clear_self_link(None::<String>);
Source

pub fn set_split_source_commitment<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of split_source_commitment.

§Example
let x = Commitment::new().set_split_source_commitment("example");
Source

pub fn set_or_clear_split_source_commitment<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_start_timestamp<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of start_timestamp.

§Example
let x = Commitment::new().set_start_timestamp("example");
Source

pub fn set_or_clear_start_timestamp<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_status<T>(self, v: T) -> Self
where T: Into<Status>,

Sets the value of status.

§Example
use google_cloud_compute_v1::model::commitment::Status;
let x0 = Commitment::new().set_status(Status::Cancelled);
let x1 = Commitment::new().set_status(Status::Creating);
let x2 = Commitment::new().set_status(Status::Expired);
Source

pub fn set_or_clear_status<T>(self, v: Option<T>) -> Self
where T: Into<Status>,

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>);
Source

pub fn set_status_message<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of status_message.

§Example
let x = Commitment::new().set_status_message("example");
Source

pub fn set_or_clear_status_message<T>(self, v: Option<T>) -> Self
where T: Into<String>,

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>);
Source

pub fn set_type<T>(self, v: T) -> Self
where T: Into<Type>,

Sets the value of r#type.

§Example
use google_cloud_compute_v1::model::commitment::Type;
let x0 = Commitment::new().set_type(Type::AcceleratorOptimizedA3);
let x1 = Commitment::new().set_type(Type::AcceleratorOptimizedA3Mega);
let x2 = Commitment::new().set_type(Type::AcceleratorOptimizedA3Ultra);
Source

pub fn set_or_clear_type<T>(self, v: Option<T>) -> Self
where T: Into<Type>,

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

Source§

fn clone(&self) -> Commitment

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Commitment

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Commitment

Source§

fn default() -> Commitment

Returns the “default value” for a type. Read more
Source§

impl Message for Commitment

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for Commitment

Source§

fn eq(&self, other: &Commitment) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Commitment

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,