All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.bmc.resourcesearch.model.ResourceSummary Maven / Gradle / Ivy

/**
 * Copyright (c) 2016, 2024, Oracle and/or its affiliates.  All rights reserved.
 * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
 */
package com.oracle.bmc.resourcesearch.model;

/**
 * A resource that exists in the cloud network that you're querying. 
* Note: Objects should always be created or deserialized using the {@link Builder}. This model * distinguishes fields that are {@code null} because they are unset from fields that are explicitly * set to {@code null}. This is done in the setter methods of the {@link Builder}, which maintain a * set of all explicitly set fields called {@link Builder#__explicitlySet__}. The {@link * #hashCode()} and {@link #equals(Object)} methods are implemented to take the explicitly set * fields into account. The constructor, on the other hand, does not take the explicitly set fields * into account (since the constructor cannot distinguish explicit {@code null} from unset {@code * null}). */ @jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20180409") @com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = ResourceSummary.Builder.class) @com.fasterxml.jackson.annotation.JsonFilter( com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME) public final class ResourceSummary extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel { @Deprecated @java.beans.ConstructorProperties({ "resourceType", "identifier", "compartmentId", "timeCreated", "displayName", "availabilityDomain", "lifecycleState", "freeformTags", "definedTags", "systemTags", "searchContext", "identityContext", "additionalDetails" }) public ResourceSummary( String resourceType, String identifier, String compartmentId, java.util.Date timeCreated, String displayName, String availabilityDomain, String lifecycleState, java.util.Map freeformTags, java.util.Map> definedTags, java.util.Map> systemTags, SearchContext searchContext, java.util.Map identityContext, java.util.Map additionalDetails) { super(); this.resourceType = resourceType; this.identifier = identifier; this.compartmentId = compartmentId; this.timeCreated = timeCreated; this.displayName = displayName; this.availabilityDomain = availabilityDomain; this.lifecycleState = lifecycleState; this.freeformTags = freeformTags; this.definedTags = definedTags; this.systemTags = systemTags; this.searchContext = searchContext; this.identityContext = identityContext; this.additionalDetails = additionalDetails; } @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "") public static class Builder { /** The resource type name. */ @com.fasterxml.jackson.annotation.JsonProperty("resourceType") private String resourceType; /** * The resource type name. * * @param resourceType the value to set * @return this builder */ public Builder resourceType(String resourceType) { this.resourceType = resourceType; this.__explicitlySet__.add("resourceType"); return this; } /** The unique identifier for this particular resource, usually an OCID. */ @com.fasterxml.jackson.annotation.JsonProperty("identifier") private String identifier; /** * The unique identifier for this particular resource, usually an OCID. * * @param identifier the value to set * @return this builder */ public Builder identifier(String identifier) { this.identifier = identifier; this.__explicitlySet__.add("identifier"); return this; } /** The OCID of the compartment that contains this resource. */ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId") private String compartmentId; /** * The OCID of the compartment that contains this resource. * * @param compartmentId the value to set * @return this builder */ public Builder compartmentId(String compartmentId) { this.compartmentId = compartmentId; this.__explicitlySet__.add("compartmentId"); return this; } /** The time that this resource was created. */ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated") private java.util.Date timeCreated; /** * The time that this resource was created. * * @param timeCreated the value to set * @return this builder */ public Builder timeCreated(java.util.Date timeCreated) { this.timeCreated = timeCreated; this.__explicitlySet__.add("timeCreated"); return this; } /** The display name (or name) of this resource, if one exists. */ @com.fasterxml.jackson.annotation.JsonProperty("displayName") private String displayName; /** * The display name (or name) of this resource, if one exists. * * @param displayName the value to set * @return this builder */ public Builder displayName(String displayName) { this.displayName = displayName; this.__explicitlySet__.add("displayName"); return this; } /** The availability domain where this resource exists, if applicable. */ @com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain") private String availabilityDomain; /** * The availability domain where this resource exists, if applicable. * * @param availabilityDomain the value to set * @return this builder */ public Builder availabilityDomain(String availabilityDomain) { this.availabilityDomain = availabilityDomain; this.__explicitlySet__.add("availabilityDomain"); return this; } /** The lifecycle state of this resource, if applicable. */ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState") private String lifecycleState; /** * The lifecycle state of this resource, if applicable. * * @param lifecycleState the value to set * @return this builder */ public Builder lifecycleState(String lifecycleState) { this.lifecycleState = lifecycleState; this.__explicitlySet__.add("lifecycleState"); return this; } /** * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined * name, type, or namespace. For more information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Department": "Finance"}} */ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags") private java.util.Map freeformTags; /** * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined * name, type, or namespace. For more information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Department": "Finance"}} * * @param freeformTags the value to set * @return this builder */ public Builder freeformTags(java.util.Map freeformTags) { this.freeformTags = freeformTags; this.__explicitlySet__.add("freeformTags"); return this; } /** * Defined tags for this resource. Each key is predefined and scoped to a namespace. For * more information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Operations": {"CostCenter": "42"}}} */ @com.fasterxml.jackson.annotation.JsonProperty("definedTags") private java.util.Map> definedTags; /** * Defined tags for this resource. Each key is predefined and scoped to a namespace. For * more information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Operations": {"CostCenter": "42"}}} * * @param definedTags the value to set * @return this builder */ public Builder definedTags( java.util.Map> definedTags) { this.definedTags = definedTags; this.__explicitlySet__.add("definedTags"); return this; } /** * System tags associated with this resource, if any. System tags are set by Oracle Cloud * Infrastructure services. Each key is predefined and scoped to namespaces. For more * information, see [Resource * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: * {@code {orcl-cloud: {free-tier-retain: true}}} */ @com.fasterxml.jackson.annotation.JsonProperty("systemTags") private java.util.Map> systemTags; /** * System tags associated with this resource, if any. System tags are set by Oracle Cloud * Infrastructure services. Each key is predefined and scoped to namespaces. For more * information, see [Resource * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: * {@code {orcl-cloud: {free-tier-retain: true}}} * * @param systemTags the value to set * @return this builder */ public Builder systemTags(java.util.Map> systemTags) { this.systemTags = systemTags; this.__explicitlySet__.add("systemTags"); return this; } @com.fasterxml.jackson.annotation.JsonProperty("searchContext") private SearchContext searchContext; public Builder searchContext(SearchContext searchContext) { this.searchContext = searchContext; this.__explicitlySet__.add("searchContext"); return this; } /** * Additional identifiers to use together in a "Get" request for a specified resource, only * required for resource types that explicitly cannot be retrieved by using a single * identifier, such as the resource's OCID. */ @com.fasterxml.jackson.annotation.JsonProperty("identityContext") private java.util.Map identityContext; /** * Additional identifiers to use together in a "Get" request for a specified resource, only * required for resource types that explicitly cannot be retrieved by using a single * identifier, such as the resource's OCID. * * @param identityContext the value to set * @return this builder */ public Builder identityContext(java.util.Map identityContext) { this.identityContext = identityContext; this.__explicitlySet__.add("identityContext"); return this; } /** * Additional resource attribute fields of this resource that match queries with a return * clause, if any. For example, if you ran a query to find the private IP addresses, public * IP addresses, and isPrimary field of the VNIC attachment on instance resources, that * field would be included in the ResourceSummary object as: {"additionalDetails": * {"attachedVnic": [{"publicIP" : "172.110.110.110","privateIP" : "10.10.10.10","isPrimary" * : true}, {"publicIP" : "172.110.110.111","privateIP" : "10.10.10.11","isPrimary" : * false}]}. The structure of the additional details attribute fields depends on the * matching resource. */ @com.fasterxml.jackson.annotation.JsonProperty("additionalDetails") private java.util.Map additionalDetails; /** * Additional resource attribute fields of this resource that match queries with a return * clause, if any. For example, if you ran a query to find the private IP addresses, public * IP addresses, and isPrimary field of the VNIC attachment on instance resources, that * field would be included in the ResourceSummary object as: {"additionalDetails": * {"attachedVnic": [{"publicIP" : "172.110.110.110","privateIP" : "10.10.10.10","isPrimary" * : true}, {"publicIP" : "172.110.110.111","privateIP" : "10.10.10.11","isPrimary" : * false}]}. The structure of the additional details attribute fields depends on the * matching resource. * * @param additionalDetails the value to set * @return this builder */ public Builder additionalDetails(java.util.Map additionalDetails) { this.additionalDetails = additionalDetails; this.__explicitlySet__.add("additionalDetails"); return this; } @com.fasterxml.jackson.annotation.JsonIgnore private final java.util.Set __explicitlySet__ = new java.util.HashSet(); public ResourceSummary build() { ResourceSummary model = new ResourceSummary( this.resourceType, this.identifier, this.compartmentId, this.timeCreated, this.displayName, this.availabilityDomain, this.lifecycleState, this.freeformTags, this.definedTags, this.systemTags, this.searchContext, this.identityContext, this.additionalDetails); for (String explicitlySetProperty : this.__explicitlySet__) { model.markPropertyAsExplicitlySet(explicitlySetProperty); } return model; } @com.fasterxml.jackson.annotation.JsonIgnore public Builder copy(ResourceSummary model) { if (model.wasPropertyExplicitlySet("resourceType")) { this.resourceType(model.getResourceType()); } if (model.wasPropertyExplicitlySet("identifier")) { this.identifier(model.getIdentifier()); } if (model.wasPropertyExplicitlySet("compartmentId")) { this.compartmentId(model.getCompartmentId()); } if (model.wasPropertyExplicitlySet("timeCreated")) { this.timeCreated(model.getTimeCreated()); } if (model.wasPropertyExplicitlySet("displayName")) { this.displayName(model.getDisplayName()); } if (model.wasPropertyExplicitlySet("availabilityDomain")) { this.availabilityDomain(model.getAvailabilityDomain()); } if (model.wasPropertyExplicitlySet("lifecycleState")) { this.lifecycleState(model.getLifecycleState()); } if (model.wasPropertyExplicitlySet("freeformTags")) { this.freeformTags(model.getFreeformTags()); } if (model.wasPropertyExplicitlySet("definedTags")) { this.definedTags(model.getDefinedTags()); } if (model.wasPropertyExplicitlySet("systemTags")) { this.systemTags(model.getSystemTags()); } if (model.wasPropertyExplicitlySet("searchContext")) { this.searchContext(model.getSearchContext()); } if (model.wasPropertyExplicitlySet("identityContext")) { this.identityContext(model.getIdentityContext()); } if (model.wasPropertyExplicitlySet("additionalDetails")) { this.additionalDetails(model.getAdditionalDetails()); } return this; } } /** Create a new builder. */ public static Builder builder() { return new Builder(); } public Builder toBuilder() { return new Builder().copy(this); } /** The resource type name. */ @com.fasterxml.jackson.annotation.JsonProperty("resourceType") private final String resourceType; /** * The resource type name. * * @return the value */ public String getResourceType() { return resourceType; } /** The unique identifier for this particular resource, usually an OCID. */ @com.fasterxml.jackson.annotation.JsonProperty("identifier") private final String identifier; /** * The unique identifier for this particular resource, usually an OCID. * * @return the value */ public String getIdentifier() { return identifier; } /** The OCID of the compartment that contains this resource. */ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId") private final String compartmentId; /** * The OCID of the compartment that contains this resource. * * @return the value */ public String getCompartmentId() { return compartmentId; } /** The time that this resource was created. */ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated") private final java.util.Date timeCreated; /** * The time that this resource was created. * * @return the value */ public java.util.Date getTimeCreated() { return timeCreated; } /** The display name (or name) of this resource, if one exists. */ @com.fasterxml.jackson.annotation.JsonProperty("displayName") private final String displayName; /** * The display name (or name) of this resource, if one exists. * * @return the value */ public String getDisplayName() { return displayName; } /** The availability domain where this resource exists, if applicable. */ @com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain") private final String availabilityDomain; /** * The availability domain where this resource exists, if applicable. * * @return the value */ public String getAvailabilityDomain() { return availabilityDomain; } /** The lifecycle state of this resource, if applicable. */ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState") private final String lifecycleState; /** * The lifecycle state of this resource, if applicable. * * @return the value */ public String getLifecycleState() { return lifecycleState; } /** * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined * name, type, or namespace. For more information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Department": "Finance"}} */ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags") private final java.util.Map freeformTags; /** * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined * name, type, or namespace. For more information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Department": "Finance"}} * * @return the value */ public java.util.Map getFreeformTags() { return freeformTags; } /** * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more * information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Operations": {"CostCenter": "42"}}} */ @com.fasterxml.jackson.annotation.JsonProperty("definedTags") private final java.util.Map> definedTags; /** * Defined tags for this resource. Each key is predefined and scoped to a namespace. For more * information, see [Resource * Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). Example: * {@code {"Operations": {"CostCenter": "42"}}} * * @return the value */ public java.util.Map> getDefinedTags() { return definedTags; } /** * System tags associated with this resource, if any. System tags are set by Oracle Cloud * Infrastructure services. Each key is predefined and scoped to namespaces. For more * information, see [Resource * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: * {@code {orcl-cloud: {free-tier-retain: true}}} */ @com.fasterxml.jackson.annotation.JsonProperty("systemTags") private final java.util.Map> systemTags; /** * System tags associated with this resource, if any. System tags are set by Oracle Cloud * Infrastructure services. Each key is predefined and scoped to namespaces. For more * information, see [Resource * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: * {@code {orcl-cloud: {free-tier-retain: true}}} * * @return the value */ public java.util.Map> getSystemTags() { return systemTags; } @com.fasterxml.jackson.annotation.JsonProperty("searchContext") private final SearchContext searchContext; public SearchContext getSearchContext() { return searchContext; } /** * Additional identifiers to use together in a "Get" request for a specified resource, only * required for resource types that explicitly cannot be retrieved by using a single identifier, * such as the resource's OCID. */ @com.fasterxml.jackson.annotation.JsonProperty("identityContext") private final java.util.Map identityContext; /** * Additional identifiers to use together in a "Get" request for a specified resource, only * required for resource types that explicitly cannot be retrieved by using a single identifier, * such as the resource's OCID. * * @return the value */ public java.util.Map getIdentityContext() { return identityContext; } /** * Additional resource attribute fields of this resource that match queries with a return * clause, if any. For example, if you ran a query to find the private IP addresses, public IP * addresses, and isPrimary field of the VNIC attachment on instance resources, that field would * be included in the ResourceSummary object as: {"additionalDetails": {"attachedVnic": * [{"publicIP" : "172.110.110.110","privateIP" : "10.10.10.10","isPrimary" : true}, {"publicIP" * : "172.110.110.111","privateIP" : "10.10.10.11","isPrimary" : false}]}. The structure of the * additional details attribute fields depends on the matching resource. */ @com.fasterxml.jackson.annotation.JsonProperty("additionalDetails") private final java.util.Map additionalDetails; /** * Additional resource attribute fields of this resource that match queries with a return * clause, if any. For example, if you ran a query to find the private IP addresses, public IP * addresses, and isPrimary field of the VNIC attachment on instance resources, that field would * be included in the ResourceSummary object as: {"additionalDetails": {"attachedVnic": * [{"publicIP" : "172.110.110.110","privateIP" : "10.10.10.10","isPrimary" : true}, {"publicIP" * : "172.110.110.111","privateIP" : "10.10.10.11","isPrimary" : false}]}. The structure of the * additional details attribute fields depends on the matching resource. * * @return the value */ public java.util.Map getAdditionalDetails() { return additionalDetails; } @Override public String toString() { return this.toString(true); } /** * Return a string representation of the object. * * @param includeByteArrayContents true to include the full contents of byte arrays * @return string representation */ public String toString(boolean includeByteArrayContents) { java.lang.StringBuilder sb = new java.lang.StringBuilder(); sb.append("ResourceSummary("); sb.append("super=").append(super.toString()); sb.append("resourceType=").append(String.valueOf(this.resourceType)); sb.append(", identifier=").append(String.valueOf(this.identifier)); sb.append(", compartmentId=").append(String.valueOf(this.compartmentId)); sb.append(", timeCreated=").append(String.valueOf(this.timeCreated)); sb.append(", displayName=").append(String.valueOf(this.displayName)); sb.append(", availabilityDomain=").append(String.valueOf(this.availabilityDomain)); sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState)); sb.append(", freeformTags=").append(String.valueOf(this.freeformTags)); sb.append(", definedTags=").append(String.valueOf(this.definedTags)); sb.append(", systemTags=").append(String.valueOf(this.systemTags)); sb.append(", searchContext=").append(String.valueOf(this.searchContext)); sb.append(", identityContext=").append(String.valueOf(this.identityContext)); sb.append(", additionalDetails=").append(String.valueOf(this.additionalDetails)); sb.append(")"); return sb.toString(); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof ResourceSummary)) { return false; } ResourceSummary other = (ResourceSummary) o; return java.util.Objects.equals(this.resourceType, other.resourceType) && java.util.Objects.equals(this.identifier, other.identifier) && java.util.Objects.equals(this.compartmentId, other.compartmentId) && java.util.Objects.equals(this.timeCreated, other.timeCreated) && java.util.Objects.equals(this.displayName, other.displayName) && java.util.Objects.equals(this.availabilityDomain, other.availabilityDomain) && java.util.Objects.equals(this.lifecycleState, other.lifecycleState) && java.util.Objects.equals(this.freeformTags, other.freeformTags) && java.util.Objects.equals(this.definedTags, other.definedTags) && java.util.Objects.equals(this.systemTags, other.systemTags) && java.util.Objects.equals(this.searchContext, other.searchContext) && java.util.Objects.equals(this.identityContext, other.identityContext) && java.util.Objects.equals(this.additionalDetails, other.additionalDetails) && super.equals(other); } @Override public int hashCode() { final int PRIME = 59; int result = 1; result = (result * PRIME) + (this.resourceType == null ? 43 : this.resourceType.hashCode()); result = (result * PRIME) + (this.identifier == null ? 43 : this.identifier.hashCode()); result = (result * PRIME) + (this.compartmentId == null ? 43 : this.compartmentId.hashCode()); result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode()); result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode()); result = (result * PRIME) + (this.availabilityDomain == null ? 43 : this.availabilityDomain.hashCode()); result = (result * PRIME) + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode()); result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode()); result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode()); result = (result * PRIME) + (this.systemTags == null ? 43 : this.systemTags.hashCode()); result = (result * PRIME) + (this.searchContext == null ? 43 : this.searchContext.hashCode()); result = (result * PRIME) + (this.identityContext == null ? 43 : this.identityContext.hashCode()); result = (result * PRIME) + (this.additionalDetails == null ? 43 : this.additionalDetails.hashCode()); result = (result * PRIME) + super.hashCode(); return result; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy