
com.oracle.bmc.cloudguard.model.DataMaskRule Maven / Gradle / Ivy
Show all versions of oci-java-sdk-cloudguard Show documentation
/**
* 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.cloudguard.model;
/**
* A data mask rule specifies the conditions in which the value for a sensitive data field in the UI
* is to be hidden or displayed when viewed by specified groups of users. The DataMaskRule resource
* contains the parameters for a data mask rule.
* 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: 20200131")
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = DataMaskRule.Builder.class)
@com.fasterxml.jackson.annotation.JsonFilter(
com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
public final class DataMaskRule extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
@Deprecated
@java.beans.ConstructorProperties({
"id",
"displayName",
"compartmentId",
"description",
"iamGroupId",
"targetSelected",
"dataMaskCategories",
"timeCreated",
"timeUpdated",
"dataMaskRuleStatus",
"lifecycleState",
"lifecyleDetails",
"locks",
"freeformTags",
"definedTags",
"systemTags"
})
public DataMaskRule(
String id,
String displayName,
String compartmentId,
String description,
String iamGroupId,
TargetSelected targetSelected,
java.util.List dataMaskCategories,
java.util.Date timeCreated,
java.util.Date timeUpdated,
DataMaskRuleStatus dataMaskRuleStatus,
LifecycleState lifecycleState,
String lifecyleDetails,
java.util.List locks,
java.util.Map freeformTags,
java.util.Map> definedTags,
java.util.Map> systemTags) {
super();
this.id = id;
this.displayName = displayName;
this.compartmentId = compartmentId;
this.description = description;
this.iamGroupId = iamGroupId;
this.targetSelected = targetSelected;
this.dataMaskCategories = dataMaskCategories;
this.timeCreated = timeCreated;
this.timeUpdated = timeUpdated;
this.dataMaskRuleStatus = dataMaskRuleStatus;
this.lifecycleState = lifecycleState;
this.lifecyleDetails = lifecyleDetails;
this.locks = locks;
this.freeformTags = freeformTags;
this.definedTags = definedTags;
this.systemTags = systemTags;
}
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
public static class Builder {
/** Unique identifier that can't be changed after creation */
@com.fasterxml.jackson.annotation.JsonProperty("id")
private String id;
/**
* Unique identifier that can't be changed after creation
*
* @param id the value to set
* @return this builder
*/
public Builder id(String id) {
this.id = id;
this.__explicitlySet__.add("id");
return this;
}
/** Data mask rule display name */
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private String displayName;
/**
* Data mask rule display name
*
* @param displayName the value to set
* @return this builder
*/
public Builder displayName(String displayName) {
this.displayName = displayName;
this.__explicitlySet__.add("displayName");
return this;
}
/** Compartment OCID where the resource is created */
@com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
private String compartmentId;
/**
* Compartment OCID where the resource is created
*
* @param compartmentId the value to set
* @return this builder
*/
public Builder compartmentId(String compartmentId) {
this.compartmentId = compartmentId;
this.__explicitlySet__.add("compartmentId");
return this;
}
/** The data mask rule description */
@com.fasterxml.jackson.annotation.JsonProperty("description")
private String description;
/**
* The data mask rule description
*
* @param description the value to set
* @return this builder
*/
public Builder description(String description) {
this.description = description;
this.__explicitlySet__.add("description");
return this;
}
/** IAM Group ID associated with the data mask rule */
@com.fasterxml.jackson.annotation.JsonProperty("iamGroupId")
private String iamGroupId;
/**
* IAM Group ID associated with the data mask rule
*
* @param iamGroupId the value to set
* @return this builder
*/
public Builder iamGroupId(String iamGroupId) {
this.iamGroupId = iamGroupId;
this.__explicitlySet__.add("iamGroupId");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("targetSelected")
private TargetSelected targetSelected;
public Builder targetSelected(TargetSelected targetSelected) {
this.targetSelected = targetSelected;
this.__explicitlySet__.add("targetSelected");
return this;
}
/** List of data mask rule categories */
@com.fasterxml.jackson.annotation.JsonProperty("dataMaskCategories")
private java.util.List dataMaskCategories;
/**
* List of data mask rule categories
*
* @param dataMaskCategories the value to set
* @return this builder
*/
public Builder dataMaskCategories(java.util.List dataMaskCategories) {
this.dataMaskCategories = dataMaskCategories;
this.__explicitlySet__.add("dataMaskCategories");
return this;
}
/** The date and time the target was created. Format defined by RFC3339. */
@com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
private java.util.Date timeCreated;
/**
* The date and time the target was created. Format defined by RFC3339.
*
* @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 date and time the target was updated. Format defined by RFC3339. */
@com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
private java.util.Date timeUpdated;
/**
* The date and time the target was updated. Format defined by RFC3339.
*
* @param timeUpdated the value to set
* @return this builder
*/
public Builder timeUpdated(java.util.Date timeUpdated) {
this.timeUpdated = timeUpdated;
this.__explicitlySet__.add("timeUpdated");
return this;
}
/** The current status of the data mask rule */
@com.fasterxml.jackson.annotation.JsonProperty("dataMaskRuleStatus")
private DataMaskRuleStatus dataMaskRuleStatus;
/**
* The current status of the data mask rule
*
* @param dataMaskRuleStatus the value to set
* @return this builder
*/
public Builder dataMaskRuleStatus(DataMaskRuleStatus dataMaskRuleStatus) {
this.dataMaskRuleStatus = dataMaskRuleStatus;
this.__explicitlySet__.add("dataMaskRuleStatus");
return this;
}
/** The current lifecycle state of the data mask rule */
@com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
private LifecycleState lifecycleState;
/**
* The current lifecycle state of the data mask rule
*
* @param lifecycleState the value to set
* @return this builder
*/
public Builder lifecycleState(LifecycleState lifecycleState) {
this.lifecycleState = lifecycleState;
this.__explicitlySet__.add("lifecycleState");
return this;
}
/** Additional details on the substate of the lifecycle state [DEPRECATE] */
@com.fasterxml.jackson.annotation.JsonProperty("lifecyleDetails")
private String lifecyleDetails;
/**
* Additional details on the substate of the lifecycle state [DEPRECATE]
*
* @param lifecyleDetails the value to set
* @return this builder
*/
public Builder lifecyleDetails(String lifecyleDetails) {
this.lifecyleDetails = lifecyleDetails;
this.__explicitlySet__.add("lifecyleDetails");
return this;
}
/** Locks associated with this resource. */
@com.fasterxml.jackson.annotation.JsonProperty("locks")
private java.util.List locks;
/**
* Locks associated with this resource.
*
* @param locks the value to set
* @return this builder
*/
public Builder locks(java.util.List locks) {
this.locks = locks;
this.__explicitlySet__.add("locks");
return this;
}
/**
* Simple key-value pair that is applied without any predefined name, type or scope. Exists
* for cross-compatibility only. Example: {@code {"bar-key": "value"}}
*
* Avoid entering confidential information.
*/
@com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
private java.util.Map freeformTags;
/**
* Simple key-value pair that is applied without any predefined name, type or scope. Exists
* for cross-compatibility only. Example: {@code {"bar-key": "value"}}
*
* Avoid entering confidential information.
*
* @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.
* Example: {@code {"foo-namespace": {"bar-key": "value"}}}
*/
@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.
* Example: {@code {"foo-namespace": {"bar-key": "value"}}}
*
* @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 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). System
* tags can be viewed by users, but can only be created by the system.
*
* Example: {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
*/
@com.fasterxml.jackson.annotation.JsonProperty("systemTags")
private java.util.Map> systemTags;
/**
* System 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). System
* tags can be viewed by users, but can only be created by the system.
*
* Example: {@code {"orcl-cloud": {"free-tier-retained": "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.JsonIgnore
private final java.util.Set __explicitlySet__ = new java.util.HashSet();
public DataMaskRule build() {
DataMaskRule model =
new DataMaskRule(
this.id,
this.displayName,
this.compartmentId,
this.description,
this.iamGroupId,
this.targetSelected,
this.dataMaskCategories,
this.timeCreated,
this.timeUpdated,
this.dataMaskRuleStatus,
this.lifecycleState,
this.lifecyleDetails,
this.locks,
this.freeformTags,
this.definedTags,
this.systemTags);
for (String explicitlySetProperty : this.__explicitlySet__) {
model.markPropertyAsExplicitlySet(explicitlySetProperty);
}
return model;
}
@com.fasterxml.jackson.annotation.JsonIgnore
public Builder copy(DataMaskRule model) {
if (model.wasPropertyExplicitlySet("id")) {
this.id(model.getId());
}
if (model.wasPropertyExplicitlySet("displayName")) {
this.displayName(model.getDisplayName());
}
if (model.wasPropertyExplicitlySet("compartmentId")) {
this.compartmentId(model.getCompartmentId());
}
if (model.wasPropertyExplicitlySet("description")) {
this.description(model.getDescription());
}
if (model.wasPropertyExplicitlySet("iamGroupId")) {
this.iamGroupId(model.getIamGroupId());
}
if (model.wasPropertyExplicitlySet("targetSelected")) {
this.targetSelected(model.getTargetSelected());
}
if (model.wasPropertyExplicitlySet("dataMaskCategories")) {
this.dataMaskCategories(model.getDataMaskCategories());
}
if (model.wasPropertyExplicitlySet("timeCreated")) {
this.timeCreated(model.getTimeCreated());
}
if (model.wasPropertyExplicitlySet("timeUpdated")) {
this.timeUpdated(model.getTimeUpdated());
}
if (model.wasPropertyExplicitlySet("dataMaskRuleStatus")) {
this.dataMaskRuleStatus(model.getDataMaskRuleStatus());
}
if (model.wasPropertyExplicitlySet("lifecycleState")) {
this.lifecycleState(model.getLifecycleState());
}
if (model.wasPropertyExplicitlySet("lifecyleDetails")) {
this.lifecyleDetails(model.getLifecyleDetails());
}
if (model.wasPropertyExplicitlySet("locks")) {
this.locks(model.getLocks());
}
if (model.wasPropertyExplicitlySet("freeformTags")) {
this.freeformTags(model.getFreeformTags());
}
if (model.wasPropertyExplicitlySet("definedTags")) {
this.definedTags(model.getDefinedTags());
}
if (model.wasPropertyExplicitlySet("systemTags")) {
this.systemTags(model.getSystemTags());
}
return this;
}
}
/** Create a new builder. */
public static Builder builder() {
return new Builder();
}
public Builder toBuilder() {
return new Builder().copy(this);
}
/** Unique identifier that can't be changed after creation */
@com.fasterxml.jackson.annotation.JsonProperty("id")
private final String id;
/**
* Unique identifier that can't be changed after creation
*
* @return the value
*/
public String getId() {
return id;
}
/** Data mask rule display name */
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private final String displayName;
/**
* Data mask rule display name
*
* @return the value
*/
public String getDisplayName() {
return displayName;
}
/** Compartment OCID where the resource is created */
@com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
private final String compartmentId;
/**
* Compartment OCID where the resource is created
*
* @return the value
*/
public String getCompartmentId() {
return compartmentId;
}
/** The data mask rule description */
@com.fasterxml.jackson.annotation.JsonProperty("description")
private final String description;
/**
* The data mask rule description
*
* @return the value
*/
public String getDescription() {
return description;
}
/** IAM Group ID associated with the data mask rule */
@com.fasterxml.jackson.annotation.JsonProperty("iamGroupId")
private final String iamGroupId;
/**
* IAM Group ID associated with the data mask rule
*
* @return the value
*/
public String getIamGroupId() {
return iamGroupId;
}
@com.fasterxml.jackson.annotation.JsonProperty("targetSelected")
private final TargetSelected targetSelected;
public TargetSelected getTargetSelected() {
return targetSelected;
}
/** List of data mask rule categories */
@com.fasterxml.jackson.annotation.JsonProperty("dataMaskCategories")
private final java.util.List dataMaskCategories;
/**
* List of data mask rule categories
*
* @return the value
*/
public java.util.List getDataMaskCategories() {
return dataMaskCategories;
}
/** The date and time the target was created. Format defined by RFC3339. */
@com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
private final java.util.Date timeCreated;
/**
* The date and time the target was created. Format defined by RFC3339.
*
* @return the value
*/
public java.util.Date getTimeCreated() {
return timeCreated;
}
/** The date and time the target was updated. Format defined by RFC3339. */
@com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
private final java.util.Date timeUpdated;
/**
* The date and time the target was updated. Format defined by RFC3339.
*
* @return the value
*/
public java.util.Date getTimeUpdated() {
return timeUpdated;
}
/** The current status of the data mask rule */
@com.fasterxml.jackson.annotation.JsonProperty("dataMaskRuleStatus")
private final DataMaskRuleStatus dataMaskRuleStatus;
/**
* The current status of the data mask rule
*
* @return the value
*/
public DataMaskRuleStatus getDataMaskRuleStatus() {
return dataMaskRuleStatus;
}
/** The current lifecycle state of the data mask rule */
@com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
private final LifecycleState lifecycleState;
/**
* The current lifecycle state of the data mask rule
*
* @return the value
*/
public LifecycleState getLifecycleState() {
return lifecycleState;
}
/** Additional details on the substate of the lifecycle state [DEPRECATE] */
@com.fasterxml.jackson.annotation.JsonProperty("lifecyleDetails")
private final String lifecyleDetails;
/**
* Additional details on the substate of the lifecycle state [DEPRECATE]
*
* @return the value
*/
public String getLifecyleDetails() {
return lifecyleDetails;
}
/** Locks associated with this resource. */
@com.fasterxml.jackson.annotation.JsonProperty("locks")
private final java.util.List locks;
/**
* Locks associated with this resource.
*
* @return the value
*/
public java.util.List getLocks() {
return locks;
}
/**
* Simple key-value pair that is applied without any predefined name, type or scope. Exists for
* cross-compatibility only. Example: {@code {"bar-key": "value"}}
*
* Avoid entering confidential information.
*/
@com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
private final java.util.Map freeformTags;
/**
* Simple key-value pair that is applied without any predefined name, type or scope. Exists for
* cross-compatibility only. Example: {@code {"bar-key": "value"}}
*
* Avoid entering confidential information.
*
* @return the value
*/
public java.util.Map getFreeformTags() {
return freeformTags;
}
/**
* Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
* {@code {"foo-namespace": {"bar-key": "value"}}}
*/
@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. Example:
* {@code {"foo-namespace": {"bar-key": "value"}}}
*
* @return the value
*/
public java.util.Map> getDefinedTags() {
return definedTags;
}
/**
* System 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). System tags
* can be viewed by users, but can only be created by the system.
*
* Example: {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
*/
@com.fasterxml.jackson.annotation.JsonProperty("systemTags")
private final java.util.Map> systemTags;
/**
* System 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). System tags
* can be viewed by users, but can only be created by the system.
*
* Example: {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
*
* @return the value
*/
public java.util.Map> getSystemTags() {
return systemTags;
}
@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("DataMaskRule(");
sb.append("super=").append(super.toString());
sb.append("id=").append(String.valueOf(this.id));
sb.append(", displayName=").append(String.valueOf(this.displayName));
sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
sb.append(", description=").append(String.valueOf(this.description));
sb.append(", iamGroupId=").append(String.valueOf(this.iamGroupId));
sb.append(", targetSelected=").append(String.valueOf(this.targetSelected));
sb.append(", dataMaskCategories=").append(String.valueOf(this.dataMaskCategories));
sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
sb.append(", dataMaskRuleStatus=").append(String.valueOf(this.dataMaskRuleStatus));
sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
sb.append(", lifecyleDetails=").append(String.valueOf(this.lifecyleDetails));
sb.append(", locks=").append(String.valueOf(this.locks));
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(")");
return sb.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof DataMaskRule)) {
return false;
}
DataMaskRule other = (DataMaskRule) o;
return java.util.Objects.equals(this.id, other.id)
&& java.util.Objects.equals(this.displayName, other.displayName)
&& java.util.Objects.equals(this.compartmentId, other.compartmentId)
&& java.util.Objects.equals(this.description, other.description)
&& java.util.Objects.equals(this.iamGroupId, other.iamGroupId)
&& java.util.Objects.equals(this.targetSelected, other.targetSelected)
&& java.util.Objects.equals(this.dataMaskCategories, other.dataMaskCategories)
&& java.util.Objects.equals(this.timeCreated, other.timeCreated)
&& java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
&& java.util.Objects.equals(this.dataMaskRuleStatus, other.dataMaskRuleStatus)
&& java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
&& java.util.Objects.equals(this.lifecyleDetails, other.lifecyleDetails)
&& java.util.Objects.equals(this.locks, other.locks)
&& java.util.Objects.equals(this.freeformTags, other.freeformTags)
&& java.util.Objects.equals(this.definedTags, other.definedTags)
&& java.util.Objects.equals(this.systemTags, other.systemTags)
&& super.equals(other);
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
result = (result * PRIME) + (this.id == null ? 43 : this.id.hashCode());
result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
result =
(result * PRIME)
+ (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
result = (result * PRIME) + (this.description == null ? 43 : this.description.hashCode());
result = (result * PRIME) + (this.iamGroupId == null ? 43 : this.iamGroupId.hashCode());
result =
(result * PRIME)
+ (this.targetSelected == null ? 43 : this.targetSelected.hashCode());
result =
(result * PRIME)
+ (this.dataMaskCategories == null
? 43
: this.dataMaskCategories.hashCode());
result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
result = (result * PRIME) + (this.timeUpdated == null ? 43 : this.timeUpdated.hashCode());
result =
(result * PRIME)
+ (this.dataMaskRuleStatus == null
? 43
: this.dataMaskRuleStatus.hashCode());
result =
(result * PRIME)
+ (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
result =
(result * PRIME)
+ (this.lifecyleDetails == null ? 43 : this.lifecyleDetails.hashCode());
result = (result * PRIME) + (this.locks == null ? 43 : this.locks.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) + super.hashCode();
return result;
}
}