Example: Click here to see how to use AddDrgNatRules API. + */ + AddDrgNatRulesResponse addDrgNatRules(AddDrgNatRulesRequest request); + /** * Adds one or more route distribution statements to the specified route distribution. * @@ -586,6 +601,25 @@ ChangeDhcpOptionsCompartmentResponse changeDhcpOptionsCompartment( */ ChangeDrgCompartmentResponse changeDrgCompartment(ChangeDrgCompartmentRequest request); + /** + * Moves a DrgNatPolicy into a different compartment within the same tenancy. For information + * about moving resources between compartments, see [Moving Resources to a Different + * Compartment](https://docs.oracle.com/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation will not retry by default, users + * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to + * enable retries for it. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use + * ChangeDrgNatPolicyCompartment API. + */ + ChangeDrgNatPolicyCompartmentResponse changeDrgNatPolicyCompartment( + ChangeDrgNatPolicyCompartmentRequest request); + /** * Moves an IPSec connection into a different compartment within the same tenancy. For * information about moving resources between compartments, see [Moving Resources to a Different @@ -1186,6 +1220,23 @@ ConnectRemotePeeringConnectionsResponse connectRemotePeeringConnections( */ CreateDrgAttachmentResponse createDrgAttachment(CreateDrgAttachmentRequest request); + /** + * Creates a new DRG NAT policy. Assign the DRG NAT policy to a DRG attachment using the + * `UpdateDrgAttachment` or `CreateDrgAttachment` operations. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use CreateDrgNatPolicy + * API. + */ + CreateDrgNatPolicyResponse createDrgNatPolicy(CreateDrgNatPolicyRequest request); + /** * Creates a new route distribution for the specified DRG. Assign the route distribution as an * import distribution to a DRG route table using the `UpdateDrgRouteTable` or @@ -1910,6 +1961,22 @@ CreateRemotePeeringConnectionResponse createRemotePeeringConnection( */ DeleteDrgAttachmentResponse deleteDrgAttachment(DeleteDrgAttachmentRequest request); + /** + * Deletes the specified DRG NAT policy. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use DeleteDrgNatPolicy + * API. + */ + DeleteDrgNatPolicyResponse deleteDrgNatPolicy(DeleteDrgNatPolicyRequest request); + /** * Deletes the specified route distribution. You can't delete a route distribution currently in * use by a DRG attachment or DRG route table. @@ -2607,6 +2674,22 @@ GetCrossConnectLetterOfAuthorityResponse getCrossConnectLetterOfAuthority( */ GetDrgAttachmentResponse getDrgAttachment(GetDrgAttachmentRequest request); + /** + * Gets the specified DRG NAT policy's information. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use GetDrgNatPolicy + * API. + */ + GetDrgNatPolicyResponse getDrgNatPolicy(GetDrgNatPolicyRequest request); + /** * Gets the redundancy status for the specified DRG. For more information, see [Redundancy * Remedies](https://docs.oracle.com/iaas/Content/Network/Troubleshoot/drgredundancy.htm). @@ -3704,6 +3787,38 @@ ListCrossconnectPortSpeedShapesResponse listCrossconnectPortSpeedShapes( */ ListDrgAttachmentsResponse listDrgAttachments(ListDrgAttachmentsRequest request); + /** + * The list of DRG NAT policies in the compartment. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use ListDrgNatPolicies + * API. + */ + ListDrgNatPoliciesResponse listDrgNatPolicies(ListDrgNatPoliciesRequest request); + + /** + * Lists the rules for the specified DRG NAT policy. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use ListDrgNatRules + * API. + */ + ListDrgNatRulesResponse listDrgNatRules(ListDrgNatRulesRequest request); + /** * Lists the statements for the specified route distribution. * @@ -4483,6 +4598,39 @@ ListVirtualCircuitPublicPrefixesResponse listVirtualCircuitPublicPrefixes( */ PrivateIpVnicDetachResponse privateIpVnicDetach(PrivateIpVnicDetachRequest request); + /** + * Dissociates the DRG NAT policy from the DRG attachment so no DRG NAT rules are advertised to + * it. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use RemoveDrgNatPolicy + * API. + */ + RemoveDrgNatPolicyResponse removeDrgNatPolicy(RemoveDrgNatPolicyRequest request); + + /** + * Request with DRG NAT rules to remove from the DRG NAT policy. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use RemoveDrgNatRules + * API. + */ + RemoveDrgNatRulesResponse removeDrgNatRules(RemoveDrgNatRulesRequest request); + /** * Removes one or more route distribution statements from the specified route distribution's * map. @@ -4850,6 +4998,38 @@ UpdateCrossConnectLetterOfAuthorityResponse updateCrossConnectLetterOfAuthority( */ UpdateDrgAttachmentResponse updateDrgAttachment(UpdateDrgAttachmentRequest request); + /** + * Updates the specified DRG NAT policy + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use UpdateDrgNatPolicy + * API. + */ + UpdateDrgNatPolicyResponse updateDrgNatPolicy(UpdateDrgNatPolicyRequest request); + + /** + * Updates DRG NAT rules in the specified DRG NAT policy. + * + * @param request The request object containing the details to send + * @return A response object containing details about the completed operation + * @throws BmcException when an error occurs. This operation uses + * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is + * provided. The specifics of the default retry strategy are described here + * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries + *
Example: Click here to see how to use UpdateDrgNatRules
+ * API.
+ */
+ UpdateDrgNatRulesResponse updateDrgNatRules(UpdateDrgNatRulesRequest request);
+
/**
* Updates the specified route distribution
*
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/VirtualNetworkAsync.java b/bmc-core/src/main/java/com/oracle/bmc/core/VirtualNetworkAsync.java
index 28137b4dfae..5085029de22 100644
--- a/bmc-core/src/main/java/com/oracle/bmc/core/VirtualNetworkAsync.java
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/VirtualNetworkAsync.java
@@ -78,6 +78,21 @@ public interface VirtualNetworkAsync extends AutoCloseable {
*/
void enableDualStackEndpoints(boolean dualStackEndpointTemplateEnabled);
+ /**
+ * Adds DRG NAT rules to the specified DRG NAT policy.
+ *
+ * @param request The request object containing the details to send
+ * @param handler The request handler to invoke upon completion, may be null.
+ * @return A Future that can be used to get the response if no AsyncHandler was provided. Note,
+ * if you provide an AsyncHandler and use the Future, some types of responses (like
+ * java.io.InputStream) may not be able to be read in both places as the underlying stream
+ * may only be consumed once.
+ */
+ java.util.concurrent.Future Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalSource")
+ private String originalSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param originalSource the value to set
+ * @return this builder
+ */
+ public Builder originalSource(String originalSource) {
+ this.originalSource = originalSource;
+ this.__explicitlySet__.add("originalSource");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedSource")
+ private String translatedSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param translatedSource the value to set
+ * @return this builder
+ */
+ public Builder translatedSource(String translatedSource) {
+ this.translatedSource = translatedSource;
+ this.__explicitlySet__.add("translatedSource");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalDestination")
+ private String originalDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param originalDestination the value to set
+ * @return this builder
+ */
+ public Builder originalDestination(String originalDestination) {
+ this.originalDestination = originalDestination;
+ this.__explicitlySet__.add("originalDestination");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedDestination")
+ private String translatedDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param translatedDestination the value to set
+ * @return this builder
+ */
+ public Builder translatedDestination(String translatedDestination) {
+ this.translatedDestination = translatedDestination;
+ this.__explicitlySet__.add("translatedDestination");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalSource")
+ private final String originalSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getOriginalSource() {
+ return originalSource;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedSource")
+ private final String translatedSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getTranslatedSource() {
+ return translatedSource;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalDestination")
+ private final String originalDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getOriginalDestination() {
+ return originalDestination;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedDestination")
+ private final String translatedDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getTranslatedDestination() {
+ return translatedDestination;
+ }
+
+ @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("AddDrgNatRuleDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("drgNatRulePriority=").append(String.valueOf(this.drgNatRulePriority));
+ sb.append(", originalSource=").append(String.valueOf(this.originalSource));
+ sb.append(", translatedSource=").append(String.valueOf(this.translatedSource));
+ sb.append(", originalDestination=").append(String.valueOf(this.originalDestination));
+ sb.append(", translatedDestination=").append(String.valueOf(this.translatedDestination));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof AddDrgNatRuleDetails)) {
+ return false;
+ }
+
+ AddDrgNatRuleDetails other = (AddDrgNatRuleDetails) o;
+ return java.util.Objects.equals(this.drgNatRulePriority, other.drgNatRulePriority)
+ && java.util.Objects.equals(this.originalSource, other.originalSource)
+ && java.util.Objects.equals(this.translatedSource, other.translatedSource)
+ && java.util.Objects.equals(this.originalDestination, other.originalDestination)
+ && java.util.Objects.equals(this.translatedDestination, other.translatedDestination)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.drgNatRulePriority == null
+ ? 43
+ : this.drgNatRulePriority.hashCode());
+ result =
+ (result * PRIME)
+ + (this.originalSource == null ? 43 : this.originalSource.hashCode());
+ result =
+ (result * PRIME)
+ + (this.translatedSource == null ? 43 : this.translatedSource.hashCode());
+ result =
+ (result * PRIME)
+ + (this.originalDestination == null
+ ? 43
+ : this.originalDestination.hashCode());
+ result =
+ (result * PRIME)
+ + (this.translatedDestination == null
+ ? 43
+ : this.translatedDestination.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/model/AddDrgNatRulesDetails.java b/bmc-core/src/main/java/com/oracle/bmc/core/model/AddDrgNatRulesDetails.java
new file mode 100644
index 00000000000..1464f8db70a
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/model/AddDrgNatRulesDetails.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.model;
+
+/**
+ * Details request to add rules to a DRG NAT policy. Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map Example: {@code {"Department": "Finance"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map Example: {@code {"Department": "Finance"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map Example: {@code {"Department": "Finance"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map Example: {@code {"Department": "Finance"}}
+ *
+ * @return the value
+ */
+ public java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map Example: {@code {"Department": "Finance"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map Example: {@code {"Department": "Finance"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The date and time the DRG NAT policy was created, in the format defined by
+ * [RFC3339](https://tools.ietf.org/html/rfc3339).
+ *
+ * Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @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;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map Example: {@code {"Department": "Finance"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map Example: {@code {"Department": "Finance"}}
+ *
+ * @return the value
+ */
+ public java.util.Map Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The date and time the DRG NAT policy was created, in the format defined by
+ * [RFC3339](https://tools.ietf.org/html/rfc3339).
+ *
+ * Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ @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("DrgNatPolicy(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", systemTags=").append(String.valueOf(this.systemTags));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DrgNatPolicy)) {
+ return false;
+ }
+
+ DrgNatPolicy other = (DrgNatPolicy) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && 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.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.systemTags == null ? 43 : this.systemTags.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/model/DrgNatRule.java b/bmc-core/src/main/java/com/oracle/bmc/core/model/DrgNatRule.java
new file mode 100644
index 00000000000..ad8fb986c35
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/model/DrgNatRule.java
@@ -0,0 +1,473 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.model;
+
+/**
+ * A DRG NAT rule specifies the mapping between an original source/destination IP and a translated
+ * source/destination IP. The source needs to be described in the context of packet entering the
+ * DRG. Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalSource")
+ private String originalSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param originalSource the value to set
+ * @return this builder
+ */
+ public Builder originalSource(String originalSource) {
+ this.originalSource = originalSource;
+ this.__explicitlySet__.add("originalSource");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedSource")
+ private String translatedSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param translatedSource the value to set
+ * @return this builder
+ */
+ public Builder translatedSource(String translatedSource) {
+ this.translatedSource = translatedSource;
+ this.__explicitlySet__.add("translatedSource");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalDestination")
+ private String originalDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param originalDestination the value to set
+ * @return this builder
+ */
+ public Builder originalDestination(String originalDestination) {
+ this.originalDestination = originalDestination;
+ this.__explicitlySet__.add("originalDestination");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedDestination")
+ private String translatedDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param translatedDestination the value to set
+ * @return this builder
+ */
+ public Builder translatedDestination(String translatedDestination) {
+ this.translatedDestination = translatedDestination;
+ this.__explicitlySet__.add("translatedDestination");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalSource")
+ private final String originalSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getOriginalSource() {
+ return originalSource;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedSource")
+ private final String translatedSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getTranslatedSource() {
+ return translatedSource;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalDestination")
+ private final String originalDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getOriginalDestination() {
+ return originalDestination;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedDestination")
+ private final String translatedDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getTranslatedDestination() {
+ return translatedDestination;
+ }
+
+ @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("DrgNatRule(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(", drgNatRulePriority=").append(String.valueOf(this.drgNatRulePriority));
+ sb.append(", originalSource=").append(String.valueOf(this.originalSource));
+ sb.append(", translatedSource=").append(String.valueOf(this.translatedSource));
+ sb.append(", originalDestination=").append(String.valueOf(this.originalDestination));
+ sb.append(", translatedDestination=").append(String.valueOf(this.translatedDestination));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DrgNatRule)) {
+ return false;
+ }
+
+ DrgNatRule other = (DrgNatRule) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(this.drgNatRulePriority, other.drgNatRulePriority)
+ && java.util.Objects.equals(this.originalSource, other.originalSource)
+ && java.util.Objects.equals(this.translatedSource, other.translatedSource)
+ && java.util.Objects.equals(this.originalDestination, other.originalDestination)
+ && java.util.Objects.equals(this.translatedDestination, other.translatedDestination)
+ && 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.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.drgNatRulePriority == null
+ ? 43
+ : this.drgNatRulePriority.hashCode());
+ result =
+ (result * PRIME)
+ + (this.originalSource == null ? 43 : this.originalSource.hashCode());
+ result =
+ (result * PRIME)
+ + (this.translatedSource == null ? 43 : this.translatedSource.hashCode());
+ result =
+ (result * PRIME)
+ + (this.originalDestination == null
+ ? 43
+ : this.originalDestination.hashCode());
+ result =
+ (result * PRIME)
+ + (this.translatedDestination == null
+ ? 43
+ : this.translatedDestination.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/model/RemoveDrgNatRulesDetails.java b/bmc-core/src/main/java/com/oracle/bmc/core/model/RemoveDrgNatRulesDetails.java
new file mode 100644
index 00000000000..0e3c4cc5d5d
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/model/RemoveDrgNatRulesDetails.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.model;
+
+/**
+ * Details request to remove rules from a DRG NAT policy. Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map Example: {@code {"Department": "Finance"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map Example: {@code {"Department": "Finance"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map Example: {@code {"Department": "Finance"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map Example: {@code {"Department": "Finance"}}
+ *
+ * @return the value
+ */
+ public java.util.Map Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalSource")
+ private String originalSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param originalSource the value to set
+ * @return this builder
+ */
+ public Builder originalSource(String originalSource) {
+ this.originalSource = originalSource;
+ this.__explicitlySet__.add("originalSource");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedSource")
+ private String translatedSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param translatedSource the value to set
+ * @return this builder
+ */
+ public Builder translatedSource(String translatedSource) {
+ this.translatedSource = translatedSource;
+ this.__explicitlySet__.add("translatedSource");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalDestination")
+ private String originalDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param originalDestination the value to set
+ * @return this builder
+ */
+ public Builder originalDestination(String originalDestination) {
+ this.originalDestination = originalDestination;
+ this.__explicitlySet__.add("originalDestination");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedDestination")
+ private String translatedDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated
+ * CIDR range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @param translatedDestination the value to set
+ * @return this builder
+ */
+ public Builder translatedDestination(String translatedDestination) {
+ this.translatedDestination = translatedDestination;
+ this.__explicitlySet__.add("translatedDestination");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalSource")
+ private final String originalSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getOriginalSource() {
+ return originalSource;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedSource")
+ private final String translatedSource;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Source NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getTranslatedSource() {
+ return translatedSource;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("originalDestination")
+ private final String originalDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getOriginalDestination() {
+ return originalDestination;
+ }
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("translatedDestination")
+ private final String translatedDestination;
+
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Translated CIDR
+ * range for Destination NAT.
+ *
+ * Potential values: * An IPv4 address range in CIDR notation. For example: {@code
+ * 192.168.1.0/24}.
+ *
+ * @return the value
+ */
+ public String getTranslatedDestination() {
+ return translatedDestination;
+ }
+
+ @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("UpdateDrgNatRuleDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", drgNatRulePriority=").append(String.valueOf(this.drgNatRulePriority));
+ sb.append(", originalSource=").append(String.valueOf(this.originalSource));
+ sb.append(", translatedSource=").append(String.valueOf(this.translatedSource));
+ sb.append(", originalDestination=").append(String.valueOf(this.originalDestination));
+ sb.append(", translatedDestination=").append(String.valueOf(this.translatedDestination));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof UpdateDrgNatRuleDetails)) {
+ return false;
+ }
+
+ UpdateDrgNatRuleDetails other = (UpdateDrgNatRuleDetails) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.drgNatRulePriority, other.drgNatRulePriority)
+ && java.util.Objects.equals(this.originalSource, other.originalSource)
+ && java.util.Objects.equals(this.translatedSource, other.translatedSource)
+ && java.util.Objects.equals(this.originalDestination, other.originalDestination)
+ && java.util.Objects.equals(this.translatedDestination, other.translatedDestination)
+ && 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.drgNatRulePriority == null
+ ? 43
+ : this.drgNatRulePriority.hashCode());
+ result =
+ (result * PRIME)
+ + (this.originalSource == null ? 43 : this.originalSource.hashCode());
+ result =
+ (result * PRIME)
+ + (this.translatedSource == null ? 43 : this.translatedSource.hashCode());
+ result =
+ (result * PRIME)
+ + (this.originalDestination == null
+ ? 43
+ : this.originalDestination.hashCode());
+ result =
+ (result * PRIME)
+ + (this.translatedDestination == null
+ ? 43
+ : this.translatedDestination.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/model/UpdateDrgNatRulesDetails.java b/bmc-core/src/main/java/com/oracle/bmc/core/model/UpdateDrgNatRulesDetails.java
new file mode 100644
index 00000000000..c29e7200f4c
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/model/UpdateDrgNatRulesDetails.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.model;
+
+/**
+ * Details request to update rules in a DRG NAT policy. Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of AddDrgNatRulesRequest
+ */
+ public AddDrgNatRulesRequest build() {
+ AddDrgNatRulesRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.core.model.AddDrgNatRulesDetails body) {
+ addDrgNatRulesDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of AddDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of AddDrgNatRulesRequest
+ */
+ public AddDrgNatRulesRequest buildWithoutInvocationCallback() {
+ AddDrgNatRulesRequest request = new AddDrgNatRulesRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.addDrgNatRulesDetails = addDrgNatRulesDetails;
+ request.opcRetryToken = opcRetryToken;
+ request.opcRequestId = opcRequestId;
+ request.ifMatch = ifMatch;
+ return request;
+ // new AddDrgNatRulesRequest(drgNatPolicyId, addDrgNatRulesDetails, opcRetryToken,
+ // opcRequestId, ifMatch);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .addDrgNatRulesDetails(addDrgNatRulesDetails)
+ .opcRetryToken(opcRetryToken)
+ .opcRequestId(opcRequestId)
+ .ifMatch(ifMatch);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",addDrgNatRulesDetails=").append(String.valueOf(this.addDrgNatRulesDetails));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof AddDrgNatRulesRequest)) {
+ return false;
+ }
+
+ AddDrgNatRulesRequest other = (AddDrgNatRulesRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(this.addDrgNatRulesDetails, other.addDrgNatRulesDetails)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.addDrgNatRulesDetails == null
+ ? 43
+ : this.addDrgNatRulesDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/ChangeDrgNatPolicyCompartmentRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ChangeDrgNatPolicyCompartmentRequest.java
new file mode 100644
index 00000000000..099fecc916f
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ChangeDrgNatPolicyCompartmentRequest.java
@@ -0,0 +1,378 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use
+ * ChangeDrgNatPolicyCompartmentRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class ChangeDrgNatPolicyCompartmentRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails> {
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ private String drgNatPolicyId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ public String getDrgNatPolicyId() {
+ return drgNatPolicyId;
+ }
+ /** Request to change the compartment of a given DrgNatPolicy. */
+ private com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails
+ changeDrgNatPolicyCompartmentDetails;
+
+ /** Request to change the compartment of a given DrgNatPolicy. */
+ public com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails
+ getChangeDrgNatPolicyCompartmentDetails() {
+ return changeDrgNatPolicyCompartmentDetails;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails getBody$() {
+ return changeDrgNatPolicyCompartmentDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ ChangeDrgNatPolicyCompartmentRequest,
+ com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ */
+ private String drgNatPolicyId = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ *
+ * @param drgNatPolicyId the value to set
+ * @return this builder instance
+ */
+ public Builder drgNatPolicyId(String drgNatPolicyId) {
+ this.drgNatPolicyId = drgNatPolicyId;
+ return this;
+ }
+
+ /** Request to change the compartment of a given DrgNatPolicy. */
+ private com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails
+ changeDrgNatPolicyCompartmentDetails = null;
+
+ /**
+ * Request to change the compartment of a given DrgNatPolicy.
+ *
+ * @param changeDrgNatPolicyCompartmentDetails the value to set
+ * @return this builder instance
+ */
+ public Builder changeDrgNatPolicyCompartmentDetails(
+ com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails
+ changeDrgNatPolicyCompartmentDetails) {
+ this.changeDrgNatPolicyCompartmentDetails = changeDrgNatPolicyCompartmentDetails;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(ChangeDrgNatPolicyCompartmentRequest o) {
+ drgNatPolicyId(o.getDrgNatPolicyId());
+ changeDrgNatPolicyCompartmentDetails(o.getChangeDrgNatPolicyCompartmentDetails());
+ ifMatch(o.getIfMatch());
+ opcRequestId(o.getOpcRequestId());
+ opcRetryToken(o.getOpcRetryToken());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of ChangeDrgNatPolicyCompartmentRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of ChangeDrgNatPolicyCompartmentRequest
+ */
+ public ChangeDrgNatPolicyCompartmentRequest build() {
+ ChangeDrgNatPolicyCompartmentRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.core.model.ChangeDrgNatPolicyCompartmentDetails body) {
+ changeDrgNatPolicyCompartmentDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of ChangeDrgNatPolicyCompartmentRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of ChangeDrgNatPolicyCompartmentRequest
+ */
+ public ChangeDrgNatPolicyCompartmentRequest buildWithoutInvocationCallback() {
+ ChangeDrgNatPolicyCompartmentRequest request =
+ new ChangeDrgNatPolicyCompartmentRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.changeDrgNatPolicyCompartmentDetails = changeDrgNatPolicyCompartmentDetails;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ request.opcRetryToken = opcRetryToken;
+ return request;
+ // new ChangeDrgNatPolicyCompartmentRequest(drgNatPolicyId,
+ // changeDrgNatPolicyCompartmentDetails, ifMatch, opcRequestId, opcRetryToken);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .changeDrgNatPolicyCompartmentDetails(changeDrgNatPolicyCompartmentDetails)
+ .ifMatch(ifMatch)
+ .opcRequestId(opcRequestId)
+ .opcRetryToken(opcRetryToken);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",changeDrgNatPolicyCompartmentDetails=")
+ .append(String.valueOf(this.changeDrgNatPolicyCompartmentDetails));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ChangeDrgNatPolicyCompartmentRequest)) {
+ return false;
+ }
+
+ ChangeDrgNatPolicyCompartmentRequest other = (ChangeDrgNatPolicyCompartmentRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(
+ this.changeDrgNatPolicyCompartmentDetails,
+ other.changeDrgNatPolicyCompartmentDetails)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.changeDrgNatPolicyCompartmentDetails == null
+ ? 43
+ : this.changeDrgNatPolicyCompartmentDetails.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/CreateDrgNatPolicyRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/CreateDrgNatPolicyRequest.java
new file mode 100644
index 00000000000..c4aaa9850ce
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/CreateDrgNatPolicyRequest.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use CreateDrgNatPolicyRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class CreateDrgNatPolicyRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.core.model.CreateDrgNatPolicyDetails> {
+
+ /** Details for creating a DRG NAT policy. */
+ private com.oracle.bmc.core.model.CreateDrgNatPolicyDetails createDrgNatPolicyDetails;
+
+ /** Details for creating a DRG NAT policy. */
+ public com.oracle.bmc.core.model.CreateDrgNatPolicyDetails getCreateDrgNatPolicyDetails() {
+ return createDrgNatPolicyDetails;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.core.model.CreateDrgNatPolicyDetails getBody$() {
+ return createDrgNatPolicyDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ CreateDrgNatPolicyRequest,
+ com.oracle.bmc.core.model.CreateDrgNatPolicyDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /** Details for creating a DRG NAT policy. */
+ private com.oracle.bmc.core.model.CreateDrgNatPolicyDetails createDrgNatPolicyDetails =
+ null;
+
+ /**
+ * Details for creating a DRG NAT policy.
+ *
+ * @param createDrgNatPolicyDetails the value to set
+ * @return this builder instance
+ */
+ public Builder createDrgNatPolicyDetails(
+ com.oracle.bmc.core.model.CreateDrgNatPolicyDetails createDrgNatPolicyDetails) {
+ this.createDrgNatPolicyDetails = createDrgNatPolicyDetails;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(CreateDrgNatPolicyRequest o) {
+ createDrgNatPolicyDetails(o.getCreateDrgNatPolicyDetails());
+ opcRetryToken(o.getOpcRetryToken());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of CreateDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of CreateDrgNatPolicyRequest
+ */
+ public CreateDrgNatPolicyRequest build() {
+ CreateDrgNatPolicyRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.core.model.CreateDrgNatPolicyDetails body) {
+ createDrgNatPolicyDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of CreateDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of CreateDrgNatPolicyRequest
+ */
+ public CreateDrgNatPolicyRequest buildWithoutInvocationCallback() {
+ CreateDrgNatPolicyRequest request = new CreateDrgNatPolicyRequest();
+ request.createDrgNatPolicyDetails = createDrgNatPolicyDetails;
+ request.opcRetryToken = opcRetryToken;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new CreateDrgNatPolicyRequest(createDrgNatPolicyDetails, opcRetryToken,
+ // opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .createDrgNatPolicyDetails(createDrgNatPolicyDetails)
+ .opcRetryToken(opcRetryToken)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",createDrgNatPolicyDetails=")
+ .append(String.valueOf(this.createDrgNatPolicyDetails));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDrgNatPolicyRequest)) {
+ return false;
+ }
+
+ CreateDrgNatPolicyRequest other = (CreateDrgNatPolicyRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(
+ this.createDrgNatPolicyDetails, other.createDrgNatPolicyDetails)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.createDrgNatPolicyDetails == null
+ ? 43
+ : this.createDrgNatPolicyDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/DeleteDrgNatPolicyRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/DeleteDrgNatPolicyRequest.java
new file mode 100644
index 00000000000..e6c336bca1d
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/DeleteDrgNatPolicyRequest.java
@@ -0,0 +1,259 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use DeleteDrgNatPolicyRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class DeleteDrgNatPolicyRequest extends com.oracle.bmc.requests.BmcRequest Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of DeleteDrgNatPolicyRequest
+ */
+ public DeleteDrgNatPolicyRequest build() {
+ DeleteDrgNatPolicyRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of DeleteDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of DeleteDrgNatPolicyRequest
+ */
+ public DeleteDrgNatPolicyRequest buildWithoutInvocationCallback() {
+ DeleteDrgNatPolicyRequest request = new DeleteDrgNatPolicyRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new DeleteDrgNatPolicyRequest(drgNatPolicyId, ifMatch, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .ifMatch(ifMatch)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DeleteDrgNatPolicyRequest)) {
+ return false;
+ }
+
+ DeleteDrgNatPolicyRequest other = (DeleteDrgNatPolicyRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/GetDrgNatPolicyRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/GetDrgNatPolicyRequest.java
new file mode 100644
index 00000000000..3cac2f199b8
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/GetDrgNatPolicyRequest.java
@@ -0,0 +1,212 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use GetDrgNatPolicyRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class GetDrgNatPolicyRequest extends com.oracle.bmc.requests.BmcRequest Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of GetDrgNatPolicyRequest
+ */
+ public GetDrgNatPolicyRequest build() {
+ GetDrgNatPolicyRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of GetDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of GetDrgNatPolicyRequest
+ */
+ public GetDrgNatPolicyRequest buildWithoutInvocationCallback() {
+ GetDrgNatPolicyRequest request = new GetDrgNatPolicyRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new GetDrgNatPolicyRequest(drgNatPolicyId, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder().drgNatPolicyId(drgNatPolicyId).opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof GetDrgNatPolicyRequest)) {
+ return false;
+ }
+
+ GetDrgNatPolicyRequest other = (GetDrgNatPolicyRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgAttachmentsRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgAttachmentsRequest.java
index 8f8c38bdc02..80372bbd38b 100644
--- a/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgAttachmentsRequest.java
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgAttachmentsRequest.java
@@ -82,6 +82,19 @@ public Integer getLimit() {
public String getPage() {
return page;
}
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DrgNatPolicy.
+ */
+ private String drgNatPolicyId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DrgNatPolicy.
+ */
+ public String getDrgNatPolicyId() {
+ return drgNatPolicyId;
+ }
/**
* The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
* resource (virtual circuit, VCN, IPSec tunnel, or remote peering connection) attached to the
@@ -397,6 +410,24 @@ public Builder page(String page) {
return this;
}
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DrgNatPolicy.
+ */
+ private String drgNatPolicyId = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DrgNatPolicy.
+ *
+ * @param drgNatPolicyId the value to set
+ * @return this builder instance
+ */
+ public Builder drgNatPolicyId(String drgNatPolicyId) {
+ this.drgNatPolicyId = drgNatPolicyId;
+ return this;
+ }
+
/**
* The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
* resource (virtual circuit, VCN, IPSec tunnel, or remote peering connection) attached to
@@ -567,6 +598,7 @@ public Builder copy(ListDrgAttachmentsRequest o) {
drgId(o.getDrgId());
limit(o.getLimit());
page(o.getPage());
+ drgNatPolicyId(o.getDrgNatPolicyId());
networkId(o.getNetworkId());
attachmentType(o.getAttachmentType());
drgRouteTableId(o.getDrgRouteTableId());
@@ -613,6 +645,7 @@ public ListDrgAttachmentsRequest buildWithoutInvocationCallback() {
request.drgId = drgId;
request.limit = limit;
request.page = page;
+ request.drgNatPolicyId = drgNatPolicyId;
request.networkId = networkId;
request.attachmentType = attachmentType;
request.drgRouteTableId = drgRouteTableId;
@@ -621,8 +654,9 @@ public ListDrgAttachmentsRequest buildWithoutInvocationCallback() {
request.sortOrder = sortOrder;
request.lifecycleState = lifecycleState;
return request;
- // new ListDrgAttachmentsRequest(compartmentId, vcnId, drgId, limit, page, networkId,
- // attachmentType, drgRouteTableId, displayName, sortBy, sortOrder, lifecycleState);
+ // new ListDrgAttachmentsRequest(compartmentId, vcnId, drgId, limit, page,
+ // drgNatPolicyId, networkId, attachmentType, drgRouteTableId, displayName, sortBy,
+ // sortOrder, lifecycleState);
}
}
@@ -638,6 +672,7 @@ public Builder toBuilder() {
.drgId(drgId)
.limit(limit)
.page(page)
+ .drgNatPolicyId(drgNatPolicyId)
.networkId(networkId)
.attachmentType(attachmentType)
.drgRouteTableId(drgRouteTableId)
@@ -666,6 +701,7 @@ public String toString() {
sb.append(",drgId=").append(String.valueOf(this.drgId));
sb.append(",limit=").append(String.valueOf(this.limit));
sb.append(",page=").append(String.valueOf(this.page));
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
sb.append(",networkId=").append(String.valueOf(this.networkId));
sb.append(",attachmentType=").append(String.valueOf(this.attachmentType));
sb.append(",drgRouteTableId=").append(String.valueOf(this.drgRouteTableId));
@@ -693,6 +729,7 @@ public boolean equals(Object o) {
&& java.util.Objects.equals(this.drgId, other.drgId)
&& java.util.Objects.equals(this.limit, other.limit)
&& java.util.Objects.equals(this.page, other.page)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
&& java.util.Objects.equals(this.networkId, other.networkId)
&& java.util.Objects.equals(this.attachmentType, other.attachmentType)
&& java.util.Objects.equals(this.drgRouteTableId, other.drgRouteTableId)
@@ -713,6 +750,9 @@ public int hashCode() {
result = (result * PRIME) + (this.drgId == null ? 43 : this.drgId.hashCode());
result = (result * PRIME) + (this.limit == null ? 43 : this.limit.hashCode());
result = (result * PRIME) + (this.page == null ? 43 : this.page.hashCode());
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
result = (result * PRIME) + (this.networkId == null ? 43 : this.networkId.hashCode());
result =
(result * PRIME)
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgNatPoliciesRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgNatPoliciesRequest.java
new file mode 100644
index 00000000000..34ff15bd8c1
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgNatPoliciesRequest.java
@@ -0,0 +1,512 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use ListDrgNatPoliciesRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class ListDrgNatPoliciesRequest extends com.oracle.bmc.requests.BmcRequest Example: {@code 50}
+ */
+ private Integer limit;
+
+ /**
+ * For list pagination. The maximum number of results per page, or items to return in a
+ * paginated "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * Example: {@code 50}
+ */
+ public Integer getLimit() {
+ return limit;
+ }
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the previous
+ * "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ private String page;
+
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the previous
+ * "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ public String getPage() {
+ return page;
+ }
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order for
+ * TIMECREATED is descending. Default order for DISPLAYNAME is ascending. The DISPLAYNAME sort
+ * order is case sensitive.
+ *
+ * *Note:** In general, some "List" operations (for example, {@code ListInstances}) let you
+ * optionally filter by availability domain if the scope of the resource type is within a single
+ * availability domain. If you call one of these "List" operations without specifying an
+ * availability domain, the resources are grouped by availability domain, then sorted.
+ */
+ private SortBy sortBy;
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order for
+ * TIMECREATED is descending. Default order for DISPLAYNAME is ascending. The DISPLAYNAME sort
+ * order is case sensitive.
+ *
+ * *Note:** In general, some "List" operations (for example, {@code ListInstances}) let you
+ * optionally filter by availability domain if the scope of the resource type is within a single
+ * availability domain. If you call one of these "List" operations without specifying an
+ * availability domain, the resources are grouped by availability domain, then sorted.
+ */
+ public enum SortBy implements com.oracle.bmc.http.internal.BmcEnum {
+ Timecreated("TIMECREATED"),
+ Displayname("DISPLAYNAME"),
+ ;
+
+ private final String value;
+ private static java.util.Map *Note:** In general, some "List" operations (for example, {@code ListInstances}) let you
+ * optionally filter by availability domain if the scope of the resource type is within a single
+ * availability domain. If you call one of these "List" operations without specifying an
+ * availability domain, the resources are grouped by availability domain, then sorted.
+ */
+ public SortBy getSortBy() {
+ return sortBy;
+ }
+ /**
+ * The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). The
+ * DISPLAYNAME sort order is case sensitive.
+ */
+ private SortOrder sortOrder;
+
+ /**
+ * The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). The
+ * DISPLAYNAME sort order is case sensitive.
+ */
+ public enum SortOrder implements com.oracle.bmc.http.internal.BmcEnum {
+ Asc("ASC"),
+ Desc("DESC"),
+ ;
+
+ private final String value;
+ private static java.util.Map Example: {@code 50}
+ */
+ private Integer limit = null;
+
+ /**
+ * For list pagination. The maximum number of results per page, or items to return in a
+ * paginated "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * Example: {@code 50}
+ *
+ * @param limit the value to set
+ * @return this builder instance
+ */
+ public Builder limit(Integer limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the
+ * previous "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ private String page = null;
+
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the
+ * previous "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * @param page the value to set
+ * @return this builder instance
+ */
+ public Builder page(String page) {
+ this.page = page;
+ return this;
+ }
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order
+ * for TIMECREATED is descending. Default order for DISPLAYNAME is ascending. The
+ * DISPLAYNAME sort order is case sensitive.
+ *
+ * *Note:** In general, some "List" operations (for example, {@code ListInstances}) let
+ * you optionally filter by availability domain if the scope of the resource type is within
+ * a single availability domain. If you call one of these "List" operations without
+ * specifying an availability domain, the resources are grouped by availability domain, then
+ * sorted.
+ */
+ private SortBy sortBy = null;
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order
+ * for TIMECREATED is descending. Default order for DISPLAYNAME is ascending. The
+ * DISPLAYNAME sort order is case sensitive.
+ *
+ * *Note:** In general, some "List" operations (for example, {@code ListInstances}) let
+ * you optionally filter by availability domain if the scope of the resource type is within
+ * a single availability domain. If you call one of these "List" operations without
+ * specifying an availability domain, the resources are grouped by availability domain, then
+ * sorted.
+ *
+ * @param sortBy the value to set
+ * @return this builder instance
+ */
+ public Builder sortBy(SortBy sortBy) {
+ this.sortBy = sortBy;
+ return this;
+ }
+
+ /**
+ * The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). The
+ * DISPLAYNAME sort order is case sensitive.
+ */
+ private SortOrder sortOrder = null;
+
+ /**
+ * The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). The
+ * DISPLAYNAME sort order is case sensitive.
+ *
+ * @param sortOrder the value to set
+ * @return this builder instance
+ */
+ public Builder sortOrder(SortOrder sortOrder) {
+ this.sortOrder = sortOrder;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /** A filter to return only resources that match the given display name exactly. */
+ private String displayName = null;
+
+ /**
+ * A filter to return only resources that match the given display name exactly.
+ *
+ * @param displayName the value to set
+ * @return this builder instance
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(ListDrgNatPoliciesRequest o) {
+ compartmentId(o.getCompartmentId());
+ limit(o.getLimit());
+ page(o.getPage());
+ sortBy(o.getSortBy());
+ sortOrder(o.getSortOrder());
+ opcRequestId(o.getOpcRequestId());
+ displayName(o.getDisplayName());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of ListDrgNatPoliciesRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of ListDrgNatPoliciesRequest
+ */
+ public ListDrgNatPoliciesRequest build() {
+ ListDrgNatPoliciesRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of ListDrgNatPoliciesRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of ListDrgNatPoliciesRequest
+ */
+ public ListDrgNatPoliciesRequest buildWithoutInvocationCallback() {
+ ListDrgNatPoliciesRequest request = new ListDrgNatPoliciesRequest();
+ request.compartmentId = compartmentId;
+ request.limit = limit;
+ request.page = page;
+ request.sortBy = sortBy;
+ request.sortOrder = sortOrder;
+ request.opcRequestId = opcRequestId;
+ request.displayName = displayName;
+ return request;
+ // new ListDrgNatPoliciesRequest(compartmentId, limit, page, sortBy, sortOrder,
+ // opcRequestId, displayName);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .compartmentId(compartmentId)
+ .limit(limit)
+ .page(page)
+ .sortBy(sortBy)
+ .sortOrder(sortOrder)
+ .opcRequestId(opcRequestId)
+ .displayName(displayName);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(",limit=").append(String.valueOf(this.limit));
+ sb.append(",page=").append(String.valueOf(this.page));
+ sb.append(",sortBy=").append(String.valueOf(this.sortBy));
+ sb.append(",sortOrder=").append(String.valueOf(this.sortOrder));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(",displayName=").append(String.valueOf(this.displayName));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ListDrgNatPoliciesRequest)) {
+ return false;
+ }
+
+ ListDrgNatPoliciesRequest other = (ListDrgNatPoliciesRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.limit, other.limit)
+ && java.util.Objects.equals(this.page, other.page)
+ && java.util.Objects.equals(this.sortBy, other.sortBy)
+ && java.util.Objects.equals(this.sortOrder, other.sortOrder)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.displayName, other.displayName);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.limit == null ? 43 : this.limit.hashCode());
+ result = (result * PRIME) + (this.page == null ? 43 : this.page.hashCode());
+ result = (result * PRIME) + (this.sortBy == null ? 43 : this.sortBy.hashCode());
+ result = (result * PRIME) + (this.sortOrder == null ? 43 : this.sortOrder.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgNatRulesRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgNatRulesRequest.java
new file mode 100644
index 00000000000..481082ff502
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/ListDrgNatRulesRequest.java
@@ -0,0 +1,364 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use ListDrgNatRulesRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class ListDrgNatRulesRequest extends com.oracle.bmc.requests.BmcRequest Example: {@code 50}
+ */
+ private Integer limit;
+
+ /**
+ * For list pagination. The maximum number of results per page, or items to return in a
+ * paginated "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * Example: {@code 50}
+ */
+ public Integer getLimit() {
+ return limit;
+ }
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the previous
+ * "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ private String page;
+
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the previous
+ * "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ public String getPage() {
+ return page;
+ }
+ /** The field to sort by. */
+ private SortBy sortBy;
+
+ /** The field to sort by. */
+ public enum SortBy implements com.oracle.bmc.http.internal.BmcEnum {
+ Priority("PRIORITY"),
+ ;
+
+ private final String value;
+ private static java.util.Map Example: {@code 50}
+ */
+ private Integer limit = null;
+
+ /**
+ * For list pagination. The maximum number of results per page, or items to return in a
+ * paginated "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * Example: {@code 50}
+ *
+ * @param limit the value to set
+ * @return this builder instance
+ */
+ public Builder limit(Integer limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the
+ * previous "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ private String page = null;
+
+ /**
+ * For list pagination. The value of the {@code opc-next-page} response header from the
+ * previous "List" call. For important details about how pagination works, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * @param page the value to set
+ * @return this builder instance
+ */
+ public Builder page(String page) {
+ this.page = page;
+ return this;
+ }
+
+ /** The field to sort by. */
+ private SortBy sortBy = null;
+
+ /**
+ * The field to sort by.
+ *
+ * @param sortBy the value to set
+ * @return this builder instance
+ */
+ public Builder sortBy(SortBy sortBy) {
+ this.sortBy = sortBy;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(ListDrgNatRulesRequest o) {
+ drgNatPolicyId(o.getDrgNatPolicyId());
+ limit(o.getLimit());
+ page(o.getPage());
+ sortBy(o.getSortBy());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of ListDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of ListDrgNatRulesRequest
+ */
+ public ListDrgNatRulesRequest build() {
+ ListDrgNatRulesRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of ListDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of ListDrgNatRulesRequest
+ */
+ public ListDrgNatRulesRequest buildWithoutInvocationCallback() {
+ ListDrgNatRulesRequest request = new ListDrgNatRulesRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.limit = limit;
+ request.page = page;
+ request.sortBy = sortBy;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new ListDrgNatRulesRequest(drgNatPolicyId, limit, page, sortBy, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .limit(limit)
+ .page(page)
+ .sortBy(sortBy)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",limit=").append(String.valueOf(this.limit));
+ sb.append(",page=").append(String.valueOf(this.page));
+ sb.append(",sortBy=").append(String.valueOf(this.sortBy));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ListDrgNatRulesRequest)) {
+ return false;
+ }
+
+ ListDrgNatRulesRequest other = (ListDrgNatRulesRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(this.limit, other.limit)
+ && java.util.Objects.equals(this.page, other.page)
+ && java.util.Objects.equals(this.sortBy, other.sortBy)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result = (result * PRIME) + (this.limit == null ? 43 : this.limit.hashCode());
+ result = (result * PRIME) + (this.page == null ? 43 : this.page.hashCode());
+ result = (result * PRIME) + (this.sortBy == null ? 43 : this.sortBy.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/RemoveDrgNatPolicyRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/RemoveDrgNatPolicyRequest.java
new file mode 100644
index 00000000000..08bede48ad2
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/RemoveDrgNatPolicyRequest.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use RemoveDrgNatPolicyRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class RemoveDrgNatPolicyRequest extends com.oracle.bmc.requests.BmcRequest Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of RemoveDrgNatPolicyRequest
+ */
+ public RemoveDrgNatPolicyRequest build() {
+ RemoveDrgNatPolicyRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of RemoveDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of RemoveDrgNatPolicyRequest
+ */
+ public RemoveDrgNatPolicyRequest buildWithoutInvocationCallback() {
+ RemoveDrgNatPolicyRequest request = new RemoveDrgNatPolicyRequest();
+ request.drgAttachmentId = drgAttachmentId;
+ request.ifMatch = ifMatch;
+ return request;
+ // new RemoveDrgNatPolicyRequest(drgAttachmentId, ifMatch);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder().drgAttachmentId(drgAttachmentId).ifMatch(ifMatch);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgAttachmentId=").append(String.valueOf(this.drgAttachmentId));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof RemoveDrgNatPolicyRequest)) {
+ return false;
+ }
+
+ RemoveDrgNatPolicyRequest other = (RemoveDrgNatPolicyRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgAttachmentId, other.drgAttachmentId)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgAttachmentId == null ? 43 : this.drgAttachmentId.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/RemoveDrgNatRulesRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/RemoveDrgNatRulesRequest.java
new file mode 100644
index 00000000000..cadcc118aa6
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/RemoveDrgNatRulesRequest.java
@@ -0,0 +1,370 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use RemoveDrgNatRulesRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class RemoveDrgNatRulesRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.core.model.RemoveDrgNatRulesDetails> {
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ private String drgNatPolicyId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ public String getDrgNatPolicyId() {
+ return drgNatPolicyId;
+ }
+ /** Request with DRG NAT rules to remove from the DRG NAT policy. */
+ private com.oracle.bmc.core.model.RemoveDrgNatRulesDetails removeDrgNatRulesDetails;
+
+ /** Request with DRG NAT rules to remove from the DRG NAT policy. */
+ public com.oracle.bmc.core.model.RemoveDrgNatRulesDetails getRemoveDrgNatRulesDetails() {
+ return removeDrgNatRulesDetails;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.core.model.RemoveDrgNatRulesDetails getBody$() {
+ return removeDrgNatRulesDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ RemoveDrgNatRulesRequest, com.oracle.bmc.core.model.RemoveDrgNatRulesDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ */
+ private String drgNatPolicyId = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ *
+ * @param drgNatPolicyId the value to set
+ * @return this builder instance
+ */
+ public Builder drgNatPolicyId(String drgNatPolicyId) {
+ this.drgNatPolicyId = drgNatPolicyId;
+ return this;
+ }
+
+ /** Request with DRG NAT rules to remove from the DRG NAT policy. */
+ private com.oracle.bmc.core.model.RemoveDrgNatRulesDetails removeDrgNatRulesDetails = null;
+
+ /**
+ * Request with DRG NAT rules to remove from the DRG NAT policy.
+ *
+ * @param removeDrgNatRulesDetails the value to set
+ * @return this builder instance
+ */
+ public Builder removeDrgNatRulesDetails(
+ com.oracle.bmc.core.model.RemoveDrgNatRulesDetails removeDrgNatRulesDetails) {
+ this.removeDrgNatRulesDetails = removeDrgNatRulesDetails;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(RemoveDrgNatRulesRequest o) {
+ drgNatPolicyId(o.getDrgNatPolicyId());
+ removeDrgNatRulesDetails(o.getRemoveDrgNatRulesDetails());
+ ifMatch(o.getIfMatch());
+ opcRequestId(o.getOpcRequestId());
+ opcRetryToken(o.getOpcRetryToken());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of RemoveDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of RemoveDrgNatRulesRequest
+ */
+ public RemoveDrgNatRulesRequest build() {
+ RemoveDrgNatRulesRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.core.model.RemoveDrgNatRulesDetails body) {
+ removeDrgNatRulesDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of RemoveDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of RemoveDrgNatRulesRequest
+ */
+ public RemoveDrgNatRulesRequest buildWithoutInvocationCallback() {
+ RemoveDrgNatRulesRequest request = new RemoveDrgNatRulesRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.removeDrgNatRulesDetails = removeDrgNatRulesDetails;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ request.opcRetryToken = opcRetryToken;
+ return request;
+ // new RemoveDrgNatRulesRequest(drgNatPolicyId, removeDrgNatRulesDetails, ifMatch,
+ // opcRequestId, opcRetryToken);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .removeDrgNatRulesDetails(removeDrgNatRulesDetails)
+ .ifMatch(ifMatch)
+ .opcRequestId(opcRequestId)
+ .opcRetryToken(opcRetryToken);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",removeDrgNatRulesDetails=")
+ .append(String.valueOf(this.removeDrgNatRulesDetails));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof RemoveDrgNatRulesRequest)) {
+ return false;
+ }
+
+ RemoveDrgNatRulesRequest other = (RemoveDrgNatRulesRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(
+ this.removeDrgNatRulesDetails, other.removeDrgNatRulesDetails)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.removeDrgNatRulesDetails == null
+ ? 43
+ : this.removeDrgNatRulesDetails.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/UpdateDrgNatPolicyRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/UpdateDrgNatPolicyRequest.java
new file mode 100644
index 00000000000..d7a2057b752
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/UpdateDrgNatPolicyRequest.java
@@ -0,0 +1,321 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use UpdateDrgNatPolicyRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class UpdateDrgNatPolicyRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails> {
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ private String drgNatPolicyId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ public String getDrgNatPolicyId() {
+ return drgNatPolicyId;
+ }
+ /** Details object for updating a DRG NAT policy */
+ private com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails updateDrgNatPolicyDetails;
+
+ /** Details object for updating a DRG NAT policy */
+ public com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails getUpdateDrgNatPolicyDetails() {
+ return updateDrgNatPolicyDetails;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails getBody$() {
+ return updateDrgNatPolicyDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ UpdateDrgNatPolicyRequest,
+ com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ */
+ private String drgNatPolicyId = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ *
+ * @param drgNatPolicyId the value to set
+ * @return this builder instance
+ */
+ public Builder drgNatPolicyId(String drgNatPolicyId) {
+ this.drgNatPolicyId = drgNatPolicyId;
+ return this;
+ }
+
+ /** Details object for updating a DRG NAT policy */
+ private com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails updateDrgNatPolicyDetails =
+ null;
+
+ /**
+ * Details object for updating a DRG NAT policy
+ *
+ * @param updateDrgNatPolicyDetails the value to set
+ * @return this builder instance
+ */
+ public Builder updateDrgNatPolicyDetails(
+ com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails updateDrgNatPolicyDetails) {
+ this.updateDrgNatPolicyDetails = updateDrgNatPolicyDetails;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(UpdateDrgNatPolicyRequest o) {
+ drgNatPolicyId(o.getDrgNatPolicyId());
+ updateDrgNatPolicyDetails(o.getUpdateDrgNatPolicyDetails());
+ ifMatch(o.getIfMatch());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of UpdateDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of UpdateDrgNatPolicyRequest
+ */
+ public UpdateDrgNatPolicyRequest build() {
+ UpdateDrgNatPolicyRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.core.model.UpdateDrgNatPolicyDetails body) {
+ updateDrgNatPolicyDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of UpdateDrgNatPolicyRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of UpdateDrgNatPolicyRequest
+ */
+ public UpdateDrgNatPolicyRequest buildWithoutInvocationCallback() {
+ UpdateDrgNatPolicyRequest request = new UpdateDrgNatPolicyRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.updateDrgNatPolicyDetails = updateDrgNatPolicyDetails;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new UpdateDrgNatPolicyRequest(drgNatPolicyId, updateDrgNatPolicyDetails, ifMatch,
+ // opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .updateDrgNatPolicyDetails(updateDrgNatPolicyDetails)
+ .ifMatch(ifMatch)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",updateDrgNatPolicyDetails=")
+ .append(String.valueOf(this.updateDrgNatPolicyDetails));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof UpdateDrgNatPolicyRequest)) {
+ return false;
+ }
+
+ UpdateDrgNatPolicyRequest other = (UpdateDrgNatPolicyRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(
+ this.updateDrgNatPolicyDetails, other.updateDrgNatPolicyDetails)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.updateDrgNatPolicyDetails == null
+ ? 43
+ : this.updateDrgNatPolicyDetails.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/requests/UpdateDrgNatRulesRequest.java b/bmc-core/src/main/java/com/oracle/bmc/core/requests/UpdateDrgNatRulesRequest.java
new file mode 100644
index 00000000000..ce31a48c317
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/requests/UpdateDrgNatRulesRequest.java
@@ -0,0 +1,370 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.requests;
+
+import com.oracle.bmc.core.model.*;
+/**
+ * Example: Click here to see how to use UpdateDrgNatRulesRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class UpdateDrgNatRulesRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.core.model.UpdateDrgNatRulesDetails> {
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ private String drgNatPolicyId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DRG
+ * NAT policy.
+ */
+ public String getDrgNatPolicyId() {
+ return drgNatPolicyId;
+ }
+ /** Updates one or more DRG NAT rules in the specified DRG NAT policy. */
+ private com.oracle.bmc.core.model.UpdateDrgNatRulesDetails updateDrgNatRulesDetails;
+
+ /** Updates one or more DRG NAT rules in the specified DRG NAT policy. */
+ public com.oracle.bmc.core.model.UpdateDrgNatRulesDetails getUpdateDrgNatRulesDetails() {
+ return updateDrgNatRulesDetails;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular request,
+ * please provide the request ID.
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.core.model.UpdateDrgNatRulesDetails getBody$() {
+ return updateDrgNatRulesDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ UpdateDrgNatRulesRequest, com.oracle.bmc.core.model.UpdateDrgNatRulesDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ */
+ private String drgNatPolicyId = null;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * DRG NAT policy.
+ *
+ * @param drgNatPolicyId the value to set
+ * @return this builder instance
+ */
+ public Builder drgNatPolicyId(String drgNatPolicyId) {
+ this.drgNatPolicyId = drgNatPolicyId;
+ return this;
+ }
+
+ /** Updates one or more DRG NAT rules in the specified DRG NAT policy. */
+ private com.oracle.bmc.core.model.UpdateDrgNatRulesDetails updateDrgNatRulesDetails = null;
+
+ /**
+ * Updates one or more DRG NAT rules in the specified DRG NAT policy.
+ *
+ * @param updateDrgNatRulesDetails the value to set
+ * @return this builder instance
+ */
+ public Builder updateDrgNatRulesDetails(
+ com.oracle.bmc.core.model.UpdateDrgNatRulesDetails updateDrgNatRulesDetails) {
+ this.updateDrgNatRulesDetails = updateDrgNatRulesDetails;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request. If you need to contact Oracle about a particular
+ * request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(UpdateDrgNatRulesRequest o) {
+ drgNatPolicyId(o.getDrgNatPolicyId());
+ updateDrgNatRulesDetails(o.getUpdateDrgNatRulesDetails());
+ ifMatch(o.getIfMatch());
+ opcRequestId(o.getOpcRequestId());
+ opcRetryToken(o.getOpcRetryToken());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of UpdateDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ * This is the preferred method to build an instance.
+ *
+ * @return instance of UpdateDrgNatRulesRequest
+ */
+ public UpdateDrgNatRulesRequest build() {
+ UpdateDrgNatRulesRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.core.model.UpdateDrgNatRulesDetails body) {
+ updateDrgNatRulesDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of UpdateDrgNatRulesRequest as configured by this builder
+ *
+ * Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of UpdateDrgNatRulesRequest
+ */
+ public UpdateDrgNatRulesRequest buildWithoutInvocationCallback() {
+ UpdateDrgNatRulesRequest request = new UpdateDrgNatRulesRequest();
+ request.drgNatPolicyId = drgNatPolicyId;
+ request.updateDrgNatRulesDetails = updateDrgNatRulesDetails;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ request.opcRetryToken = opcRetryToken;
+ return request;
+ // new UpdateDrgNatRulesRequest(drgNatPolicyId, updateDrgNatRulesDetails, ifMatch,
+ // opcRequestId, opcRetryToken);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .drgNatPolicyId(drgNatPolicyId)
+ .updateDrgNatRulesDetails(updateDrgNatRulesDetails)
+ .ifMatch(ifMatch)
+ .opcRequestId(opcRequestId)
+ .opcRetryToken(opcRetryToken);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",drgNatPolicyId=").append(String.valueOf(this.drgNatPolicyId));
+ sb.append(",updateDrgNatRulesDetails=")
+ .append(String.valueOf(this.updateDrgNatRulesDetails));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof UpdateDrgNatRulesRequest)) {
+ return false;
+ }
+
+ UpdateDrgNatRulesRequest other = (UpdateDrgNatRulesRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.drgNatPolicyId, other.drgNatPolicyId)
+ && java.util.Objects.equals(
+ this.updateDrgNatRulesDetails, other.updateDrgNatRulesDetails)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drgNatPolicyId == null ? 43 : this.drgNatPolicyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.updateDrgNatRulesDetails == null
+ ? 43
+ : this.updateDrgNatRulesDetails.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-core/src/main/java/com/oracle/bmc/core/responses/AddDrgNatRulesResponse.java b/bmc-core/src/main/java/com/oracle/bmc/core/responses/AddDrgNatRulesResponse.java
new file mode 100644
index 00000000000..2ae02ee9a02
--- /dev/null
+++ b/bmc-core/src/main/java/com/oracle/bmc/core/responses/AddDrgNatRulesResponse.java
@@ -0,0 +1,193 @@
+/**
+ * Copyright (c) 2016, 2026, 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.core.responses;
+
+import com.oracle.bmc.core.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class AddDrgNatRulesResponse extends com.oracle.bmc.responses.BmcResponse {
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the work
+ * request. Use
+ * [GetWorkRequest](https://docs.oracle.com/iaas/api/#/en/workrequests/latest/WorkRequest/GetWorkRequest)
+ * with this ID to track the status of the request.
+ */
+ private String opcWorkRequestId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the work
+ * request. Use
+ * [GetWorkRequest](https://docs.oracle.com/iaas/api/#/en/workrequests/latest/WorkRequest/GetWorkRequest)
+ * with this ID to track the status of the request.
+ *
+ * @return the value
+ */
+ public String getOpcWorkRequestId() {
+ return opcWorkRequestId;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "opcWorkRequestId",
+ "opcRequestId"
+ })
+ private AddDrgNatRulesResponse(
+ int __httpStatusCode__,
+ java.util.Map
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = AddDrgNatRuleDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class AddDrgNatRuleDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "drgNatRulePriority",
+ "originalSource",
+ "translatedSource",
+ "originalDestination",
+ "translatedDestination"
+ })
+ public AddDrgNatRuleDetails(
+ Long drgNatRulePriority,
+ String originalSource,
+ String translatedSource,
+ String originalDestination,
+ String translatedDestination) {
+ super();
+ this.drgNatRulePriority = drgNatRulePriority;
+ this.originalSource = originalSource;
+ this.translatedSource = translatedSource;
+ this.originalDestination = originalDestination;
+ this.translatedDestination = translatedDestination;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The priority associated with each DRG NAT rule. */
+ @com.fasterxml.jackson.annotation.JsonProperty("drgNatRulePriority")
+ private Long drgNatRulePriority;
+
+ /**
+ * The priority associated with each DRG NAT rule.
+ *
+ * @param drgNatRulePriority the value to set
+ * @return this builder
+ */
+ public Builder drgNatRulePriority(Long drgNatRulePriority) {
+ this.drgNatRulePriority = drgNatRulePriority;
+ this.__explicitlySet__.add("drgNatRulePriority");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ *
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = AddDrgNatRulesDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class AddDrgNatRulesDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"rules"})
+ public AddDrgNatRulesDetails(java.util.List
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = ChangeDrgNatPolicyCompartmentDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class ChangeDrgNatPolicyCompartmentDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"compartmentId"})
+ public ChangeDrgNatPolicyCompartmentDetails(String compartmentId) {
+ super();
+ this.compartmentId = compartmentId;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment to move the DrgNatPolicy to.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment to move the DrgNatPolicy to.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateDrgNatPolicyDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateDrgNatPolicyDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "definedTags",
+ "displayName",
+ "freeformTags",
+ "compartmentId"
+ })
+ public CreateDrgNatPolicyDetails(
+ java.util.Map
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = DrgNatPolicy.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DrgNatPolicy extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "compartmentId",
+ "definedTags",
+ "displayName",
+ "freeformTags",
+ "systemTags",
+ "lifecycleState",
+ "timeCreated"
+ })
+ public DrgNatPolicy(
+ String id,
+ String compartmentId,
+ java.util.Map
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = DrgNatRule.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DrgNatRule extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "drgNatPolicyId",
+ "drgNatRulePriority",
+ "originalSource",
+ "translatedSource",
+ "originalDestination",
+ "translatedDestination"
+ })
+ public DrgNatRule(
+ String id,
+ String drgNatPolicyId,
+ Long drgNatRulePriority,
+ String originalSource,
+ String translatedSource,
+ String originalDestination,
+ String translatedDestination) {
+ super();
+ this.id = id;
+ this.drgNatPolicyId = drgNatPolicyId;
+ this.drgNatRulePriority = drgNatRulePriority;
+ this.originalSource = originalSource;
+ this.translatedSource = translatedSource;
+ this.originalDestination = originalDestination;
+ this.translatedDestination = translatedDestination;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The Oracle-assigned ID of the DRG NAT rule. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The Oracle-assigned ID of the DRG NAT rule.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /**
+ * The DRG NAT policy's Oracle ID
+ * ([OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("drgNatPolicyId")
+ private String drgNatPolicyId;
+
+ /**
+ * The DRG NAT policy's Oracle ID
+ * ([OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
+ *
+ * @param drgNatPolicyId the value to set
+ * @return this builder
+ */
+ public Builder drgNatPolicyId(String drgNatPolicyId) {
+ this.drgNatPolicyId = drgNatPolicyId;
+ this.__explicitlySet__.add("drgNatPolicyId");
+ return this;
+ }
+ /** The priority associated with each DRG NAT rule. */
+ @com.fasterxml.jackson.annotation.JsonProperty("drgNatRulePriority")
+ private Long drgNatRulePriority;
+
+ /**
+ * The priority associated with each DRG NAT rule.
+ *
+ * @param drgNatRulePriority the value to set
+ * @return this builder
+ */
+ public Builder drgNatRulePriority(Long drgNatRulePriority) {
+ this.drgNatRulePriority = drgNatRulePriority;
+ this.__explicitlySet__.add("drgNatRulePriority");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ *
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = RemoveDrgNatRulesDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class RemoveDrgNatRulesDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"ruleIds"})
+ public RemoveDrgNatRulesDetails(java.util.List
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = UpdateDrgNatPolicyDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class UpdateDrgNatPolicyDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"definedTags", "displayName", "freeformTags"})
+ public UpdateDrgNatPolicyDetails(
+ java.util.Map
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = UpdateDrgNatRuleDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class UpdateDrgNatRuleDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "drgNatRulePriority",
+ "originalSource",
+ "translatedSource",
+ "originalDestination",
+ "translatedDestination"
+ })
+ public UpdateDrgNatRuleDetails(
+ String id,
+ Long drgNatRulePriority,
+ String originalSource,
+ String translatedSource,
+ String originalDestination,
+ String translatedDestination) {
+ super();
+ this.id = id;
+ this.drgNatRulePriority = drgNatRulePriority;
+ this.originalSource = originalSource;
+ this.translatedSource = translatedSource;
+ this.originalDestination = originalDestination;
+ this.translatedDestination = translatedDestination;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The Oracle-assigned ID of the DRG NAT rule. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The Oracle-assigned ID of the DRG NAT rule.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** The priority associated with each DRG NAT rule. */
+ @com.fasterxml.jackson.annotation.JsonProperty("drgNatRulePriority")
+ private Long drgNatRulePriority;
+
+ /**
+ * The priority associated with each DRG NAT rule.
+ *
+ * @param drgNatRulePriority the value to set
+ * @return this builder
+ */
+ public Builder drgNatRulePriority(Long drgNatRulePriority) {
+ this.drgNatRulePriority = drgNatRulePriority;
+ this.__explicitlySet__.add("drgNatRulePriority");
+ return this;
+ }
+ /**
+ * Represents the range of IP addresses to match against when routing traffic. Original CIDR
+ * range for Source NAT.
+ *
+ *
+ * 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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = UpdateDrgNatRulesDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class UpdateDrgNatRulesDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"rules"})
+ public UpdateDrgNatRulesDetails(java.util.List