certificateIds,
String certificateName,
@@ -49,6 +51,7 @@ public SSLConfiguration(
super();
this.verifyDepth = verifyDepth;
this.verifyPeerCertificate = verifyPeerCertificate;
+ this.hasSessionResumption = hasSessionResumption;
this.trustedCertificateAuthorityIds = trustedCertificateAuthorityIds;
this.certificateIds = certificateIds;
this.certificateName = certificateName;
@@ -101,6 +104,37 @@ public Builder verifyPeerCertificate(Boolean verifyPeerCertificate) {
this.__explicitlySet__.add("verifyPeerCertificate");
return this;
}
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption
+ * improves performance but provides a lower level of security. Disabling session resumption
+ * improves security but reduces performance.
+ *
+ * Example: {@code true}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("hasSessionResumption")
+ private Boolean hasSessionResumption;
+
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption
+ * improves performance but provides a lower level of security. Disabling session resumption
+ * improves security but reduces performance.
+ *
+ *
Example: {@code true}
+ *
+ * @param hasSessionResumption the value to set
+ * @return this builder
+ */
+ public Builder hasSessionResumption(Boolean hasSessionResumption) {
+ this.hasSessionResumption = hasSessionResumption;
+ this.__explicitlySet__.add("hasSessionResumption");
+ return this;
+ }
/**
* Ids for OCI certificates service CA or CA bundles for the load balancer to trust.
*
@@ -343,6 +377,7 @@ public SSLConfiguration build() {
new SSLConfiguration(
this.verifyDepth,
this.verifyPeerCertificate,
+ this.hasSessionResumption,
this.trustedCertificateAuthorityIds,
this.certificateIds,
this.certificateName,
@@ -363,6 +398,9 @@ public Builder copy(SSLConfiguration model) {
if (model.wasPropertyExplicitlySet("verifyPeerCertificate")) {
this.verifyPeerCertificate(model.getVerifyPeerCertificate());
}
+ if (model.wasPropertyExplicitlySet("hasSessionResumption")) {
+ this.hasSessionResumption(model.getHasSessionResumption());
+ }
if (model.wasPropertyExplicitlySet("trustedCertificateAuthorityIds")) {
this.trustedCertificateAuthorityIds(model.getTrustedCertificateAuthorityIds());
}
@@ -432,6 +470,35 @@ public Boolean getVerifyPeerCertificate() {
return verifyPeerCertificate;
}
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption improves
+ * performance but provides a lower level of security. Disabling session resumption improves
+ * security but reduces performance.
+ *
+ *
Example: {@code true}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("hasSessionResumption")
+ private final Boolean hasSessionResumption;
+
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption improves
+ * performance but provides a lower level of security. Disabling session resumption improves
+ * security but reduces performance.
+ *
+ *
Example: {@code true}
+ *
+ * @return the value
+ */
+ public Boolean getHasSessionResumption() {
+ return hasSessionResumption;
+ }
+
/**
* Ids for OCI certificates service CA or CA bundles for the load balancer to trust.
*
@@ -716,6 +783,7 @@ public String toString(boolean includeByteArrayContents) {
sb.append("super=").append(super.toString());
sb.append("verifyDepth=").append(String.valueOf(this.verifyDepth));
sb.append(", verifyPeerCertificate=").append(String.valueOf(this.verifyPeerCertificate));
+ sb.append(", hasSessionResumption=").append(String.valueOf(this.hasSessionResumption));
sb.append(", trustedCertificateAuthorityIds=")
.append(String.valueOf(this.trustedCertificateAuthorityIds));
sb.append(", certificateIds=").append(String.valueOf(this.certificateIds));
@@ -739,6 +807,7 @@ public boolean equals(Object o) {
SSLConfiguration other = (SSLConfiguration) o;
return java.util.Objects.equals(this.verifyDepth, other.verifyDepth)
&& java.util.Objects.equals(this.verifyPeerCertificate, other.verifyPeerCertificate)
+ && java.util.Objects.equals(this.hasSessionResumption, other.hasSessionResumption)
&& java.util.Objects.equals(
this.trustedCertificateAuthorityIds, other.trustedCertificateAuthorityIds)
&& java.util.Objects.equals(this.certificateIds, other.certificateIds)
@@ -759,6 +828,11 @@ public int hashCode() {
+ (this.verifyPeerCertificate == null
? 43
: this.verifyPeerCertificate.hashCode());
+ result =
+ (result * PRIME)
+ + (this.hasSessionResumption == null
+ ? 43
+ : this.hasSessionResumption.hashCode());
result =
(result * PRIME)
+ (this.trustedCertificateAuthorityIds == null
diff --git a/bmc-loadbalancer/src/main/java/com/oracle/bmc/loadbalancer/model/SSLConfigurationDetails.java b/bmc-loadbalancer/src/main/java/com/oracle/bmc/loadbalancer/model/SSLConfigurationDetails.java
index 22e49c2bbe0..6425d317537 100644
--- a/bmc-loadbalancer/src/main/java/com/oracle/bmc/loadbalancer/model/SSLConfigurationDetails.java
+++ b/bmc-loadbalancer/src/main/java/com/oracle/bmc/loadbalancer/model/SSLConfigurationDetails.java
@@ -29,6 +29,7 @@ public final class SSLConfigurationDetails
@java.beans.ConstructorProperties({
"verifyDepth",
"verifyPeerCertificate",
+ "hasSessionResumption",
"trustedCertificateAuthorityIds",
"certificateIds",
"certificateName",
@@ -39,6 +40,7 @@ public final class SSLConfigurationDetails
public SSLConfigurationDetails(
Integer verifyDepth,
Boolean verifyPeerCertificate,
+ Boolean hasSessionResumption,
java.util.List trustedCertificateAuthorityIds,
java.util.List certificateIds,
String certificateName,
@@ -48,6 +50,7 @@ public SSLConfigurationDetails(
super();
this.verifyDepth = verifyDepth;
this.verifyPeerCertificate = verifyPeerCertificate;
+ this.hasSessionResumption = hasSessionResumption;
this.trustedCertificateAuthorityIds = trustedCertificateAuthorityIds;
this.certificateIds = certificateIds;
this.certificateName = certificateName;
@@ -100,6 +103,37 @@ public Builder verifyPeerCertificate(Boolean verifyPeerCertificate) {
this.__explicitlySet__.add("verifyPeerCertificate");
return this;
}
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption
+ * improves performance but provides a lower level of security. Disabling session resumption
+ * improves security but reduces performance.
+ *
+ * Example: {@code true}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("hasSessionResumption")
+ private Boolean hasSessionResumption;
+
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption
+ * improves performance but provides a lower level of security. Disabling session resumption
+ * improves security but reduces performance.
+ *
+ *
Example: {@code true}
+ *
+ * @param hasSessionResumption the value to set
+ * @return this builder
+ */
+ public Builder hasSessionResumption(Boolean hasSessionResumption) {
+ this.hasSessionResumption = hasSessionResumption;
+ this.__explicitlySet__.add("hasSessionResumption");
+ return this;
+ }
/**
* Ids for OCI certificates service CA or CA bundles for the load balancer to trust.
*
@@ -342,6 +376,7 @@ public SSLConfigurationDetails build() {
new SSLConfigurationDetails(
this.verifyDepth,
this.verifyPeerCertificate,
+ this.hasSessionResumption,
this.trustedCertificateAuthorityIds,
this.certificateIds,
this.certificateName,
@@ -362,6 +397,9 @@ public Builder copy(SSLConfigurationDetails model) {
if (model.wasPropertyExplicitlySet("verifyPeerCertificate")) {
this.verifyPeerCertificate(model.getVerifyPeerCertificate());
}
+ if (model.wasPropertyExplicitlySet("hasSessionResumption")) {
+ this.hasSessionResumption(model.getHasSessionResumption());
+ }
if (model.wasPropertyExplicitlySet("trustedCertificateAuthorityIds")) {
this.trustedCertificateAuthorityIds(model.getTrustedCertificateAuthorityIds());
}
@@ -431,6 +469,35 @@ public Boolean getVerifyPeerCertificate() {
return verifyPeerCertificate;
}
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption improves
+ * performance but provides a lower level of security. Disabling session resumption improves
+ * security but reduces performance.
+ *
+ *
Example: {@code true}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("hasSessionResumption")
+ private final Boolean hasSessionResumption;
+
+ /**
+ * Whether the load balancer listener should resume an encrypted session by reusing the
+ * cryptographic parameters of a previous TLS session, without having to perform a full
+ * handshake again. If "true", the service resumes the previous TLS encrypted session. If
+ * "false", the service starts a new TLS encrypted session. Enabling session resumption improves
+ * performance but provides a lower level of security. Disabling session resumption improves
+ * security but reduces performance.
+ *
+ *
Example: {@code true}
+ *
+ * @return the value
+ */
+ public Boolean getHasSessionResumption() {
+ return hasSessionResumption;
+ }
+
/**
* Ids for OCI certificates service CA or CA bundles for the load balancer to trust.
*
@@ -702,6 +769,7 @@ public String toString(boolean includeByteArrayContents) {
sb.append("super=").append(super.toString());
sb.append("verifyDepth=").append(String.valueOf(this.verifyDepth));
sb.append(", verifyPeerCertificate=").append(String.valueOf(this.verifyPeerCertificate));
+ sb.append(", hasSessionResumption=").append(String.valueOf(this.hasSessionResumption));
sb.append(", trustedCertificateAuthorityIds=")
.append(String.valueOf(this.trustedCertificateAuthorityIds));
sb.append(", certificateIds=").append(String.valueOf(this.certificateIds));
@@ -725,6 +793,7 @@ public boolean equals(Object o) {
SSLConfigurationDetails other = (SSLConfigurationDetails) o;
return java.util.Objects.equals(this.verifyDepth, other.verifyDepth)
&& java.util.Objects.equals(this.verifyPeerCertificate, other.verifyPeerCertificate)
+ && java.util.Objects.equals(this.hasSessionResumption, other.hasSessionResumption)
&& java.util.Objects.equals(
this.trustedCertificateAuthorityIds, other.trustedCertificateAuthorityIds)
&& java.util.Objects.equals(this.certificateIds, other.certificateIds)
@@ -745,6 +814,11 @@ public int hashCode() {
+ (this.verifyPeerCertificate == null
? 43
: this.verifyPeerCertificate.hashCode());
+ result =
+ (result * PRIME)
+ + (this.hasSessionResumption == null
+ ? 43
+ : this.hasSessionResumption.hashCode());
result =
(result * PRIME)
+ (this.trustedCertificateAuthorityIds == null
diff --git a/bmc-lockbox/pom.xml b/bmc-lockbox/pom.xml
index 634f44354d6..0900459dcd8 100644
--- a/bmc-lockbox/pom.xml
+++ b/bmc-lockbox/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-lockbox
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
\ No newline at end of file
diff --git a/bmc-loganalytics/pom.xml b/bmc-loganalytics/pom.xml
index bb59b5c8216..b939ec87e16 100644
--- a/bmc-loganalytics/pom.xml
+++ b/bmc-loganalytics/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-loganalytics
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-logging/pom.xml b/bmc-logging/pom.xml
index ee0b46e78e6..205e93dd9ad 100644
--- a/bmc-logging/pom.xml
+++ b/bmc-logging/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-logging
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-loggingingestion/pom.xml b/bmc-loggingingestion/pom.xml
index 42e73b27895..c757f482300 100644
--- a/bmc-loggingingestion/pom.xml
+++ b/bmc-loggingingestion/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-loggingingestion
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-loggingsearch/pom.xml b/bmc-loggingsearch/pom.xml
index d7dcbf8d7fe..b4196e5b959 100644
--- a/bmc-loggingsearch/pom.xml
+++ b/bmc-loggingsearch/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-loggingsearch
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-managementagent/pom.xml b/bmc-managementagent/pom.xml
index 7d04018fee4..c07ca163c2c 100644
--- a/bmc-managementagent/pom.xml
+++ b/bmc-managementagent/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-managementagent
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-managementdashboard/pom.xml b/bmc-managementdashboard/pom.xml
index 9b09b875b7b..50ca7981f0b 100644
--- a/bmc-managementdashboard/pom.xml
+++ b/bmc-managementdashboard/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-managementdashboard
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-marketplace/pom.xml b/bmc-marketplace/pom.xml
index e2b5b987db0..0eae17e62c8 100644
--- a/bmc-marketplace/pom.xml
+++ b/bmc-marketplace/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.41.1
+ 3.41.2
../pom.xml
oci-java-sdk-marketplace
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.41.1
+ 3.41.2
diff --git a/bmc-marketplaceprivateoffer/pom.xml b/bmc-marketplaceprivateoffer/pom.xml
new file mode 100644
index 00000000000..4ba4a96a3ba
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.oracle.oci.sdk
+ oci-java-sdk
+ 3.41.2
+ ../pom.xml
+
+ oci-java-sdk-marketplaceprivateoffer
+ Oracle Cloud Infrastructure SDK - Marketplace Private Offer
+ This project contains the SDK used for Oracle Cloud Infrastructure Marketplace Private Offer
+ https://docs.cloud.oracle.com/Content/API/SDKDocs/javasdk.htm
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk-common
+ 3.41.2
+
+
+
\ No newline at end of file
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/Attachment.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/Attachment.java
new file mode 100644
index 00000000000..78f790ee5f9
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/Attachment.java
@@ -0,0 +1,162 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Use the Marketplace Publisher API to manage the publishing of applications in Oracle Cloud
+ * Infrastructure Marketplace. This service client uses CircuitBreakerUtils.DEFAULT_CIRCUIT_BREAKER
+ * for all the operations by default if no circuit breaker configuration is defined by the user.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public interface Attachment extends AutoCloseable {
+
+ /** Rebuilds the client from scratch. Useful to refresh certificates. */
+ void refreshClient();
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ *
+ * @param endpoint The endpoint of the service.
+ */
+ void setEndpoint(String endpoint);
+
+ /** Gets the set endpoint for REST call (ex, https://www.example.com) */
+ String getEndpoint();
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ *
Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the
+ * endpoint. If the service is not available in this Region, however, an
+ * IllegalArgumentException will be raised.
+ *
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ *
Note, this will first try to map the region ID to a known Region and call {@link
+ * #setRegion(Region) setRegion}.
+ *
+ *
If no known Region could be determined, it will create an endpoint based on the default
+ * endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ *
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Determines whether realm specific endpoint should be used or not. Set
+ * realmSpecificEndpointTemplateEnabled to "true" if the user wants to enable use of realm
+ * specific endpoint template, otherwise set it to "false"
+ *
+ * @param realmSpecificEndpointTemplateEnabled flag to enable the use of realm specific endpoint
+ * template
+ */
+ void useRealmSpecificEndpointTemplate(boolean realmSpecificEndpointTemplateEnabled);
+
+ /**
+ * Creates a new Attachment.
+ *
+ * @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 CreateAttachment
+ * API.
+ */
+ CreateAttachmentResponse createAttachment(CreateAttachmentRequest request);
+
+ /**
+ * Deletes a Attachment resource by identifier
+ *
+ * @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 DeleteAttachment
+ * API.
+ */
+ DeleteAttachmentResponse deleteAttachment(DeleteAttachmentRequest request);
+
+ /**
+ * Gets a Attachment by identifier
+ *
+ * @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 GetAttachment API.
+ */
+ GetAttachmentResponse getAttachment(GetAttachmentRequest request);
+
+ /**
+ * Gets a Attachment content by identifier
+ *
+ * @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
+ * GetAttachmentContent API.
+ */
+ GetAttachmentContentResponse getAttachmentContent(GetAttachmentContentRequest request);
+
+ /**
+ * Returns a list of Attachments. Requires either the BuyerCompartmentId or the
+ * SellerCompartmentId params. If neither or both are provided, then the API will return a 400.
+ *
+ * @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 ListAttachments
+ * API.
+ */
+ ListAttachmentsResponse listAttachments(ListAttachmentsRequest request);
+
+ /**
+ * Gets the pre-configured waiters available for resources for this service.
+ *
+ * @return The service waiters.
+ */
+ AttachmentWaiters getWaiters();
+
+ /**
+ * Gets the pre-configured paginators available for list operations in this service which may
+ * return multiple pages of data. These paginators provide an {@link java.lang.Iterable}
+ * interface so that service responses, or resources/records, can be iterated through without
+ * having to manually deal with pagination and page tokens.
+ *
+ * @return The service paginators.
+ */
+ AttachmentPaginators getPaginators();
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentAsync.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentAsync.java
new file mode 100644
index 00000000000..491eaa25124
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentAsync.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Use the Marketplace Publisher API to manage the publishing of applications in Oracle Cloud
+ * Infrastructure Marketplace.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public interface AttachmentAsync extends AutoCloseable {
+
+ /** Rebuilds the client from scratch. Useful to refresh certificates. */
+ void refreshClient();
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ *
+ * @param endpoint The endpoint of the serice.
+ */
+ void setEndpoint(String endpoint);
+
+ /** Gets the set endpoint for REST call (ex, https://www.example.com) */
+ String getEndpoint();
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ *
Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the
+ * endpoint. If the service is not available in this region, however, an
+ * IllegalArgumentException will be raised.
+ *
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ *
Note, this will first try to map the region ID to a known Region and call {@link
+ * #setRegion(Region) setRegion}.
+ *
+ *
If no known Region could be determined, it will create an endpoint based on the default
+ * endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ *
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Determines whether realm specific endpoint should be used or not. Set
+ * realmSpecificEndpointTemplateEnabled to "true" if the user wants to enable use of realm
+ * specific endpoint template, otherwise set it to "false"
+ *
+ * @param realmSpecificEndpointTemplateEnabled flag to enable the use of realm specific endpoint
+ * template
+ */
+ void useRealmSpecificEndpointTemplate(boolean realmSpecificEndpointTemplateEnabled);
+
+ /**
+ * Creates a new Attachment.
+ *
+ * @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 createAttachment(
+ CreateAttachmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Deletes a Attachment resource by identifier
+ *
+ * @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 deleteAttachment(
+ DeleteAttachmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Gets a Attachment by identifier
+ *
+ * @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 getAttachment(
+ GetAttachmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Gets a Attachment content by identifier
+ *
+ * @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 getAttachmentContent(
+ GetAttachmentContentRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ GetAttachmentContentRequest, GetAttachmentContentResponse>
+ handler);
+
+ /**
+ * Returns a list of Attachments. Requires either the BuyerCompartmentId or the
+ * SellerCompartmentId params. If neither or both are provided, then the API will return a 400.
+ *
+ * @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 listAttachments(
+ ListAttachmentsRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentAsyncClient.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentAsyncClient.java
new file mode 100644
index 00000000000..862b4e11b84
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentAsyncClient.java
@@ -0,0 +1,449 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+import java.util.Objects;
+
+/**
+ * Async client implementation for Attachment service.
+ * There are two ways to use async client: 1. Use AsyncHandler: using AsyncHandler, if the response
+ * to the call is an {@link java.io.InputStream}, like getObject Api in object storage service,
+ * developers need to process the stream in AsyncHandler, and not anywhere else, because the stream
+ * will be closed right after the AsyncHandler is invoked.
+ * 2. Use Java Future: using Java Future, developers need to close the stream after they are done
+ * with the Java Future.
+ * Accessing the result should be done in a mutually exclusive manner, either through the Future or
+ * the AsyncHandler, but not both. If the Future is used, the caller should pass in null as the
+ * AsyncHandler. If the AsyncHandler is used, it is still safe to use the Future to determine
+ * whether or not the request was completed via Future.isDone/isCancelled.
+ * Please refer to
+ * https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ResteasyClientWithObjectStorageExample.java
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class AttachmentAsyncClient extends com.oracle.bmc.http.internal.BaseAsyncClient
+ implements AttachmentAsync {
+ /** Service instance for Attachment. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName("ATTACHMENT")
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate(
+ "https://private-offer.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(AttachmentAsyncClient.class);
+
+ AttachmentAsyncClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ this(builder, authenticationDetailsProvider, true);
+ }
+
+ AttachmentAsyncClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ boolean isStreamWarningEnabled) {
+ super(builder, authenticationDetailsProvider);
+
+ if (isStreamWarningEnabled && com.oracle.bmc.util.StreamUtils.isExtraStreamLogsEnabled()) {
+ LOG.warn(
+ com.oracle.bmc.util.StreamUtils.getStreamWarningMessage(
+ "AttachmentAsyncClient", "getAttachmentContent"));
+ }
+ }
+
+ /**
+ * Create a builder for this client.
+ *
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be
+ * passed to the {@link #build(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private boolean isStreamWarningEnabled = true;
+
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "marketplaceprivateoffer";
+ com.oracle.bmc.internal.Alloy.throwDisabledServiceExceptionIfAppropriate(packageName);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Enable/disable the stream warnings for the client
+ *
+ * @param isStreamWarningEnabled executorService
+ * @return this builder
+ */
+ public Builder isStreamWarningEnabled(boolean isStreamWarningEnabled) {
+ this.isStreamWarningEnabled = isStreamWarningEnabled;
+ return this;
+ }
+
+ /**
+ * Build the client.
+ *
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public AttachmentAsyncClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new AttachmentAsyncClient(
+ this, authenticationDetailsProvider, isStreamWarningEnabled);
+ }
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ super.setRegion(region);
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ super.setRegion(regionId);
+ }
+
+ @Override
+ public java.util.concurrent.Future createAttachment(
+ CreateAttachmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateAttachmentRequest, CreateAttachmentResponse>
+ handler) {
+ Objects.requireNonNull(
+ request.getCreateAttachmentDetails(), "createAttachmentDetails is required");
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, CreateAttachmentResponse::builder)
+ .logger(LOG, "createAttachment")
+ .serviceDetails("Attachment", "CreateAttachment", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateAttachmentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.class,
+ CreateAttachmentResponse.Builder::attachment)
+ .handleResponseHeaderString("etag", CreateAttachmentResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateAttachmentResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteAttachment(
+ DeleteAttachmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ DeleteAttachmentRequest, DeleteAttachmentResponse>
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ Validate.notBlank(request.getAttachmentId(), "attachmentId must not be blank");
+
+ return clientCall(request, DeleteAttachmentResponse::builder)
+ .logger(LOG, "deleteAttachment")
+ .serviceDetails("Attachment", "DeleteAttachment", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteAttachmentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendPathParam(request.getAttachmentId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-work-request-id", DeleteAttachmentResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteAttachmentResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getAttachment(
+ GetAttachmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ Validate.notBlank(request.getAttachmentId(), "attachmentId must not be blank");
+
+ return clientCall(request, GetAttachmentResponse::builder)
+ .logger(LOG, "getAttachment")
+ .serviceDetails("Attachment", "GetAttachment", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetAttachmentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendPathParam(request.getAttachmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.class,
+ GetAttachmentResponse.Builder::attachment)
+ .handleResponseHeaderString("etag", GetAttachmentResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetAttachmentResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getAttachmentContent(
+ GetAttachmentContentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetAttachmentContentRequest, GetAttachmentContentResponse>
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ Validate.notBlank(request.getAttachmentId(), "attachmentId must not be blank");
+
+ return clientCall(request, GetAttachmentContentResponse::builder)
+ .logger(LOG, "getAttachmentContent")
+ .serviceDetails("Attachment", "GetAttachmentContent", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetAttachmentContentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendPathParam(request.getAttachmentId())
+ .appendPathParam("content")
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ java.io.InputStream.class,
+ GetAttachmentContentResponse.Builder::inputStream)
+ .handleResponseHeaderString(
+ "opc-request-id", GetAttachmentContentResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listAttachments(
+ ListAttachmentsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListAttachmentsRequest, ListAttachmentsResponse>
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, ListAttachmentsResponse::builder)
+ .logger(LOG, "listAttachments")
+ .serviceDetails("Attachment", "ListAttachments", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListAttachmentsRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendQueryParam("buyerCompartmentId", request.getBuyerCompartmentId())
+ .appendQueryParam("sellerCompartmentId", request.getSellerCompartmentId())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("id", request.getId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.AttachmentCollection.class,
+ ListAttachmentsResponse.Builder::attachmentCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListAttachmentsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListAttachmentsResponse.Builder::opcNextPage)
+ .callAsync(handler);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(builder(), authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(builder().configuration(configuration), authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ builder().configuration(configuration).clientConfigurator(clientConfigurator),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentClient.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentClient.java
new file mode 100644
index 00000000000..4744802a118
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentClient.java
@@ -0,0 +1,517 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+import com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration;
+import com.oracle.bmc.util.CircuitBreakerUtils;
+
+import java.util.Objects;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class AttachmentClient extends com.oracle.bmc.http.internal.BaseSyncClient
+ implements Attachment {
+ /** Service instance for Attachment. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName("ATTACHMENT")
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate(
+ "https://private-offer.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(AttachmentClient.class);
+
+ private final AttachmentWaiters waiters;
+
+ private final AttachmentPaginators paginators;
+
+ AttachmentClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ java.util.concurrent.ExecutorService executorService) {
+ this(builder, authenticationDetailsProvider, executorService, true);
+ }
+
+ AttachmentClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ java.util.concurrent.ExecutorService executorService,
+ boolean isStreamWarningEnabled) {
+ super(
+ builder,
+ authenticationDetailsProvider,
+ CircuitBreakerUtils.DEFAULT_CIRCUIT_BREAKER_CONFIGURATION);
+
+ if (executorService == null) {
+ // up to 50 (core) threads, time out after 60s idle, all daemon
+ java.util.concurrent.ThreadPoolExecutor threadPoolExecutor =
+ new java.util.concurrent.ThreadPoolExecutor(
+ 50,
+ 50,
+ 60L,
+ java.util.concurrent.TimeUnit.SECONDS,
+ new java.util.concurrent.LinkedBlockingQueue(),
+ com.oracle.bmc.internal.ClientThreadFactory.builder()
+ .isDaemon(true)
+ .nameFormat("Attachment-waiters-%d")
+ .build());
+ threadPoolExecutor.allowCoreThreadTimeOut(true);
+
+ executorService = threadPoolExecutor;
+ }
+ this.waiters = new AttachmentWaiters(executorService, this);
+
+ this.paginators = new AttachmentPaginators(this);
+ if (isStreamWarningEnabled && com.oracle.bmc.util.StreamUtils.isExtraStreamLogsEnabled()) {
+ LOG.warn(
+ com.oracle.bmc.util.StreamUtils.getStreamWarningMessage(
+ "AttachmentClient", "getAttachmentContent"));
+ }
+ }
+
+ /**
+ * Create a builder for this client.
+ *
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be
+ * passed to the {@link #build(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private boolean isStreamWarningEnabled = true;
+ private java.util.concurrent.ExecutorService executorService;
+
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "marketplaceprivateoffer";
+ com.oracle.bmc.internal.Alloy.throwDisabledServiceExceptionIfAppropriate(packageName);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Set the ExecutorService for the client to be created.
+ *
+ * @param executorService executorService
+ * @return this builder
+ */
+ public Builder executorService(java.util.concurrent.ExecutorService executorService) {
+ this.executorService = executorService;
+ return this;
+ }
+
+ /**
+ * Enable/disable the stream warnings for the client
+ *
+ * @param isStreamWarningEnabled executorService
+ * @return this builder
+ */
+ public Builder isStreamWarningEnabled(boolean isStreamWarningEnabled) {
+ this.isStreamWarningEnabled = isStreamWarningEnabled;
+ return this;
+ }
+
+ /**
+ * Build the client.
+ *
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public AttachmentClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new AttachmentClient(
+ this, authenticationDetailsProvider, executorService, isStreamWarningEnabled);
+ }
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ super.setRegion(region);
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ super.setRegion(regionId);
+ }
+
+ @Override
+ public CreateAttachmentResponse createAttachment(CreateAttachmentRequest request) {
+ Objects.requireNonNull(
+ request.getCreateAttachmentDetails(), "createAttachmentDetails is required");
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, CreateAttachmentResponse::builder)
+ .logger(LOG, "createAttachment")
+ .serviceDetails("Attachment", "CreateAttachment", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateAttachmentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.class,
+ CreateAttachmentResponse.Builder::attachment)
+ .handleResponseHeaderString("etag", CreateAttachmentResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateAttachmentResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public DeleteAttachmentResponse deleteAttachment(DeleteAttachmentRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ Validate.notBlank(request.getAttachmentId(), "attachmentId must not be blank");
+
+ return clientCall(request, DeleteAttachmentResponse::builder)
+ .logger(LOG, "deleteAttachment")
+ .serviceDetails("Attachment", "DeleteAttachment", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteAttachmentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendPathParam(request.getAttachmentId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleResponseHeaderString(
+ "opc-work-request-id", DeleteAttachmentResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteAttachmentResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetAttachmentResponse getAttachment(GetAttachmentRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ Validate.notBlank(request.getAttachmentId(), "attachmentId must not be blank");
+
+ return clientCall(request, GetAttachmentResponse::builder)
+ .logger(LOG, "getAttachment")
+ .serviceDetails("Attachment", "GetAttachment", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetAttachmentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendPathParam(request.getAttachmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.class,
+ GetAttachmentResponse.Builder::attachment)
+ .handleResponseHeaderString("etag", GetAttachmentResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetAttachmentResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetAttachmentContentResponse getAttachmentContent(GetAttachmentContentRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ Validate.notBlank(request.getAttachmentId(), "attachmentId must not be blank");
+
+ return clientCall(request, GetAttachmentContentResponse::builder)
+ .logger(LOG, "getAttachmentContent")
+ .serviceDetails("Attachment", "GetAttachmentContent", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetAttachmentContentRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendPathParam(request.getAttachmentId())
+ .appendPathParam("content")
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ java.io.InputStream.class,
+ GetAttachmentContentResponse.Builder::inputStream)
+ .handleResponseHeaderString(
+ "opc-request-id", GetAttachmentContentResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public ListAttachmentsResponse listAttachments(ListAttachmentsRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, ListAttachmentsResponse::builder)
+ .logger(LOG, "listAttachments")
+ .serviceDetails("Attachment", "ListAttachments", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListAttachmentsRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("attachments")
+ .appendQueryParam("buyerCompartmentId", request.getBuyerCompartmentId())
+ .appendQueryParam("sellerCompartmentId", request.getSellerCompartmentId())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("id", request.getId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.AttachmentCollection.class,
+ ListAttachmentsResponse.Builder::attachmentCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListAttachmentsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListAttachmentsResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
+ @Override
+ public AttachmentWaiters getWaiters() {
+ return waiters;
+ }
+
+ @Override
+ public AttachmentPaginators getPaginators() {
+ return paginators;
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(builder(), authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(builder().configuration(configuration), authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ builder().configuration(configuration).clientConfigurator(clientConfigurator),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @param executorService {@link Builder#executorService}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public AttachmentClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint,
+ java.util.concurrent.ExecutorService executorService) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider,
+ executorService);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentPaginators.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentPaginators.java
new file mode 100644
index 00000000000..6b0050b9fb3
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentPaginators.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Collection of helper methods that can be used to provide an {@link java.lang.Iterable} interface
+ * to any list operations of Attachment where multiple pages of data may be fetched. Two styles of
+ * iteration are supported:
+ *
+ *
+ * - Iterating over the Response objects returned by the list operation. These are referred to
+ * as ResponseIterators, and the methods are suffixed with ResponseIterator. For example:
+ * listUsersResponseIterator
+ *
- Iterating over the resources/records being listed. These are referred to as
+ * RecordIterators, and the methods are suffixed with RecordIterator. For example:
+ * listUsersRecordIterator
+ *
+ *
+ * These iterables abstract away the need to write code to manually handle pagination via looping
+ * and using the page tokens. They will automatically fetch more data from the service when
+ * required.
+ *
+ * As an example, if we were using the ListUsers operation in IdentityService, then the {@link
+ * java.lang.Iterable} returned by calling a ResponseIterator method would iterate over the
+ * ListUsersResponse objects returned by each ListUsers call, whereas the {@link java.lang.Iterable}
+ * returned by calling a RecordIterator method would iterate over the User records and we don't have
+ * to deal with ListUsersResponse objects at all. In either case, pagination will be automatically
+ * handled so we can iterate until there are no more responses or no more resources/records
+ * available.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class AttachmentPaginators {
+ private final Attachment client;
+
+ public AttachmentPaginators(Attachment client) {
+ this.client = client;
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the
+ * listAttachments operation. This iterable will fetch more data from the server as needed.
+ *
+ * @param request a request which can be sent to the service operation
+ * @return an {@link java.lang.Iterable} which can be used to iterate over the responses
+ * received from the service.
+ */
+ public Iterable listAttachmentsResponseIterator(
+ final ListAttachmentsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListAttachmentsRequest.Builder, ListAttachmentsRequest, ListAttachmentsResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListAttachmentsRequest.Builder get() {
+ return ListAttachmentsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListAttachmentsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListAttachmentsRequest.Builder>,
+ ListAttachmentsRequest>() {
+ @Override
+ public ListAttachmentsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListAttachmentsRequest.Builder>
+ input) {
+ if (input.getNextPageToken() == null) {
+ return input.getRequestBuilder().build();
+ } else {
+ return input.getRequestBuilder()
+ .page(input.getNextPageToken().orElse(null))
+ .build();
+ }
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public ListAttachmentsResponse apply(ListAttachmentsRequest request) {
+ return client.listAttachments(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.marketplaceprivateoffer.model.AttachmentSummary} objects contained in
+ * responses from the listAttachments operation. This iterable will fetch more data from the
+ * server as needed.
+ *
+ * @param request a request which can be sent to the service operation
+ * @return an {@link java.lang.Iterable} which can be used to iterate over the {@link
+ * com.oracle.bmc.marketplaceprivateoffer.model.AttachmentSummary} objects contained in
+ * responses received from the service.
+ */
+ public Iterable
+ listAttachmentsRecordIterator(final ListAttachmentsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListAttachmentsRequest.Builder,
+ ListAttachmentsRequest,
+ ListAttachmentsResponse,
+ com.oracle.bmc.marketplaceprivateoffer.model.AttachmentSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListAttachmentsRequest.Builder get() {
+ return ListAttachmentsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListAttachmentsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListAttachmentsRequest.Builder>,
+ ListAttachmentsRequest>() {
+ @Override
+ public ListAttachmentsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListAttachmentsRequest.Builder>
+ input) {
+ if (input.getNextPageToken() == null) {
+ return input.getRequestBuilder().build();
+ } else {
+ return input.getRequestBuilder()
+ .page(input.getNextPageToken().orElse(null))
+ .build();
+ }
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public ListAttachmentsResponse apply(ListAttachmentsRequest request) {
+ return client.listAttachments(request);
+ }
+ },
+ new java.util.function.Function<
+ ListAttachmentsResponse,
+ java.util.List<
+ com.oracle.bmc.marketplaceprivateoffer.model.AttachmentSummary>>() {
+ @Override
+ public java.util.List<
+ com.oracle.bmc.marketplaceprivateoffer.model.AttachmentSummary>
+ apply(ListAttachmentsResponse response) {
+ return response.getAttachmentCollection().getItems();
+ }
+ });
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentWaiters.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentWaiters.java
new file mode 100644
index 00000000000..b1b3cbaf827
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/AttachmentWaiters.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Collection of helper methods to produce {@link com.oracle.bmc.waiter.Waiter}s for different
+ * resources of Attachment.
+ *
+ * The default configuration used is defined by {@link
+ * com.oracle.bmc.waiter.Waiters.Waiters#DEFAULT_POLLING_WAITER}.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class AttachmentWaiters {
+ private final java.util.concurrent.ExecutorService executorService;
+ private final Attachment client;
+
+ public AttachmentWaiters(
+ java.util.concurrent.ExecutorService executorService, Attachment client) {
+ this.executorService = executorService;
+ this.client = client;
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
+ *
+ * @param request the request to send
+ * @param targetStates the desired states to wait for. If multiple states are provided then the
+ * waiter will return once the resource reaches any of the provided states
+ * @return a new {@code Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter forAttachment(
+ GetAttachmentRequest request,
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.LifecycleState...
+ targetStates) {
+ com.oracle.bmc.util.internal.Validate.notEmpty(
+ targetStates, "At least one targetState must be provided");
+ com.oracle.bmc.util.internal.Validate.noNullElements(
+ targetStates, "Null targetState values are not permitted");
+
+ return forAttachment(
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_WAITER, request, targetStates);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param targetState the desired state to wait for
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter forAttachment(
+ GetAttachmentRequest request,
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.LifecycleState targetState,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy) {
+ com.oracle.bmc.util.internal.Validate.notNull(
+ targetState, "The targetState cannot be null");
+
+ return forAttachment(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetState);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @param targetStates the desired states to wait for. The waiter will return once the resource
+ * reaches any of the provided states
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter forAttachment(
+ GetAttachmentRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment.LifecycleState...
+ targetStates) {
+ com.oracle.bmc.util.internal.Validate.notEmpty(
+ targetStates, "At least one target state must be provided");
+ com.oracle.bmc.util.internal.Validate.noNullElements(
+ targetStates, "Null target states are not permitted");
+
+ return forAttachment(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for Attachment.
+ private com.oracle.bmc.waiter.Waiter forAttachment(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetAttachmentRequest request,
+ final com.oracle.bmc.marketplaceprivateoffer.model.Attachment.LifecycleState...
+ targetStates) {
+ final java.util.Set
+ targetStatesSet = new java.util.HashSet<>(java.util.Arrays.asList(targetStates));
+
+ return new com.oracle.bmc.waiter.internal.SimpleWaiterImpl<>(
+ executorService,
+ waiter.toCallable(
+ () -> request,
+ new java.util.function.Function<
+ GetAttachmentRequest, GetAttachmentResponse>() {
+ @Override
+ public GetAttachmentResponse apply(GetAttachmentRequest request) {
+ return client.getAttachment(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetAttachmentResponse response) {
+ return targetStatesSet.contains(
+ response.getAttachment().getLifecycleState());
+ }
+ },
+ targetStatesSet.contains(
+ com.oracle.bmc.marketplaceprivateoffer.model.Attachment
+ .LifecycleState.Deleted)),
+ request);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/Offer.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/Offer.java
new file mode 100644
index 00000000000..ef30e160149
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/Offer.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Use the Marketplace Publisher API to manage the publishing of applications in Oracle Cloud
+ * Infrastructure Marketplace. This service client uses CircuitBreakerUtils.DEFAULT_CIRCUIT_BREAKER
+ * for all the operations by default if no circuit breaker configuration is defined by the user.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public interface Offer extends AutoCloseable {
+
+ /** Rebuilds the client from scratch. Useful to refresh certificates. */
+ void refreshClient();
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ *
+ * @param endpoint The endpoint of the service.
+ */
+ void setEndpoint(String endpoint);
+
+ /** Gets the set endpoint for REST call (ex, https://www.example.com) */
+ String getEndpoint();
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ * Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the
+ * endpoint. If the service is not available in this Region, however, an
+ * IllegalArgumentException will be raised.
+ *
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ *
Note, this will first try to map the region ID to a known Region and call {@link
+ * #setRegion(Region) setRegion}.
+ *
+ *
If no known Region could be determined, it will create an endpoint based on the default
+ * endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ *
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Determines whether realm specific endpoint should be used or not. Set
+ * realmSpecificEndpointTemplateEnabled to "true" if the user wants to enable use of realm
+ * specific endpoint template, otherwise set it to "false"
+ *
+ * @param realmSpecificEndpointTemplateEnabled flag to enable the use of realm specific endpoint
+ * template
+ */
+ void useRealmSpecificEndpointTemplate(boolean realmSpecificEndpointTemplateEnabled);
+
+ /**
+ * Creates a new Offer.
+ *
+ * @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 CreateOffer API.
+ */
+ CreateOfferResponse createOffer(CreateOfferRequest request);
+
+ /**
+ * Deletes an Offer resource by identifier
+ *
+ * @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 DeleteOffer API.
+ */
+ DeleteOfferResponse deleteOffer(DeleteOfferRequest request);
+
+ /**
+ * Gets an Offer by identifier
+ *
+ * @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 GetOffer API.
+ */
+ GetOfferResponse getOffer(GetOfferRequest request);
+
+ /**
+ * Gets an Offer internal details by identifier
+ *
+ * @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
+ * GetOfferInternalDetail API.
+ */
+ GetOfferInternalDetailResponse getOfferInternalDetail(GetOfferInternalDetailRequest request);
+
+ /**
+ * Returns a list of Offers. Requires either the BuyerCompartmentId or the SellerCompartmentId
+ * params. If neither or both are provided, then the API will return a 400.
+ *
+ * @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 ListOffers API.
+ */
+ ListOffersResponse listOffers(ListOffersRequest request);
+
+ /**
+ * Updates the Offer
+ *
+ * @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 UpdateOffer API.
+ */
+ UpdateOfferResponse updateOffer(UpdateOfferRequest request);
+
+ /**
+ * Gets the pre-configured waiters available for resources for this service.
+ *
+ * @return The service waiters.
+ */
+ OfferWaiters getWaiters();
+
+ /**
+ * Gets the pre-configured paginators available for list operations in this service which may
+ * return multiple pages of data. These paginators provide an {@link java.lang.Iterable}
+ * interface so that service responses, or resources/records, can be iterated through without
+ * having to manually deal with pagination and page tokens.
+ *
+ * @return The service paginators.
+ */
+ OfferPaginators getPaginators();
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferAsync.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferAsync.java
new file mode 100644
index 00000000000..277b0a9ba84
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferAsync.java
@@ -0,0 +1,151 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Use the Marketplace Publisher API to manage the publishing of applications in Oracle Cloud
+ * Infrastructure Marketplace.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public interface OfferAsync extends AutoCloseable {
+
+ /** Rebuilds the client from scratch. Useful to refresh certificates. */
+ void refreshClient();
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ *
+ * @param endpoint The endpoint of the serice.
+ */
+ void setEndpoint(String endpoint);
+
+ /** Gets the set endpoint for REST call (ex, https://www.example.com) */
+ String getEndpoint();
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ *
Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the
+ * endpoint. If the service is not available in this region, however, an
+ * IllegalArgumentException will be raised.
+ *
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ *
Note, this will first try to map the region ID to a known Region and call {@link
+ * #setRegion(Region) setRegion}.
+ *
+ *
If no known Region could be determined, it will create an endpoint based on the default
+ * endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ *
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Determines whether realm specific endpoint should be used or not. Set
+ * realmSpecificEndpointTemplateEnabled to "true" if the user wants to enable use of realm
+ * specific endpoint template, otherwise set it to "false"
+ *
+ * @param realmSpecificEndpointTemplateEnabled flag to enable the use of realm specific endpoint
+ * template
+ */
+ void useRealmSpecificEndpointTemplate(boolean realmSpecificEndpointTemplateEnabled);
+
+ /**
+ * Creates a new Offer.
+ *
+ * @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 createOffer(
+ CreateOfferRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Deletes an Offer resource by identifier
+ *
+ * @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 deleteOffer(
+ DeleteOfferRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Gets an Offer by identifier
+ *
+ * @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 getOffer(
+ GetOfferRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Gets an Offer internal details by identifier
+ *
+ * @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 getOfferInternalDetail(
+ GetOfferInternalDetailRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ GetOfferInternalDetailRequest, GetOfferInternalDetailResponse>
+ handler);
+
+ /**
+ * Returns a list of Offers. Requires either the BuyerCompartmentId or the SellerCompartmentId
+ * params. If neither or both are provided, then the API will return a 400.
+ *
+ * @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 listOffers(
+ ListOffersRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Updates the Offer
+ *
+ * @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 updateOffer(
+ UpdateOfferRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferAsyncClient.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferAsyncClient.java
new file mode 100644
index 00000000000..15b1c6e9ff4
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferAsyncClient.java
@@ -0,0 +1,429 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+import java.util.Objects;
+
+/**
+ * Async client implementation for Offer service.
+ * There are two ways to use async client: 1. Use AsyncHandler: using AsyncHandler, if the response
+ * to the call is an {@link java.io.InputStream}, like getObject Api in object storage service,
+ * developers need to process the stream in AsyncHandler, and not anywhere else, because the stream
+ * will be closed right after the AsyncHandler is invoked.
+ * 2. Use Java Future: using Java Future, developers need to close the stream after they are done
+ * with the Java Future.
+ * Accessing the result should be done in a mutually exclusive manner, either through the Future or
+ * the AsyncHandler, but not both. If the Future is used, the caller should pass in null as the
+ * AsyncHandler. If the AsyncHandler is used, it is still safe to use the Future to determine
+ * whether or not the request was completed via Future.isDone/isCancelled.
+ * Please refer to
+ * https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ResteasyClientWithObjectStorageExample.java
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class OfferAsyncClient extends com.oracle.bmc.http.internal.BaseAsyncClient
+ implements OfferAsync {
+ /** Service instance for Offer. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName("OFFER")
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate(
+ "https://private-offer.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(OfferAsyncClient.class);
+
+ OfferAsyncClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ super(builder, authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a builder for this client.
+ *
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be
+ * passed to the {@link #build(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "marketplaceprivateoffer";
+ com.oracle.bmc.internal.Alloy.throwDisabledServiceExceptionIfAppropriate(packageName);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Build the client.
+ *
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public OfferAsyncClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new OfferAsyncClient(this, authenticationDetailsProvider);
+ }
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ super.setRegion(region);
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ super.setRegion(regionId);
+ }
+
+ @Override
+ public java.util.concurrent.Future createOffer(
+ CreateOfferRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ Objects.requireNonNull(request.getCreateOfferDetails(), "createOfferDetails is required");
+
+ return clientCall(request, CreateOfferResponse::builder)
+ .logger(LOG, "createOffer")
+ .serviceDetails("Offer", "CreateOffer", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.class,
+ CreateOfferResponse.Builder::offer)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateOfferResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", CreateOfferResponse.Builder::etag)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteOffer(
+ DeleteOfferRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, DeleteOfferResponse::builder)
+ .logger(LOG, "deleteOffer")
+ .serviceDetails("Offer", "DeleteOffer", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-work-request-id", DeleteOfferResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteOfferResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getOffer(
+ GetOfferRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, GetOfferResponse::builder)
+ .logger(LOG, "getOffer")
+ .serviceDetails("Offer", "GetOffer", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.class,
+ GetOfferResponse.Builder::offer)
+ .handleResponseHeaderString("etag", GetOfferResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetOfferResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getOfferInternalDetail(
+ GetOfferInternalDetailRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetOfferInternalDetailRequest, GetOfferInternalDetailResponse>
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, GetOfferInternalDetailResponse::builder)
+ .logger(LOG, "getOfferInternalDetail")
+ .serviceDetails("Offer", "GetOfferInternalDetail", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetOfferInternalDetailRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("internalDetails")
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.OfferInternalDetail.class,
+ GetOfferInternalDetailResponse.Builder::offerInternalDetail)
+ .handleResponseHeaderString("etag", GetOfferInternalDetailResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetOfferInternalDetailResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listOffers(
+ ListOffersRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ return clientCall(request, ListOffersResponse::builder)
+ .logger(LOG, "listOffers")
+ .serviceDetails("Offer", "ListOffers", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListOffersRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendQueryParam("buyerCompartmentId", request.getBuyerCompartmentId())
+ .appendQueryParam("sellerCompartmentId", request.getSellerCompartmentId())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("id", request.getId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.OfferCollection.class,
+ ListOffersResponse.Builder::offerCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListOffersResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListOffersResponse.Builder::opcNextPage)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future updateOffer(
+ UpdateOfferRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+ Objects.requireNonNull(request.getUpdateOfferDetails(), "updateOfferDetails is required");
+
+ return clientCall(request, UpdateOfferResponse::builder)
+ .logger(LOG, "updateOffer")
+ .serviceDetails("Offer", "UpdateOffer", "")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.class,
+ UpdateOfferResponse.Builder::offer)
+ .handleResponseHeaderString("etag", UpdateOfferResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateOfferResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(builder(), authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(builder().configuration(configuration), authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ builder().configuration(configuration).clientConfigurator(clientConfigurator),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferClient.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferClient.java
new file mode 100644
index 00000000000..5468ce66d30
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferClient.java
@@ -0,0 +1,499 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+import com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration;
+import com.oracle.bmc.util.CircuitBreakerUtils;
+
+import java.util.Objects;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class OfferClient extends com.oracle.bmc.http.internal.BaseSyncClient implements Offer {
+ /** Service instance for Offer. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName("OFFER")
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate(
+ "https://private-offer.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(OfferClient.class);
+
+ private final OfferWaiters waiters;
+
+ private final OfferPaginators paginators;
+
+ OfferClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ java.util.concurrent.ExecutorService executorService) {
+ super(
+ builder,
+ authenticationDetailsProvider,
+ CircuitBreakerUtils.DEFAULT_CIRCUIT_BREAKER_CONFIGURATION);
+
+ if (executorService == null) {
+ // up to 50 (core) threads, time out after 60s idle, all daemon
+ java.util.concurrent.ThreadPoolExecutor threadPoolExecutor =
+ new java.util.concurrent.ThreadPoolExecutor(
+ 50,
+ 50,
+ 60L,
+ java.util.concurrent.TimeUnit.SECONDS,
+ new java.util.concurrent.LinkedBlockingQueue(),
+ com.oracle.bmc.internal.ClientThreadFactory.builder()
+ .isDaemon(true)
+ .nameFormat("Offer-waiters-%d")
+ .build());
+ threadPoolExecutor.allowCoreThreadTimeOut(true);
+
+ executorService = threadPoolExecutor;
+ }
+ this.waiters = new OfferWaiters(executorService, this);
+
+ this.paginators = new OfferPaginators(this);
+ }
+
+ /**
+ * Create a builder for this client.
+ *
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be
+ * passed to the {@link #build(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private java.util.concurrent.ExecutorService executorService;
+
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "marketplaceprivateoffer";
+ com.oracle.bmc.internal.Alloy.throwDisabledServiceExceptionIfAppropriate(packageName);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Set the ExecutorService for the client to be created.
+ *
+ * @param executorService executorService
+ * @return this builder
+ */
+ public Builder executorService(java.util.concurrent.ExecutorService executorService) {
+ this.executorService = executorService;
+ return this;
+ }
+
+ /**
+ * Build the client.
+ *
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public OfferClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new OfferClient(this, authenticationDetailsProvider, executorService);
+ }
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ super.setRegion(region);
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ super.setRegion(regionId);
+ }
+
+ @Override
+ public CreateOfferResponse createOffer(CreateOfferRequest request) {
+ Objects.requireNonNull(request.getCreateOfferDetails(), "createOfferDetails is required");
+
+ return clientCall(request, CreateOfferResponse::builder)
+ .logger(LOG, "createOffer")
+ .serviceDetails("Offer", "CreateOffer", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.class,
+ CreateOfferResponse.Builder::offer)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateOfferResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", CreateOfferResponse.Builder::etag)
+ .callSync();
+ }
+
+ @Override
+ public DeleteOfferResponse deleteOffer(DeleteOfferRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, DeleteOfferResponse::builder)
+ .logger(LOG, "deleteOffer")
+ .serviceDetails("Offer", "DeleteOffer", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleResponseHeaderString(
+ "opc-work-request-id", DeleteOfferResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteOfferResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetOfferResponse getOffer(GetOfferRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, GetOfferResponse::builder)
+ .logger(LOG, "getOffer")
+ .serviceDetails("Offer", "GetOffer", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.class,
+ GetOfferResponse.Builder::offer)
+ .handleResponseHeaderString("etag", GetOfferResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetOfferResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetOfferInternalDetailResponse getOfferInternalDetail(
+ GetOfferInternalDetailRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+
+ return clientCall(request, GetOfferInternalDetailResponse::builder)
+ .logger(LOG, "getOfferInternalDetail")
+ .serviceDetails("Offer", "GetOfferInternalDetail", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetOfferInternalDetailRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .appendPathParam("internalDetails")
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.OfferInternalDetail.class,
+ GetOfferInternalDetailResponse.Builder::offerInternalDetail)
+ .handleResponseHeaderString("etag", GetOfferInternalDetailResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetOfferInternalDetailResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public ListOffersResponse listOffers(ListOffersRequest request) {
+
+ return clientCall(request, ListOffersResponse::builder)
+ .logger(LOG, "listOffers")
+ .serviceDetails("Offer", "ListOffers", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListOffersRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendQueryParam("buyerCompartmentId", request.getBuyerCompartmentId())
+ .appendQueryParam("sellerCompartmentId", request.getSellerCompartmentId())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("id", request.getId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.OfferCollection.class,
+ ListOffersResponse.Builder::offerCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListOffersResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListOffersResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
+ @Override
+ public UpdateOfferResponse updateOffer(UpdateOfferRequest request) {
+
+ Validate.notBlank(request.getOfferId(), "offerId must not be blank");
+ Objects.requireNonNull(request.getUpdateOfferDetails(), "updateOfferDetails is required");
+
+ return clientCall(request, UpdateOfferResponse::builder)
+ .logger(LOG, "updateOffer")
+ .serviceDetails("Offer", "UpdateOffer", "")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateOfferRequest::builder)
+ .basePath("/20220901")
+ .appendPathParam("offers")
+ .appendPathParam(request.getOfferId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.class,
+ UpdateOfferResponse.Builder::offer)
+ .handleResponseHeaderString("etag", UpdateOfferResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateOfferResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public OfferWaiters getWaiters() {
+ return waiters;
+ }
+
+ @Override
+ public OfferPaginators getPaginators() {
+ return paginators;
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(builder(), authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(builder().configuration(configuration), authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ builder().configuration(configuration).clientConfigurator(clientConfigurator),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @param executorService {@link Builder#executorService}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public OfferClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint,
+ java.util.concurrent.ExecutorService executorService) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider,
+ executorService);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferPaginators.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferPaginators.java
new file mode 100644
index 00000000000..a02952821b6
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferPaginators.java
@@ -0,0 +1,158 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Collection of helper methods that can be used to provide an {@link java.lang.Iterable} interface
+ * to any list operations of Offer where multiple pages of data may be fetched. Two styles of
+ * iteration are supported:
+ *
+ *
+ * - Iterating over the Response objects returned by the list operation. These are referred to
+ * as ResponseIterators, and the methods are suffixed with ResponseIterator. For example:
+ * listUsersResponseIterator
+ *
- Iterating over the resources/records being listed. These are referred to as
+ * RecordIterators, and the methods are suffixed with RecordIterator. For example:
+ * listUsersRecordIterator
+ *
+ *
+ * These iterables abstract away the need to write code to manually handle pagination via looping
+ * and using the page tokens. They will automatically fetch more data from the service when
+ * required.
+ *
+ * As an example, if we were using the ListUsers operation in IdentityService, then the {@link
+ * java.lang.Iterable} returned by calling a ResponseIterator method would iterate over the
+ * ListUsersResponse objects returned by each ListUsers call, whereas the {@link java.lang.Iterable}
+ * returned by calling a RecordIterator method would iterate over the User records and we don't have
+ * to deal with ListUsersResponse objects at all. In either case, pagination will be automatically
+ * handled so we can iterate until there are no more responses or no more resources/records
+ * available.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class OfferPaginators {
+ private final Offer client;
+
+ public OfferPaginators(Offer client) {
+ this.client = client;
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the listOffers
+ * operation. This iterable will fetch more data from the server as needed.
+ *
+ * @param request a request which can be sent to the service operation
+ * @return an {@link java.lang.Iterable} which can be used to iterate over the responses
+ * received from the service.
+ */
+ public Iterable listOffersResponseIterator(
+ final ListOffersRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListOffersRequest.Builder, ListOffersRequest, ListOffersResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListOffersRequest.Builder get() {
+ return ListOffersRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListOffersResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListOffersRequest.Builder>,
+ ListOffersRequest>() {
+ @Override
+ public ListOffersRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListOffersRequest.Builder>
+ input) {
+ if (input.getNextPageToken() == null) {
+ return input.getRequestBuilder().build();
+ } else {
+ return input.getRequestBuilder()
+ .page(input.getNextPageToken().orElse(null))
+ .build();
+ }
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public ListOffersResponse apply(ListOffersRequest request) {
+ return client.listOffers(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.marketplaceprivateoffer.model.OfferSummary} objects contained in responses
+ * from the listOffers operation. This iterable will fetch more data from the server as needed.
+ *
+ * @param request a request which can be sent to the service operation
+ * @return an {@link java.lang.Iterable} which can be used to iterate over the {@link
+ * com.oracle.bmc.marketplaceprivateoffer.model.OfferSummary} objects contained in responses
+ * received from the service.
+ */
+ public Iterable
+ listOffersRecordIterator(final ListOffersRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListOffersRequest.Builder,
+ ListOffersRequest,
+ ListOffersResponse,
+ com.oracle.bmc.marketplaceprivateoffer.model.OfferSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListOffersRequest.Builder get() {
+ return ListOffersRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListOffersResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListOffersRequest.Builder>,
+ ListOffersRequest>() {
+ @Override
+ public ListOffersRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListOffersRequest.Builder>
+ input) {
+ if (input.getNextPageToken() == null) {
+ return input.getRequestBuilder().build();
+ } else {
+ return input.getRequestBuilder()
+ .page(input.getNextPageToken().orElse(null))
+ .build();
+ }
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public ListOffersResponse apply(ListOffersRequest request) {
+ return client.listOffers(request);
+ }
+ },
+ new java.util.function.Function<
+ ListOffersResponse,
+ java.util.List<
+ com.oracle.bmc.marketplaceprivateoffer.model.OfferSummary>>() {
+ @Override
+ public java.util.List
+ apply(ListOffersResponse response) {
+ return response.getOfferCollection().getItems();
+ }
+ });
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferWaiters.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferWaiters.java
new file mode 100644
index 00000000000..0af9e083512
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/OfferWaiters.java
@@ -0,0 +1,127 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer;
+
+import com.oracle.bmc.marketplaceprivateoffer.requests.*;
+import com.oracle.bmc.marketplaceprivateoffer.responses.*;
+
+/**
+ * Collection of helper methods to produce {@link com.oracle.bmc.waiter.Waiter}s for different
+ * resources of Offer.
+ *
+ * The default configuration used is defined by {@link
+ * com.oracle.bmc.waiter.Waiters.Waiters#DEFAULT_POLLING_WAITER}.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public class OfferWaiters {
+ private final java.util.concurrent.ExecutorService executorService;
+ private final Offer client;
+
+ public OfferWaiters(java.util.concurrent.ExecutorService executorService, Offer client) {
+ this.executorService = executorService;
+ this.client = client;
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
+ *
+ * @param request the request to send
+ * @param targetStates the desired states to wait for. If multiple states are provided then the
+ * waiter will return once the resource reaches any of the provided states
+ * @return a new {@code Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter forOffer(
+ GetOfferRequest request,
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.LifecycleState... targetStates) {
+ com.oracle.bmc.util.internal.Validate.notEmpty(
+ targetStates, "At least one targetState must be provided");
+ com.oracle.bmc.util.internal.Validate.noNullElements(
+ targetStates, "Null targetState values are not permitted");
+
+ return forOffer(
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_WAITER, request, targetStates);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param targetState the desired state to wait for
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter forOffer(
+ GetOfferRequest request,
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.LifecycleState targetState,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy) {
+ com.oracle.bmc.util.internal.Validate.notNull(
+ targetState, "The targetState cannot be null");
+
+ return forOffer(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetState);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @param targetStates the desired states to wait for. The waiter will return once the resource
+ * reaches any of the provided states
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter forOffer(
+ GetOfferRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.LifecycleState... targetStates) {
+ com.oracle.bmc.util.internal.Validate.notEmpty(
+ targetStates, "At least one target state must be provided");
+ com.oracle.bmc.util.internal.Validate.noNullElements(
+ targetStates, "Null target states are not permitted");
+
+ return forOffer(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for Offer.
+ private com.oracle.bmc.waiter.Waiter forOffer(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetOfferRequest request,
+ final com.oracle.bmc.marketplaceprivateoffer.model.Offer.LifecycleState...
+ targetStates) {
+ final java.util.Set
+ targetStatesSet = new java.util.HashSet<>(java.util.Arrays.asList(targetStates));
+
+ return new com.oracle.bmc.waiter.internal.SimpleWaiterImpl<>(
+ executorService,
+ waiter.toCallable(
+ () -> request,
+ new java.util.function.Function() {
+ @Override
+ public GetOfferResponse apply(GetOfferRequest request) {
+ return client.getOffer(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetOfferResponse response) {
+ return targetStatesSet.contains(
+ response.getOffer().getLifecycleState());
+ }
+ },
+ targetStatesSet.contains(
+ com.oracle.bmc.marketplaceprivateoffer.model.Offer.LifecycleState
+ .Deleted)),
+ request);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Attachment.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Attachment.java
new file mode 100644
index 00000000000..37e55cb0b09
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Attachment.java
@@ -0,0 +1,641 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Description of Attachment.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = Attachment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class Attachment extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "sellerCompartmentId",
+ "offerId",
+ "buyerCompartmentId",
+ "mimeType",
+ "displayName",
+ "type",
+ "timeCreated",
+ "lifecycleState",
+ "freeformTags",
+ "definedTags"
+ })
+ public Attachment(
+ String id,
+ String sellerCompartmentId,
+ String offerId,
+ String buyerCompartmentId,
+ String mimeType,
+ String displayName,
+ Type type,
+ java.util.Date timeCreated,
+ LifecycleState lifecycleState,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.id = id;
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.offerId = offerId;
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.mimeType = mimeType;
+ this.displayName = displayName;
+ this.type = type;
+ this.timeCreated = timeCreated;
+ this.lifecycleState = lifecycleState;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** OCID of the seller's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private String sellerCompartmentId;
+
+ /**
+ * OCID of the seller's tenancy (root compartment).
+ *
+ * @param sellerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder sellerCompartmentId(String sellerCompartmentId) {
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.__explicitlySet__.add("sellerCompartmentId");
+ return this;
+ }
+ /** Unique identifier of the associated offer that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private String offerId;
+
+ /**
+ * Unique identifier of the associated offer that is immutable on creation
+ *
+ * @param offerId the value to set
+ * @return this builder
+ */
+ public Builder offerId(String offerId) {
+ this.offerId = offerId;
+ this.__explicitlySet__.add("offerId");
+ return this;
+ }
+ /** OCID of the buyer's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private String buyerCompartmentId;
+
+ /**
+ * OCID of the buyer's tenancy (root compartment).
+ *
+ * @param buyerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder buyerCompartmentId(String buyerCompartmentId) {
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.__explicitlySet__.add("buyerCompartmentId");
+ return this;
+ }
+ /** The MIME type of the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("mimeType")
+ private String mimeType;
+
+ /**
+ * The MIME type of the uploaded data.
+ *
+ * @param mimeType the value to set
+ * @return this builder
+ */
+ public Builder mimeType(String mimeType) {
+ this.mimeType = mimeType;
+ this.__explicitlySet__.add("mimeType");
+ return this;
+ }
+ /** The name used to refer to the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The name used to refer to the uploaded data.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** The type of offer attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private Type type;
+
+ /**
+ * The type of offer attachment.
+ *
+ * @param type the value to set
+ * @return this builder
+ */
+ public Builder type(Type type) {
+ this.type = type;
+ this.__explicitlySet__.add("type");
+ return this;
+ }
+ /** The time the the Offer was created. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The time the the Offer was created. An RFC3339 formatted datetime string
+ *
+ * @param timeCreated the value to set
+ * @return this builder
+ */
+ public Builder timeCreated(java.util.Date timeCreated) {
+ this.timeCreated = timeCreated;
+ this.__explicitlySet__.add("timeCreated");
+ return this;
+ }
+ /** The current state of the Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Offer.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map freeformTags) {
+ this.freeformTags = freeformTags;
+ this.__explicitlySet__.add("freeformTags");
+ return this;
+ }
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map> definedTags) {
+ this.definedTags = definedTags;
+ this.__explicitlySet__.add("definedTags");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public Attachment build() {
+ Attachment model =
+ new Attachment(
+ this.id,
+ this.sellerCompartmentId,
+ this.offerId,
+ this.buyerCompartmentId,
+ this.mimeType,
+ this.displayName,
+ this.type,
+ this.timeCreated,
+ this.lifecycleState,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(Attachment model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("sellerCompartmentId")) {
+ this.sellerCompartmentId(model.getSellerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("offerId")) {
+ this.offerId(model.getOfferId());
+ }
+ if (model.wasPropertyExplicitlySet("buyerCompartmentId")) {
+ this.buyerCompartmentId(model.getBuyerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("mimeType")) {
+ this.mimeType(model.getMimeType());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("type")) {
+ this.type(model.getType());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** OCID of the seller's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private final String sellerCompartmentId;
+
+ /**
+ * OCID of the seller's tenancy (root compartment).
+ *
+ * @return the value
+ */
+ public String getSellerCompartmentId() {
+ return sellerCompartmentId;
+ }
+
+ /** Unique identifier of the associated offer that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private final String offerId;
+
+ /**
+ * Unique identifier of the associated offer that is immutable on creation
+ *
+ * @return the value
+ */
+ public String getOfferId() {
+ return offerId;
+ }
+
+ /** OCID of the buyer's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private final String buyerCompartmentId;
+
+ /**
+ * OCID of the buyer's tenancy (root compartment).
+ *
+ * @return the value
+ */
+ public String getBuyerCompartmentId() {
+ return buyerCompartmentId;
+ }
+
+ /** The MIME type of the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("mimeType")
+ private final String mimeType;
+
+ /**
+ * The MIME type of the uploaded data.
+ *
+ * @return the value
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /** The name used to refer to the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The name used to refer to the uploaded data.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** The type of offer attachment. */
+ public enum Type implements com.oracle.bmc.http.internal.BmcEnum {
+ ContractTAndC("CONTRACT_T_AND_C"),
+ Quote("QUOTE"),
+ Eula("EULA"),
+ TermsOfUse("TERMS_OF_USE"),
+ Misc("MISC"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(Type.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (Type v : Type.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ Type(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static Type create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'Type', returning UnknownEnumValue", key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The type of offer attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private final Type type;
+
+ /**
+ * The type of offer attachment.
+ *
+ * @return the value
+ */
+ public Type getType() {
+ return type;
+ }
+
+ /** The time the the Offer was created. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The time the the Offer was created. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /** The current state of the Offer. */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Creating("CREATING"),
+ Updating("UPDATING"),
+ Active("ACTIVE"),
+ Deleting("DELETING"),
+ Deleted("DELETED"),
+ Failed("FAILED"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(LifecycleState.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (LifecycleState v : LifecycleState.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ LifecycleState(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static LifecycleState create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'LifecycleState', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The current state of the Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Offer.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @return the value
+ */
+ public java.util.Map getFreeformTags() {
+ return freeformTags;
+ }
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("Attachment(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", sellerCompartmentId=").append(String.valueOf(this.sellerCompartmentId));
+ sb.append(", offerId=").append(String.valueOf(this.offerId));
+ sb.append(", buyerCompartmentId=").append(String.valueOf(this.buyerCompartmentId));
+ sb.append(", mimeType=").append(String.valueOf(this.mimeType));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", type=").append(String.valueOf(this.type));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Attachment)) {
+ return false;
+ }
+
+ Attachment other = (Attachment) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.sellerCompartmentId, other.sellerCompartmentId)
+ && java.util.Objects.equals(this.offerId, other.offerId)
+ && java.util.Objects.equals(this.buyerCompartmentId, other.buyerCompartmentId)
+ && java.util.Objects.equals(this.mimeType, other.mimeType)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.type, other.type)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && 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.sellerCompartmentId == null
+ ? 43
+ : this.sellerCompartmentId.hashCode());
+ result = (result * PRIME) + (this.offerId == null ? 43 : this.offerId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerCompartmentId == null
+ ? 43
+ : this.buyerCompartmentId.hashCode());
+ result = (result * PRIME) + (this.mimeType == null ? 43 : this.mimeType.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.type == null ? 43 : this.type.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/AttachmentCollection.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/AttachmentCollection.java
new file mode 100644
index 00000000000..768c037dfd1
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/AttachmentCollection.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Results of a offers search. Contains boh AttachmentSummary items.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = AttachmentCollection.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class AttachmentCollection
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"items"})
+ public AttachmentCollection(java.util.List items) {
+ super();
+ this.items = items;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** List of attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private java.util.List items;
+
+ /**
+ * List of attachment.
+ *
+ * @param items the value to set
+ * @return this builder
+ */
+ public Builder items(java.util.List items) {
+ this.items = items;
+ this.__explicitlySet__.add("items");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public AttachmentCollection build() {
+ AttachmentCollection model = new AttachmentCollection(this.items);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(AttachmentCollection model) {
+ if (model.wasPropertyExplicitlySet("items")) {
+ this.items(model.getItems());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** List of attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private final java.util.List items;
+
+ /**
+ * List of attachment.
+ *
+ * @return the value
+ */
+ public java.util.List getItems() {
+ return items;
+ }
+
+ @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("AttachmentCollection(");
+ sb.append("super=").append(super.toString());
+ sb.append("items=").append(String.valueOf(this.items));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof AttachmentCollection)) {
+ return false;
+ }
+
+ AttachmentCollection other = (AttachmentCollection) o;
+ return java.util.Objects.equals(this.items, other.items) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.items == null ? 43 : this.items.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/AttachmentSummary.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/AttachmentSummary.java
new file mode 100644
index 00000000000..3bf1820fb64
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/AttachmentSummary.java
@@ -0,0 +1,424 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Description of Attachment.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = AttachmentSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class AttachmentSummary
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "offerId",
+ "mimeType",
+ "displayName",
+ "type",
+ "lifecycleState",
+ "freeformTags",
+ "definedTags"
+ })
+ public AttachmentSummary(
+ String id,
+ String offerId,
+ String mimeType,
+ String displayName,
+ Attachment.Type type,
+ Attachment.LifecycleState lifecycleState,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.id = id;
+ this.offerId = offerId;
+ this.mimeType = mimeType;
+ this.displayName = displayName;
+ this.type = type;
+ this.lifecycleState = lifecycleState;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** Unique identifier of the associated offer that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private String offerId;
+
+ /**
+ * Unique identifier of the associated offer that is immutable on creation
+ *
+ * @param offerId the value to set
+ * @return this builder
+ */
+ public Builder offerId(String offerId) {
+ this.offerId = offerId;
+ this.__explicitlySet__.add("offerId");
+ return this;
+ }
+ /** The MIME type of the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("mimeType")
+ private String mimeType;
+
+ /**
+ * The MIME type of the uploaded data.
+ *
+ * @param mimeType the value to set
+ * @return this builder
+ */
+ public Builder mimeType(String mimeType) {
+ this.mimeType = mimeType;
+ this.__explicitlySet__.add("mimeType");
+ return this;
+ }
+ /** The name used to refer to the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The name used to refer to the uploaded data.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** The type of offer attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private Attachment.Type type;
+
+ /**
+ * The type of offer attachment.
+ *
+ * @param type the value to set
+ * @return this builder
+ */
+ public Builder type(Attachment.Type type) {
+ this.type = type;
+ this.__explicitlySet__.add("type");
+ return this;
+ }
+ /** The current state of the Attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private Attachment.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Attachment.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(Attachment.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map freeformTags) {
+ this.freeformTags = freeformTags;
+ this.__explicitlySet__.add("freeformTags");
+ return this;
+ }
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map> definedTags) {
+ this.definedTags = definedTags;
+ this.__explicitlySet__.add("definedTags");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public AttachmentSummary build() {
+ AttachmentSummary model =
+ new AttachmentSummary(
+ this.id,
+ this.offerId,
+ this.mimeType,
+ this.displayName,
+ this.type,
+ this.lifecycleState,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(AttachmentSummary model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("offerId")) {
+ this.offerId(model.getOfferId());
+ }
+ if (model.wasPropertyExplicitlySet("mimeType")) {
+ this.mimeType(model.getMimeType());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("type")) {
+ this.type(model.getType());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** Unique identifier of the associated offer that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private final String offerId;
+
+ /**
+ * Unique identifier of the associated offer that is immutable on creation
+ *
+ * @return the value
+ */
+ public String getOfferId() {
+ return offerId;
+ }
+
+ /** The MIME type of the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("mimeType")
+ private final String mimeType;
+
+ /**
+ * The MIME type of the uploaded data.
+ *
+ * @return the value
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /** The name used to refer to the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The name used to refer to the uploaded data.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** The type of offer attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private final Attachment.Type type;
+
+ /**
+ * The type of offer attachment.
+ *
+ * @return the value
+ */
+ public Attachment.Type getType() {
+ return type;
+ }
+
+ /** The current state of the Attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final Attachment.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Attachment.
+ *
+ * @return the value
+ */
+ public Attachment.LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @return the value
+ */
+ public java.util.Map getFreeformTags() {
+ return freeformTags;
+ }
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("AttachmentSummary(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", offerId=").append(String.valueOf(this.offerId));
+ sb.append(", mimeType=").append(String.valueOf(this.mimeType));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", type=").append(String.valueOf(this.type));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof AttachmentSummary)) {
+ return false;
+ }
+
+ AttachmentSummary other = (AttachmentSummary) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.offerId, other.offerId)
+ && java.util.Objects.equals(this.mimeType, other.mimeType)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.type, other.type)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && 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.offerId == null ? 43 : this.offerId.hashCode());
+ result = (result * PRIME) + (this.mimeType == null ? 43 : this.mimeType.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.type == null ? 43 : this.type.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/BuyerInformation.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/BuyerInformation.java
new file mode 100644
index 00000000000..2b5d74b3a28
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/BuyerInformation.java
@@ -0,0 +1,246 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * The information related to the buyer of an Offer
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = BuyerInformation.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class BuyerInformation
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "companyName",
+ "noteToBuyer",
+ "primaryContact",
+ "additionalContacts"
+ })
+ public BuyerInformation(
+ String companyName,
+ String noteToBuyer,
+ Contact primaryContact,
+ java.util.List additionalContacts) {
+ super();
+ this.companyName = companyName;
+ this.noteToBuyer = noteToBuyer;
+ this.primaryContact = primaryContact;
+ this.additionalContacts = additionalContacts;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** the name of the company for the buyer */
+ @com.fasterxml.jackson.annotation.JsonProperty("companyName")
+ private String companyName;
+
+ /**
+ * the name of the company for the buyer
+ *
+ * @param companyName the value to set
+ * @return this builder
+ */
+ public Builder companyName(String companyName) {
+ this.companyName = companyName;
+ this.__explicitlySet__.add("companyName");
+ return this;
+ }
+ /** a note the seller can specify for the buyer through a notification email */
+ @com.fasterxml.jackson.annotation.JsonProperty("noteToBuyer")
+ private String noteToBuyer;
+
+ /**
+ * a note the seller can specify for the buyer through a notification email
+ *
+ * @param noteToBuyer the value to set
+ * @return this builder
+ */
+ public Builder noteToBuyer(String noteToBuyer) {
+ this.noteToBuyer = noteToBuyer;
+ this.__explicitlySet__.add("noteToBuyer");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("primaryContact")
+ private Contact primaryContact;
+
+ public Builder primaryContact(Contact primaryContact) {
+ this.primaryContact = primaryContact;
+ this.__explicitlySet__.add("primaryContact");
+ return this;
+ }
+ /** the additional contacts associated with the buyer */
+ @com.fasterxml.jackson.annotation.JsonProperty("additionalContacts")
+ private java.util.List additionalContacts;
+
+ /**
+ * the additional contacts associated with the buyer
+ *
+ * @param additionalContacts the value to set
+ * @return this builder
+ */
+ public Builder additionalContacts(java.util.List additionalContacts) {
+ this.additionalContacts = additionalContacts;
+ this.__explicitlySet__.add("additionalContacts");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public BuyerInformation build() {
+ BuyerInformation model =
+ new BuyerInformation(
+ this.companyName,
+ this.noteToBuyer,
+ this.primaryContact,
+ this.additionalContacts);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(BuyerInformation model) {
+ if (model.wasPropertyExplicitlySet("companyName")) {
+ this.companyName(model.getCompanyName());
+ }
+ if (model.wasPropertyExplicitlySet("noteToBuyer")) {
+ this.noteToBuyer(model.getNoteToBuyer());
+ }
+ if (model.wasPropertyExplicitlySet("primaryContact")) {
+ this.primaryContact(model.getPrimaryContact());
+ }
+ if (model.wasPropertyExplicitlySet("additionalContacts")) {
+ this.additionalContacts(model.getAdditionalContacts());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** the name of the company for the buyer */
+ @com.fasterxml.jackson.annotation.JsonProperty("companyName")
+ private final String companyName;
+
+ /**
+ * the name of the company for the buyer
+ *
+ * @return the value
+ */
+ public String getCompanyName() {
+ return companyName;
+ }
+
+ /** a note the seller can specify for the buyer through a notification email */
+ @com.fasterxml.jackson.annotation.JsonProperty("noteToBuyer")
+ private final String noteToBuyer;
+
+ /**
+ * a note the seller can specify for the buyer through a notification email
+ *
+ * @return the value
+ */
+ public String getNoteToBuyer() {
+ return noteToBuyer;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("primaryContact")
+ private final Contact primaryContact;
+
+ public Contact getPrimaryContact() {
+ return primaryContact;
+ }
+
+ /** the additional contacts associated with the buyer */
+ @com.fasterxml.jackson.annotation.JsonProperty("additionalContacts")
+ private final java.util.List additionalContacts;
+
+ /**
+ * the additional contacts associated with the buyer
+ *
+ * @return the value
+ */
+ public java.util.List getAdditionalContacts() {
+ return additionalContacts;
+ }
+
+ @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("BuyerInformation(");
+ sb.append("super=").append(super.toString());
+ sb.append("companyName=").append(String.valueOf(this.companyName));
+ sb.append(", noteToBuyer=").append(String.valueOf(this.noteToBuyer));
+ sb.append(", primaryContact=").append(String.valueOf(this.primaryContact));
+ sb.append(", additionalContacts=").append(String.valueOf(this.additionalContacts));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof BuyerInformation)) {
+ return false;
+ }
+
+ BuyerInformation other = (BuyerInformation) o;
+ return java.util.Objects.equals(this.companyName, other.companyName)
+ && java.util.Objects.equals(this.noteToBuyer, other.noteToBuyer)
+ && java.util.Objects.equals(this.primaryContact, other.primaryContact)
+ && java.util.Objects.equals(this.additionalContacts, other.additionalContacts)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.companyName == null ? 43 : this.companyName.hashCode());
+ result = (result * PRIME) + (this.noteToBuyer == null ? 43 : this.noteToBuyer.hashCode());
+ result =
+ (result * PRIME)
+ + (this.primaryContact == null ? 43 : this.primaryContact.hashCode());
+ result =
+ (result * PRIME)
+ + (this.additionalContacts == null
+ ? 43
+ : this.additionalContacts.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Contact.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Contact.java
new file mode 100644
index 00000000000..15bc37c0200
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Contact.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * The contact information of an individual
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = Contact.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class Contact extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"firstName", "lastName", "email"})
+ public Contact(String firstName, String lastName, String email) {
+ super();
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.email = email;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The first name of the contact */
+ @com.fasterxml.jackson.annotation.JsonProperty("firstName")
+ private String firstName;
+
+ /**
+ * The first name of the contact
+ *
+ * @param firstName the value to set
+ * @return this builder
+ */
+ public Builder firstName(String firstName) {
+ this.firstName = firstName;
+ this.__explicitlySet__.add("firstName");
+ return this;
+ }
+ /** The last name of the contact */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastName")
+ private String lastName;
+
+ /**
+ * The last name of the contact
+ *
+ * @param lastName the value to set
+ * @return this builder
+ */
+ public Builder lastName(String lastName) {
+ this.lastName = lastName;
+ this.__explicitlySet__.add("lastName");
+ return this;
+ }
+ /** The email of the contact */
+ @com.fasterxml.jackson.annotation.JsonProperty("email")
+ private String email;
+
+ /**
+ * The email of the contact
+ *
+ * @param email the value to set
+ * @return this builder
+ */
+ public Builder email(String email) {
+ this.email = email;
+ this.__explicitlySet__.add("email");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public Contact build() {
+ Contact model = new Contact(this.firstName, this.lastName, this.email);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(Contact model) {
+ if (model.wasPropertyExplicitlySet("firstName")) {
+ this.firstName(model.getFirstName());
+ }
+ if (model.wasPropertyExplicitlySet("lastName")) {
+ this.lastName(model.getLastName());
+ }
+ if (model.wasPropertyExplicitlySet("email")) {
+ this.email(model.getEmail());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The first name of the contact */
+ @com.fasterxml.jackson.annotation.JsonProperty("firstName")
+ private final String firstName;
+
+ /**
+ * The first name of the contact
+ *
+ * @return the value
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /** The last name of the contact */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastName")
+ private final String lastName;
+
+ /**
+ * The last name of the contact
+ *
+ * @return the value
+ */
+ public String getLastName() {
+ return lastName;
+ }
+
+ /** The email of the contact */
+ @com.fasterxml.jackson.annotation.JsonProperty("email")
+ private final String email;
+
+ /**
+ * The email of the contact
+ *
+ * @return the value
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ @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("Contact(");
+ sb.append("super=").append(super.toString());
+ sb.append("firstName=").append(String.valueOf(this.firstName));
+ sb.append(", lastName=").append(String.valueOf(this.lastName));
+ sb.append(", email=").append(String.valueOf(this.email));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Contact)) {
+ return false;
+ }
+
+ Contact other = (Contact) o;
+ return java.util.Objects.equals(this.firstName, other.firstName)
+ && java.util.Objects.equals(this.lastName, other.lastName)
+ && java.util.Objects.equals(this.email, other.email)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.firstName == null ? 43 : this.firstName.hashCode());
+ result = (result * PRIME) + (this.lastName == null ? 43 : this.lastName.hashCode());
+ result = (result * PRIME) + (this.email == null ? 43 : this.email.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CreateAttachmentDetails.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CreateAttachmentDetails.java
new file mode 100644
index 00000000000..e5bf367d506
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CreateAttachmentDetails.java
@@ -0,0 +1,216 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * An attachment uploaded by the Publisher to be attached to an Offer.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateAttachmentDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateAttachmentDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"fileBase64Encoded", "displayName", "type"})
+ public CreateAttachmentDetails(
+ byte[] fileBase64Encoded, String displayName, Attachment.Type type) {
+ super();
+ this.fileBase64Encoded = fileBase64Encoded;
+ this.displayName = displayName;
+ this.type = type;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * Base64-encoded file to attach to the Offer. File must be a PDF with maximum size of 1 MB
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("fileBase64Encoded")
+ private byte[] fileBase64Encoded;
+
+ /**
+ * Base64-encoded file to attach to the Offer. File must be a PDF with maximum size of 1 MB
+ *
+ * @param fileBase64Encoded the value to set
+ * @return this builder
+ */
+ public Builder fileBase64Encoded(byte[] fileBase64Encoded) {
+ this.fileBase64Encoded = fileBase64Encoded;
+ this.__explicitlySet__.add("fileBase64Encoded");
+ return this;
+ }
+ /** The name used to refer to the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The name used to refer to the uploaded data.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** The type of offer attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private Attachment.Type type;
+
+ /**
+ * The type of offer attachment.
+ *
+ * @param type the value to set
+ * @return this builder
+ */
+ public Builder type(Attachment.Type type) {
+ this.type = type;
+ this.__explicitlySet__.add("type");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateAttachmentDetails build() {
+ CreateAttachmentDetails model =
+ new CreateAttachmentDetails(
+ this.fileBase64Encoded, this.displayName, this.type);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateAttachmentDetails model) {
+ if (model.wasPropertyExplicitlySet("fileBase64Encoded")) {
+ this.fileBase64Encoded(model.getFileBase64Encoded());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("type")) {
+ this.type(model.getType());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Base64-encoded file to attach to the Offer. File must be a PDF with maximum size of 1 MB */
+ @com.fasterxml.jackson.annotation.JsonProperty("fileBase64Encoded")
+ private final byte[] fileBase64Encoded;
+
+ /**
+ * Base64-encoded file to attach to the Offer. File must be a PDF with maximum size of 1 MB
+ *
+ * @return the value
+ */
+ public byte[] getFileBase64Encoded() {
+ return fileBase64Encoded;
+ }
+
+ /** The name used to refer to the uploaded data. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The name used to refer to the uploaded data.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** The type of offer attachment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private final Attachment.Type type;
+
+ /**
+ * The type of offer attachment.
+ *
+ * @return the value
+ */
+ public Attachment.Type getType() {
+ return type;
+ }
+
+ @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("CreateAttachmentDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("fileBase64Encoded=")
+ .append(
+ (includeByteArrayContents
+ ? java.util.Arrays.toString(this.fileBase64Encoded)
+ : (String.valueOf(this.fileBase64Encoded)
+ + (this.fileBase64Encoded != null
+ ? " (byte[" + this.fileBase64Encoded.length + "])"
+ : ""))));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", type=").append(String.valueOf(this.type));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateAttachmentDetails)) {
+ return false;
+ }
+
+ CreateAttachmentDetails other = (CreateAttachmentDetails) o;
+ return java.util.Arrays.equals(this.fileBase64Encoded, other.fileBase64Encoded)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.type, other.type)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + java.util.Arrays.hashCode(this.fileBase64Encoded);
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.type == null ? 43 : this.type.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CreateOfferDetails.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CreateOfferDetails.java
new file mode 100644
index 00000000000..79733d86bd3
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CreateOfferDetails.java
@@ -0,0 +1,692 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * The information about new Offers.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateOfferDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateOfferDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "displayName",
+ "sellerCompartmentId",
+ "buyerCompartmentId",
+ "description",
+ "internalNotes",
+ "timeStartDate",
+ "duration",
+ "timeAcceptBy",
+ "pricing",
+ "buyerInformation",
+ "sellerInformation",
+ "resourceBundles",
+ "customFields",
+ "freeformTags",
+ "definedTags"
+ })
+ public CreateOfferDetails(
+ String displayName,
+ String sellerCompartmentId,
+ String buyerCompartmentId,
+ String description,
+ String internalNotes,
+ java.util.Date timeStartDate,
+ String duration,
+ java.util.Date timeAcceptBy,
+ Pricing pricing,
+ BuyerInformation buyerInformation,
+ SellerInformation sellerInformation,
+ java.util.List resourceBundles,
+ java.util.List customFields,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.displayName = displayName;
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.description = description;
+ this.internalNotes = internalNotes;
+ this.timeStartDate = timeStartDate;
+ this.duration = duration;
+ this.timeAcceptBy = timeAcceptBy;
+ this.pricing = pricing;
+ this.buyerInformation = buyerInformation;
+ this.sellerInformation = sellerInformation;
+ this.resourceBundles = resourceBundles;
+ this.customFields = customFields;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Offers Identifier */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * Offers Identifier
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** Compartment Identifier of the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private String sellerCompartmentId;
+
+ /**
+ * Compartment Identifier of the seller
+ *
+ * @param sellerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder sellerCompartmentId(String sellerCompartmentId) {
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.__explicitlySet__.add("sellerCompartmentId");
+ return this;
+ }
+ /** Compartment Identifier of the buyer */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private String buyerCompartmentId;
+
+ /**
+ * Compartment Identifier of the buyer
+ *
+ * @param buyerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder buyerCompartmentId(String buyerCompartmentId) {
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.__explicitlySet__.add("buyerCompartmentId");
+ return this;
+ }
+ /** Description of the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("description")
+ private String description;
+
+ /**
+ * Description of the Offer
+ *
+ * @param description the value to set
+ * @return this builder
+ */
+ public Builder description(String description) {
+ this.description = description;
+ this.__explicitlySet__.add("description");
+ return this;
+ }
+ /** Internal notes of the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("internalNotes")
+ private String internalNotes;
+
+ /**
+ * Internal notes of the Offer
+ *
+ * @param internalNotes the value to set
+ * @return this builder
+ */
+ public Builder internalNotes(String internalNotes) {
+ this.internalNotes = internalNotes;
+ this.__explicitlySet__.add("internalNotes");
+ return this;
+ }
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStartDate")
+ private java.util.Date timeStartDate;
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ *
+ * @param timeStartDate the value to set
+ * @return this builder
+ */
+ public Builder timeStartDate(java.util.Date timeStartDate) {
+ this.timeStartDate = timeStartDate;
+ this.__explicitlySet__.add("timeStartDate");
+ return this;
+ }
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted
+ * string.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("duration")
+ private String duration;
+
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted
+ * string.
+ *
+ * @param duration the value to set
+ * @return this builder
+ */
+ public Builder duration(String duration) {
+ this.duration = duration;
+ this.__explicitlySet__.add("duration");
+ return this;
+ }
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An
+ * RFC3339 formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAcceptBy")
+ private java.util.Date timeAcceptBy;
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An
+ * RFC3339 formatted datetime string
+ *
+ * @param timeAcceptBy the value to set
+ * @return this builder
+ */
+ public Builder timeAcceptBy(java.util.Date timeAcceptBy) {
+ this.timeAcceptBy = timeAcceptBy;
+ this.__explicitlySet__.add("timeAcceptBy");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("pricing")
+ private Pricing pricing;
+
+ public Builder pricing(Pricing pricing) {
+ this.pricing = pricing;
+ this.__explicitlySet__.add("pricing");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerInformation")
+ private BuyerInformation buyerInformation;
+
+ public Builder buyerInformation(BuyerInformation buyerInformation) {
+ this.buyerInformation = buyerInformation;
+ this.__explicitlySet__.add("buyerInformation");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerInformation")
+ private SellerInformation sellerInformation;
+
+ public Builder sellerInformation(SellerInformation sellerInformation) {
+ this.sellerInformation = sellerInformation;
+ this.__explicitlySet__.add("sellerInformation");
+ return this;
+ }
+ /** A list of Resource Bundles associated with an Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("resourceBundles")
+ private java.util.List resourceBundles;
+
+ /**
+ * A list of Resource Bundles associated with an Offer.
+ *
+ * @param resourceBundles the value to set
+ * @return this builder
+ */
+ public Builder resourceBundles(java.util.List resourceBundles) {
+ this.resourceBundles = resourceBundles;
+ this.__explicitlySet__.add("resourceBundles");
+ return this;
+ }
+ /** A list of key value pairs specified by the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("customFields")
+ private java.util.List customFields;
+
+ /**
+ * A list of key value pairs specified by the seller
+ *
+ * @param customFields the value to set
+ * @return this builder
+ */
+ public Builder customFields(java.util.List customFields) {
+ this.customFields = customFields;
+ this.__explicitlySet__.add("customFields");
+ return this;
+ }
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map freeformTags) {
+ this.freeformTags = freeformTags;
+ this.__explicitlySet__.add("freeformTags");
+ return this;
+ }
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map> definedTags) {
+ this.definedTags = definedTags;
+ this.__explicitlySet__.add("definedTags");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateOfferDetails build() {
+ CreateOfferDetails model =
+ new CreateOfferDetails(
+ this.displayName,
+ this.sellerCompartmentId,
+ this.buyerCompartmentId,
+ this.description,
+ this.internalNotes,
+ this.timeStartDate,
+ this.duration,
+ this.timeAcceptBy,
+ this.pricing,
+ this.buyerInformation,
+ this.sellerInformation,
+ this.resourceBundles,
+ this.customFields,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateOfferDetails model) {
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("sellerCompartmentId")) {
+ this.sellerCompartmentId(model.getSellerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("buyerCompartmentId")) {
+ this.buyerCompartmentId(model.getBuyerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("description")) {
+ this.description(model.getDescription());
+ }
+ if (model.wasPropertyExplicitlySet("internalNotes")) {
+ this.internalNotes(model.getInternalNotes());
+ }
+ if (model.wasPropertyExplicitlySet("timeStartDate")) {
+ this.timeStartDate(model.getTimeStartDate());
+ }
+ if (model.wasPropertyExplicitlySet("duration")) {
+ this.duration(model.getDuration());
+ }
+ if (model.wasPropertyExplicitlySet("timeAcceptBy")) {
+ this.timeAcceptBy(model.getTimeAcceptBy());
+ }
+ if (model.wasPropertyExplicitlySet("pricing")) {
+ this.pricing(model.getPricing());
+ }
+ if (model.wasPropertyExplicitlySet("buyerInformation")) {
+ this.buyerInformation(model.getBuyerInformation());
+ }
+ if (model.wasPropertyExplicitlySet("sellerInformation")) {
+ this.sellerInformation(model.getSellerInformation());
+ }
+ if (model.wasPropertyExplicitlySet("resourceBundles")) {
+ this.resourceBundles(model.getResourceBundles());
+ }
+ if (model.wasPropertyExplicitlySet("customFields")) {
+ this.customFields(model.getCustomFields());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Offers Identifier */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * Offers Identifier
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** Compartment Identifier of the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private final String sellerCompartmentId;
+
+ /**
+ * Compartment Identifier of the seller
+ *
+ * @return the value
+ */
+ public String getSellerCompartmentId() {
+ return sellerCompartmentId;
+ }
+
+ /** Compartment Identifier of the buyer */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private final String buyerCompartmentId;
+
+ /**
+ * Compartment Identifier of the buyer
+ *
+ * @return the value
+ */
+ public String getBuyerCompartmentId() {
+ return buyerCompartmentId;
+ }
+
+ /** Description of the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("description")
+ private final String description;
+
+ /**
+ * Description of the Offer
+ *
+ * @return the value
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /** Internal notes of the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("internalNotes")
+ private final String internalNotes;
+
+ /**
+ * Internal notes of the Offer
+ *
+ * @return the value
+ */
+ public String getInternalNotes() {
+ return internalNotes;
+ }
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStartDate")
+ private final java.util.Date timeStartDate;
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeStartDate() {
+ return timeStartDate;
+ }
+
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted string.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("duration")
+ private final String duration;
+
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted string.
+ *
+ * @return the value
+ */
+ public String getDuration() {
+ return duration;
+ }
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAcceptBy")
+ private final java.util.Date timeAcceptBy;
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An RFC3339
+ * formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeAcceptBy() {
+ return timeAcceptBy;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("pricing")
+ private final Pricing pricing;
+
+ public Pricing getPricing() {
+ return pricing;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerInformation")
+ private final BuyerInformation buyerInformation;
+
+ public BuyerInformation getBuyerInformation() {
+ return buyerInformation;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerInformation")
+ private final SellerInformation sellerInformation;
+
+ public SellerInformation getSellerInformation() {
+ return sellerInformation;
+ }
+
+ /** A list of Resource Bundles associated with an Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("resourceBundles")
+ private final java.util.List resourceBundles;
+
+ /**
+ * A list of Resource Bundles associated with an Offer.
+ *
+ * @return the value
+ */
+ public java.util.List getResourceBundles() {
+ return resourceBundles;
+ }
+
+ /** A list of key value pairs specified by the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("customFields")
+ private final java.util.List customFields;
+
+ /**
+ * A list of key value pairs specified by the seller
+ *
+ * @return the value
+ */
+ public java.util.List getCustomFields() {
+ return customFields;
+ }
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @return the value
+ */
+ public java.util.Map getFreeformTags() {
+ return freeformTags;
+ }
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("CreateOfferDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("displayName=").append(String.valueOf(this.displayName));
+ sb.append(", sellerCompartmentId=").append(String.valueOf(this.sellerCompartmentId));
+ sb.append(", buyerCompartmentId=").append(String.valueOf(this.buyerCompartmentId));
+ sb.append(", description=").append(String.valueOf(this.description));
+ sb.append(", internalNotes=").append(String.valueOf(this.internalNotes));
+ sb.append(", timeStartDate=").append(String.valueOf(this.timeStartDate));
+ sb.append(", duration=").append(String.valueOf(this.duration));
+ sb.append(", timeAcceptBy=").append(String.valueOf(this.timeAcceptBy));
+ sb.append(", pricing=").append(String.valueOf(this.pricing));
+ sb.append(", buyerInformation=").append(String.valueOf(this.buyerInformation));
+ sb.append(", sellerInformation=").append(String.valueOf(this.sellerInformation));
+ sb.append(", resourceBundles=").append(String.valueOf(this.resourceBundles));
+ sb.append(", customFields=").append(String.valueOf(this.customFields));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateOfferDetails)) {
+ return false;
+ }
+
+ CreateOfferDetails other = (CreateOfferDetails) o;
+ return java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.sellerCompartmentId, other.sellerCompartmentId)
+ && java.util.Objects.equals(this.buyerCompartmentId, other.buyerCompartmentId)
+ && java.util.Objects.equals(this.description, other.description)
+ && java.util.Objects.equals(this.internalNotes, other.internalNotes)
+ && java.util.Objects.equals(this.timeStartDate, other.timeStartDate)
+ && java.util.Objects.equals(this.duration, other.duration)
+ && java.util.Objects.equals(this.timeAcceptBy, other.timeAcceptBy)
+ && java.util.Objects.equals(this.pricing, other.pricing)
+ && java.util.Objects.equals(this.buyerInformation, other.buyerInformation)
+ && java.util.Objects.equals(this.sellerInformation, other.sellerInformation)
+ && java.util.Objects.equals(this.resourceBundles, other.resourceBundles)
+ && java.util.Objects.equals(this.customFields, other.customFields)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sellerCompartmentId == null
+ ? 43
+ : this.sellerCompartmentId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerCompartmentId == null
+ ? 43
+ : this.buyerCompartmentId.hashCode());
+ result = (result * PRIME) + (this.description == null ? 43 : this.description.hashCode());
+ result =
+ (result * PRIME)
+ + (this.internalNotes == null ? 43 : this.internalNotes.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeStartDate == null ? 43 : this.timeStartDate.hashCode());
+ result = (result * PRIME) + (this.duration == null ? 43 : this.duration.hashCode());
+ result = (result * PRIME) + (this.timeAcceptBy == null ? 43 : this.timeAcceptBy.hashCode());
+ result = (result * PRIME) + (this.pricing == null ? 43 : this.pricing.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerInformation == null ? 43 : this.buyerInformation.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sellerInformation == null ? 43 : this.sellerInformation.hashCode());
+ result =
+ (result * PRIME)
+ + (this.resourceBundles == null ? 43 : this.resourceBundles.hashCode());
+ result = (result * PRIME) + (this.customFields == null ? 43 : this.customFields.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CustomField.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CustomField.java
new file mode 100644
index 00000000000..71250a6edf3
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/CustomField.java
@@ -0,0 +1,167 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * A key value pair specified by the seller of the offer
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = CustomField.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CustomField extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"key", "value"})
+ public CustomField(String key, String value) {
+ super();
+ this.key = key;
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** the key of the custom field */
+ @com.fasterxml.jackson.annotation.JsonProperty("key")
+ private String key;
+
+ /**
+ * the key of the custom field
+ *
+ * @param key the value to set
+ * @return this builder
+ */
+ public Builder key(String key) {
+ this.key = key;
+ this.__explicitlySet__.add("key");
+ return this;
+ }
+ /** the value of the custom field */
+ @com.fasterxml.jackson.annotation.JsonProperty("value")
+ private String value;
+
+ /**
+ * the value of the custom field
+ *
+ * @param value the value to set
+ * @return this builder
+ */
+ public Builder value(String value) {
+ this.value = value;
+ this.__explicitlySet__.add("value");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CustomField build() {
+ CustomField model = new CustomField(this.key, this.value);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CustomField model) {
+ if (model.wasPropertyExplicitlySet("key")) {
+ this.key(model.getKey());
+ }
+ if (model.wasPropertyExplicitlySet("value")) {
+ this.value(model.getValue());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** the key of the custom field */
+ @com.fasterxml.jackson.annotation.JsonProperty("key")
+ private final String key;
+
+ /**
+ * the key of the custom field
+ *
+ * @return the value
+ */
+ public String getKey() {
+ return key;
+ }
+
+ /** the value of the custom field */
+ @com.fasterxml.jackson.annotation.JsonProperty("value")
+ private final String value;
+
+ /**
+ * the value of the custom field
+ *
+ * @return the value
+ */
+ public String getValue() {
+ return value;
+ }
+
+ @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("CustomField(");
+ sb.append("super=").append(super.toString());
+ sb.append("key=").append(String.valueOf(this.key));
+ sb.append(", value=").append(String.valueOf(this.value));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CustomField)) {
+ return false;
+ }
+
+ CustomField other = (CustomField) o;
+ return java.util.Objects.equals(this.key, other.key)
+ && java.util.Objects.equals(this.value, other.value)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.key == null ? 43 : this.key.hashCode());
+ result = (result * PRIME) + (this.value == null ? 43 : this.value.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Offer.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Offer.java
new file mode 100644
index 00000000000..90d793cbf36
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Offer.java
@@ -0,0 +1,1067 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Description of Offer.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = Offer.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class Offer extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "displayName",
+ "sellerCompartmentId",
+ "buyerCompartmentId",
+ "description",
+ "timeStartDate",
+ "duration",
+ "timeCreated",
+ "timeUpdated",
+ "timeAcceptBy",
+ "timeAccepted",
+ "timeOfferEnd",
+ "lifecycleState",
+ "lifecycleDetails",
+ "offerStatus",
+ "publisherSummary",
+ "pricing",
+ "buyerInformation",
+ "sellerInformation",
+ "resourceBundles",
+ "freeformTags",
+ "definedTags"
+ })
+ public Offer(
+ String id,
+ String displayName,
+ String sellerCompartmentId,
+ String buyerCompartmentId,
+ String description,
+ java.util.Date timeStartDate,
+ String duration,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ java.util.Date timeAcceptBy,
+ java.util.Date timeAccepted,
+ java.util.Date timeOfferEnd,
+ LifecycleState lifecycleState,
+ String lifecycleDetails,
+ OfferStatus offerStatus,
+ PublisherSummary publisherSummary,
+ Pricing pricing,
+ BuyerInformation buyerInformation,
+ SellerInformation sellerInformation,
+ java.util.List resourceBundles,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.id = id;
+ this.displayName = displayName;
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.description = description;
+ this.timeStartDate = timeStartDate;
+ this.duration = duration;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.timeAcceptBy = timeAcceptBy;
+ this.timeAccepted = timeAccepted;
+ this.timeOfferEnd = timeOfferEnd;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.offerStatus = offerStatus;
+ this.publisherSummary = publisherSummary;
+ this.pricing = pricing;
+ this.buyerInformation = buyerInformation;
+ this.sellerInformation = sellerInformation;
+ this.resourceBundles = resourceBundles;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** Offer Identifier, can be renamed */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * Offer Identifier, can be renamed
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** OCID of the seller's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private String sellerCompartmentId;
+
+ /**
+ * OCID of the seller's tenancy (root compartment).
+ *
+ * @param sellerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder sellerCompartmentId(String sellerCompartmentId) {
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.__explicitlySet__.add("sellerCompartmentId");
+ return this;
+ }
+ /** OCID of the buyer's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private String buyerCompartmentId;
+
+ /**
+ * OCID of the buyer's tenancy (root compartment).
+ *
+ * @param buyerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder buyerCompartmentId(String buyerCompartmentId) {
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.__explicitlySet__.add("buyerCompartmentId");
+ return this;
+ }
+ /** The description of the offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("description")
+ private String description;
+
+ /**
+ * The description of the offer
+ *
+ * @param description the value to set
+ * @return this builder
+ */
+ public Builder description(String description) {
+ this.description = description;
+ this.__explicitlySet__.add("description");
+ return this;
+ }
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStartDate")
+ private java.util.Date timeStartDate;
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ *
+ * @param timeStartDate the value to set
+ * @return this builder
+ */
+ public Builder timeStartDate(java.util.Date timeStartDate) {
+ this.timeStartDate = timeStartDate;
+ this.__explicitlySet__.add("timeStartDate");
+ return this;
+ }
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted
+ * string.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("duration")
+ private String duration;
+
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted
+ * string.
+ *
+ * @param duration the value to set
+ * @return this builder
+ */
+ public Builder duration(String duration) {
+ this.duration = duration;
+ this.__explicitlySet__.add("duration");
+ return this;
+ }
+ /** The time the the Offer was created. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The time the the Offer was created. An RFC3339 formatted datetime string
+ *
+ * @param timeCreated the value to set
+ * @return this builder
+ */
+ public Builder timeCreated(java.util.Date timeCreated) {
+ this.timeCreated = timeCreated;
+ this.__explicitlySet__.add("timeCreated");
+ return this;
+ }
+ /** The time the Offer was updated. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * The time the Offer was updated. An RFC3339 formatted datetime string
+ *
+ * @param timeUpdated the value to set
+ * @return this builder
+ */
+ public Builder timeUpdated(java.util.Date timeUpdated) {
+ this.timeUpdated = timeUpdated;
+ this.__explicitlySet__.add("timeUpdated");
+ return this;
+ }
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An
+ * RFC3339 formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAcceptBy")
+ private java.util.Date timeAcceptBy;
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An
+ * RFC3339 formatted datetime string
+ *
+ * @param timeAcceptBy the value to set
+ * @return this builder
+ */
+ public Builder timeAcceptBy(java.util.Date timeAcceptBy) {
+ this.timeAcceptBy = timeAcceptBy;
+ this.__explicitlySet__.add("timeAcceptBy");
+ return this;
+ }
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAccepted")
+ private java.util.Date timeAccepted;
+
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ *
+ * @param timeAccepted the value to set
+ * @return this builder
+ */
+ public Builder timeAccepted(java.util.Date timeAccepted) {
+ this.timeAccepted = timeAccepted;
+ this.__explicitlySet__.add("timeAccepted");
+ return this;
+ }
+ /** The time the accepted Offer will end. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOfferEnd")
+ private java.util.Date timeOfferEnd;
+
+ /**
+ * The time the accepted Offer will end. An RFC3339 formatted datetime string
+ *
+ * @param timeOfferEnd the value to set
+ * @return this builder
+ */
+ public Builder timeOfferEnd(java.util.Date timeOfferEnd) {
+ this.timeOfferEnd = timeOfferEnd;
+ this.__explicitlySet__.add("timeOfferEnd");
+ return this;
+ }
+ /** The current state of the Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Offer.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * A message describing the current state in more detail. For example, can be used to
+ * provide actionable information for a resource in Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private String lifecycleDetails;
+
+ /**
+ * A message describing the current state in more detail. For example, can be used to
+ * provide actionable information for a resource in Failed state.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(String lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /** A substate for lifeCycleStatus to give a more human readable version of the offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerStatus")
+ private OfferStatus offerStatus;
+
+ /**
+ * A substate for lifeCycleStatus to give a more human readable version of the offer
+ *
+ * @param offerStatus the value to set
+ * @return this builder
+ */
+ public Builder offerStatus(OfferStatus offerStatus) {
+ this.offerStatus = offerStatus;
+ this.__explicitlySet__.add("offerStatus");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("publisherSummary")
+ private PublisherSummary publisherSummary;
+
+ public Builder publisherSummary(PublisherSummary publisherSummary) {
+ this.publisherSummary = publisherSummary;
+ this.__explicitlySet__.add("publisherSummary");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("pricing")
+ private Pricing pricing;
+
+ public Builder pricing(Pricing pricing) {
+ this.pricing = pricing;
+ this.__explicitlySet__.add("pricing");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerInformation")
+ private BuyerInformation buyerInformation;
+
+ public Builder buyerInformation(BuyerInformation buyerInformation) {
+ this.buyerInformation = buyerInformation;
+ this.__explicitlySet__.add("buyerInformation");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerInformation")
+ private SellerInformation sellerInformation;
+
+ public Builder sellerInformation(SellerInformation sellerInformation) {
+ this.sellerInformation = sellerInformation;
+ this.__explicitlySet__.add("sellerInformation");
+ return this;
+ }
+ /** A list of Resource Bundles associated with an Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("resourceBundles")
+ private java.util.List resourceBundles;
+
+ /**
+ * A list of Resource Bundles associated with an Offer.
+ *
+ * @param resourceBundles the value to set
+ * @return this builder
+ */
+ public Builder resourceBundles(java.util.List resourceBundles) {
+ this.resourceBundles = resourceBundles;
+ this.__explicitlySet__.add("resourceBundles");
+ return this;
+ }
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map freeformTags) {
+ this.freeformTags = freeformTags;
+ this.__explicitlySet__.add("freeformTags");
+ return this;
+ }
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map> definedTags) {
+ this.definedTags = definedTags;
+ this.__explicitlySet__.add("definedTags");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public Offer build() {
+ Offer model =
+ new Offer(
+ this.id,
+ this.displayName,
+ this.sellerCompartmentId,
+ this.buyerCompartmentId,
+ this.description,
+ this.timeStartDate,
+ this.duration,
+ this.timeCreated,
+ this.timeUpdated,
+ this.timeAcceptBy,
+ this.timeAccepted,
+ this.timeOfferEnd,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.offerStatus,
+ this.publisherSummary,
+ this.pricing,
+ this.buyerInformation,
+ this.sellerInformation,
+ this.resourceBundles,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(Offer model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("sellerCompartmentId")) {
+ this.sellerCompartmentId(model.getSellerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("buyerCompartmentId")) {
+ this.buyerCompartmentId(model.getBuyerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("description")) {
+ this.description(model.getDescription());
+ }
+ if (model.wasPropertyExplicitlySet("timeStartDate")) {
+ this.timeStartDate(model.getTimeStartDate());
+ }
+ if (model.wasPropertyExplicitlySet("duration")) {
+ this.duration(model.getDuration());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("timeAcceptBy")) {
+ this.timeAcceptBy(model.getTimeAcceptBy());
+ }
+ if (model.wasPropertyExplicitlySet("timeAccepted")) {
+ this.timeAccepted(model.getTimeAccepted());
+ }
+ if (model.wasPropertyExplicitlySet("timeOfferEnd")) {
+ this.timeOfferEnd(model.getTimeOfferEnd());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("offerStatus")) {
+ this.offerStatus(model.getOfferStatus());
+ }
+ if (model.wasPropertyExplicitlySet("publisherSummary")) {
+ this.publisherSummary(model.getPublisherSummary());
+ }
+ if (model.wasPropertyExplicitlySet("pricing")) {
+ this.pricing(model.getPricing());
+ }
+ if (model.wasPropertyExplicitlySet("buyerInformation")) {
+ this.buyerInformation(model.getBuyerInformation());
+ }
+ if (model.wasPropertyExplicitlySet("sellerInformation")) {
+ this.sellerInformation(model.getSellerInformation());
+ }
+ if (model.wasPropertyExplicitlySet("resourceBundles")) {
+ this.resourceBundles(model.getResourceBundles());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** Offer Identifier, can be renamed */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * Offer Identifier, can be renamed
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** OCID of the seller's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private final String sellerCompartmentId;
+
+ /**
+ * OCID of the seller's tenancy (root compartment).
+ *
+ * @return the value
+ */
+ public String getSellerCompartmentId() {
+ return sellerCompartmentId;
+ }
+
+ /** OCID of the buyer's tenancy (root compartment). */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private final String buyerCompartmentId;
+
+ /**
+ * OCID of the buyer's tenancy (root compartment).
+ *
+ * @return the value
+ */
+ public String getBuyerCompartmentId() {
+ return buyerCompartmentId;
+ }
+
+ /** The description of the offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("description")
+ private final String description;
+
+ /**
+ * The description of the offer
+ *
+ * @return the value
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStartDate")
+ private final java.util.Date timeStartDate;
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeStartDate() {
+ return timeStartDate;
+ }
+
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted string.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("duration")
+ private final String duration;
+
+ /**
+ * Duration the Offer will be active after its start date. An ISO8601 extended formatted string.
+ *
+ * @return the value
+ */
+ public String getDuration() {
+ return duration;
+ }
+
+ /** The time the the Offer was created. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The time the the Offer was created. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /** The time the Offer was updated. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * The time the Offer was updated. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAcceptBy")
+ private final java.util.Date timeAcceptBy;
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An RFC3339
+ * formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeAcceptBy() {
+ return timeAcceptBy;
+ }
+
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAccepted")
+ private final java.util.Date timeAccepted;
+
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeAccepted() {
+ return timeAccepted;
+ }
+
+ /** The time the accepted Offer will end. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOfferEnd")
+ private final java.util.Date timeOfferEnd;
+
+ /**
+ * The time the accepted Offer will end. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeOfferEnd() {
+ return timeOfferEnd;
+ }
+
+ /** The current state of the Offer. */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Creating("CREATING"),
+ Updating("UPDATING"),
+ Active("ACTIVE"),
+ Deleting("DELETING"),
+ Deleted("DELETED"),
+ Failed("FAILED"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(LifecycleState.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (LifecycleState v : LifecycleState.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ LifecycleState(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static LifecycleState create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'LifecycleState', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The current state of the Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Offer.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * A message describing the current state in more detail. For example, can be used to provide
+ * actionable information for a resource in Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final String lifecycleDetails;
+
+ /**
+ * A message describing the current state in more detail. For example, can be used to provide
+ * actionable information for a resource in Failed state.
+ *
+ * @return the value
+ */
+ public String getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /** A substate for lifeCycleStatus to give a more human readable version of the offer */
+ public enum OfferStatus implements com.oracle.bmc.http.internal.BmcEnum {
+ Draft("DRAFT"),
+ PendingMarketplace("PENDING_MARKETPLACE"),
+ PendingBuyer("PENDING_BUYER"),
+ Expired("EXPIRED"),
+ Accepted("ACCEPTED"),
+ Active("ACTIVE"),
+ Ended("ENDED"),
+ FailedSend("FAILED_SEND"),
+ FailedAccept("FAILED_ACCEPT"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(OfferStatus.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (OfferStatus v : OfferStatus.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ OfferStatus(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static OfferStatus create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'OfferStatus', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** A substate for lifeCycleStatus to give a more human readable version of the offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerStatus")
+ private final OfferStatus offerStatus;
+
+ /**
+ * A substate for lifeCycleStatus to give a more human readable version of the offer
+ *
+ * @return the value
+ */
+ public OfferStatus getOfferStatus() {
+ return offerStatus;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("publisherSummary")
+ private final PublisherSummary publisherSummary;
+
+ public PublisherSummary getPublisherSummary() {
+ return publisherSummary;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("pricing")
+ private final Pricing pricing;
+
+ public Pricing getPricing() {
+ return pricing;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerInformation")
+ private final BuyerInformation buyerInformation;
+
+ public BuyerInformation getBuyerInformation() {
+ return buyerInformation;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerInformation")
+ private final SellerInformation sellerInformation;
+
+ public SellerInformation getSellerInformation() {
+ return sellerInformation;
+ }
+
+ /** A list of Resource Bundles associated with an Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("resourceBundles")
+ private final java.util.List resourceBundles;
+
+ /**
+ * A list of Resource Bundles associated with an Offer.
+ *
+ * @return the value
+ */
+ public java.util.List getResourceBundles() {
+ return resourceBundles;
+ }
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @return the value
+ */
+ public java.util.Map getFreeformTags() {
+ return freeformTags;
+ }
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("Offer(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", sellerCompartmentId=").append(String.valueOf(this.sellerCompartmentId));
+ sb.append(", buyerCompartmentId=").append(String.valueOf(this.buyerCompartmentId));
+ sb.append(", description=").append(String.valueOf(this.description));
+ sb.append(", timeStartDate=").append(String.valueOf(this.timeStartDate));
+ sb.append(", duration=").append(String.valueOf(this.duration));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ sb.append(", timeAcceptBy=").append(String.valueOf(this.timeAcceptBy));
+ sb.append(", timeAccepted=").append(String.valueOf(this.timeAccepted));
+ sb.append(", timeOfferEnd=").append(String.valueOf(this.timeOfferEnd));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", offerStatus=").append(String.valueOf(this.offerStatus));
+ sb.append(", publisherSummary=").append(String.valueOf(this.publisherSummary));
+ sb.append(", pricing=").append(String.valueOf(this.pricing));
+ sb.append(", buyerInformation=").append(String.valueOf(this.buyerInformation));
+ sb.append(", sellerInformation=").append(String.valueOf(this.sellerInformation));
+ sb.append(", resourceBundles=").append(String.valueOf(this.resourceBundles));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Offer)) {
+ return false;
+ }
+
+ Offer other = (Offer) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.sellerCompartmentId, other.sellerCompartmentId)
+ && java.util.Objects.equals(this.buyerCompartmentId, other.buyerCompartmentId)
+ && java.util.Objects.equals(this.description, other.description)
+ && java.util.Objects.equals(this.timeStartDate, other.timeStartDate)
+ && java.util.Objects.equals(this.duration, other.duration)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.timeAcceptBy, other.timeAcceptBy)
+ && java.util.Objects.equals(this.timeAccepted, other.timeAccepted)
+ && java.util.Objects.equals(this.timeOfferEnd, other.timeOfferEnd)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.offerStatus, other.offerStatus)
+ && java.util.Objects.equals(this.publisherSummary, other.publisherSummary)
+ && java.util.Objects.equals(this.pricing, other.pricing)
+ && java.util.Objects.equals(this.buyerInformation, other.buyerInformation)
+ && java.util.Objects.equals(this.sellerInformation, other.sellerInformation)
+ && java.util.Objects.equals(this.resourceBundles, other.resourceBundles)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.id == null ? 43 : this.id.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sellerCompartmentId == null
+ ? 43
+ : this.sellerCompartmentId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerCompartmentId == null
+ ? 43
+ : this.buyerCompartmentId.hashCode());
+ result = (result * PRIME) + (this.description == null ? 43 : this.description.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeStartDate == null ? 43 : this.timeStartDate.hashCode());
+ result = (result * PRIME) + (this.duration == null ? 43 : this.duration.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result = (result * PRIME) + (this.timeUpdated == null ? 43 : this.timeUpdated.hashCode());
+ result = (result * PRIME) + (this.timeAcceptBy == null ? 43 : this.timeAcceptBy.hashCode());
+ result = (result * PRIME) + (this.timeAccepted == null ? 43 : this.timeAccepted.hashCode());
+ result = (result * PRIME) + (this.timeOfferEnd == null ? 43 : this.timeOfferEnd.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleDetails == null ? 43 : this.lifecycleDetails.hashCode());
+ result = (result * PRIME) + (this.offerStatus == null ? 43 : this.offerStatus.hashCode());
+ result =
+ (result * PRIME)
+ + (this.publisherSummary == null ? 43 : this.publisherSummary.hashCode());
+ result = (result * PRIME) + (this.pricing == null ? 43 : this.pricing.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerInformation == null ? 43 : this.buyerInformation.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sellerInformation == null ? 43 : this.sellerInformation.hashCode());
+ result =
+ (result * PRIME)
+ + (this.resourceBundles == null ? 43 : this.resourceBundles.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferCollection.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferCollection.java
new file mode 100644
index 00000000000..313b03fb969
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferCollection.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Results of a offers search. Contains boh OfferSummary items and other information, such as
+ * metadata.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = OfferCollection.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class OfferCollection
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"items"})
+ public OfferCollection(java.util.List items) {
+ super();
+ this.items = items;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** List of offers. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private java.util.List items;
+
+ /**
+ * List of offers.
+ *
+ * @param items the value to set
+ * @return this builder
+ */
+ public Builder items(java.util.List items) {
+ this.items = items;
+ this.__explicitlySet__.add("items");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public OfferCollection build() {
+ OfferCollection model = new OfferCollection(this.items);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(OfferCollection model) {
+ if (model.wasPropertyExplicitlySet("items")) {
+ this.items(model.getItems());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** List of offers. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private final java.util.List items;
+
+ /**
+ * List of offers.
+ *
+ * @return the value
+ */
+ public java.util.List getItems() {
+ return items;
+ }
+
+ @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("OfferCollection(");
+ sb.append("super=").append(super.toString());
+ sb.append("items=").append(String.valueOf(this.items));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof OfferCollection)) {
+ return false;
+ }
+
+ OfferCollection other = (OfferCollection) o;
+ return java.util.Objects.equals(this.items, other.items) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.items == null ? 43 : this.items.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferInternalDetail.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferInternalDetail.java
new file mode 100644
index 00000000000..192f6fa3d0f
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferInternalDetail.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * the internal details of an offer that are only visible to the seller
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = OfferInternalDetail.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class OfferInternalDetail
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"customFields", "internalNotes"})
+ public OfferInternalDetail(java.util.List customFields, String internalNotes) {
+ super();
+ this.customFields = customFields;
+ this.internalNotes = internalNotes;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** A list of key value pairs specified by the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("customFields")
+ private java.util.List customFields;
+
+ /**
+ * A list of key value pairs specified by the seller
+ *
+ * @param customFields the value to set
+ * @return this builder
+ */
+ public Builder customFields(java.util.List customFields) {
+ this.customFields = customFields;
+ this.__explicitlySet__.add("customFields");
+ return this;
+ }
+ /** Internal notes only intended for the Publisher of the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("internalNotes")
+ private String internalNotes;
+
+ /**
+ * Internal notes only intended for the Publisher of the Offer
+ *
+ * @param internalNotes the value to set
+ * @return this builder
+ */
+ public Builder internalNotes(String internalNotes) {
+ this.internalNotes = internalNotes;
+ this.__explicitlySet__.add("internalNotes");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public OfferInternalDetail build() {
+ OfferInternalDetail model =
+ new OfferInternalDetail(this.customFields, this.internalNotes);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(OfferInternalDetail model) {
+ if (model.wasPropertyExplicitlySet("customFields")) {
+ this.customFields(model.getCustomFields());
+ }
+ if (model.wasPropertyExplicitlySet("internalNotes")) {
+ this.internalNotes(model.getInternalNotes());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** A list of key value pairs specified by the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("customFields")
+ private final java.util.List customFields;
+
+ /**
+ * A list of key value pairs specified by the seller
+ *
+ * @return the value
+ */
+ public java.util.List getCustomFields() {
+ return customFields;
+ }
+
+ /** Internal notes only intended for the Publisher of the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("internalNotes")
+ private final String internalNotes;
+
+ /**
+ * Internal notes only intended for the Publisher of the Offer
+ *
+ * @return the value
+ */
+ public String getInternalNotes() {
+ return internalNotes;
+ }
+
+ @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("OfferInternalDetail(");
+ sb.append("super=").append(super.toString());
+ sb.append("customFields=").append(String.valueOf(this.customFields));
+ sb.append(", internalNotes=").append(String.valueOf(this.internalNotes));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof OfferInternalDetail)) {
+ return false;
+ }
+
+ OfferInternalDetail other = (OfferInternalDetail) o;
+ return java.util.Objects.equals(this.customFields, other.customFields)
+ && java.util.Objects.equals(this.internalNotes, other.internalNotes)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.customFields == null ? 43 : this.customFields.hashCode());
+ result =
+ (result * PRIME)
+ + (this.internalNotes == null ? 43 : this.internalNotes.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferSummary.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferSummary.java
new file mode 100644
index 00000000000..59082017ead
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/OfferSummary.java
@@ -0,0 +1,816 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Summary of the Offers.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = OfferSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class OfferSummary extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "displayName",
+ "buyerCompartmentId",
+ "sellerCompartmentId",
+ "timeCreated",
+ "timeUpdated",
+ "timeAcceptBy",
+ "timeAccepted",
+ "timeStartDate",
+ "timeOfferEnd",
+ "lifecycleState",
+ "lifecycleDetails",
+ "offerStatus",
+ "buyerInformation",
+ "sellerInformation",
+ "pricing",
+ "freeformTags",
+ "definedTags"
+ })
+ public OfferSummary(
+ String id,
+ String displayName,
+ String buyerCompartmentId,
+ String sellerCompartmentId,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ java.util.Date timeAcceptBy,
+ java.util.Date timeAccepted,
+ java.util.Date timeStartDate,
+ java.util.Date timeOfferEnd,
+ Offer.LifecycleState lifecycleState,
+ String lifecycleDetails,
+ Offer.OfferStatus offerStatus,
+ BuyerInformation buyerInformation,
+ SellerInformation sellerInformation,
+ Pricing pricing,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.id = id;
+ this.displayName = displayName;
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.timeAcceptBy = timeAcceptBy;
+ this.timeAccepted = timeAccepted;
+ this.timeStartDate = timeStartDate;
+ this.timeOfferEnd = timeOfferEnd;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.offerStatus = offerStatus;
+ this.buyerInformation = buyerInformation;
+ this.sellerInformation = sellerInformation;
+ this.pricing = pricing;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** Offer Identifier, can be renamed */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * Offer Identifier, can be renamed
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** Ocid of the buyer tenancy. */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private String buyerCompartmentId;
+
+ /**
+ * Ocid of the buyer tenancy.
+ *
+ * @param buyerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder buyerCompartmentId(String buyerCompartmentId) {
+ this.buyerCompartmentId = buyerCompartmentId;
+ this.__explicitlySet__.add("buyerCompartmentId");
+ return this;
+ }
+ /** Ocid of the seller tenancy. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private String sellerCompartmentId;
+
+ /**
+ * Ocid of the seller tenancy.
+ *
+ * @param sellerCompartmentId the value to set
+ * @return this builder
+ */
+ public Builder sellerCompartmentId(String sellerCompartmentId) {
+ this.sellerCompartmentId = sellerCompartmentId;
+ this.__explicitlySet__.add("sellerCompartmentId");
+ return this;
+ }
+ /** The time the the Offer was created. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The time the the Offer was created. An RFC3339 formatted datetime string
+ *
+ * @param timeCreated the value to set
+ * @return this builder
+ */
+ public Builder timeCreated(java.util.Date timeCreated) {
+ this.timeCreated = timeCreated;
+ this.__explicitlySet__.add("timeCreated");
+ return this;
+ }
+ /** The time the Offer was updated. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * The time the Offer was updated. An RFC3339 formatted datetime string
+ *
+ * @param timeUpdated the value to set
+ * @return this builder
+ */
+ public Builder timeUpdated(java.util.Date timeUpdated) {
+ this.timeUpdated = timeUpdated;
+ this.__explicitlySet__.add("timeUpdated");
+ return this;
+ }
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An
+ * RFC3339 formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAcceptBy")
+ private java.util.Date timeAcceptBy;
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An
+ * RFC3339 formatted datetime string
+ *
+ * @param timeAcceptBy the value to set
+ * @return this builder
+ */
+ public Builder timeAcceptBy(java.util.Date timeAcceptBy) {
+ this.timeAcceptBy = timeAcceptBy;
+ this.__explicitlySet__.add("timeAcceptBy");
+ return this;
+ }
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAccepted")
+ private java.util.Date timeAccepted;
+
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ *
+ * @param timeAccepted the value to set
+ * @return this builder
+ */
+ public Builder timeAccepted(java.util.Date timeAccepted) {
+ this.timeAccepted = timeAccepted;
+ this.__explicitlySet__.add("timeAccepted");
+ return this;
+ }
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStartDate")
+ private java.util.Date timeStartDate;
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ *
+ * @param timeStartDate the value to set
+ * @return this builder
+ */
+ public Builder timeStartDate(java.util.Date timeStartDate) {
+ this.timeStartDate = timeStartDate;
+ this.__explicitlySet__.add("timeStartDate");
+ return this;
+ }
+ /** The time the accepted Offer will end. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOfferEnd")
+ private java.util.Date timeOfferEnd;
+
+ /**
+ * The time the accepted Offer will end. An RFC3339 formatted datetime string
+ *
+ * @param timeOfferEnd the value to set
+ * @return this builder
+ */
+ public Builder timeOfferEnd(java.util.Date timeOfferEnd) {
+ this.timeOfferEnd = timeOfferEnd;
+ this.__explicitlySet__.add("timeOfferEnd");
+ return this;
+ }
+ /** The current state of the Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private Offer.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Offer.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(Offer.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * A message describing the current state in more detail. For example, can be used to
+ * provide actionable information for a resource in Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private String lifecycleDetails;
+
+ /**
+ * A message describing the current state in more detail. For example, can be used to
+ * provide actionable information for a resource in Failed state.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(String lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /**
+ * The human readable representation of where the offer is at in it's contract lifecycle.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerStatus")
+ private Offer.OfferStatus offerStatus;
+
+ /**
+ * The human readable representation of where the offer is at in it's contract lifecycle.
+ *
+ * @param offerStatus the value to set
+ * @return this builder
+ */
+ public Builder offerStatus(Offer.OfferStatus offerStatus) {
+ this.offerStatus = offerStatus;
+ this.__explicitlySet__.add("offerStatus");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerInformation")
+ private BuyerInformation buyerInformation;
+
+ public Builder buyerInformation(BuyerInformation buyerInformation) {
+ this.buyerInformation = buyerInformation;
+ this.__explicitlySet__.add("buyerInformation");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerInformation")
+ private SellerInformation sellerInformation;
+
+ public Builder sellerInformation(SellerInformation sellerInformation) {
+ this.sellerInformation = sellerInformation;
+ this.__explicitlySet__.add("sellerInformation");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("pricing")
+ private Pricing pricing;
+
+ public Builder pricing(Pricing pricing) {
+ this.pricing = pricing;
+ this.__explicitlySet__.add("pricing");
+ return this;
+ }
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map freeformTags) {
+ this.freeformTags = freeformTags;
+ this.__explicitlySet__.add("freeformTags");
+ return this;
+ }
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map> definedTags) {
+ this.definedTags = definedTags;
+ this.__explicitlySet__.add("definedTags");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public OfferSummary build() {
+ OfferSummary model =
+ new OfferSummary(
+ this.id,
+ this.displayName,
+ this.buyerCompartmentId,
+ this.sellerCompartmentId,
+ this.timeCreated,
+ this.timeUpdated,
+ this.timeAcceptBy,
+ this.timeAccepted,
+ this.timeStartDate,
+ this.timeOfferEnd,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.offerStatus,
+ this.buyerInformation,
+ this.sellerInformation,
+ this.pricing,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(OfferSummary model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("buyerCompartmentId")) {
+ this.buyerCompartmentId(model.getBuyerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("sellerCompartmentId")) {
+ this.sellerCompartmentId(model.getSellerCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("timeAcceptBy")) {
+ this.timeAcceptBy(model.getTimeAcceptBy());
+ }
+ if (model.wasPropertyExplicitlySet("timeAccepted")) {
+ this.timeAccepted(model.getTimeAccepted());
+ }
+ if (model.wasPropertyExplicitlySet("timeStartDate")) {
+ this.timeStartDate(model.getTimeStartDate());
+ }
+ if (model.wasPropertyExplicitlySet("timeOfferEnd")) {
+ this.timeOfferEnd(model.getTimeOfferEnd());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("offerStatus")) {
+ this.offerStatus(model.getOfferStatus());
+ }
+ if (model.wasPropertyExplicitlySet("buyerInformation")) {
+ this.buyerInformation(model.getBuyerInformation());
+ }
+ if (model.wasPropertyExplicitlySet("sellerInformation")) {
+ this.sellerInformation(model.getSellerInformation());
+ }
+ if (model.wasPropertyExplicitlySet("pricing")) {
+ this.pricing(model.getPricing());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Unique identifier that is immutable on creation */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * Unique identifier that is immutable on creation
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** Offer Identifier, can be renamed */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * Offer Identifier, can be renamed
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** Ocid of the buyer tenancy. */
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerCompartmentId")
+ private final String buyerCompartmentId;
+
+ /**
+ * Ocid of the buyer tenancy.
+ *
+ * @return the value
+ */
+ public String getBuyerCompartmentId() {
+ return buyerCompartmentId;
+ }
+
+ /** Ocid of the seller tenancy. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerCompartmentId")
+ private final String sellerCompartmentId;
+
+ /**
+ * Ocid of the seller tenancy.
+ *
+ * @return the value
+ */
+ public String getSellerCompartmentId() {
+ return sellerCompartmentId;
+ }
+
+ /** The time the the Offer was created. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The time the the Offer was created. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /** The time the Offer was updated. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * The time the Offer was updated. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAcceptBy")
+ private final java.util.Date timeAcceptBy;
+
+ /**
+ * The time the Offer must be accepted by the Buyer before the Offer becomes invalid. An RFC3339
+ * formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeAcceptBy() {
+ return timeAcceptBy;
+ }
+
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAccepted")
+ private final java.util.Date timeAccepted;
+
+ /**
+ * The time the Offer was accepted by the Buyer of the Offer. An RFC3339 formatted datetime
+ * string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeAccepted() {
+ return timeAccepted;
+ }
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStartDate")
+ private final java.util.Date timeStartDate;
+
+ /**
+ * The time the Offer will become active after it has been accepted by the Buyer. An RFC3339
+ * formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeStartDate() {
+ return timeStartDate;
+ }
+
+ /** The time the accepted Offer will end. An RFC3339 formatted datetime string */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOfferEnd")
+ private final java.util.Date timeOfferEnd;
+
+ /**
+ * The time the accepted Offer will end. An RFC3339 formatted datetime string
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeOfferEnd() {
+ return timeOfferEnd;
+ }
+
+ /** The current state of the Offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final Offer.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Offer.
+ *
+ * @return the value
+ */
+ public Offer.LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * A message describing the current state in more detail. For example, can be used to provide
+ * actionable information for a resource in Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final String lifecycleDetails;
+
+ /**
+ * A message describing the current state in more detail. For example, can be used to provide
+ * actionable information for a resource in Failed state.
+ *
+ * @return the value
+ */
+ public String getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /** The human readable representation of where the offer is at in it's contract lifecycle. */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerStatus")
+ private final Offer.OfferStatus offerStatus;
+
+ /**
+ * The human readable representation of where the offer is at in it's contract lifecycle.
+ *
+ * @return the value
+ */
+ public Offer.OfferStatus getOfferStatus() {
+ return offerStatus;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("buyerInformation")
+ private final BuyerInformation buyerInformation;
+
+ public BuyerInformation getBuyerInformation() {
+ return buyerInformation;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sellerInformation")
+ private final SellerInformation sellerInformation;
+
+ public SellerInformation getSellerInformation() {
+ return sellerInformation;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("pricing")
+ private final Pricing pricing;
+
+ public Pricing getPricing() {
+ return pricing;
+ }
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @return the value
+ */
+ public java.util.Map getFreeformTags() {
+ return freeformTags;
+ }
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("OfferSummary(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", buyerCompartmentId=").append(String.valueOf(this.buyerCompartmentId));
+ sb.append(", sellerCompartmentId=").append(String.valueOf(this.sellerCompartmentId));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ sb.append(", timeAcceptBy=").append(String.valueOf(this.timeAcceptBy));
+ sb.append(", timeAccepted=").append(String.valueOf(this.timeAccepted));
+ sb.append(", timeStartDate=").append(String.valueOf(this.timeStartDate));
+ sb.append(", timeOfferEnd=").append(String.valueOf(this.timeOfferEnd));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", offerStatus=").append(String.valueOf(this.offerStatus));
+ sb.append(", buyerInformation=").append(String.valueOf(this.buyerInformation));
+ sb.append(", sellerInformation=").append(String.valueOf(this.sellerInformation));
+ sb.append(", pricing=").append(String.valueOf(this.pricing));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof OfferSummary)) {
+ return false;
+ }
+
+ OfferSummary other = (OfferSummary) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.buyerCompartmentId, other.buyerCompartmentId)
+ && java.util.Objects.equals(this.sellerCompartmentId, other.sellerCompartmentId)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.timeAcceptBy, other.timeAcceptBy)
+ && java.util.Objects.equals(this.timeAccepted, other.timeAccepted)
+ && java.util.Objects.equals(this.timeStartDate, other.timeStartDate)
+ && java.util.Objects.equals(this.timeOfferEnd, other.timeOfferEnd)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.offerStatus, other.offerStatus)
+ && java.util.Objects.equals(this.buyerInformation, other.buyerInformation)
+ && java.util.Objects.equals(this.sellerInformation, other.sellerInformation)
+ && java.util.Objects.equals(this.pricing, other.pricing)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.id == null ? 43 : this.id.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerCompartmentId == null
+ ? 43
+ : this.buyerCompartmentId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sellerCompartmentId == null
+ ? 43
+ : this.sellerCompartmentId.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result = (result * PRIME) + (this.timeUpdated == null ? 43 : this.timeUpdated.hashCode());
+ result = (result * PRIME) + (this.timeAcceptBy == null ? 43 : this.timeAcceptBy.hashCode());
+ result = (result * PRIME) + (this.timeAccepted == null ? 43 : this.timeAccepted.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeStartDate == null ? 43 : this.timeStartDate.hashCode());
+ result = (result * PRIME) + (this.timeOfferEnd == null ? 43 : this.timeOfferEnd.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleDetails == null ? 43 : this.lifecycleDetails.hashCode());
+ result = (result * PRIME) + (this.offerStatus == null ? 43 : this.offerStatus.hashCode());
+ result =
+ (result * PRIME)
+ + (this.buyerInformation == null ? 43 : this.buyerInformation.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sellerInformation == null ? 43 : this.sellerInformation.hashCode());
+ result = (result * PRIME) + (this.pricing == null ? 43 : this.pricing.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/PackageType.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/PackageType.java
new file mode 100644
index 00000000000..962d83d8b74
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/PackageType.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/** Possible values for a package type. */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public enum PackageType implements com.oracle.bmc.http.internal.BmcEnum {
+ ContainerImage("CONTAINER_IMAGE"),
+ HelmChart("HELM_CHART"),
+ ;
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (PackageType v : PackageType.values()) {
+ map.put(v.getValue(), v);
+ }
+ }
+
+ PackageType(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static PackageType create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ throw new IllegalArgumentException("Invalid PackageType: " + key);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Pricing.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Pricing.java
new file mode 100644
index 00000000000..2e35166109c
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/Pricing.java
@@ -0,0 +1,247 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * the pricing information for the offer
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = Pricing.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class Pricing extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"currencyType", "totalAmount", "billingCycle"})
+ public Pricing(String currencyType, Long totalAmount, BillingCycle billingCycle) {
+ super();
+ this.currencyType = currencyType;
+ this.totalAmount = totalAmount;
+ this.billingCycle = billingCycle;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The currency supported for a given Offer, in the format specified by ISO-4217 */
+ @com.fasterxml.jackson.annotation.JsonProperty("currencyType")
+ private String currencyType;
+
+ /**
+ * The currency supported for a given Offer, in the format specified by ISO-4217
+ *
+ * @param currencyType the value to set
+ * @return this builder
+ */
+ public Builder currencyType(String currencyType) {
+ this.currencyType = currencyType;
+ this.__explicitlySet__.add("currencyType");
+ return this;
+ }
+ /** The total amount an Offer costs */
+ @com.fasterxml.jackson.annotation.JsonProperty("totalAmount")
+ private Long totalAmount;
+
+ /**
+ * The total amount an Offer costs
+ *
+ * @param totalAmount the value to set
+ * @return this builder
+ */
+ public Builder totalAmount(Long totalAmount) {
+ this.totalAmount = totalAmount;
+ this.__explicitlySet__.add("totalAmount");
+ return this;
+ }
+ /** The frequency at which the customer is billed for the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("billingCycle")
+ private BillingCycle billingCycle;
+
+ /**
+ * The frequency at which the customer is billed for the Offer
+ *
+ * @param billingCycle the value to set
+ * @return this builder
+ */
+ public Builder billingCycle(BillingCycle billingCycle) {
+ this.billingCycle = billingCycle;
+ this.__explicitlySet__.add("billingCycle");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public Pricing build() {
+ Pricing model = new Pricing(this.currencyType, this.totalAmount, this.billingCycle);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(Pricing model) {
+ if (model.wasPropertyExplicitlySet("currencyType")) {
+ this.currencyType(model.getCurrencyType());
+ }
+ if (model.wasPropertyExplicitlySet("totalAmount")) {
+ this.totalAmount(model.getTotalAmount());
+ }
+ if (model.wasPropertyExplicitlySet("billingCycle")) {
+ this.billingCycle(model.getBillingCycle());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The currency supported for a given Offer, in the format specified by ISO-4217 */
+ @com.fasterxml.jackson.annotation.JsonProperty("currencyType")
+ private final String currencyType;
+
+ /**
+ * The currency supported for a given Offer, in the format specified by ISO-4217
+ *
+ * @return the value
+ */
+ public String getCurrencyType() {
+ return currencyType;
+ }
+
+ /** The total amount an Offer costs */
+ @com.fasterxml.jackson.annotation.JsonProperty("totalAmount")
+ private final Long totalAmount;
+
+ /**
+ * The total amount an Offer costs
+ *
+ * @return the value
+ */
+ public Long getTotalAmount() {
+ return totalAmount;
+ }
+
+ /** The frequency at which the customer is billed for the Offer */
+ public enum BillingCycle implements com.oracle.bmc.http.internal.BmcEnum {
+ OneTime("ONE_TIME"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(BillingCycle.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (BillingCycle v : BillingCycle.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ BillingCycle(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static BillingCycle create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'BillingCycle', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The frequency at which the customer is billed for the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("billingCycle")
+ private final BillingCycle billingCycle;
+
+ /**
+ * The frequency at which the customer is billed for the Offer
+ *
+ * @return the value
+ */
+ public BillingCycle getBillingCycle() {
+ return billingCycle;
+ }
+
+ @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("Pricing(");
+ sb.append("super=").append(super.toString());
+ sb.append("currencyType=").append(String.valueOf(this.currencyType));
+ sb.append(", totalAmount=").append(String.valueOf(this.totalAmount));
+ sb.append(", billingCycle=").append(String.valueOf(this.billingCycle));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Pricing)) {
+ return false;
+ }
+
+ Pricing other = (Pricing) o;
+ return java.util.Objects.equals(this.currencyType, other.currencyType)
+ && java.util.Objects.equals(this.totalAmount, other.totalAmount)
+ && java.util.Objects.equals(this.billingCycle, other.billingCycle)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.currencyType == null ? 43 : this.currencyType.hashCode());
+ result = (result * PRIME) + (this.totalAmount == null ? 43 : this.totalAmount.hashCode());
+ result = (result * PRIME) + (this.billingCycle == null ? 43 : this.billingCycle.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/PublisherSummary.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/PublisherSummary.java
new file mode 100644
index 00000000000..1fe8e700141
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/PublisherSummary.java
@@ -0,0 +1,963 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * The model for a publisher.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = PublisherSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class PublisherSummary
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "compartmentId",
+ "registryNamespace",
+ "legacyId",
+ "displayName",
+ "description",
+ "yearFounded",
+ "websiteUrl",
+ "contactEmail",
+ "contactPhone",
+ "hqAddress",
+ "logo",
+ "facebookUrl",
+ "twitterUrl",
+ "linkedinUrl",
+ "publisherType",
+ "timeCreated",
+ "timeUpdated",
+ "freeformTags",
+ "definedTags",
+ "systemTags"
+ })
+ public PublisherSummary(
+ String id,
+ String compartmentId,
+ String registryNamespace,
+ String legacyId,
+ String displayName,
+ String description,
+ Long yearFounded,
+ String websiteUrl,
+ String contactEmail,
+ String contactPhone,
+ String hqAddress,
+ UploadData logo,
+ String facebookUrl,
+ String twitterUrl,
+ String linkedinUrl,
+ PublisherType publisherType,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags) {
+ super();
+ this.id = id;
+ this.compartmentId = compartmentId;
+ this.registryNamespace = registryNamespace;
+ this.legacyId = legacyId;
+ this.displayName = displayName;
+ this.description = description;
+ this.yearFounded = yearFounded;
+ this.websiteUrl = websiteUrl;
+ this.contactEmail = contactEmail;
+ this.contactPhone = contactPhone;
+ this.hqAddress = hqAddress;
+ this.logo = logo;
+ this.facebookUrl = facebookUrl;
+ this.twitterUrl = twitterUrl;
+ this.linkedinUrl = linkedinUrl;
+ this.publisherType = publisherType;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Unique OCID identifier for the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * Unique OCID identifier for the publisher.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** The root compartment of the Publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The root compartment of the Publisher.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /** The namespace for the publisher registry to persist artifacts. */
+ @com.fasterxml.jackson.annotation.JsonProperty("registryNamespace")
+ private String registryNamespace;
+
+ /**
+ * The namespace for the publisher registry to persist artifacts.
+ *
+ * @param registryNamespace the value to set
+ * @return this builder
+ */
+ public Builder registryNamespace(String registryNamespace) {
+ this.registryNamespace = registryNamespace;
+ this.__explicitlySet__.add("registryNamespace");
+ return this;
+ }
+ /** Unique legacy service identifier for the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("legacyId")
+ private String legacyId;
+
+ /**
+ * Unique legacy service identifier for the publisher.
+ *
+ * @param legacyId the value to set
+ * @return this builder
+ */
+ public Builder legacyId(String legacyId) {
+ this.legacyId = legacyId;
+ this.__explicitlySet__.add("legacyId");
+ return this;
+ }
+ /** The name of the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The name of the publisher.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** A description of the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("description")
+ private String description;
+
+ /**
+ * A description of the publisher.
+ *
+ * @param description the value to set
+ * @return this builder
+ */
+ public Builder description(String description) {
+ this.description = description;
+ this.__explicitlySet__.add("description");
+ return this;
+ }
+ /** The year the publisher's company or organization was founded. */
+ @com.fasterxml.jackson.annotation.JsonProperty("yearFounded")
+ private Long yearFounded;
+
+ /**
+ * The year the publisher's company or organization was founded.
+ *
+ * @param yearFounded the value to set
+ * @return this builder
+ */
+ public Builder yearFounded(Long yearFounded) {
+ this.yearFounded = yearFounded;
+ this.__explicitlySet__.add("yearFounded");
+ return this;
+ }
+ /** The publisher's website. */
+ @com.fasterxml.jackson.annotation.JsonProperty("websiteUrl")
+ private String websiteUrl;
+
+ /**
+ * The publisher's website.
+ *
+ * @param websiteUrl the value to set
+ * @return this builder
+ */
+ public Builder websiteUrl(String websiteUrl) {
+ this.websiteUrl = websiteUrl;
+ this.__explicitlySet__.add("websiteUrl");
+ return this;
+ }
+ /** The public email address of the publisher for customers. */
+ @com.fasterxml.jackson.annotation.JsonProperty("contactEmail")
+ private String contactEmail;
+
+ /**
+ * The public email address of the publisher for customers.
+ *
+ * @param contactEmail the value to set
+ * @return this builder
+ */
+ public Builder contactEmail(String contactEmail) {
+ this.contactEmail = contactEmail;
+ this.__explicitlySet__.add("contactEmail");
+ return this;
+ }
+ /** The phone number of the publisher in E.164 format. */
+ @com.fasterxml.jackson.annotation.JsonProperty("contactPhone")
+ private String contactPhone;
+
+ /**
+ * The phone number of the publisher in E.164 format.
+ *
+ * @param contactPhone the value to set
+ * @return this builder
+ */
+ public Builder contactPhone(String contactPhone) {
+ this.contactPhone = contactPhone;
+ this.__explicitlySet__.add("contactPhone");
+ return this;
+ }
+ /** The address of the publisher's headquarters. */
+ @com.fasterxml.jackson.annotation.JsonProperty("hqAddress")
+ private String hqAddress;
+
+ /**
+ * The address of the publisher's headquarters.
+ *
+ * @param hqAddress the value to set
+ * @return this builder
+ */
+ public Builder hqAddress(String hqAddress) {
+ this.hqAddress = hqAddress;
+ this.__explicitlySet__.add("hqAddress");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("logo")
+ private UploadData logo;
+
+ public Builder logo(UploadData logo) {
+ this.logo = logo;
+ this.__explicitlySet__.add("logo");
+ return this;
+ }
+ /** Publisher's Facebook URL */
+ @com.fasterxml.jackson.annotation.JsonProperty("facebookUrl")
+ private String facebookUrl;
+
+ /**
+ * Publisher's Facebook URL
+ *
+ * @param facebookUrl the value to set
+ * @return this builder
+ */
+ public Builder facebookUrl(String facebookUrl) {
+ this.facebookUrl = facebookUrl;
+ this.__explicitlySet__.add("facebookUrl");
+ return this;
+ }
+ /** Publisher's Twitter URL */
+ @com.fasterxml.jackson.annotation.JsonProperty("twitterUrl")
+ private String twitterUrl;
+
+ /**
+ * Publisher's Twitter URL
+ *
+ * @param twitterUrl the value to set
+ * @return this builder
+ */
+ public Builder twitterUrl(String twitterUrl) {
+ this.twitterUrl = twitterUrl;
+ this.__explicitlySet__.add("twitterUrl");
+ return this;
+ }
+ /** Publisher's LinkedIn URL */
+ @com.fasterxml.jackson.annotation.JsonProperty("linkedinUrl")
+ private String linkedinUrl;
+
+ /**
+ * Publisher's LinkedIn URL
+ *
+ * @param linkedinUrl the value to set
+ * @return this builder
+ */
+ public Builder linkedinUrl(String linkedinUrl) {
+ this.linkedinUrl = linkedinUrl;
+ this.__explicitlySet__.add("linkedinUrl");
+ return this;
+ }
+ /** publisher type. */
+ @com.fasterxml.jackson.annotation.JsonProperty("publisherType")
+ private PublisherType publisherType;
+
+ /**
+ * publisher type.
+ *
+ * @param publisherType the value to set
+ * @return this builder
+ */
+ public Builder publisherType(PublisherType publisherType) {
+ this.publisherType = publisherType;
+ this.__explicitlySet__.add("publisherType");
+ return this;
+ }
+ /** The time the publisher was created. An RFC3339 formatted datetime string. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The time the publisher was created. An RFC3339 formatted datetime string.
+ *
+ * @param timeCreated the value to set
+ * @return this builder
+ */
+ public Builder timeCreated(java.util.Date timeCreated) {
+ this.timeCreated = timeCreated;
+ this.__explicitlySet__.add("timeCreated");
+ return this;
+ }
+ /** The time the publisher was updated. An RFC3339 formatted datetime string. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * The time the publisher was updated. An RFC3339 formatted datetime string.
+ *
+ * @param timeUpdated the value to set
+ * @return this builder
+ */
+ public Builder timeUpdated(java.util.Date timeUpdated) {
+ this.timeUpdated = timeUpdated;
+ this.__explicitlySet__.add("timeUpdated");
+ return this;
+ }
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists
+ * for cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @param freeformTags the value to set
+ * @return this builder
+ */
+ public Builder freeformTags(java.util.Map freeformTags) {
+ this.freeformTags = freeformTags;
+ this.__explicitlySet__.add("freeformTags");
+ return this;
+ }
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ * Example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @param definedTags the value to set
+ * @return this builder
+ */
+ public Builder definedTags(
+ java.util.Map> definedTags) {
+ this.definedTags = definedTags;
+ this.__explicitlySet__.add("definedTags");
+ return this;
+ }
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private java.util.Map> systemTags;
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
+ *
+ * @param systemTags the value to set
+ * @return this builder
+ */
+ public Builder systemTags(java.util.Map> systemTags) {
+ this.systemTags = systemTags;
+ this.__explicitlySet__.add("systemTags");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public PublisherSummary build() {
+ PublisherSummary model =
+ new PublisherSummary(
+ this.id,
+ this.compartmentId,
+ this.registryNamespace,
+ this.legacyId,
+ this.displayName,
+ this.description,
+ this.yearFounded,
+ this.websiteUrl,
+ this.contactEmail,
+ this.contactPhone,
+ this.hqAddress,
+ this.logo,
+ this.facebookUrl,
+ this.twitterUrl,
+ this.linkedinUrl,
+ this.publisherType,
+ this.timeCreated,
+ this.timeUpdated,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(PublisherSummary model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("registryNamespace")) {
+ this.registryNamespace(model.getRegistryNamespace());
+ }
+ if (model.wasPropertyExplicitlySet("legacyId")) {
+ this.legacyId(model.getLegacyId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("description")) {
+ this.description(model.getDescription());
+ }
+ if (model.wasPropertyExplicitlySet("yearFounded")) {
+ this.yearFounded(model.getYearFounded());
+ }
+ if (model.wasPropertyExplicitlySet("websiteUrl")) {
+ this.websiteUrl(model.getWebsiteUrl());
+ }
+ if (model.wasPropertyExplicitlySet("contactEmail")) {
+ this.contactEmail(model.getContactEmail());
+ }
+ if (model.wasPropertyExplicitlySet("contactPhone")) {
+ this.contactPhone(model.getContactPhone());
+ }
+ if (model.wasPropertyExplicitlySet("hqAddress")) {
+ this.hqAddress(model.getHqAddress());
+ }
+ if (model.wasPropertyExplicitlySet("logo")) {
+ this.logo(model.getLogo());
+ }
+ if (model.wasPropertyExplicitlySet("facebookUrl")) {
+ this.facebookUrl(model.getFacebookUrl());
+ }
+ if (model.wasPropertyExplicitlySet("twitterUrl")) {
+ this.twitterUrl(model.getTwitterUrl());
+ }
+ if (model.wasPropertyExplicitlySet("linkedinUrl")) {
+ this.linkedinUrl(model.getLinkedinUrl());
+ }
+ if (model.wasPropertyExplicitlySet("publisherType")) {
+ this.publisherType(model.getPublisherType());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Unique OCID identifier for the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * Unique OCID identifier for the publisher.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** The root compartment of the Publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The root compartment of the Publisher.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /** The namespace for the publisher registry to persist artifacts. */
+ @com.fasterxml.jackson.annotation.JsonProperty("registryNamespace")
+ private final String registryNamespace;
+
+ /**
+ * The namespace for the publisher registry to persist artifacts.
+ *
+ * @return the value
+ */
+ public String getRegistryNamespace() {
+ return registryNamespace;
+ }
+
+ /** Unique legacy service identifier for the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("legacyId")
+ private final String legacyId;
+
+ /**
+ * Unique legacy service identifier for the publisher.
+ *
+ * @return the value
+ */
+ public String getLegacyId() {
+ return legacyId;
+ }
+
+ /** The name of the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The name of the publisher.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** A description of the publisher. */
+ @com.fasterxml.jackson.annotation.JsonProperty("description")
+ private final String description;
+
+ /**
+ * A description of the publisher.
+ *
+ * @return the value
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /** The year the publisher's company or organization was founded. */
+ @com.fasterxml.jackson.annotation.JsonProperty("yearFounded")
+ private final Long yearFounded;
+
+ /**
+ * The year the publisher's company or organization was founded.
+ *
+ * @return the value
+ */
+ public Long getYearFounded() {
+ return yearFounded;
+ }
+
+ /** The publisher's website. */
+ @com.fasterxml.jackson.annotation.JsonProperty("websiteUrl")
+ private final String websiteUrl;
+
+ /**
+ * The publisher's website.
+ *
+ * @return the value
+ */
+ public String getWebsiteUrl() {
+ return websiteUrl;
+ }
+
+ /** The public email address of the publisher for customers. */
+ @com.fasterxml.jackson.annotation.JsonProperty("contactEmail")
+ private final String contactEmail;
+
+ /**
+ * The public email address of the publisher for customers.
+ *
+ * @return the value
+ */
+ public String getContactEmail() {
+ return contactEmail;
+ }
+
+ /** The phone number of the publisher in E.164 format. */
+ @com.fasterxml.jackson.annotation.JsonProperty("contactPhone")
+ private final String contactPhone;
+
+ /**
+ * The phone number of the publisher in E.164 format.
+ *
+ * @return the value
+ */
+ public String getContactPhone() {
+ return contactPhone;
+ }
+
+ /** The address of the publisher's headquarters. */
+ @com.fasterxml.jackson.annotation.JsonProperty("hqAddress")
+ private final String hqAddress;
+
+ /**
+ * The address of the publisher's headquarters.
+ *
+ * @return the value
+ */
+ public String getHqAddress() {
+ return hqAddress;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("logo")
+ private final UploadData logo;
+
+ public UploadData getLogo() {
+ return logo;
+ }
+
+ /** Publisher's Facebook URL */
+ @com.fasterxml.jackson.annotation.JsonProperty("facebookUrl")
+ private final String facebookUrl;
+
+ /**
+ * Publisher's Facebook URL
+ *
+ * @return the value
+ */
+ public String getFacebookUrl() {
+ return facebookUrl;
+ }
+
+ /** Publisher's Twitter URL */
+ @com.fasterxml.jackson.annotation.JsonProperty("twitterUrl")
+ private final String twitterUrl;
+
+ /**
+ * Publisher's Twitter URL
+ *
+ * @return the value
+ */
+ public String getTwitterUrl() {
+ return twitterUrl;
+ }
+
+ /** Publisher's LinkedIn URL */
+ @com.fasterxml.jackson.annotation.JsonProperty("linkedinUrl")
+ private final String linkedinUrl;
+
+ /**
+ * Publisher's LinkedIn URL
+ *
+ * @return the value
+ */
+ public String getLinkedinUrl() {
+ return linkedinUrl;
+ }
+
+ /** publisher type. */
+ public enum PublisherType implements com.oracle.bmc.http.internal.BmcEnum {
+ Internal("INTERNAL"),
+ External("EXTERNAL"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(PublisherType.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (PublisherType v : PublisherType.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ PublisherType(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static PublisherType create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'PublisherType', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** publisher type. */
+ @com.fasterxml.jackson.annotation.JsonProperty("publisherType")
+ private final PublisherType publisherType;
+
+ /**
+ * publisher type.
+ *
+ * @return the value
+ */
+ public PublisherType getPublisherType() {
+ return publisherType;
+ }
+
+ /** The time the publisher was created. An RFC3339 formatted datetime string. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The time the publisher was created. An RFC3339 formatted datetime string.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /** The time the publisher was updated. An RFC3339 formatted datetime string. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * The time the publisher was updated. An RFC3339 formatted datetime string.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * Simple key-value pair that is applied without any predefined name, type or scope. Exists for
+ * cross-compatibility only. Example: {@code {"bar-key": "value"}}
+ *
+ * @return the value
+ */
+ public java.util.Map getFreeformTags() {
+ return freeformTags;
+ }
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("definedTags")
+ private final java.util.Map> definedTags;
+
+ /**
+ * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private final java.util.Map> systemTags;
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. Example:
+ * {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ @Override
+ public String toString() {
+ return this.toString(true);
+ }
+
+ /**
+ * Return a string representation of the object.
+ *
+ * @param includeByteArrayContents true to include the full contents of byte arrays
+ * @return string representation
+ */
+ public String toString(boolean includeByteArrayContents) {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("PublisherSummary(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", registryNamespace=").append(String.valueOf(this.registryNamespace));
+ sb.append(", legacyId=").append(String.valueOf(this.legacyId));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", description=").append(String.valueOf(this.description));
+ sb.append(", yearFounded=").append(String.valueOf(this.yearFounded));
+ sb.append(", websiteUrl=").append(String.valueOf(this.websiteUrl));
+ sb.append(", contactEmail=").append(String.valueOf(this.contactEmail));
+ sb.append(", contactPhone=").append(String.valueOf(this.contactPhone));
+ sb.append(", hqAddress=").append(String.valueOf(this.hqAddress));
+ sb.append(", logo=").append(String.valueOf(this.logo));
+ sb.append(", facebookUrl=").append(String.valueOf(this.facebookUrl));
+ sb.append(", twitterUrl=").append(String.valueOf(this.twitterUrl));
+ sb.append(", linkedinUrl=").append(String.valueOf(this.linkedinUrl));
+ sb.append(", publisherType=").append(String.valueOf(this.publisherType));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(", systemTags=").append(String.valueOf(this.systemTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof PublisherSummary)) {
+ return false;
+ }
+
+ PublisherSummary other = (PublisherSummary) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.registryNamespace, other.registryNamespace)
+ && java.util.Objects.equals(this.legacyId, other.legacyId)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.description, other.description)
+ && java.util.Objects.equals(this.yearFounded, other.yearFounded)
+ && java.util.Objects.equals(this.websiteUrl, other.websiteUrl)
+ && java.util.Objects.equals(this.contactEmail, other.contactEmail)
+ && java.util.Objects.equals(this.contactPhone, other.contactPhone)
+ && java.util.Objects.equals(this.hqAddress, other.hqAddress)
+ && java.util.Objects.equals(this.logo, other.logo)
+ && java.util.Objects.equals(this.facebookUrl, other.facebookUrl)
+ && java.util.Objects.equals(this.twitterUrl, other.twitterUrl)
+ && java.util.Objects.equals(this.linkedinUrl, other.linkedinUrl)
+ && java.util.Objects.equals(this.publisherType, other.publisherType)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.id == null ? 43 : this.id.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.registryNamespace == null ? 43 : this.registryNamespace.hashCode());
+ result = (result * PRIME) + (this.legacyId == null ? 43 : this.legacyId.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.description == null ? 43 : this.description.hashCode());
+ result = (result * PRIME) + (this.yearFounded == null ? 43 : this.yearFounded.hashCode());
+ result = (result * PRIME) + (this.websiteUrl == null ? 43 : this.websiteUrl.hashCode());
+ result = (result * PRIME) + (this.contactEmail == null ? 43 : this.contactEmail.hashCode());
+ result = (result * PRIME) + (this.contactPhone == null ? 43 : this.contactPhone.hashCode());
+ result = (result * PRIME) + (this.hqAddress == null ? 43 : this.hqAddress.hashCode());
+ result = (result * PRIME) + (this.logo == null ? 43 : this.logo.hashCode());
+ result = (result * PRIME) + (this.facebookUrl == null ? 43 : this.facebookUrl.hashCode());
+ result = (result * PRIME) + (this.twitterUrl == null ? 43 : this.twitterUrl.hashCode());
+ result = (result * PRIME) + (this.linkedinUrl == null ? 43 : this.linkedinUrl.hashCode());
+ result =
+ (result * PRIME)
+ + (this.publisherType == null ? 43 : this.publisherType.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result = (result * PRIME) + (this.timeUpdated == null ? 43 : this.timeUpdated.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + (this.systemTags == null ? 43 : this.systemTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/ResourceBundle.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/ResourceBundle.java
new file mode 100644
index 00000000000..25781e33dc9
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/ResourceBundle.java
@@ -0,0 +1,338 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * Resource Bundle associated with an Offer
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = ResourceBundle.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class ResourceBundle
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"type", "quantity", "unitOfMeasurement", "resourceIds"})
+ public ResourceBundle(
+ Type type,
+ Long quantity,
+ UnitOfMeasurement unitOfMeasurement,
+ java.util.List resourceIds) {
+ super();
+ this.type = type;
+ this.quantity = quantity;
+ this.unitOfMeasurement = unitOfMeasurement;
+ this.resourceIds = resourceIds;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The type of resources in the bundle */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private Type type;
+
+ /**
+ * The type of resources in the bundle
+ *
+ * @param type the value to set
+ * @return this builder
+ */
+ public Builder type(Type type) {
+ this.type = type;
+ this.__explicitlySet__.add("type");
+ return this;
+ }
+ /** The quantity of a resources associated with the bundle */
+ @com.fasterxml.jackson.annotation.JsonProperty("quantity")
+ private Long quantity;
+
+ /**
+ * The quantity of a resources associated with the bundle
+ *
+ * @param quantity the value to set
+ * @return this builder
+ */
+ public Builder quantity(Long quantity) {
+ this.quantity = quantity;
+ this.__explicitlySet__.add("quantity");
+ return this;
+ }
+ /** The unit of measurement for the resource bundle */
+ @com.fasterxml.jackson.annotation.JsonProperty("unitOfMeasurement")
+ private UnitOfMeasurement unitOfMeasurement;
+
+ /**
+ * The unit of measurement for the resource bundle
+ *
+ * @param unitOfMeasurement the value to set
+ * @return this builder
+ */
+ public Builder unitOfMeasurement(UnitOfMeasurement unitOfMeasurement) {
+ this.unitOfMeasurement = unitOfMeasurement;
+ this.__explicitlySet__.add("unitOfMeasurement");
+ return this;
+ }
+ /** the ids of the resources in the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("resourceIds")
+ private java.util.List resourceIds;
+
+ /**
+ * the ids of the resources in the Offer
+ *
+ * @param resourceIds the value to set
+ * @return this builder
+ */
+ public Builder resourceIds(java.util.List resourceIds) {
+ this.resourceIds = resourceIds;
+ this.__explicitlySet__.add("resourceIds");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public ResourceBundle build() {
+ ResourceBundle model =
+ new ResourceBundle(
+ this.type, this.quantity, this.unitOfMeasurement, this.resourceIds);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(ResourceBundle model) {
+ if (model.wasPropertyExplicitlySet("type")) {
+ this.type(model.getType());
+ }
+ if (model.wasPropertyExplicitlySet("quantity")) {
+ this.quantity(model.getQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("unitOfMeasurement")) {
+ this.unitOfMeasurement(model.getUnitOfMeasurement());
+ }
+ if (model.wasPropertyExplicitlySet("resourceIds")) {
+ this.resourceIds(model.getResourceIds());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The type of resources in the bundle */
+ public enum Type implements com.oracle.bmc.http.internal.BmcEnum {
+ Listing("LISTING"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(Type.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (Type v : Type.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ Type(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static Type create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'Type', returning UnknownEnumValue", key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The type of resources in the bundle */
+ @com.fasterxml.jackson.annotation.JsonProperty("type")
+ private final Type type;
+
+ /**
+ * The type of resources in the bundle
+ *
+ * @return the value
+ */
+ public Type getType() {
+ return type;
+ }
+
+ /** The quantity of a resources associated with the bundle */
+ @com.fasterxml.jackson.annotation.JsonProperty("quantity")
+ private final Long quantity;
+
+ /**
+ * The quantity of a resources associated with the bundle
+ *
+ * @return the value
+ */
+ public Long getQuantity() {
+ return quantity;
+ }
+
+ /** The unit of measurement for the resource bundle */
+ public enum UnitOfMeasurement implements com.oracle.bmc.http.internal.BmcEnum {
+ OcpuPerHour("OCPU_PER_HOUR"),
+ InstancePerHour("INSTANCE_PER_HOUR"),
+ Credits("CREDITS"),
+ Instances("INSTANCES"),
+ Nodes("NODES"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(UnitOfMeasurement.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (UnitOfMeasurement v : UnitOfMeasurement.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ UnitOfMeasurement(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static UnitOfMeasurement create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'UnitOfMeasurement', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The unit of measurement for the resource bundle */
+ @com.fasterxml.jackson.annotation.JsonProperty("unitOfMeasurement")
+ private final UnitOfMeasurement unitOfMeasurement;
+
+ /**
+ * The unit of measurement for the resource bundle
+ *
+ * @return the value
+ */
+ public UnitOfMeasurement getUnitOfMeasurement() {
+ return unitOfMeasurement;
+ }
+
+ /** the ids of the resources in the Offer */
+ @com.fasterxml.jackson.annotation.JsonProperty("resourceIds")
+ private final java.util.List resourceIds;
+
+ /**
+ * the ids of the resources in the Offer
+ *
+ * @return the value
+ */
+ public java.util.List getResourceIds() {
+ return resourceIds;
+ }
+
+ @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("ResourceBundle(");
+ sb.append("super=").append(super.toString());
+ sb.append("type=").append(String.valueOf(this.type));
+ sb.append(", quantity=").append(String.valueOf(this.quantity));
+ sb.append(", unitOfMeasurement=").append(String.valueOf(this.unitOfMeasurement));
+ sb.append(", resourceIds=").append(String.valueOf(this.resourceIds));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ResourceBundle)) {
+ return false;
+ }
+
+ ResourceBundle other = (ResourceBundle) o;
+ return java.util.Objects.equals(this.type, other.type)
+ && java.util.Objects.equals(this.quantity, other.quantity)
+ && java.util.Objects.equals(this.unitOfMeasurement, other.unitOfMeasurement)
+ && java.util.Objects.equals(this.resourceIds, other.resourceIds)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.type == null ? 43 : this.type.hashCode());
+ result = (result * PRIME) + (this.quantity == null ? 43 : this.quantity.hashCode());
+ result =
+ (result * PRIME)
+ + (this.unitOfMeasurement == null ? 43 : this.unitOfMeasurement.hashCode());
+ result = (result * PRIME) + (this.resourceIds == null ? 43 : this.resourceIds.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/SellerInformation.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/SellerInformation.java
new file mode 100644
index 00000000000..d231047e023
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/SellerInformation.java
@@ -0,0 +1,164 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * The information related to the seller of an Offer
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = SellerInformation.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class SellerInformation
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"primaryContact", "additionalContacts"})
+ public SellerInformation(Contact primaryContact, java.util.List additionalContacts) {
+ super();
+ this.primaryContact = primaryContact;
+ this.additionalContacts = additionalContacts;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("primaryContact")
+ private Contact primaryContact;
+
+ public Builder primaryContact(Contact primaryContact) {
+ this.primaryContact = primaryContact;
+ this.__explicitlySet__.add("primaryContact");
+ return this;
+ }
+ /** the additional contacts associated with the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("additionalContacts")
+ private java.util.List additionalContacts;
+
+ /**
+ * the additional contacts associated with the seller
+ *
+ * @param additionalContacts the value to set
+ * @return this builder
+ */
+ public Builder additionalContacts(java.util.List additionalContacts) {
+ this.additionalContacts = additionalContacts;
+ this.__explicitlySet__.add("additionalContacts");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public SellerInformation build() {
+ SellerInformation model =
+ new SellerInformation(this.primaryContact, this.additionalContacts);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(SellerInformation model) {
+ if (model.wasPropertyExplicitlySet("primaryContact")) {
+ this.primaryContact(model.getPrimaryContact());
+ }
+ if (model.wasPropertyExplicitlySet("additionalContacts")) {
+ this.additionalContacts(model.getAdditionalContacts());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("primaryContact")
+ private final Contact primaryContact;
+
+ public Contact getPrimaryContact() {
+ return primaryContact;
+ }
+
+ /** the additional contacts associated with the seller */
+ @com.fasterxml.jackson.annotation.JsonProperty("additionalContacts")
+ private final java.util.List additionalContacts;
+
+ /**
+ * the additional contacts associated with the seller
+ *
+ * @return the value
+ */
+ public java.util.List getAdditionalContacts() {
+ return additionalContacts;
+ }
+
+ @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("SellerInformation(");
+ sb.append("super=").append(super.toString());
+ sb.append("primaryContact=").append(String.valueOf(this.primaryContact));
+ sb.append(", additionalContacts=").append(String.valueOf(this.additionalContacts));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof SellerInformation)) {
+ return false;
+ }
+
+ SellerInformation other = (SellerInformation) o;
+ return java.util.Objects.equals(this.primaryContact, other.primaryContact)
+ && java.util.Objects.equals(this.additionalContacts, other.additionalContacts)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.primaryContact == null ? 43 : this.primaryContact.hashCode());
+ result =
+ (result * PRIME)
+ + (this.additionalContacts == null
+ ? 43
+ : this.additionalContacts.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/SortOrder.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/SortOrder.java
new file mode 100644
index 00000000000..cb41b36a4ab
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/SortOrder.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/** Sort orders. */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220901")
+public enum SortOrder implements com.oracle.bmc.http.internal.BmcEnum {
+ Asc("ASC"),
+ Desc("DESC"),
+ ;
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (SortOrder v : SortOrder.values()) {
+ map.put(v.getValue(), v);
+ }
+ }
+
+ SortOrder(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static SortOrder create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ throw new IllegalArgumentException("Invalid SortOrder: " + key);
+ }
+}
diff --git a/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/UpdateOfferDetails.java b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/UpdateOfferDetails.java
new file mode 100644
index 00000000000..90ba3046600
--- /dev/null
+++ b/bmc-marketplaceprivateoffer/src/main/java/com/oracle/bmc/marketplaceprivateoffer/model/UpdateOfferDetails.java
@@ -0,0 +1,650 @@
+/**
+ * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.marketplaceprivateoffer.model;
+
+/**
+ * The information to be updated.
+ * 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: 20220901")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = UpdateOfferDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class UpdateOfferDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "displayName",
+ "buyerCompartmentId",
+ "description",
+ "internalNotes",
+ "timeStartDate",
+ "duration",
+ "timeAcceptBy",
+ "pricing",
+ "buyerInformation",
+ "sellerInformation",
+ "resourceBundles",
+ "customFields",
+ "freeformTags",
+ "definedTags"
+ })
+ public UpdateOfferDetails(
+ String displayName,
+ String buyerCompartmentId,
+ String description,
+ String internalNotes,
+ java.util.Date timeStartDate,
+ String duration,
+ java.util.Date timeAcceptBy,
+ Pricing pricing,
+ BuyerInformation buyerInformation,
+ SellerInformation sellerInformation,
+ java.util.List resourceBundles,
+ java.util.List