com.google.api.services.compute.model.Commitment Maven / Gradle / Ivy
The newest version!
/*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* This code was generated by https://github.com/googleapis/google-api-java-client-services/
* Modify at your own risk.
*/
package com.google.api.services.compute.model;
/**
* 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
*
* This is the Java data model class that specifies how to parse/serialize into the JSON that is
* transmitted over HTTP when working with the Compute Engine API. For a detailed explanation see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class Commitment extends com.google.api.client.json.GenericJson {
/**
* 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.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Boolean autoRenew;
/**
* 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 as VCPU 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.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String category;
/**
* [Output Only] Creation timestamp in RFC3339 text format.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String creationTimestamp;
/**
* [Input Only] Optional, specifies the requested commitment end time in RFC3339 text format. Use
* this option when the desired commitment's end date is later than the start date + term
* duration.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String customEndTimestamp;
/**
* An optional description of the commitment. You can provide this property when you create the
* resource.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String description;
/**
* [Output Only] Commitment end time in RFC3339 text format.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String endTimestamp;
/**
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List existingReservations;
/**
* [Output Only] The unique identifier for the resource. This identifier is defined by the server.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key @com.google.api.client.json.JsonString
private java.math.BigInteger id;
/**
* [Output Only] Type of the resource. Always compute#commitment for commitments.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String kind;
/**
* The license specification required as part of a license commitment.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private LicenseResourceCommitment licenseResource;
/**
* The list of source commitments that you are merging to create the new merged commitment. For
* more information, see Merging commitments.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List mergeSourceCommitments;
/**
* Name of the commitment. You must specify a name when you purchase the commitment. The name must
* be 1-63 characters long, and comply with RFC1035. 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.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String name;
/**
* 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), and THIRTY_SIX_MONTH (3 years).
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String plan;
/**
* [Output Only] URL of the region where the commitment and committed resources are located.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String region;
/**
* 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 the existingReservations property instead.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List reservations;
/**
* [Output Only] Status information for Commitment resource.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private CommitmentResourceStatus resourceStatus;
/**
* 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.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List resources;
/**
* [Output Only] Server-defined URL for the resource.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String selfLink;
/**
* The source commitment from which you are transferring resources to create the new split
* commitment. For more information, see Split commitments.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String splitSourceCommitment;
/**
* [Output Only] Commitment start time in RFC3339 text format.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String startTimestamp;
/**
* [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, or
* EXPIRED.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String status;
/**
* [Output Only] An optional, human-readable explanation of the status.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String statusMessage;
/**
* 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, 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.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String type;
/**
* 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.
* @return value or {@code null} for none
*/
public java.lang.Boolean getAutoRenew() {
return autoRenew;
}
/**
* 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.
* @param autoRenew autoRenew or {@code null} for none
*/
public Commitment setAutoRenew(java.lang.Boolean autoRenew) {
this.autoRenew = autoRenew;
return this;
}
/**
* 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 as VCPU 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.
* @return value or {@code null} for none
*/
public java.lang.String getCategory() {
return 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 as VCPU 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.
* @param category category or {@code null} for none
*/
public Commitment setCategory(java.lang.String category) {
this.category = category;
return this;
}
/**
* [Output Only] Creation timestamp in RFC3339 text format.
* @return value or {@code null} for none
*/
public java.lang.String getCreationTimestamp() {
return creationTimestamp;
}
/**
* [Output Only] Creation timestamp in RFC3339 text format.
* @param creationTimestamp creationTimestamp or {@code null} for none
*/
public Commitment setCreationTimestamp(java.lang.String creationTimestamp) {
this.creationTimestamp = creationTimestamp;
return this;
}
/**
* [Input Only] Optional, specifies the requested commitment end time in RFC3339 text format. Use
* this option when the desired commitment's end date is later than the start date + term
* duration.
* @return value or {@code null} for none
*/
public java.lang.String getCustomEndTimestamp() {
return customEndTimestamp;
}
/**
* [Input Only] Optional, specifies the requested commitment end time in RFC3339 text format. Use
* this option when the desired commitment's end date is later than the start date + term
* duration.
* @param customEndTimestamp customEndTimestamp or {@code null} for none
*/
public Commitment setCustomEndTimestamp(java.lang.String customEndTimestamp) {
this.customEndTimestamp = customEndTimestamp;
return this;
}
/**
* An optional description of the commitment. You can provide this property when you create the
* resource.
* @return value or {@code null} for none
*/
public java.lang.String getDescription() {
return description;
}
/**
* An optional description of the commitment. You can provide this property when you create the
* resource.
* @param description description or {@code null} for none
*/
public Commitment setDescription(java.lang.String description) {
this.description = description;
return this;
}
/**
* [Output Only] Commitment end time in RFC3339 text format.
* @return value or {@code null} for none
*/
public java.lang.String getEndTimestamp() {
return endTimestamp;
}
/**
* [Output Only] Commitment end time in RFC3339 text format.
* @param endTimestamp endTimestamp or {@code null} for none
*/
public Commitment setEndTimestamp(java.lang.String endTimestamp) {
this.endTimestamp = endTimestamp;
return this;
}
/**
* @return value or {@code null} for none
*/
public java.util.List getExistingReservations() {
return existingReservations;
}
/**
* @param existingReservations existingReservations or {@code null} for none
*/
public Commitment setExistingReservations(java.util.List existingReservations) {
this.existingReservations = existingReservations;
return this;
}
/**
* [Output Only] The unique identifier for the resource. This identifier is defined by the server.
* @return value or {@code null} for none
*/
public java.math.BigInteger getId() {
return id;
}
/**
* [Output Only] The unique identifier for the resource. This identifier is defined by the server.
* @param id id or {@code null} for none
*/
public Commitment setId(java.math.BigInteger id) {
this.id = id;
return this;
}
/**
* [Output Only] Type of the resource. Always compute#commitment for commitments.
* @return value or {@code null} for none
*/
public java.lang.String getKind() {
return kind;
}
/**
* [Output Only] Type of the resource. Always compute#commitment for commitments.
* @param kind kind or {@code null} for none
*/
public Commitment setKind(java.lang.String kind) {
this.kind = kind;
return this;
}
/**
* The license specification required as part of a license commitment.
* @return value or {@code null} for none
*/
public LicenseResourceCommitment getLicenseResource() {
return licenseResource;
}
/**
* The license specification required as part of a license commitment.
* @param licenseResource licenseResource or {@code null} for none
*/
public Commitment setLicenseResource(LicenseResourceCommitment licenseResource) {
this.licenseResource = licenseResource;
return this;
}
/**
* The list of source commitments that you are merging to create the new merged commitment. For
* more information, see Merging commitments.
* @return value or {@code null} for none
*/
public java.util.List getMergeSourceCommitments() {
return mergeSourceCommitments;
}
/**
* The list of source commitments that you are merging to create the new merged commitment. For
* more information, see Merging commitments.
* @param mergeSourceCommitments mergeSourceCommitments or {@code null} for none
*/
public Commitment setMergeSourceCommitments(java.util.List mergeSourceCommitments) {
this.mergeSourceCommitments = mergeSourceCommitments;
return this;
}
/**
* Name of the commitment. You must specify a name when you purchase the commitment. The name must
* be 1-63 characters long, and comply with RFC1035. 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.
* @return value or {@code null} for none
*/
public java.lang.String getName() {
return name;
}
/**
* Name of the commitment. You must specify a name when you purchase the commitment. The name must
* be 1-63 characters long, and comply with RFC1035. 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.
* @param name name or {@code null} for none
*/
public Commitment setName(java.lang.String name) {
this.name = name;
return this;
}
/**
* 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), and THIRTY_SIX_MONTH (3 years).
* @return value or {@code null} for none
*/
public java.lang.String getPlan() {
return 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), and THIRTY_SIX_MONTH (3 years).
* @param plan plan or {@code null} for none
*/
public Commitment setPlan(java.lang.String plan) {
this.plan = plan;
return this;
}
/**
* [Output Only] URL of the region where the commitment and committed resources are located.
* @return value or {@code null} for none
*/
public java.lang.String getRegion() {
return region;
}
/**
* [Output Only] URL of the region where the commitment and committed resources are located.
* @param region region or {@code null} for none
*/
public Commitment setRegion(java.lang.String region) {
this.region = region;
return this;
}
/**
* 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 the existingReservations property instead.
* @return value or {@code null} for none
*/
public java.util.List getReservations() {
return reservations;
}
/**
* 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 the existingReservations property instead.
* @param reservations reservations or {@code null} for none
*/
public Commitment setReservations(java.util.List reservations) {
this.reservations = reservations;
return this;
}
/**
* [Output Only] Status information for Commitment resource.
* @return value or {@code null} for none
*/
public CommitmentResourceStatus getResourceStatus() {
return resourceStatus;
}
/**
* [Output Only] Status information for Commitment resource.
* @param resourceStatus resourceStatus or {@code null} for none
*/
public Commitment setResourceStatus(CommitmentResourceStatus resourceStatus) {
this.resourceStatus = resourceStatus;
return this;
}
/**
* 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.
* @return value or {@code null} for none
*/
public java.util.List getResources() {
return resources;
}
/**
* 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.
* @param resources resources or {@code null} for none
*/
public Commitment setResources(java.util.List resources) {
this.resources = resources;
return this;
}
/**
* [Output Only] Server-defined URL for the resource.
* @return value or {@code null} for none
*/
public java.lang.String getSelfLink() {
return selfLink;
}
/**
* [Output Only] Server-defined URL for the resource.
* @param selfLink selfLink or {@code null} for none
*/
public Commitment setSelfLink(java.lang.String selfLink) {
this.selfLink = selfLink;
return this;
}
/**
* The source commitment from which you are transferring resources to create the new split
* commitment. For more information, see Split commitments.
* @return value or {@code null} for none
*/
public java.lang.String getSplitSourceCommitment() {
return splitSourceCommitment;
}
/**
* The source commitment from which you are transferring resources to create the new split
* commitment. For more information, see Split commitments.
* @param splitSourceCommitment splitSourceCommitment or {@code null} for none
*/
public Commitment setSplitSourceCommitment(java.lang.String splitSourceCommitment) {
this.splitSourceCommitment = splitSourceCommitment;
return this;
}
/**
* [Output Only] Commitment start time in RFC3339 text format.
* @return value or {@code null} for none
*/
public java.lang.String getStartTimestamp() {
return startTimestamp;
}
/**
* [Output Only] Commitment start time in RFC3339 text format.
* @param startTimestamp startTimestamp or {@code null} for none
*/
public Commitment setStartTimestamp(java.lang.String startTimestamp) {
this.startTimestamp = startTimestamp;
return this;
}
/**
* [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, or
* EXPIRED.
* @return value or {@code null} for none
*/
public java.lang.String getStatus() {
return status;
}
/**
* [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, or
* EXPIRED.
* @param status status or {@code null} for none
*/
public Commitment setStatus(java.lang.String status) {
this.status = status;
return this;
}
/**
* [Output Only] An optional, human-readable explanation of the status.
* @return value or {@code null} for none
*/
public java.lang.String getStatusMessage() {
return statusMessage;
}
/**
* [Output Only] An optional, human-readable explanation of the status.
* @param statusMessage statusMessage or {@code null} for none
*/
public Commitment setStatusMessage(java.lang.String statusMessage) {
this.statusMessage = statusMessage;
return this;
}
/**
* 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, 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.
* @return value or {@code null} for none
*/
public java.lang.String getType() {
return 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, 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.
* @param type type or {@code null} for none
*/
public Commitment setType(java.lang.String type) {
this.type = type;
return this;
}
@Override
public Commitment set(String fieldName, Object value) {
return (Commitment) super.set(fieldName, value);
}
@Override
public Commitment clone() {
return (Commitment) super.clone();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy