diff --git a/bmc-addons/bmc-resteasy-client-configurator/pom.xml b/bmc-addons/bmc-resteasy-client-configurator/pom.xml
index c63220d9a95..e8d039c202d 100644
--- a/bmc-addons/bmc-resteasy-client-configurator/pom.xml
+++ b/bmc-addons/bmc-resteasy-client-configurator/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk-addons
- 3.55.0
+ 3.55.1
../pom.xml
@@ -23,7 +23,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml b/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml
index c0618215497..83b1619480f 100644
--- a/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml
+++ b/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml
@@ -4,7 +4,7 @@
oci-java-sdk-addons
com.oracle.oci.sdk
- 3.55.0
+ 3.55.1
../pom.xml
4.0.0
@@ -39,13 +39,13 @@
com.oracle.oci.sdk
oci-java-sdk-addons-sasl
- 3.55.0
+ 3.55.1
compile
com.oracle.oci.sdk
oci-java-sdk-addons-oke-workload-identity
- 3.55.0
+ 3.55.1
compile
diff --git a/bmc-addons/bmc-sasl/pom.xml b/bmc-addons/bmc-sasl/pom.xml
index 1446ea1e3a1..0adb1e64b40 100644
--- a/bmc-addons/bmc-sasl/pom.xml
+++ b/bmc-addons/bmc-sasl/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk-addons
- 3.55.0
+ 3.55.1
../pom.xml
@@ -60,7 +60,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-addons/bmc-sse-support-jersey3/pom.xml b/bmc-addons/bmc-sse-support-jersey3/pom.xml
index 3052f5a53f1..d76a9d359ae 100644
--- a/bmc-addons/bmc-sse-support-jersey3/pom.xml
+++ b/bmc-addons/bmc-sse-support-jersey3/pom.xml
@@ -5,7 +5,7 @@
oci-java-sdk-addons
com.oracle.oci.sdk
- 3.55.0
+ 3.55.1
../pom.xml
4.0.0
@@ -150,12 +150,12 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
com.oracle.oci.sdk
oci-java-sdk-generativeaiinference
- 3.55.0
+ 3.55.1
test
@@ -164,7 +164,7 @@
but the code in it needs it. -->
com.oracle.oci.sdk
oci-java-sdk-common-httpclient-jersey3
- 3.55.0
+ 3.55.1
diff --git a/bmc-addons/bmc-sse-support/pom.xml b/bmc-addons/bmc-sse-support/pom.xml
index 4824b7ad983..29ab3932dbc 100644
--- a/bmc-addons/bmc-sse-support/pom.xml
+++ b/bmc-addons/bmc-sse-support/pom.xml
@@ -5,7 +5,7 @@
oci-java-sdk-addons
com.oracle.oci.sdk
- 3.55.0
+ 3.55.1
../pom.xml
4.0.0
@@ -150,12 +150,12 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
com.oracle.oci.sdk
oci-java-sdk-generativeaiinference
- 3.55.0
+ 3.55.1
test
@@ -164,7 +164,7 @@
but the code in it needs it. -->
com.oracle.oci.sdk
oci-java-sdk-common-httpclient-jersey
- 3.55.0
+ 3.55.1
diff --git a/bmc-addons/pom.xml b/bmc-addons/pom.xml
index 019abafac5e..5901542ac41 100644
--- a/bmc-addons/pom.xml
+++ b/bmc-addons/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
diff --git a/bmc-adm/pom.xml b/bmc-adm/pom.xml
index 54d032e3476..14d9536911b 100644
--- a/bmc-adm/pom.xml
+++ b/bmc-adm/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-adm
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-aianomalydetection/pom.xml b/bmc-aianomalydetection/pom.xml
index 064122830e3..c8cc2db88b8 100644
--- a/bmc-aianomalydetection/pom.xml
+++ b/bmc-aianomalydetection/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-aianomalydetection
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-aidocument/pom.xml b/bmc-aidocument/pom.xml
index 8fa62c9042a..4efd527974b 100644
--- a/bmc-aidocument/pom.xml
+++ b/bmc-aidocument/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-aidocument
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-ailanguage/pom.xml b/bmc-ailanguage/pom.xml
index 1a23f8d1cd6..f09cef6a106 100644
--- a/bmc-ailanguage/pom.xml
+++ b/bmc-ailanguage/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-ailanguage
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-aispeech/pom.xml b/bmc-aispeech/pom.xml
index b497ad33d75..26c87d9e2c7 100644
--- a/bmc-aispeech/pom.xml
+++ b/bmc-aispeech/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-aispeech
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-aivision/pom.xml b/bmc-aivision/pom.xml
index d2f497c3991..33e6191e83c 100644
--- a/bmc-aivision/pom.xml
+++ b/bmc-aivision/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-aivision
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVision.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVision.java
index 557aab39736..4de791011d4 100644
--- a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVision.java
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVision.java
@@ -128,6 +128,21 @@ public interface AIServiceVision extends AutoCloseable {
*/
CancelImageJobResponse cancelImageJob(CancelImageJobRequest request);
+ /**
+ * Cancel a video analysis job.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ * Example: Click here to see how to use CancelVideoJob API.
+ */
+ CancelVideoJobResponse cancelVideoJob(CancelVideoJobRequest request);
+
/**
* Cancel the work request with the given ID.
*
@@ -240,6 +255,21 @@ ChangeProjectCompartmentResponse changeProjectCompartment(
*/
CreateProjectResponse createProject(CreateProjectRequest request);
+ /**
+ * Create a video analysis job with given inputs and features.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use CreateVideoJob API.
+ */
+ CreateVideoJobResponse createVideoJob(CreateVideoJobRequest request);
+
/**
* Delete a model by identifier.
*
@@ -330,6 +360,21 @@ ChangeProjectCompartmentResponse changeProjectCompartment(
*/
GetProjectResponse getProject(GetProjectRequest request);
+ /**
+ * Get details of a video analysis job.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use GetVideoJob API.
+ */
+ GetVideoJobResponse getVideoJob(GetVideoJobRequest request);
+
/**
* Gets the status of the work request with the given ID.
*
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsync.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsync.java
index 066d1ed8931..90b1b567726 100644
--- a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsync.java
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsync.java
@@ -125,6 +125,21 @@ java.util.concurrent.Future cancelImageJob(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Cancel a video analysis job.
+ *
+ * @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 cancelVideoJob(
+ CancelVideoJobRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
/**
* Cancel the work request with the given ID.
*
@@ -235,6 +250,21 @@ java.util.concurrent.Future createProject(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Create a video analysis job with given inputs and features.
+ *
+ * @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 createVideoJob(
+ CreateVideoJobRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
/**
* Delete a model by identifier.
*
@@ -321,6 +351,20 @@ java.util.concurrent.Future getProject(
GetProjectRequest request,
com.oracle.bmc.responses.AsyncHandler handler);
+ /**
+ * Get details of a video analysis job.
+ *
+ * @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 getVideoJob(
+ GetVideoJobRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
/**
* Gets the status of the work request with the given ID.
*
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsyncClient.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsyncClient.java
index 0aa9a181ef4..377d33fa021 100644
--- a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsyncClient.java
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionAsyncClient.java
@@ -218,6 +218,36 @@ public java.util.concurrent.Future cancelImageJob(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future cancelVideoJob(
+ CancelVideoJobRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CancelVideoJobRequest, CancelVideoJobResponse>
+ handler) {
+
+ Validate.notBlank(request.getVideoJobId(), "videoJobId must not be blank");
+
+ return clientCall(request, CancelVideoJobResponse::builder)
+ .logger(LOG, "cancelVideoJob")
+ .serviceDetails(
+ "AIServiceVision",
+ "CancelVideoJob",
+ "https://docs.oracle.com/iaas/api/#/en/vision/20220125/VideoJob/CancelVideoJob")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CancelVideoJobRequest::builder)
+ .basePath("/20220125")
+ .appendPathParam("videoJobs")
+ .appendPathParam(request.getVideoJobId())
+ .appendPathParam("actions")
+ .appendPathParam("cancel")
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-request-id", CancelVideoJobResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future cancelWorkRequest(
CancelWorkRequestRequest request,
@@ -437,6 +467,38 @@ public java.util.concurrent.Future createProject(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future createVideoJob(
+ CreateVideoJobRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateVideoJobRequest, CreateVideoJobResponse>
+ handler) {
+ Objects.requireNonNull(
+ request.getCreateVideoJobDetails(), "createVideoJobDetails is required");
+
+ return clientCall(request, CreateVideoJobResponse::builder)
+ .logger(LOG, "createVideoJob")
+ .serviceDetails(
+ "AIServiceVision",
+ "CreateVideoJob",
+ "https://docs.oracle.com/iaas/api/#/en/vision/20220125/VideoJob/CreateVideoJob")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateVideoJobRequest::builder)
+ .basePath("/20220125")
+ .appendPathParam("videoJobs")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.aivision.model.VideoJob.class,
+ CreateVideoJobResponse.Builder::videoJob)
+ .handleResponseHeaderString("etag", CreateVideoJobResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateVideoJobResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future deleteModel(
DeleteModelRequest request,
@@ -615,6 +677,36 @@ public java.util.concurrent.Future getProject(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future getVideoJob(
+ GetVideoJobRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getVideoJobId(), "videoJobId must not be blank");
+
+ return clientCall(request, GetVideoJobResponse::builder)
+ .logger(LOG, "getVideoJob")
+ .serviceDetails(
+ "AIServiceVision",
+ "GetVideoJob",
+ "https://docs.oracle.com/iaas/api/#/en/vision/20220125/VideoJob/GetVideoJob")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetVideoJobRequest::builder)
+ .basePath("/20220125")
+ .appendPathParam("videoJobs")
+ .appendPathParam(request.getVideoJobId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.aivision.model.VideoJob.class,
+ GetVideoJobResponse.Builder::videoJob)
+ .handleResponseHeaderString("etag", GetVideoJobResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetVideoJobResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future getWorkRequest(
GetWorkRequestRequest request,
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionClient.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionClient.java
index 8dbbfd664b2..9918441ebed 100644
--- a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionClient.java
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionClient.java
@@ -232,6 +232,32 @@ public CancelImageJobResponse cancelImageJob(CancelImageJobRequest request) {
.callSync();
}
+ @Override
+ public CancelVideoJobResponse cancelVideoJob(CancelVideoJobRequest request) {
+
+ Validate.notBlank(request.getVideoJobId(), "videoJobId must not be blank");
+
+ return clientCall(request, CancelVideoJobResponse::builder)
+ .logger(LOG, "cancelVideoJob")
+ .serviceDetails(
+ "AIServiceVision",
+ "CancelVideoJob",
+ "https://docs.oracle.com/iaas/api/#/en/vision/20220125/VideoJob/CancelVideoJob")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CancelVideoJobRequest::builder)
+ .basePath("/20220125")
+ .appendPathParam("videoJobs")
+ .appendPathParam(request.getVideoJobId())
+ .appendPathParam("actions")
+ .appendPathParam("cancel")
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-request-id", CancelVideoJobResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public CancelWorkRequestResponse cancelWorkRequest(CancelWorkRequestRequest request) {
@@ -427,6 +453,34 @@ public CreateProjectResponse createProject(CreateProjectRequest request) {
.callSync();
}
+ @Override
+ public CreateVideoJobResponse createVideoJob(CreateVideoJobRequest request) {
+ Objects.requireNonNull(
+ request.getCreateVideoJobDetails(), "createVideoJobDetails is required");
+
+ return clientCall(request, CreateVideoJobResponse::builder)
+ .logger(LOG, "createVideoJob")
+ .serviceDetails(
+ "AIServiceVision",
+ "CreateVideoJob",
+ "https://docs.oracle.com/iaas/api/#/en/vision/20220125/VideoJob/CreateVideoJob")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateVideoJobRequest::builder)
+ .basePath("/20220125")
+ .appendPathParam("videoJobs")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.aivision.model.VideoJob.class,
+ CreateVideoJobResponse.Builder::videoJob)
+ .handleResponseHeaderString("etag", CreateVideoJobResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateVideoJobResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public DeleteModelResponse deleteModel(DeleteModelRequest request) {
@@ -586,6 +640,33 @@ public GetProjectResponse getProject(GetProjectRequest request) {
.callSync();
}
+ @Override
+ public GetVideoJobResponse getVideoJob(GetVideoJobRequest request) {
+
+ Validate.notBlank(request.getVideoJobId(), "videoJobId must not be blank");
+
+ return clientCall(request, GetVideoJobResponse::builder)
+ .logger(LOG, "getVideoJob")
+ .serviceDetails(
+ "AIServiceVision",
+ "GetVideoJob",
+ "https://docs.oracle.com/iaas/api/#/en/vision/20220125/VideoJob/GetVideoJob")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetVideoJobRequest::builder)
+ .basePath("/20220125")
+ .appendPathParam("videoJobs")
+ .appendPathParam(request.getVideoJobId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.aivision.model.VideoJob.class,
+ GetVideoJobResponse.Builder::videoJob)
+ .handleResponseHeaderString("etag", GetVideoJobResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetVideoJobResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request) {
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionWaiters.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionWaiters.java
index 6e2f0a7672f..fc87b65f26d 100644
--- a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionWaiters.java
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/AIServiceVisionWaiters.java
@@ -425,6 +425,104 @@ public boolean test(GetProjectResponse response) {
request);
}
+ /**
+ * 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 forVideoJob(
+ GetVideoJobRequest request,
+ com.oracle.bmc.aivision.model.VideoJob.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 forVideoJob(
+ 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 forVideoJob(
+ GetVideoJobRequest request,
+ com.oracle.bmc.aivision.model.VideoJob.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 forVideoJob(
+ 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 forVideoJob(
+ GetVideoJobRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.aivision.model.VideoJob.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 forVideoJob(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for VideoJob.
+ private com.oracle.bmc.waiter.Waiter forVideoJob(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetVideoJobRequest request,
+ final com.oracle.bmc.aivision.model.VideoJob.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 GetVideoJobResponse apply(GetVideoJobRequest request) {
+ return client.getVideoJob(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetVideoJobResponse response) {
+ return targetStatesSet.contains(
+ response.getVideoJob().getLifecycleState());
+ }
+ },
+ false),
+ request);
+ }
+
/**
* Creates a new {@link com.oracle.bmc.waiter.Waiter} using default configuration.
*
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/AnalyzeVideoResult.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/AnalyzeVideoResult.java
new file mode 100644
index 00000000000..6c38a2d8682
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/AnalyzeVideoResult.java
@@ -0,0 +1,621 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video analysis results.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = AnalyzeVideoResult.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class AnalyzeVideoResult
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "videoMetadata",
+ "videoLabels",
+ "videoObjects",
+ "videoTrackedObjects",
+ "videoText",
+ "videoFaces",
+ "ontologyClasses",
+ "labelDetectionModelVersion",
+ "objectDetectionModelVersion",
+ "objectTrackingModelVersion",
+ "textDetectionModelVersion",
+ "faceDetectionModelVersion",
+ "errors"
+ })
+ public AnalyzeVideoResult(
+ VideoMetadata videoMetadata,
+ java.util.List videoLabels,
+ java.util.List videoObjects,
+ java.util.List videoTrackedObjects,
+ java.util.List videoText,
+ java.util.List videoFaces,
+ java.util.List ontologyClasses,
+ String labelDetectionModelVersion,
+ String objectDetectionModelVersion,
+ String objectTrackingModelVersion,
+ String textDetectionModelVersion,
+ String faceDetectionModelVersion,
+ java.util.List errors) {
+ super();
+ this.videoMetadata = videoMetadata;
+ this.videoLabels = videoLabels;
+ this.videoObjects = videoObjects;
+ this.videoTrackedObjects = videoTrackedObjects;
+ this.videoText = videoText;
+ this.videoFaces = videoFaces;
+ this.ontologyClasses = ontologyClasses;
+ this.labelDetectionModelVersion = labelDetectionModelVersion;
+ this.objectDetectionModelVersion = objectDetectionModelVersion;
+ this.objectTrackingModelVersion = objectTrackingModelVersion;
+ this.textDetectionModelVersion = textDetectionModelVersion;
+ this.faceDetectionModelVersion = faceDetectionModelVersion;
+ this.errors = errors;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("videoMetadata")
+ private VideoMetadata videoMetadata;
+
+ public Builder videoMetadata(VideoMetadata videoMetadata) {
+ this.videoMetadata = videoMetadata;
+ this.__explicitlySet__.add("videoMetadata");
+ return this;
+ }
+ /** Detected labels in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoLabels")
+ private java.util.List videoLabels;
+
+ /**
+ * Detected labels in a video.
+ *
+ * @param videoLabels the value to set
+ * @return this builder
+ */
+ public Builder videoLabels(java.util.List videoLabels) {
+ this.videoLabels = videoLabels;
+ this.__explicitlySet__.add("videoLabels");
+ return this;
+ }
+ /** Detected objects in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoObjects")
+ private java.util.List videoObjects;
+
+ /**
+ * Detected objects in a video.
+ *
+ * @param videoObjects the value to set
+ * @return this builder
+ */
+ public Builder videoObjects(java.util.List videoObjects) {
+ this.videoObjects = videoObjects;
+ this.__explicitlySet__.add("videoObjects");
+ return this;
+ }
+ /** Tracked objects in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoTrackedObjects")
+ private java.util.List videoTrackedObjects;
+
+ /**
+ * Tracked objects in a video.
+ *
+ * @param videoTrackedObjects the value to set
+ * @return this builder
+ */
+ public Builder videoTrackedObjects(java.util.List videoTrackedObjects) {
+ this.videoTrackedObjects = videoTrackedObjects;
+ this.__explicitlySet__.add("videoTrackedObjects");
+ return this;
+ }
+ /** Detected text in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoText")
+ private java.util.List videoText;
+
+ /**
+ * Detected text in a video.
+ *
+ * @param videoText the value to set
+ * @return this builder
+ */
+ public Builder videoText(java.util.List videoText) {
+ this.videoText = videoText;
+ this.__explicitlySet__.add("videoText");
+ return this;
+ }
+ /** Detected faces in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoFaces")
+ private java.util.List videoFaces;
+
+ /**
+ * Detected faces in a video.
+ *
+ * @param videoFaces the value to set
+ * @return this builder
+ */
+ public Builder videoFaces(java.util.List videoFaces) {
+ this.videoFaces = videoFaces;
+ this.__explicitlySet__.add("videoFaces");
+ return this;
+ }
+ /** The ontologyClasses of video labels. */
+ @com.fasterxml.jackson.annotation.JsonProperty("ontologyClasses")
+ private java.util.List ontologyClasses;
+
+ /**
+ * The ontologyClasses of video labels.
+ *
+ * @param ontologyClasses the value to set
+ * @return this builder
+ */
+ public Builder ontologyClasses(java.util.List ontologyClasses) {
+ this.ontologyClasses = ontologyClasses;
+ this.__explicitlySet__.add("ontologyClasses");
+ return this;
+ }
+ /** Label Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("labelDetectionModelVersion")
+ private String labelDetectionModelVersion;
+
+ /**
+ * Label Detection model version.
+ *
+ * @param labelDetectionModelVersion the value to set
+ * @return this builder
+ */
+ public Builder labelDetectionModelVersion(String labelDetectionModelVersion) {
+ this.labelDetectionModelVersion = labelDetectionModelVersion;
+ this.__explicitlySet__.add("labelDetectionModelVersion");
+ return this;
+ }
+ /** Object Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("objectDetectionModelVersion")
+ private String objectDetectionModelVersion;
+
+ /**
+ * Object Detection model version.
+ *
+ * @param objectDetectionModelVersion the value to set
+ * @return this builder
+ */
+ public Builder objectDetectionModelVersion(String objectDetectionModelVersion) {
+ this.objectDetectionModelVersion = objectDetectionModelVersion;
+ this.__explicitlySet__.add("objectDetectionModelVersion");
+ return this;
+ }
+ /** Object Tracking model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("objectTrackingModelVersion")
+ private String objectTrackingModelVersion;
+
+ /**
+ * Object Tracking model version.
+ *
+ * @param objectTrackingModelVersion the value to set
+ * @return this builder
+ */
+ public Builder objectTrackingModelVersion(String objectTrackingModelVersion) {
+ this.objectTrackingModelVersion = objectTrackingModelVersion;
+ this.__explicitlySet__.add("objectTrackingModelVersion");
+ return this;
+ }
+ /** Text Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("textDetectionModelVersion")
+ private String textDetectionModelVersion;
+
+ /**
+ * Text Detection model version.
+ *
+ * @param textDetectionModelVersion the value to set
+ * @return this builder
+ */
+ public Builder textDetectionModelVersion(String textDetectionModelVersion) {
+ this.textDetectionModelVersion = textDetectionModelVersion;
+ this.__explicitlySet__.add("textDetectionModelVersion");
+ return this;
+ }
+ /** Face Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("faceDetectionModelVersion")
+ private String faceDetectionModelVersion;
+
+ /**
+ * Face Detection model version.
+ *
+ * @param faceDetectionModelVersion the value to set
+ * @return this builder
+ */
+ public Builder faceDetectionModelVersion(String faceDetectionModelVersion) {
+ this.faceDetectionModelVersion = faceDetectionModelVersion;
+ this.__explicitlySet__.add("faceDetectionModelVersion");
+ return this;
+ }
+ /** Array of possible errors. */
+ @com.fasterxml.jackson.annotation.JsonProperty("errors")
+ private java.util.List errors;
+
+ /**
+ * Array of possible errors.
+ *
+ * @param errors the value to set
+ * @return this builder
+ */
+ public Builder errors(java.util.List errors) {
+ this.errors = errors;
+ this.__explicitlySet__.add("errors");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public AnalyzeVideoResult build() {
+ AnalyzeVideoResult model =
+ new AnalyzeVideoResult(
+ this.videoMetadata,
+ this.videoLabels,
+ this.videoObjects,
+ this.videoTrackedObjects,
+ this.videoText,
+ this.videoFaces,
+ this.ontologyClasses,
+ this.labelDetectionModelVersion,
+ this.objectDetectionModelVersion,
+ this.objectTrackingModelVersion,
+ this.textDetectionModelVersion,
+ this.faceDetectionModelVersion,
+ this.errors);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(AnalyzeVideoResult model) {
+ if (model.wasPropertyExplicitlySet("videoMetadata")) {
+ this.videoMetadata(model.getVideoMetadata());
+ }
+ if (model.wasPropertyExplicitlySet("videoLabels")) {
+ this.videoLabels(model.getVideoLabels());
+ }
+ if (model.wasPropertyExplicitlySet("videoObjects")) {
+ this.videoObjects(model.getVideoObjects());
+ }
+ if (model.wasPropertyExplicitlySet("videoTrackedObjects")) {
+ this.videoTrackedObjects(model.getVideoTrackedObjects());
+ }
+ if (model.wasPropertyExplicitlySet("videoText")) {
+ this.videoText(model.getVideoText());
+ }
+ if (model.wasPropertyExplicitlySet("videoFaces")) {
+ this.videoFaces(model.getVideoFaces());
+ }
+ if (model.wasPropertyExplicitlySet("ontologyClasses")) {
+ this.ontologyClasses(model.getOntologyClasses());
+ }
+ if (model.wasPropertyExplicitlySet("labelDetectionModelVersion")) {
+ this.labelDetectionModelVersion(model.getLabelDetectionModelVersion());
+ }
+ if (model.wasPropertyExplicitlySet("objectDetectionModelVersion")) {
+ this.objectDetectionModelVersion(model.getObjectDetectionModelVersion());
+ }
+ if (model.wasPropertyExplicitlySet("objectTrackingModelVersion")) {
+ this.objectTrackingModelVersion(model.getObjectTrackingModelVersion());
+ }
+ if (model.wasPropertyExplicitlySet("textDetectionModelVersion")) {
+ this.textDetectionModelVersion(model.getTextDetectionModelVersion());
+ }
+ if (model.wasPropertyExplicitlySet("faceDetectionModelVersion")) {
+ this.faceDetectionModelVersion(model.getFaceDetectionModelVersion());
+ }
+ if (model.wasPropertyExplicitlySet("errors")) {
+ this.errors(model.getErrors());
+ }
+ 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("videoMetadata")
+ private final VideoMetadata videoMetadata;
+
+ public VideoMetadata getVideoMetadata() {
+ return videoMetadata;
+ }
+
+ /** Detected labels in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoLabels")
+ private final java.util.List videoLabels;
+
+ /**
+ * Detected labels in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getVideoLabels() {
+ return videoLabels;
+ }
+
+ /** Detected objects in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoObjects")
+ private final java.util.List videoObjects;
+
+ /**
+ * Detected objects in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getVideoObjects() {
+ return videoObjects;
+ }
+
+ /** Tracked objects in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoTrackedObjects")
+ private final java.util.List videoTrackedObjects;
+
+ /**
+ * Tracked objects in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getVideoTrackedObjects() {
+ return videoTrackedObjects;
+ }
+
+ /** Detected text in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoText")
+ private final java.util.List videoText;
+
+ /**
+ * Detected text in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getVideoText() {
+ return videoText;
+ }
+
+ /** Detected faces in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("videoFaces")
+ private final java.util.List videoFaces;
+
+ /**
+ * Detected faces in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getVideoFaces() {
+ return videoFaces;
+ }
+
+ /** The ontologyClasses of video labels. */
+ @com.fasterxml.jackson.annotation.JsonProperty("ontologyClasses")
+ private final java.util.List ontologyClasses;
+
+ /**
+ * The ontologyClasses of video labels.
+ *
+ * @return the value
+ */
+ public java.util.List getOntologyClasses() {
+ return ontologyClasses;
+ }
+
+ /** Label Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("labelDetectionModelVersion")
+ private final String labelDetectionModelVersion;
+
+ /**
+ * Label Detection model version.
+ *
+ * @return the value
+ */
+ public String getLabelDetectionModelVersion() {
+ return labelDetectionModelVersion;
+ }
+
+ /** Object Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("objectDetectionModelVersion")
+ private final String objectDetectionModelVersion;
+
+ /**
+ * Object Detection model version.
+ *
+ * @return the value
+ */
+ public String getObjectDetectionModelVersion() {
+ return objectDetectionModelVersion;
+ }
+
+ /** Object Tracking model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("objectTrackingModelVersion")
+ private final String objectTrackingModelVersion;
+
+ /**
+ * Object Tracking model version.
+ *
+ * @return the value
+ */
+ public String getObjectTrackingModelVersion() {
+ return objectTrackingModelVersion;
+ }
+
+ /** Text Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("textDetectionModelVersion")
+ private final String textDetectionModelVersion;
+
+ /**
+ * Text Detection model version.
+ *
+ * @return the value
+ */
+ public String getTextDetectionModelVersion() {
+ return textDetectionModelVersion;
+ }
+
+ /** Face Detection model version. */
+ @com.fasterxml.jackson.annotation.JsonProperty("faceDetectionModelVersion")
+ private final String faceDetectionModelVersion;
+
+ /**
+ * Face Detection model version.
+ *
+ * @return the value
+ */
+ public String getFaceDetectionModelVersion() {
+ return faceDetectionModelVersion;
+ }
+
+ /** Array of possible errors. */
+ @com.fasterxml.jackson.annotation.JsonProperty("errors")
+ private final java.util.List errors;
+
+ /**
+ * Array of possible errors.
+ *
+ * @return the value
+ */
+ public java.util.List getErrors() {
+ return errors;
+ }
+
+ @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("AnalyzeVideoResult(");
+ sb.append("super=").append(super.toString());
+ sb.append("videoMetadata=").append(String.valueOf(this.videoMetadata));
+ sb.append(", videoLabels=").append(String.valueOf(this.videoLabels));
+ sb.append(", videoObjects=").append(String.valueOf(this.videoObjects));
+ sb.append(", videoTrackedObjects=").append(String.valueOf(this.videoTrackedObjects));
+ sb.append(", videoText=").append(String.valueOf(this.videoText));
+ sb.append(", videoFaces=").append(String.valueOf(this.videoFaces));
+ sb.append(", ontologyClasses=").append(String.valueOf(this.ontologyClasses));
+ sb.append(", labelDetectionModelVersion=")
+ .append(String.valueOf(this.labelDetectionModelVersion));
+ sb.append(", objectDetectionModelVersion=")
+ .append(String.valueOf(this.objectDetectionModelVersion));
+ sb.append(", objectTrackingModelVersion=")
+ .append(String.valueOf(this.objectTrackingModelVersion));
+ sb.append(", textDetectionModelVersion=")
+ .append(String.valueOf(this.textDetectionModelVersion));
+ sb.append(", faceDetectionModelVersion=")
+ .append(String.valueOf(this.faceDetectionModelVersion));
+ sb.append(", errors=").append(String.valueOf(this.errors));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof AnalyzeVideoResult)) {
+ return false;
+ }
+
+ AnalyzeVideoResult other = (AnalyzeVideoResult) o;
+ return java.util.Objects.equals(this.videoMetadata, other.videoMetadata)
+ && java.util.Objects.equals(this.videoLabels, other.videoLabels)
+ && java.util.Objects.equals(this.videoObjects, other.videoObjects)
+ && java.util.Objects.equals(this.videoTrackedObjects, other.videoTrackedObjects)
+ && java.util.Objects.equals(this.videoText, other.videoText)
+ && java.util.Objects.equals(this.videoFaces, other.videoFaces)
+ && java.util.Objects.equals(this.ontologyClasses, other.ontologyClasses)
+ && java.util.Objects.equals(
+ this.labelDetectionModelVersion, other.labelDetectionModelVersion)
+ && java.util.Objects.equals(
+ this.objectDetectionModelVersion, other.objectDetectionModelVersion)
+ && java.util.Objects.equals(
+ this.objectTrackingModelVersion, other.objectTrackingModelVersion)
+ && java.util.Objects.equals(
+ this.textDetectionModelVersion, other.textDetectionModelVersion)
+ && java.util.Objects.equals(
+ this.faceDetectionModelVersion, other.faceDetectionModelVersion)
+ && java.util.Objects.equals(this.errors, other.errors)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.videoMetadata == null ? 43 : this.videoMetadata.hashCode());
+ result = (result * PRIME) + (this.videoLabels == null ? 43 : this.videoLabels.hashCode());
+ result = (result * PRIME) + (this.videoObjects == null ? 43 : this.videoObjects.hashCode());
+ result =
+ (result * PRIME)
+ + (this.videoTrackedObjects == null
+ ? 43
+ : this.videoTrackedObjects.hashCode());
+ result = (result * PRIME) + (this.videoText == null ? 43 : this.videoText.hashCode());
+ result = (result * PRIME) + (this.videoFaces == null ? 43 : this.videoFaces.hashCode());
+ result =
+ (result * PRIME)
+ + (this.ontologyClasses == null ? 43 : this.ontologyClasses.hashCode());
+ result =
+ (result * PRIME)
+ + (this.labelDetectionModelVersion == null
+ ? 43
+ : this.labelDetectionModelVersion.hashCode());
+ result =
+ (result * PRIME)
+ + (this.objectDetectionModelVersion == null
+ ? 43
+ : this.objectDetectionModelVersion.hashCode());
+ result =
+ (result * PRIME)
+ + (this.objectTrackingModelVersion == null
+ ? 43
+ : this.objectTrackingModelVersion.hashCode());
+ result =
+ (result * PRIME)
+ + (this.textDetectionModelVersion == null
+ ? 43
+ : this.textDetectionModelVersion.hashCode());
+ result =
+ (result * PRIME)
+ + (this.faceDetectionModelVersion == null
+ ? 43
+ : this.faceDetectionModelVersion.hashCode());
+ result = (result * PRIME) + (this.errors == null ? 43 : this.errors.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/CreateVideoJobDetails.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/CreateVideoJobDetails.java
new file mode 100644
index 00000000000..5b82e9e3095
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/CreateVideoJobDetails.java
@@ -0,0 +1,366 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Details about the video analysis.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateVideoJobDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateVideoJobDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "inputLocation",
+ "features",
+ "outputLocation",
+ "compartmentId",
+ "displayName",
+ "freeformTags",
+ "definedTags"
+ })
+ public CreateVideoJobDetails(
+ InputLocation inputLocation,
+ java.util.List features,
+ OutputLocation outputLocation,
+ String compartmentId,
+ String displayName,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.inputLocation = inputLocation;
+ this.features = features;
+ this.outputLocation = outputLocation;
+ this.compartmentId = compartmentId;
+ this.displayName = displayName;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("inputLocation")
+ private InputLocation inputLocation;
+
+ public Builder inputLocation(InputLocation inputLocation) {
+ this.inputLocation = inputLocation;
+ this.__explicitlySet__.add("inputLocation");
+ return this;
+ }
+ /** a list of video analysis features. */
+ @com.fasterxml.jackson.annotation.JsonProperty("features")
+ private java.util.List features;
+
+ /**
+ * a list of video analysis features.
+ *
+ * @param features the value to set
+ * @return this builder
+ */
+ public Builder features(java.util.List features) {
+ this.features = features;
+ this.__explicitlySet__.add("features");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("outputLocation")
+ private OutputLocation outputLocation;
+
+ public Builder outputLocation(OutputLocation outputLocation) {
+ this.outputLocation = outputLocation;
+ this.__explicitlySet__.add("outputLocation");
+ return this;
+ }
+ /** Compartment identifier from the requester. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * Compartment identifier from the requester.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /** Video job display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * Video job display name.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For 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. For
+ * 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. For
+ * 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 CreateVideoJobDetails build() {
+ CreateVideoJobDetails model =
+ new CreateVideoJobDetails(
+ this.inputLocation,
+ this.features,
+ this.outputLocation,
+ this.compartmentId,
+ this.displayName,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateVideoJobDetails model) {
+ if (model.wasPropertyExplicitlySet("inputLocation")) {
+ this.inputLocation(model.getInputLocation());
+ }
+ if (model.wasPropertyExplicitlySet("features")) {
+ this.features(model.getFeatures());
+ }
+ if (model.wasPropertyExplicitlySet("outputLocation")) {
+ this.outputLocation(model.getOutputLocation());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ 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);
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("inputLocation")
+ private final InputLocation inputLocation;
+
+ public InputLocation getInputLocation() {
+ return inputLocation;
+ }
+
+ /** a list of video analysis features. */
+ @com.fasterxml.jackson.annotation.JsonProperty("features")
+ private final java.util.List features;
+
+ /**
+ * a list of video analysis features.
+ *
+ * @return the value
+ */
+ public java.util.List getFeatures() {
+ return features;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("outputLocation")
+ private final OutputLocation outputLocation;
+
+ public OutputLocation getOutputLocation() {
+ return outputLocation;
+ }
+
+ /** Compartment identifier from the requester. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * Compartment identifier from the requester.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /** Video job display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * Video job display name.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For 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. For
+ * 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. For
+ * 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("CreateVideoJobDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("inputLocation=").append(String.valueOf(this.inputLocation));
+ sb.append(", features=").append(String.valueOf(this.features));
+ sb.append(", outputLocation=").append(String.valueOf(this.outputLocation));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ 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 CreateVideoJobDetails)) {
+ return false;
+ }
+
+ CreateVideoJobDetails other = (CreateVideoJobDetails) o;
+ return java.util.Objects.equals(this.inputLocation, other.inputLocation)
+ && java.util.Objects.equals(this.features, other.features)
+ && java.util.Objects.equals(this.outputLocation, other.outputLocation)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && 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.inputLocation == null ? 43 : this.inputLocation.hashCode());
+ result = (result * PRIME) + (this.features == null ? 43 : this.features.hashCode());
+ result =
+ (result * PRIME)
+ + (this.outputLocation == null ? 43 : this.outputLocation.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/ObjectProperty.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/ObjectProperty.java
new file mode 100644
index 00000000000..fa33abb767d
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/ObjectProperty.java
@@ -0,0 +1,194 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A property of a tracked object in a frame.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = ObjectProperty.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class ObjectProperty
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"name", "confidence", "boundingPolygon"})
+ public ObjectProperty(String name, Float confidence, BoundingPolygon boundingPolygon) {
+ super();
+ this.name = name;
+ this.confidence = confidence;
+ this.boundingPolygon = boundingPolygon;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Property name */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * Property name
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private BoundingPolygon boundingPolygon;
+
+ public Builder boundingPolygon(BoundingPolygon boundingPolygon) {
+ this.boundingPolygon = boundingPolygon;
+ this.__explicitlySet__.add("boundingPolygon");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public ObjectProperty build() {
+ ObjectProperty model =
+ new ObjectProperty(this.name, this.confidence, this.boundingPolygon);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(ObjectProperty model) {
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("boundingPolygon")) {
+ this.boundingPolygon(model.getBoundingPolygon());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Property name */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * Property name
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private final BoundingPolygon boundingPolygon;
+
+ public BoundingPolygon getBoundingPolygon() {
+ return boundingPolygon;
+ }
+
+ @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("ObjectProperty(");
+ sb.append("super=").append(super.toString());
+ sb.append("name=").append(String.valueOf(this.name));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", boundingPolygon=").append(String.valueOf(this.boundingPolygon));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ObjectProperty)) {
+ return false;
+ }
+
+ ObjectProperty other = (ObjectProperty) o;
+ return java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.boundingPolygon, other.boundingPolygon)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result =
+ (result * PRIME)
+ + (this.boundingPolygon == null ? 43 : this.boundingPolygon.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFace.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFace.java
new file mode 100644
index 00000000000..d4fa954a782
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFace.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.aivision.model;
+
+/**
+ * Detected face in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoFace.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoFace extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"segments"})
+ public VideoFace(java.util.List segments) {
+ super();
+ this.segments = segments;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Face segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private java.util.List segments;
+
+ /**
+ * Face segments in a video.
+ *
+ * @param segments the value to set
+ * @return this builder
+ */
+ public Builder segments(java.util.List segments) {
+ this.segments = segments;
+ this.__explicitlySet__.add("segments");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoFace build() {
+ VideoFace model = new VideoFace(this.segments);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoFace model) {
+ if (model.wasPropertyExplicitlySet("segments")) {
+ this.segments(model.getSegments());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Face segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private final java.util.List segments;
+
+ /**
+ * Face segments in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getSegments() {
+ return segments;
+ }
+
+ @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("VideoFace(");
+ sb.append("super=").append(super.toString());
+ sb.append("segments=").append(String.valueOf(this.segments));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoFace)) {
+ return false;
+ }
+
+ VideoFace other = (VideoFace) o;
+ return java.util.Objects.equals(this.segments, other.segments) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.segments == null ? 43 : this.segments.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceDetectionFeature.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceDetectionFeature.java
new file mode 100644
index 00000000000..9abac85b223
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceDetectionFeature.java
@@ -0,0 +1,222 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video face detection feature
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoFaceDetectionFeature.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "featureType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoFaceDetectionFeature extends VideoFeature {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The maximum number of results per frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private Integer maxResults;
+
+ /**
+ * The maximum number of results per frame to return.
+ *
+ * @param maxResults the value to set
+ * @return this builder
+ */
+ public Builder maxResults(Integer maxResults) {
+ this.maxResults = maxResults;
+ this.__explicitlySet__.add("maxResults");
+ return this;
+ }
+ /** Whether or not return face landmarks. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isLandmarkRequired")
+ private Boolean isLandmarkRequired;
+
+ /**
+ * Whether or not return face landmarks.
+ *
+ * @param isLandmarkRequired the value to set
+ * @return this builder
+ */
+ public Builder isLandmarkRequired(Boolean isLandmarkRequired) {
+ this.isLandmarkRequired = isLandmarkRequired;
+ this.__explicitlySet__.add("isLandmarkRequired");
+ return this;
+ }
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @param minConfidence the value to set
+ * @return this builder
+ */
+ public Builder minConfidence(Float minConfidence) {
+ this.minConfidence = minConfidence;
+ this.__explicitlySet__.add("minConfidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoFaceDetectionFeature build() {
+ VideoFaceDetectionFeature model =
+ new VideoFaceDetectionFeature(
+ this.maxResults, this.isLandmarkRequired, this.minConfidence);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoFaceDetectionFeature model) {
+ if (model.wasPropertyExplicitlySet("maxResults")) {
+ this.maxResults(model.getMaxResults());
+ }
+ if (model.wasPropertyExplicitlySet("isLandmarkRequired")) {
+ this.isLandmarkRequired(model.getIsLandmarkRequired());
+ }
+ if (model.wasPropertyExplicitlySet("minConfidence")) {
+ this.minConfidence(model.getMinConfidence());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public VideoFaceDetectionFeature(
+ Integer maxResults, Boolean isLandmarkRequired, Float minConfidence) {
+ super();
+ this.maxResults = maxResults;
+ this.isLandmarkRequired = isLandmarkRequired;
+ this.minConfidence = minConfidence;
+ }
+
+ /** The maximum number of results per frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private final Integer maxResults;
+
+ /**
+ * The maximum number of results per frame to return.
+ *
+ * @return the value
+ */
+ public Integer getMaxResults() {
+ return maxResults;
+ }
+
+ /** Whether or not return face landmarks. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isLandmarkRequired")
+ private final Boolean isLandmarkRequired;
+
+ /**
+ * Whether or not return face landmarks.
+ *
+ * @return the value
+ */
+ public Boolean getIsLandmarkRequired() {
+ return isLandmarkRequired;
+ }
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private final Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @return the value
+ */
+ public Float getMinConfidence() {
+ return minConfidence;
+ }
+
+ @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("VideoFaceDetectionFeature(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", maxResults=").append(String.valueOf(this.maxResults));
+ sb.append(", isLandmarkRequired=").append(String.valueOf(this.isLandmarkRequired));
+ sb.append(", minConfidence=").append(String.valueOf(this.minConfidence));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoFaceDetectionFeature)) {
+ return false;
+ }
+
+ VideoFaceDetectionFeature other = (VideoFaceDetectionFeature) o;
+ return java.util.Objects.equals(this.maxResults, other.maxResults)
+ && java.util.Objects.equals(this.isLandmarkRequired, other.isLandmarkRequired)
+ && java.util.Objects.equals(this.minConfidence, other.minConfidence)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.maxResults == null ? 43 : this.maxResults.hashCode());
+ result =
+ (result * PRIME)
+ + (this.isLandmarkRequired == null
+ ? 43
+ : this.isLandmarkRequired.hashCode());
+ result =
+ (result * PRIME)
+ + (this.minConfidence == null ? 43 : this.minConfidence.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceFrame.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceFrame.java
new file mode 100644
index 00000000000..0f46ab28461
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceFrame.java
@@ -0,0 +1,280 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A face frame.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoFaceFrame.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoFaceFrame
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "timeOffsetMs",
+ "confidence",
+ "qualityScore",
+ "boundingPolygon",
+ "landmarks"
+ })
+ public VideoFaceFrame(
+ Integer timeOffsetMs,
+ Float confidence,
+ Float qualityScore,
+ BoundingPolygon boundingPolygon,
+ java.util.List landmarks) {
+ super();
+ this.timeOffsetMs = timeOffsetMs;
+ this.confidence = confidence;
+ this.qualityScore = qualityScore;
+ this.boundingPolygon = boundingPolygon;
+ this.landmarks = landmarks;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Time offset(Milliseconds) in the video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) in the video.
+ *
+ * @param timeOffsetMs the value to set
+ * @return this builder
+ */
+ public Builder timeOffsetMs(Integer timeOffsetMs) {
+ this.timeOffsetMs = timeOffsetMs;
+ this.__explicitlySet__.add("timeOffsetMs");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+ /** The quality score of the face detected, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("qualityScore")
+ private Float qualityScore;
+
+ /**
+ * The quality score of the face detected, between 0 and 1.
+ *
+ * @param qualityScore the value to set
+ * @return this builder
+ */
+ public Builder qualityScore(Float qualityScore) {
+ this.qualityScore = qualityScore;
+ this.__explicitlySet__.add("qualityScore");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private BoundingPolygon boundingPolygon;
+
+ public Builder boundingPolygon(BoundingPolygon boundingPolygon) {
+ this.boundingPolygon = boundingPolygon;
+ this.__explicitlySet__.add("boundingPolygon");
+ return this;
+ }
+ /** Face landmarks. */
+ @com.fasterxml.jackson.annotation.JsonProperty("landmarks")
+ private java.util.List landmarks;
+
+ /**
+ * Face landmarks.
+ *
+ * @param landmarks the value to set
+ * @return this builder
+ */
+ public Builder landmarks(java.util.List landmarks) {
+ this.landmarks = landmarks;
+ this.__explicitlySet__.add("landmarks");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoFaceFrame build() {
+ VideoFaceFrame model =
+ new VideoFaceFrame(
+ this.timeOffsetMs,
+ this.confidence,
+ this.qualityScore,
+ this.boundingPolygon,
+ this.landmarks);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoFaceFrame model) {
+ if (model.wasPropertyExplicitlySet("timeOffsetMs")) {
+ this.timeOffsetMs(model.getTimeOffsetMs());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("qualityScore")) {
+ this.qualityScore(model.getQualityScore());
+ }
+ if (model.wasPropertyExplicitlySet("boundingPolygon")) {
+ this.boundingPolygon(model.getBoundingPolygon());
+ }
+ if (model.wasPropertyExplicitlySet("landmarks")) {
+ this.landmarks(model.getLandmarks());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Time offset(Milliseconds) in the video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private final Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) in the video.
+ *
+ * @return the value
+ */
+ public Integer getTimeOffsetMs() {
+ return timeOffsetMs;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ /** The quality score of the face detected, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("qualityScore")
+ private final Float qualityScore;
+
+ /**
+ * The quality score of the face detected, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getQualityScore() {
+ return qualityScore;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private final BoundingPolygon boundingPolygon;
+
+ public BoundingPolygon getBoundingPolygon() {
+ return boundingPolygon;
+ }
+
+ /** Face landmarks. */
+ @com.fasterxml.jackson.annotation.JsonProperty("landmarks")
+ private final java.util.List landmarks;
+
+ /**
+ * Face landmarks.
+ *
+ * @return the value
+ */
+ public java.util.List getLandmarks() {
+ return landmarks;
+ }
+
+ @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("VideoFaceFrame(");
+ sb.append("super=").append(super.toString());
+ sb.append("timeOffsetMs=").append(String.valueOf(this.timeOffsetMs));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", qualityScore=").append(String.valueOf(this.qualityScore));
+ sb.append(", boundingPolygon=").append(String.valueOf(this.boundingPolygon));
+ sb.append(", landmarks=").append(String.valueOf(this.landmarks));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoFaceFrame)) {
+ return false;
+ }
+
+ VideoFaceFrame other = (VideoFaceFrame) o;
+ return java.util.Objects.equals(this.timeOffsetMs, other.timeOffsetMs)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.qualityScore, other.qualityScore)
+ && java.util.Objects.equals(this.boundingPolygon, other.boundingPolygon)
+ && java.util.Objects.equals(this.landmarks, other.landmarks)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.timeOffsetMs == null ? 43 : this.timeOffsetMs.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result = (result * PRIME) + (this.qualityScore == null ? 43 : this.qualityScore.hashCode());
+ result =
+ (result * PRIME)
+ + (this.boundingPolygon == null ? 43 : this.boundingPolygon.hashCode());
+ result = (result * PRIME) + (this.landmarks == null ? 43 : this.landmarks.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceSegment.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceSegment.java
new file mode 100644
index 00000000000..c9699e3cf4c
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFaceSegment.java
@@ -0,0 +1,193 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A face segment in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoFaceSegment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoFaceSegment
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"videoSegment", "confidence", "frames"})
+ public VideoFaceSegment(
+ VideoSegment videoSegment, Float confidence, java.util.List frames) {
+ super();
+ this.videoSegment = videoSegment;
+ this.confidence = confidence;
+ this.frames = frames;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("videoSegment")
+ private VideoSegment videoSegment;
+
+ public Builder videoSegment(VideoSegment videoSegment) {
+ this.videoSegment = videoSegment;
+ this.__explicitlySet__.add("videoSegment");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+ /** Face frames in a segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private java.util.List frames;
+
+ /**
+ * Face frames in a segment.
+ *
+ * @param frames the value to set
+ * @return this builder
+ */
+ public Builder frames(java.util.List frames) {
+ this.frames = frames;
+ this.__explicitlySet__.add("frames");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoFaceSegment build() {
+ VideoFaceSegment model =
+ new VideoFaceSegment(this.videoSegment, this.confidence, this.frames);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoFaceSegment model) {
+ if (model.wasPropertyExplicitlySet("videoSegment")) {
+ this.videoSegment(model.getVideoSegment());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("frames")) {
+ this.frames(model.getFrames());
+ }
+ 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("videoSegment")
+ private final VideoSegment videoSegment;
+
+ public VideoSegment getVideoSegment() {
+ return videoSegment;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ /** Face frames in a segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private final java.util.List frames;
+
+ /**
+ * Face frames in a segment.
+ *
+ * @return the value
+ */
+ public java.util.List getFrames() {
+ return frames;
+ }
+
+ @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("VideoFaceSegment(");
+ sb.append("super=").append(super.toString());
+ sb.append("videoSegment=").append(String.valueOf(this.videoSegment));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", frames=").append(String.valueOf(this.frames));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoFaceSegment)) {
+ return false;
+ }
+
+ VideoFaceSegment other = (VideoFaceSegment) o;
+ return java.util.Objects.equals(this.videoSegment, other.videoSegment)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.frames, other.frames)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.videoSegment == null ? 43 : this.videoSegment.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result = (result * PRIME) + (this.frames == null ? 43 : this.frames.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFeature.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFeature.java
new file mode 100644
index 00000000000..76aee97a7c7
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoFeature.java
@@ -0,0 +1,144 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Details about a video feature request.
+ * 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: 20220125")
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "featureType",
+ defaultImpl = VideoFeature.class)
+@com.fasterxml.jackson.annotation.JsonSubTypes({
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = VideoObjectDetectionFeature.class,
+ name = "OBJECT_DETECTION"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = VideoFaceDetectionFeature.class,
+ name = "FACE_DETECTION"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = VideoTextDetectionFeature.class,
+ name = "TEXT_DETECTION"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = VideoObjectTrackingFeature.class,
+ name = "OBJECT_TRACKING"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = VideoLabelDetectionFeature.class,
+ name = "LABEL_DETECTION")
+})
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public class VideoFeature extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({})
+ protected VideoFeature() {
+ super();
+ }
+
+ @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("VideoFeature(");
+ sb.append("super=").append(super.toString());
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoFeature)) {
+ return false;
+ }
+
+ VideoFeature other = (VideoFeature) o;
+ return super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+
+ /**
+ * The feature of video analysis. Allowed values are: - LABEL_DETECTION: Label detection
+ * feature(IC). - OBJECT_DETECTION: Object detection feature(OD). - TEXT_DETECTION: Text
+ * detection feature(OCR). - FACE_DETECTION: Face detection feature(fd). - OBJECT_TRACKING:
+ * Object tracking feature(OT).
+ */
+ public enum FeatureType implements com.oracle.bmc.http.internal.BmcEnum {
+ LabelDetection("LABEL_DETECTION"),
+ ObjectDetection("OBJECT_DETECTION"),
+ TextDetection("TEXT_DETECTION"),
+ FaceDetection("FACE_DETECTION"),
+ ObjectTracking("OBJECT_TRACKING"),
+
+ /**
+ * 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(FeatureType.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (FeatureType v : FeatureType.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ FeatureType(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static FeatureType create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'FeatureType', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoJob.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoJob.java
new file mode 100644
index 00000000000..3cf48a75a13
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoJob.java
@@ -0,0 +1,784 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Job details for a video analysis.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoJob.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoJob extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "compartmentId",
+ "displayName",
+ "features",
+ "inputLocation",
+ "timeAccepted",
+ "timeStarted",
+ "timeFinished",
+ "percentComplete",
+ "outputLocation",
+ "lifecycleState",
+ "lifecycleDetails",
+ "freeformTags",
+ "definedTags",
+ "systemTags"
+ })
+ public VideoJob(
+ String id,
+ String compartmentId,
+ String displayName,
+ java.util.List features,
+ InputLocation inputLocation,
+ java.util.Date timeAccepted,
+ java.util.Date timeStarted,
+ java.util.Date timeFinished,
+ Float percentComplete,
+ OutputLocation outputLocation,
+ LifecycleState lifecycleState,
+ LifecycleDetails lifecycleDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags) {
+ super();
+ this.id = id;
+ this.compartmentId = compartmentId;
+ this.displayName = displayName;
+ this.features = features;
+ this.inputLocation = inputLocation;
+ this.timeAccepted = timeAccepted;
+ this.timeStarted = timeStarted;
+ this.timeFinished = timeFinished;
+ this.percentComplete = percentComplete;
+ this.outputLocation = outputLocation;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Id of the job. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * Id of the job.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** The ocid of the compartment that starts the job. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The ocid of the compartment that starts the job.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /** Video job display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * Video job display name.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** a list of document analysis features. */
+ @com.fasterxml.jackson.annotation.JsonProperty("features")
+ private java.util.List features;
+
+ /**
+ * a list of document analysis features.
+ *
+ * @param features the value to set
+ * @return this builder
+ */
+ public Builder features(java.util.List features) {
+ this.features = features;
+ this.__explicitlySet__.add("features");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("inputLocation")
+ private InputLocation inputLocation;
+
+ public Builder inputLocation(InputLocation inputLocation) {
+ this.inputLocation = inputLocation;
+ this.__explicitlySet__.add("inputLocation");
+ return this;
+ }
+ /** Job accepted time. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAccepted")
+ private java.util.Date timeAccepted;
+
+ /**
+ * Job accepted time.
+ *
+ * @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;
+ }
+ /** Job started time. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStarted")
+ private java.util.Date timeStarted;
+
+ /**
+ * Job started time.
+ *
+ * @param timeStarted the value to set
+ * @return this builder
+ */
+ public Builder timeStarted(java.util.Date timeStarted) {
+ this.timeStarted = timeStarted;
+ this.__explicitlySet__.add("timeStarted");
+ return this;
+ }
+ /** Job finished time. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeFinished")
+ private java.util.Date timeFinished;
+
+ /**
+ * Job finished time.
+ *
+ * @param timeFinished the value to set
+ * @return this builder
+ */
+ public Builder timeFinished(java.util.Date timeFinished) {
+ this.timeFinished = timeFinished;
+ this.__explicitlySet__.add("timeFinished");
+ return this;
+ }
+ /**
+ * How much progress the operation has made, vs the total amount of work that must be
+ * performed.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("percentComplete")
+ private Float percentComplete;
+
+ /**
+ * How much progress the operation has made, vs the total amount of work that must be
+ * performed.
+ *
+ * @param percentComplete the value to set
+ * @return this builder
+ */
+ public Builder percentComplete(Float percentComplete) {
+ this.percentComplete = percentComplete;
+ this.__explicitlySet__.add("percentComplete");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("outputLocation")
+ private OutputLocation outputLocation;
+
+ public Builder outputLocation(OutputLocation outputLocation) {
+ this.outputLocation = outputLocation;
+ this.__explicitlySet__.add("outputLocation");
+ return this;
+ }
+ /** The current state of the batch document job. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * The current state of the batch document job.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /** Detailed status of FAILED state. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private LifecycleDetails lifecycleDetails;
+
+ /**
+ * Detailed status of FAILED state.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(LifecycleDetails lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private java.util.Map freeformTags;
+
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For 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. For
+ * 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. For
+ * 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;
+ }
+ /**
+ * Usage of system tag keys. These predefined keys are scoped to namespaces. For example:
+ * {@code {"orcl-cloud": {"free-tier-retained": "true"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private java.util.Map> systemTags;
+
+ /**
+ * Usage of system tag keys. These predefined keys are scoped to namespaces. For 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 VideoJob build() {
+ VideoJob model =
+ new VideoJob(
+ this.id,
+ this.compartmentId,
+ this.displayName,
+ this.features,
+ this.inputLocation,
+ this.timeAccepted,
+ this.timeStarted,
+ this.timeFinished,
+ this.percentComplete,
+ this.outputLocation,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoJob model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("features")) {
+ this.features(model.getFeatures());
+ }
+ if (model.wasPropertyExplicitlySet("inputLocation")) {
+ this.inputLocation(model.getInputLocation());
+ }
+ if (model.wasPropertyExplicitlySet("timeAccepted")) {
+ this.timeAccepted(model.getTimeAccepted());
+ }
+ if (model.wasPropertyExplicitlySet("timeStarted")) {
+ this.timeStarted(model.getTimeStarted());
+ }
+ if (model.wasPropertyExplicitlySet("timeFinished")) {
+ this.timeFinished(model.getTimeFinished());
+ }
+ if (model.wasPropertyExplicitlySet("percentComplete")) {
+ this.percentComplete(model.getPercentComplete());
+ }
+ if (model.wasPropertyExplicitlySet("outputLocation")) {
+ this.outputLocation(model.getOutputLocation());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ 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);
+ }
+
+ /** Id of the job. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * Id of the job.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** The ocid of the compartment that starts the job. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The ocid of the compartment that starts the job.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /** Video job display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * Video job display name.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** a list of document analysis features. */
+ @com.fasterxml.jackson.annotation.JsonProperty("features")
+ private final java.util.List features;
+
+ /**
+ * a list of document analysis features.
+ *
+ * @return the value
+ */
+ public java.util.List getFeatures() {
+ return features;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("inputLocation")
+ private final InputLocation inputLocation;
+
+ public InputLocation getInputLocation() {
+ return inputLocation;
+ }
+
+ /** Job accepted time. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeAccepted")
+ private final java.util.Date timeAccepted;
+
+ /**
+ * Job accepted time.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeAccepted() {
+ return timeAccepted;
+ }
+
+ /** Job started time. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeStarted")
+ private final java.util.Date timeStarted;
+
+ /**
+ * Job started time.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeStarted() {
+ return timeStarted;
+ }
+
+ /** Job finished time. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeFinished")
+ private final java.util.Date timeFinished;
+
+ /**
+ * Job finished time.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeFinished() {
+ return timeFinished;
+ }
+
+ /**
+ * How much progress the operation has made, vs the total amount of work that must be performed.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("percentComplete")
+ private final Float percentComplete;
+
+ /**
+ * How much progress the operation has made, vs the total amount of work that must be performed.
+ *
+ * @return the value
+ */
+ public Float getPercentComplete() {
+ return percentComplete;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("outputLocation")
+ private final OutputLocation outputLocation;
+
+ public OutputLocation getOutputLocation() {
+ return outputLocation;
+ }
+
+ /** The current state of the batch document job. */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Succeeded("SUCCEEDED"),
+ Failed("FAILED"),
+ Accepted("ACCEPTED"),
+ Canceled("CANCELED"),
+ InProgress("IN_PROGRESS"),
+ Canceling("CANCELING"),
+
+ /**
+ * 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 batch document job. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * The current state of the batch document job.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /** Detailed status of FAILED state. */
+ public enum LifecycleDetails implements com.oracle.bmc.http.internal.BmcEnum {
+ PartiallySucceeded("PARTIALLY_SUCCEEDED"),
+ CompletelyFailed("COMPLETELY_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(LifecycleDetails.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (LifecycleDetails v : LifecycleDetails.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ LifecycleDetails(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static LifecycleDetails create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'LifecycleDetails', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** Detailed status of FAILED state. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final LifecycleDetails lifecycleDetails;
+
+ /**
+ * Detailed status of FAILED state.
+ *
+ * @return the value
+ */
+ public LifecycleDetails getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For example: {@code {"bar-key": "value"}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
+ private final java.util.Map freeformTags;
+
+ /**
+ * A simple key-value pair that is applied without any predefined name, type, or scope. It
+ * exists for cross-compatibility only. For 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. For
+ * 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. For
+ * example: {@code {"foo-namespace": {"bar-key": "value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ /**
+ * Usage of system tag keys. These predefined keys are scoped to namespaces. For example: {@code
+ * {"orcl-cloud": {"free-tier-retained": "true"}}}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private final java.util.Map> systemTags;
+
+ /**
+ * Usage of system tag keys. These predefined keys are scoped to namespaces. For 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("VideoJob(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", features=").append(String.valueOf(this.features));
+ sb.append(", inputLocation=").append(String.valueOf(this.inputLocation));
+ sb.append(", timeAccepted=").append(String.valueOf(this.timeAccepted));
+ sb.append(", timeStarted=").append(String.valueOf(this.timeStarted));
+ sb.append(", timeFinished=").append(String.valueOf(this.timeFinished));
+ sb.append(", percentComplete=").append(String.valueOf(this.percentComplete));
+ sb.append(", outputLocation=").append(String.valueOf(this.outputLocation));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ 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 VideoJob)) {
+ return false;
+ }
+
+ VideoJob other = (VideoJob) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.features, other.features)
+ && java.util.Objects.equals(this.inputLocation, other.inputLocation)
+ && java.util.Objects.equals(this.timeAccepted, other.timeAccepted)
+ && java.util.Objects.equals(this.timeStarted, other.timeStarted)
+ && java.util.Objects.equals(this.timeFinished, other.timeFinished)
+ && java.util.Objects.equals(this.percentComplete, other.percentComplete)
+ && java.util.Objects.equals(this.outputLocation, other.outputLocation)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && 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.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.features == null ? 43 : this.features.hashCode());
+ result =
+ (result * PRIME)
+ + (this.inputLocation == null ? 43 : this.inputLocation.hashCode());
+ result = (result * PRIME) + (this.timeAccepted == null ? 43 : this.timeAccepted.hashCode());
+ result = (result * PRIME) + (this.timeStarted == null ? 43 : this.timeStarted.hashCode());
+ result = (result * PRIME) + (this.timeFinished == null ? 43 : this.timeFinished.hashCode());
+ result =
+ (result * PRIME)
+ + (this.percentComplete == null ? 43 : this.percentComplete.hashCode());
+ result =
+ (result * PRIME)
+ + (this.outputLocation == null ? 43 : this.outputLocation.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.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-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabel.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabel.java
new file mode 100644
index 00000000000..cc115aae38a
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabel.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.aivision.model;
+
+/**
+ * Detected label in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoLabel.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoLabel extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"name", "segments"})
+ public VideoLabel(String name, java.util.List segments) {
+ super();
+ this.name = name;
+ this.segments = segments;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Detected label name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * Detected label name.
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /** Label segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private java.util.List segments;
+
+ /**
+ * Label segments in a video.
+ *
+ * @param segments the value to set
+ * @return this builder
+ */
+ public Builder segments(java.util.List segments) {
+ this.segments = segments;
+ this.__explicitlySet__.add("segments");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoLabel build() {
+ VideoLabel model = new VideoLabel(this.name, this.segments);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoLabel model) {
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("segments")) {
+ this.segments(model.getSegments());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Detected label name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * Detected label name.
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /** Label segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private final java.util.List segments;
+
+ /**
+ * Label segments in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getSegments() {
+ return segments;
+ }
+
+ @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("VideoLabel(");
+ sb.append("super=").append(super.toString());
+ sb.append("name=").append(String.valueOf(this.name));
+ sb.append(", segments=").append(String.valueOf(this.segments));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoLabel)) {
+ return false;
+ }
+
+ VideoLabel other = (VideoLabel) o;
+ return java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.segments, other.segments)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.segments == null ? 43 : this.segments.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabelDetectionFeature.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabelDetectionFeature.java
new file mode 100644
index 00000000000..949dd5059ad
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabelDetectionFeature.java
@@ -0,0 +1,217 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video label detection feature
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoLabelDetectionFeature.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "featureType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoLabelDetectionFeature extends VideoFeature {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @param minConfidence the value to set
+ * @return this builder
+ */
+ public Builder minConfidence(Float minConfidence) {
+ this.minConfidence = minConfidence;
+ this.__explicitlySet__.add("minConfidence");
+ return this;
+ }
+ /** The maximum number of results per video frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private Integer maxResults;
+
+ /**
+ * The maximum number of results per video frame to return.
+ *
+ * @param maxResults the value to set
+ * @return this builder
+ */
+ public Builder maxResults(Integer maxResults) {
+ this.maxResults = maxResults;
+ this.__explicitlySet__.add("maxResults");
+ return this;
+ }
+ /** The custom model ID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("modelId")
+ private String modelId;
+
+ /**
+ * The custom model ID.
+ *
+ * @param modelId the value to set
+ * @return this builder
+ */
+ public Builder modelId(String modelId) {
+ this.modelId = modelId;
+ this.__explicitlySet__.add("modelId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoLabelDetectionFeature build() {
+ VideoLabelDetectionFeature model =
+ new VideoLabelDetectionFeature(
+ this.minConfidence, this.maxResults, this.modelId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoLabelDetectionFeature model) {
+ if (model.wasPropertyExplicitlySet("minConfidence")) {
+ this.minConfidence(model.getMinConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("maxResults")) {
+ this.maxResults(model.getMaxResults());
+ }
+ if (model.wasPropertyExplicitlySet("modelId")) {
+ this.modelId(model.getModelId());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public VideoLabelDetectionFeature(Float minConfidence, Integer maxResults, String modelId) {
+ super();
+ this.minConfidence = minConfidence;
+ this.maxResults = maxResults;
+ this.modelId = modelId;
+ }
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private final Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @return the value
+ */
+ public Float getMinConfidence() {
+ return minConfidence;
+ }
+
+ /** The maximum number of results per video frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private final Integer maxResults;
+
+ /**
+ * The maximum number of results per video frame to return.
+ *
+ * @return the value
+ */
+ public Integer getMaxResults() {
+ return maxResults;
+ }
+
+ /** The custom model ID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("modelId")
+ private final String modelId;
+
+ /**
+ * The custom model ID.
+ *
+ * @return the value
+ */
+ public String getModelId() {
+ return modelId;
+ }
+
+ @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("VideoLabelDetectionFeature(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", minConfidence=").append(String.valueOf(this.minConfidence));
+ sb.append(", maxResults=").append(String.valueOf(this.maxResults));
+ sb.append(", modelId=").append(String.valueOf(this.modelId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoLabelDetectionFeature)) {
+ return false;
+ }
+
+ VideoLabelDetectionFeature other = (VideoLabelDetectionFeature) o;
+ return java.util.Objects.equals(this.minConfidence, other.minConfidence)
+ && java.util.Objects.equals(this.maxResults, other.maxResults)
+ && java.util.Objects.equals(this.modelId, other.modelId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.minConfidence == null ? 43 : this.minConfidence.hashCode());
+ result = (result * PRIME) + (this.maxResults == null ? 43 : this.maxResults.hashCode());
+ result = (result * PRIME) + (this.modelId == null ? 43 : this.modelId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabelSegment.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabelSegment.java
new file mode 100644
index 00000000000..5043de946af
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoLabelSegment.java
@@ -0,0 +1,157 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A label segment in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoLabelSegment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoLabelSegment
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"videoSegment", "confidence"})
+ public VideoLabelSegment(VideoSegment videoSegment, Float confidence) {
+ super();
+ this.videoSegment = videoSegment;
+ this.confidence = confidence;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("videoSegment")
+ private VideoSegment videoSegment;
+
+ public Builder videoSegment(VideoSegment videoSegment) {
+ this.videoSegment = videoSegment;
+ this.__explicitlySet__.add("videoSegment");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoLabelSegment build() {
+ VideoLabelSegment model = new VideoLabelSegment(this.videoSegment, this.confidence);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoLabelSegment model) {
+ if (model.wasPropertyExplicitlySet("videoSegment")) {
+ this.videoSegment(model.getVideoSegment());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ 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("videoSegment")
+ private final VideoSegment videoSegment;
+
+ public VideoSegment getVideoSegment() {
+ return videoSegment;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ @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("VideoLabelSegment(");
+ sb.append("super=").append(super.toString());
+ sb.append("videoSegment=").append(String.valueOf(this.videoSegment));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoLabelSegment)) {
+ return false;
+ }
+
+ VideoLabelSegment other = (VideoLabelSegment) o;
+ return java.util.Objects.equals(this.videoSegment, other.videoSegment)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.videoSegment == null ? 43 : this.videoSegment.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoMetadata.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoMetadata.java
new file mode 100644
index 00000000000..b170dba2940
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoMetadata.java
@@ -0,0 +1,240 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video information.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoMetadata.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoMetadata extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"frameCount", "frameRate", "frameWidth", "frameHeight"})
+ public VideoMetadata(
+ Integer frameCount, Float frameRate, Integer frameWidth, Integer frameHeight) {
+ super();
+ this.frameCount = frameCount;
+ this.frameRate = frameRate;
+ this.frameWidth = frameWidth;
+ this.frameHeight = frameHeight;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Total number of frames. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameCount")
+ private Integer frameCount;
+
+ /**
+ * Total number of frames.
+ *
+ * @param frameCount the value to set
+ * @return this builder
+ */
+ public Builder frameCount(Integer frameCount) {
+ this.frameCount = frameCount;
+ this.__explicitlySet__.add("frameCount");
+ return this;
+ }
+ /** Video framerate. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameRate")
+ private Float frameRate;
+
+ /**
+ * Video framerate.
+ *
+ * @param frameRate the value to set
+ * @return this builder
+ */
+ public Builder frameRate(Float frameRate) {
+ this.frameRate = frameRate;
+ this.__explicitlySet__.add("frameRate");
+ return this;
+ }
+ /** Width of each frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameWidth")
+ private Integer frameWidth;
+
+ /**
+ * Width of each frame.
+ *
+ * @param frameWidth the value to set
+ * @return this builder
+ */
+ public Builder frameWidth(Integer frameWidth) {
+ this.frameWidth = frameWidth;
+ this.__explicitlySet__.add("frameWidth");
+ return this;
+ }
+ /** Height of each frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameHeight")
+ private Integer frameHeight;
+
+ /**
+ * Height of each frame.
+ *
+ * @param frameHeight the value to set
+ * @return this builder
+ */
+ public Builder frameHeight(Integer frameHeight) {
+ this.frameHeight = frameHeight;
+ this.__explicitlySet__.add("frameHeight");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoMetadata build() {
+ VideoMetadata model =
+ new VideoMetadata(
+ this.frameCount, this.frameRate, this.frameWidth, this.frameHeight);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoMetadata model) {
+ if (model.wasPropertyExplicitlySet("frameCount")) {
+ this.frameCount(model.getFrameCount());
+ }
+ if (model.wasPropertyExplicitlySet("frameRate")) {
+ this.frameRate(model.getFrameRate());
+ }
+ if (model.wasPropertyExplicitlySet("frameWidth")) {
+ this.frameWidth(model.getFrameWidth());
+ }
+ if (model.wasPropertyExplicitlySet("frameHeight")) {
+ this.frameHeight(model.getFrameHeight());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Total number of frames. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameCount")
+ private final Integer frameCount;
+
+ /**
+ * Total number of frames.
+ *
+ * @return the value
+ */
+ public Integer getFrameCount() {
+ return frameCount;
+ }
+
+ /** Video framerate. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameRate")
+ private final Float frameRate;
+
+ /**
+ * Video framerate.
+ *
+ * @return the value
+ */
+ public Float getFrameRate() {
+ return frameRate;
+ }
+
+ /** Width of each frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameWidth")
+ private final Integer frameWidth;
+
+ /**
+ * Width of each frame.
+ *
+ * @return the value
+ */
+ public Integer getFrameWidth() {
+ return frameWidth;
+ }
+
+ /** Height of each frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frameHeight")
+ private final Integer frameHeight;
+
+ /**
+ * Height of each frame.
+ *
+ * @return the value
+ */
+ public Integer getFrameHeight() {
+ return frameHeight;
+ }
+
+ @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("VideoMetadata(");
+ sb.append("super=").append(super.toString());
+ sb.append("frameCount=").append(String.valueOf(this.frameCount));
+ sb.append(", frameRate=").append(String.valueOf(this.frameRate));
+ sb.append(", frameWidth=").append(String.valueOf(this.frameWidth));
+ sb.append(", frameHeight=").append(String.valueOf(this.frameHeight));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoMetadata)) {
+ return false;
+ }
+
+ VideoMetadata other = (VideoMetadata) o;
+ return java.util.Objects.equals(this.frameCount, other.frameCount)
+ && java.util.Objects.equals(this.frameRate, other.frameRate)
+ && java.util.Objects.equals(this.frameWidth, other.frameWidth)
+ && java.util.Objects.equals(this.frameHeight, other.frameHeight)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.frameCount == null ? 43 : this.frameCount.hashCode());
+ result = (result * PRIME) + (this.frameRate == null ? 43 : this.frameRate.hashCode());
+ result = (result * PRIME) + (this.frameWidth == null ? 43 : this.frameWidth.hashCode());
+ result = (result * PRIME) + (this.frameHeight == null ? 43 : this.frameHeight.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObject.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObject.java
new file mode 100644
index 00000000000..0fd7a0ff724
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObject.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.aivision.model;
+
+/**
+ * Detected object in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoObject.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoObject extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"name", "segments"})
+ public VideoObject(String name, java.util.List segments) {
+ super();
+ this.name = name;
+ this.segments = segments;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Detected object name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * Detected object name.
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /** Object segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private java.util.List segments;
+
+ /**
+ * Object segments in a video.
+ *
+ * @param segments the value to set
+ * @return this builder
+ */
+ public Builder segments(java.util.List segments) {
+ this.segments = segments;
+ this.__explicitlySet__.add("segments");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoObject build() {
+ VideoObject model = new VideoObject(this.name, this.segments);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoObject model) {
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("segments")) {
+ this.segments(model.getSegments());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Detected object name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * Detected object name.
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /** Object segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private final java.util.List segments;
+
+ /**
+ * Object segments in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getSegments() {
+ return segments;
+ }
+
+ @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("VideoObject(");
+ sb.append("super=").append(super.toString());
+ sb.append("name=").append(String.valueOf(this.name));
+ sb.append(", segments=").append(String.valueOf(this.segments));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoObject)) {
+ return false;
+ }
+
+ VideoObject other = (VideoObject) o;
+ return java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.segments, other.segments)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.segments == null ? 43 : this.segments.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectDetectionFeature.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectDetectionFeature.java
new file mode 100644
index 00000000000..63b5b4cb7a8
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectDetectionFeature.java
@@ -0,0 +1,217 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video object detection feature
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoObjectDetectionFeature.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "featureType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoObjectDetectionFeature extends VideoFeature {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @param minConfidence the value to set
+ * @return this builder
+ */
+ public Builder minConfidence(Float minConfidence) {
+ this.minConfidence = minConfidence;
+ this.__explicitlySet__.add("minConfidence");
+ return this;
+ }
+ /** The maximum number of results per frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private Integer maxResults;
+
+ /**
+ * The maximum number of results per frame to return.
+ *
+ * @param maxResults the value to set
+ * @return this builder
+ */
+ public Builder maxResults(Integer maxResults) {
+ this.maxResults = maxResults;
+ this.__explicitlySet__.add("maxResults");
+ return this;
+ }
+ /** The custom model ID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("modelId")
+ private String modelId;
+
+ /**
+ * The custom model ID.
+ *
+ * @param modelId the value to set
+ * @return this builder
+ */
+ public Builder modelId(String modelId) {
+ this.modelId = modelId;
+ this.__explicitlySet__.add("modelId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoObjectDetectionFeature build() {
+ VideoObjectDetectionFeature model =
+ new VideoObjectDetectionFeature(
+ this.minConfidence, this.maxResults, this.modelId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoObjectDetectionFeature model) {
+ if (model.wasPropertyExplicitlySet("minConfidence")) {
+ this.minConfidence(model.getMinConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("maxResults")) {
+ this.maxResults(model.getMaxResults());
+ }
+ if (model.wasPropertyExplicitlySet("modelId")) {
+ this.modelId(model.getModelId());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public VideoObjectDetectionFeature(Float minConfidence, Integer maxResults, String modelId) {
+ super();
+ this.minConfidence = minConfidence;
+ this.maxResults = maxResults;
+ this.modelId = modelId;
+ }
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private final Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @return the value
+ */
+ public Float getMinConfidence() {
+ return minConfidence;
+ }
+
+ /** The maximum number of results per frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private final Integer maxResults;
+
+ /**
+ * The maximum number of results per frame to return.
+ *
+ * @return the value
+ */
+ public Integer getMaxResults() {
+ return maxResults;
+ }
+
+ /** The custom model ID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("modelId")
+ private final String modelId;
+
+ /**
+ * The custom model ID.
+ *
+ * @return the value
+ */
+ public String getModelId() {
+ return modelId;
+ }
+
+ @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("VideoObjectDetectionFeature(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", minConfidence=").append(String.valueOf(this.minConfidence));
+ sb.append(", maxResults=").append(String.valueOf(this.maxResults));
+ sb.append(", modelId=").append(String.valueOf(this.modelId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoObjectDetectionFeature)) {
+ return false;
+ }
+
+ VideoObjectDetectionFeature other = (VideoObjectDetectionFeature) o;
+ return java.util.Objects.equals(this.minConfidence, other.minConfidence)
+ && java.util.Objects.equals(this.maxResults, other.maxResults)
+ && java.util.Objects.equals(this.modelId, other.modelId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.minConfidence == null ? 43 : this.minConfidence.hashCode());
+ result = (result * PRIME) + (this.maxResults == null ? 43 : this.maxResults.hashCode());
+ result = (result * PRIME) + (this.modelId == null ? 43 : this.modelId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectFrame.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectFrame.java
new file mode 100644
index 00000000000..8507136d032
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectFrame.java
@@ -0,0 +1,195 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * An object frame.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoObjectFrame.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoObjectFrame
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"timeOffsetMs", "confidence", "boundingPolygon"})
+ public VideoObjectFrame(
+ Integer timeOffsetMs, Float confidence, BoundingPolygon boundingPolygon) {
+ super();
+ this.timeOffsetMs = timeOffsetMs;
+ this.confidence = confidence;
+ this.boundingPolygon = boundingPolygon;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Time offset(Milliseconds) in the video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) in the video.
+ *
+ * @param timeOffsetMs the value to set
+ * @return this builder
+ */
+ public Builder timeOffsetMs(Integer timeOffsetMs) {
+ this.timeOffsetMs = timeOffsetMs;
+ this.__explicitlySet__.add("timeOffsetMs");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private BoundingPolygon boundingPolygon;
+
+ public Builder boundingPolygon(BoundingPolygon boundingPolygon) {
+ this.boundingPolygon = boundingPolygon;
+ this.__explicitlySet__.add("boundingPolygon");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoObjectFrame build() {
+ VideoObjectFrame model =
+ new VideoObjectFrame(this.timeOffsetMs, this.confidence, this.boundingPolygon);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoObjectFrame model) {
+ if (model.wasPropertyExplicitlySet("timeOffsetMs")) {
+ this.timeOffsetMs(model.getTimeOffsetMs());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("boundingPolygon")) {
+ this.boundingPolygon(model.getBoundingPolygon());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Time offset(Milliseconds) in the video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private final Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) in the video.
+ *
+ * @return the value
+ */
+ public Integer getTimeOffsetMs() {
+ return timeOffsetMs;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private final BoundingPolygon boundingPolygon;
+
+ public BoundingPolygon getBoundingPolygon() {
+ return boundingPolygon;
+ }
+
+ @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("VideoObjectFrame(");
+ sb.append("super=").append(super.toString());
+ sb.append("timeOffsetMs=").append(String.valueOf(this.timeOffsetMs));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", boundingPolygon=").append(String.valueOf(this.boundingPolygon));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoObjectFrame)) {
+ return false;
+ }
+
+ VideoObjectFrame other = (VideoObjectFrame) o;
+ return java.util.Objects.equals(this.timeOffsetMs, other.timeOffsetMs)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.boundingPolygon, other.boundingPolygon)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.timeOffsetMs == null ? 43 : this.timeOffsetMs.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result =
+ (result * PRIME)
+ + (this.boundingPolygon == null ? 43 : this.boundingPolygon.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectSegment.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectSegment.java
new file mode 100644
index 00000000000..01d310662ac
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectSegment.java
@@ -0,0 +1,194 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * An object segment in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoObjectSegment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoObjectSegment
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"videoSegment", "confidence", "frames"})
+ public VideoObjectSegment(
+ VideoSegment videoSegment, Float confidence, java.util.List frames) {
+ super();
+ this.videoSegment = videoSegment;
+ this.confidence = confidence;
+ this.frames = frames;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("videoSegment")
+ private VideoSegment videoSegment;
+
+ public Builder videoSegment(VideoSegment videoSegment) {
+ this.videoSegment = videoSegment;
+ this.__explicitlySet__.add("videoSegment");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+ /** Object frame in a segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private java.util.List frames;
+
+ /**
+ * Object frame in a segment.
+ *
+ * @param frames the value to set
+ * @return this builder
+ */
+ public Builder frames(java.util.List frames) {
+ this.frames = frames;
+ this.__explicitlySet__.add("frames");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoObjectSegment build() {
+ VideoObjectSegment model =
+ new VideoObjectSegment(this.videoSegment, this.confidence, this.frames);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoObjectSegment model) {
+ if (model.wasPropertyExplicitlySet("videoSegment")) {
+ this.videoSegment(model.getVideoSegment());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("frames")) {
+ this.frames(model.getFrames());
+ }
+ 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("videoSegment")
+ private final VideoSegment videoSegment;
+
+ public VideoSegment getVideoSegment() {
+ return videoSegment;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ /** Object frame in a segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private final java.util.List frames;
+
+ /**
+ * Object frame in a segment.
+ *
+ * @return the value
+ */
+ public java.util.List getFrames() {
+ return frames;
+ }
+
+ @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("VideoObjectSegment(");
+ sb.append("super=").append(super.toString());
+ sb.append("videoSegment=").append(String.valueOf(this.videoSegment));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", frames=").append(String.valueOf(this.frames));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoObjectSegment)) {
+ return false;
+ }
+
+ VideoObjectSegment other = (VideoObjectSegment) o;
+ return java.util.Objects.equals(this.videoSegment, other.videoSegment)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.frames, other.frames)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.videoSegment == null ? 43 : this.videoSegment.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result = (result * PRIME) + (this.frames == null ? 43 : this.frames.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectTrackingFeature.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectTrackingFeature.java
new file mode 100644
index 00000000000..9984bf270b1
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoObjectTrackingFeature.java
@@ -0,0 +1,217 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video object tracking feature
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoObjectTrackingFeature.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "featureType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoObjectTrackingFeature extends VideoFeature {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @param minConfidence the value to set
+ * @return this builder
+ */
+ public Builder minConfidence(Float minConfidence) {
+ this.minConfidence = minConfidence;
+ this.__explicitlySet__.add("minConfidence");
+ return this;
+ }
+ /** The maximum number of results per frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private Integer maxResults;
+
+ /**
+ * The maximum number of results per frame to return.
+ *
+ * @param maxResults the value to set
+ * @return this builder
+ */
+ public Builder maxResults(Integer maxResults) {
+ this.maxResults = maxResults;
+ this.__explicitlySet__.add("maxResults");
+ return this;
+ }
+ /** The custom model ID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("modelId")
+ private String modelId;
+
+ /**
+ * The custom model ID.
+ *
+ * @param modelId the value to set
+ * @return this builder
+ */
+ public Builder modelId(String modelId) {
+ this.modelId = modelId;
+ this.__explicitlySet__.add("modelId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoObjectTrackingFeature build() {
+ VideoObjectTrackingFeature model =
+ new VideoObjectTrackingFeature(
+ this.minConfidence, this.maxResults, this.modelId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoObjectTrackingFeature model) {
+ if (model.wasPropertyExplicitlySet("minConfidence")) {
+ this.minConfidence(model.getMinConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("maxResults")) {
+ this.maxResults(model.getMaxResults());
+ }
+ if (model.wasPropertyExplicitlySet("modelId")) {
+ this.modelId(model.getModelId());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public VideoObjectTrackingFeature(Float minConfidence, Integer maxResults, String modelId) {
+ super();
+ this.minConfidence = minConfidence;
+ this.maxResults = maxResults;
+ this.modelId = modelId;
+ }
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private final Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @return the value
+ */
+ public Float getMinConfidence() {
+ return minConfidence;
+ }
+
+ /** The maximum number of results per frame to return. */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxResults")
+ private final Integer maxResults;
+
+ /**
+ * The maximum number of results per frame to return.
+ *
+ * @return the value
+ */
+ public Integer getMaxResults() {
+ return maxResults;
+ }
+
+ /** The custom model ID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("modelId")
+ private final String modelId;
+
+ /**
+ * The custom model ID.
+ *
+ * @return the value
+ */
+ public String getModelId() {
+ return modelId;
+ }
+
+ @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("VideoObjectTrackingFeature(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", minConfidence=").append(String.valueOf(this.minConfidence));
+ sb.append(", maxResults=").append(String.valueOf(this.maxResults));
+ sb.append(", modelId=").append(String.valueOf(this.modelId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoObjectTrackingFeature)) {
+ return false;
+ }
+
+ VideoObjectTrackingFeature other = (VideoObjectTrackingFeature) o;
+ return java.util.Objects.equals(this.minConfidence, other.minConfidence)
+ && java.util.Objects.equals(this.maxResults, other.maxResults)
+ && java.util.Objects.equals(this.modelId, other.modelId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.minConfidence == null ? 43 : this.minConfidence.hashCode());
+ result = (result * PRIME) + (this.maxResults == null ? 43 : this.maxResults.hashCode());
+ result = (result * PRIME) + (this.modelId == null ? 43 : this.modelId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoSegment.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoSegment.java
new file mode 100644
index 00000000000..0853c252e9d
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoSegment.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.aivision.model;
+
+/**
+ * A sequence of frames that was (or appears to be) continuously captured for a label/object/text?.
+ *
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoSegment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoSegment extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"startTimeOffsetMs", "endTimeOffsetMs"})
+ public VideoSegment(Integer startTimeOffsetMs, Integer endTimeOffsetMs) {
+ super();
+ this.startTimeOffsetMs = startTimeOffsetMs;
+ this.endTimeOffsetMs = endTimeOffsetMs;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Video start time offset(Milliseconds). */
+ @com.fasterxml.jackson.annotation.JsonProperty("startTimeOffsetMs")
+ private Integer startTimeOffsetMs;
+
+ /**
+ * Video start time offset(Milliseconds).
+ *
+ * @param startTimeOffsetMs the value to set
+ * @return this builder
+ */
+ public Builder startTimeOffsetMs(Integer startTimeOffsetMs) {
+ this.startTimeOffsetMs = startTimeOffsetMs;
+ this.__explicitlySet__.add("startTimeOffsetMs");
+ return this;
+ }
+ /** Video end time offset(Milliseconds). */
+ @com.fasterxml.jackson.annotation.JsonProperty("endTimeOffsetMs")
+ private Integer endTimeOffsetMs;
+
+ /**
+ * Video end time offset(Milliseconds).
+ *
+ * @param endTimeOffsetMs the value to set
+ * @return this builder
+ */
+ public Builder endTimeOffsetMs(Integer endTimeOffsetMs) {
+ this.endTimeOffsetMs = endTimeOffsetMs;
+ this.__explicitlySet__.add("endTimeOffsetMs");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoSegment build() {
+ VideoSegment model = new VideoSegment(this.startTimeOffsetMs, this.endTimeOffsetMs);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoSegment model) {
+ if (model.wasPropertyExplicitlySet("startTimeOffsetMs")) {
+ this.startTimeOffsetMs(model.getStartTimeOffsetMs());
+ }
+ if (model.wasPropertyExplicitlySet("endTimeOffsetMs")) {
+ this.endTimeOffsetMs(model.getEndTimeOffsetMs());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Video start time offset(Milliseconds). */
+ @com.fasterxml.jackson.annotation.JsonProperty("startTimeOffsetMs")
+ private final Integer startTimeOffsetMs;
+
+ /**
+ * Video start time offset(Milliseconds).
+ *
+ * @return the value
+ */
+ public Integer getStartTimeOffsetMs() {
+ return startTimeOffsetMs;
+ }
+
+ /** Video end time offset(Milliseconds). */
+ @com.fasterxml.jackson.annotation.JsonProperty("endTimeOffsetMs")
+ private final Integer endTimeOffsetMs;
+
+ /**
+ * Video end time offset(Milliseconds).
+ *
+ * @return the value
+ */
+ public Integer getEndTimeOffsetMs() {
+ return endTimeOffsetMs;
+ }
+
+ @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("VideoSegment(");
+ sb.append("super=").append(super.toString());
+ sb.append("startTimeOffsetMs=").append(String.valueOf(this.startTimeOffsetMs));
+ sb.append(", endTimeOffsetMs=").append(String.valueOf(this.endTimeOffsetMs));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoSegment)) {
+ return false;
+ }
+
+ VideoSegment other = (VideoSegment) o;
+ return java.util.Objects.equals(this.startTimeOffsetMs, other.startTimeOffsetMs)
+ && java.util.Objects.equals(this.endTimeOffsetMs, other.endTimeOffsetMs)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.startTimeOffsetMs == null ? 43 : this.startTimeOffsetMs.hashCode());
+ result =
+ (result * PRIME)
+ + (this.endTimeOffsetMs == null ? 43 : this.endTimeOffsetMs.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoText.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoText.java
new file mode 100644
index 00000000000..964c2743af4
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoText.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.aivision.model;
+
+/**
+ * Detected text in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoText.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoText extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"text", "segments"})
+ public VideoText(String text, java.util.List segments) {
+ super();
+ this.text = text;
+ this.segments = segments;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Detected text. */
+ @com.fasterxml.jackson.annotation.JsonProperty("text")
+ private String text;
+
+ /**
+ * Detected text.
+ *
+ * @param text the value to set
+ * @return this builder
+ */
+ public Builder text(String text) {
+ this.text = text;
+ this.__explicitlySet__.add("text");
+ return this;
+ }
+ /** Text segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private java.util.List segments;
+
+ /**
+ * Text segments in a video.
+ *
+ * @param segments the value to set
+ * @return this builder
+ */
+ public Builder segments(java.util.List segments) {
+ this.segments = segments;
+ this.__explicitlySet__.add("segments");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoText build() {
+ VideoText model = new VideoText(this.text, this.segments);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoText model) {
+ if (model.wasPropertyExplicitlySet("text")) {
+ this.text(model.getText());
+ }
+ if (model.wasPropertyExplicitlySet("segments")) {
+ this.segments(model.getSegments());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Detected text. */
+ @com.fasterxml.jackson.annotation.JsonProperty("text")
+ private final String text;
+
+ /**
+ * Detected text.
+ *
+ * @return the value
+ */
+ public String getText() {
+ return text;
+ }
+
+ /** Text segments in a video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private final java.util.List segments;
+
+ /**
+ * Text segments in a video.
+ *
+ * @return the value
+ */
+ public java.util.List getSegments() {
+ return segments;
+ }
+
+ @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("VideoText(");
+ sb.append("super=").append(super.toString());
+ sb.append("text=").append(String.valueOf(this.text));
+ sb.append(", segments=").append(String.valueOf(this.segments));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoText)) {
+ return false;
+ }
+
+ VideoText other = (VideoText) o;
+ return java.util.Objects.equals(this.text, other.text)
+ && java.util.Objects.equals(this.segments, other.segments)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.text == null ? 43 : this.text.hashCode());
+ result = (result * PRIME) + (this.segments == null ? 43 : this.segments.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextDetectionFeature.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextDetectionFeature.java
new file mode 100644
index 00000000000..8995d7a32c3
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextDetectionFeature.java
@@ -0,0 +1,145 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Video text detection feature
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoTextDetectionFeature.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "featureType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTextDetectionFeature extends VideoFeature {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @param minConfidence the value to set
+ * @return this builder
+ */
+ public Builder minConfidence(Float minConfidence) {
+ this.minConfidence = minConfidence;
+ this.__explicitlySet__.add("minConfidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTextDetectionFeature build() {
+ VideoTextDetectionFeature model = new VideoTextDetectionFeature(this.minConfidence);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTextDetectionFeature model) {
+ if (model.wasPropertyExplicitlySet("minConfidence")) {
+ this.minConfidence(model.getMinConfidence());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public VideoTextDetectionFeature(Float minConfidence) {
+ super();
+ this.minConfidence = minConfidence;
+ }
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minConfidence")
+ private final Float minConfidence;
+
+ /**
+ * The minimum confidence score, between 0 and 1, when the value is set, results with lower
+ * confidence will not be returned.
+ *
+ * @return the value
+ */
+ public Float getMinConfidence() {
+ return minConfidence;
+ }
+
+ @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("VideoTextDetectionFeature(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", minConfidence=").append(String.valueOf(this.minConfidence));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTextDetectionFeature)) {
+ return false;
+ }
+
+ VideoTextDetectionFeature other = (VideoTextDetectionFeature) o;
+ return java.util.Objects.equals(this.minConfidence, other.minConfidence)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.minConfidence == null ? 43 : this.minConfidence.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextFrame.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextFrame.java
new file mode 100644
index 00000000000..0c3b60a7dd7
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextFrame.java
@@ -0,0 +1,194 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A text frame.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoTextFrame.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTextFrame
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"timeOffsetMs", "confidence", "boundingPolygon"})
+ public VideoTextFrame(Integer timeOffsetMs, Float confidence, BoundingPolygon boundingPolygon) {
+ super();
+ this.timeOffsetMs = timeOffsetMs;
+ this.confidence = confidence;
+ this.boundingPolygon = boundingPolygon;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Time offset(Milliseconds) in the video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) in the video.
+ *
+ * @param timeOffsetMs the value to set
+ * @return this builder
+ */
+ public Builder timeOffsetMs(Integer timeOffsetMs) {
+ this.timeOffsetMs = timeOffsetMs;
+ this.__explicitlySet__.add("timeOffsetMs");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private BoundingPolygon boundingPolygon;
+
+ public Builder boundingPolygon(BoundingPolygon boundingPolygon) {
+ this.boundingPolygon = boundingPolygon;
+ this.__explicitlySet__.add("boundingPolygon");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTextFrame build() {
+ VideoTextFrame model =
+ new VideoTextFrame(this.timeOffsetMs, this.confidence, this.boundingPolygon);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTextFrame model) {
+ if (model.wasPropertyExplicitlySet("timeOffsetMs")) {
+ this.timeOffsetMs(model.getTimeOffsetMs());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("boundingPolygon")) {
+ this.boundingPolygon(model.getBoundingPolygon());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Time offset(Milliseconds) in the video. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private final Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) in the video.
+ *
+ * @return the value
+ */
+ public Integer getTimeOffsetMs() {
+ return timeOffsetMs;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private final BoundingPolygon boundingPolygon;
+
+ public BoundingPolygon getBoundingPolygon() {
+ return boundingPolygon;
+ }
+
+ @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("VideoTextFrame(");
+ sb.append("super=").append(super.toString());
+ sb.append("timeOffsetMs=").append(String.valueOf(this.timeOffsetMs));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", boundingPolygon=").append(String.valueOf(this.boundingPolygon));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTextFrame)) {
+ return false;
+ }
+
+ VideoTextFrame other = (VideoTextFrame) o;
+ return java.util.Objects.equals(this.timeOffsetMs, other.timeOffsetMs)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.boundingPolygon, other.boundingPolygon)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.timeOffsetMs == null ? 43 : this.timeOffsetMs.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result =
+ (result * PRIME)
+ + (this.boundingPolygon == null ? 43 : this.boundingPolygon.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextSegment.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextSegment.java
new file mode 100644
index 00000000000..c5e95675cc3
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTextSegment.java
@@ -0,0 +1,193 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A text segment in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = VideoTextSegment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTextSegment
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"videoSegment", "confidence", "frames"})
+ public VideoTextSegment(
+ VideoSegment videoSegment, Float confidence, java.util.List frames) {
+ super();
+ this.videoSegment = videoSegment;
+ this.confidence = confidence;
+ this.frames = frames;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("videoSegment")
+ private VideoSegment videoSegment;
+
+ public Builder videoSegment(VideoSegment videoSegment) {
+ this.videoSegment = videoSegment;
+ this.__explicitlySet__.add("videoSegment");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+ /** Text frame in a segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private java.util.List frames;
+
+ /**
+ * Text frame in a segment.
+ *
+ * @param frames the value to set
+ * @return this builder
+ */
+ public Builder frames(java.util.List frames) {
+ this.frames = frames;
+ this.__explicitlySet__.add("frames");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTextSegment build() {
+ VideoTextSegment model =
+ new VideoTextSegment(this.videoSegment, this.confidence, this.frames);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTextSegment model) {
+ if (model.wasPropertyExplicitlySet("videoSegment")) {
+ this.videoSegment(model.getVideoSegment());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("frames")) {
+ this.frames(model.getFrames());
+ }
+ 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("videoSegment")
+ private final VideoSegment videoSegment;
+
+ public VideoSegment getVideoSegment() {
+ return videoSegment;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ /** Text frame in a segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private final java.util.List frames;
+
+ /**
+ * Text frame in a segment.
+ *
+ * @return the value
+ */
+ public java.util.List getFrames() {
+ return frames;
+ }
+
+ @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("VideoTextSegment(");
+ sb.append("super=").append(super.toString());
+ sb.append("videoSegment=").append(String.valueOf(this.videoSegment));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", frames=").append(String.valueOf(this.frames));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTextSegment)) {
+ return false;
+ }
+
+ VideoTextSegment other = (VideoTextSegment) o;
+ return java.util.Objects.equals(this.videoSegment, other.videoSegment)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.frames, other.frames)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.videoSegment == null ? 43 : this.videoSegment.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result = (result * PRIME) + (this.frames == null ? 43 : this.frames.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObject.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObject.java
new file mode 100644
index 00000000000..5ce7761817a
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObject.java
@@ -0,0 +1,233 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * Tracked object in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoTrackedObject.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTrackedObject
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"name", "objectId", "properties", "segments"})
+ public VideoTrackedObject(
+ String name,
+ Integer objectId,
+ VideoTrackedObjectProperties properties,
+ java.util.List segments) {
+ super();
+ this.name = name;
+ this.objectId = objectId;
+ this.properties = properties;
+ this.segments = segments;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Name of the object category label. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * Name of the object category label.
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /** Unique identifier for the object. */
+ @com.fasterxml.jackson.annotation.JsonProperty("objectId")
+ private Integer objectId;
+
+ /**
+ * Unique identifier for the object.
+ *
+ * @param objectId the value to set
+ * @return this builder
+ */
+ public Builder objectId(Integer objectId) {
+ this.objectId = objectId;
+ this.__explicitlySet__.add("objectId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("properties")
+ private VideoTrackedObjectProperties properties;
+
+ public Builder properties(VideoTrackedObjectProperties properties) {
+ this.properties = properties;
+ this.__explicitlySet__.add("properties");
+ return this;
+ }
+ /** Segments for the tracked object. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private java.util.List segments;
+
+ /**
+ * Segments for the tracked object.
+ *
+ * @param segments the value to set
+ * @return this builder
+ */
+ public Builder segments(java.util.List segments) {
+ this.segments = segments;
+ this.__explicitlySet__.add("segments");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTrackedObject build() {
+ VideoTrackedObject model =
+ new VideoTrackedObject(
+ this.name, this.objectId, this.properties, this.segments);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTrackedObject model) {
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("objectId")) {
+ this.objectId(model.getObjectId());
+ }
+ if (model.wasPropertyExplicitlySet("properties")) {
+ this.properties(model.getProperties());
+ }
+ if (model.wasPropertyExplicitlySet("segments")) {
+ this.segments(model.getSegments());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Name of the object category label. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * Name of the object category label.
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /** Unique identifier for the object. */
+ @com.fasterxml.jackson.annotation.JsonProperty("objectId")
+ private final Integer objectId;
+
+ /**
+ * Unique identifier for the object.
+ *
+ * @return the value
+ */
+ public Integer getObjectId() {
+ return objectId;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("properties")
+ private final VideoTrackedObjectProperties properties;
+
+ public VideoTrackedObjectProperties getProperties() {
+ return properties;
+ }
+
+ /** Segments for the tracked object. */
+ @com.fasterxml.jackson.annotation.JsonProperty("segments")
+ private final java.util.List segments;
+
+ /**
+ * Segments for the tracked object.
+ *
+ * @return the value
+ */
+ public java.util.List getSegments() {
+ return segments;
+ }
+
+ @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("VideoTrackedObject(");
+ sb.append("super=").append(super.toString());
+ sb.append("name=").append(String.valueOf(this.name));
+ sb.append(", objectId=").append(String.valueOf(this.objectId));
+ sb.append(", properties=").append(String.valueOf(this.properties));
+ sb.append(", segments=").append(String.valueOf(this.segments));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTrackedObject)) {
+ return false;
+ }
+
+ VideoTrackedObject other = (VideoTrackedObject) o;
+ return java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.objectId, other.objectId)
+ && java.util.Objects.equals(this.properties, other.properties)
+ && java.util.Objects.equals(this.segments, other.segments)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.objectId == null ? 43 : this.objectId.hashCode());
+ result = (result * PRIME) + (this.properties == null ? 43 : this.properties.hashCode());
+ result = (result * PRIME) + (this.segments == null ? 43 : this.segments.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObjectProperties.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObjectProperties.java
new file mode 100644
index 00000000000..c327c852071
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObjectProperties.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.aivision.model;
+
+/**
+ * Properties of a tracked object in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoTrackedObjectProperties.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTrackedObjectProperties
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"axleCount"})
+ public VideoTrackedObjectProperties(Integer axleCount) {
+ super();
+ this.axleCount = axleCount;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The axle count value of a tracked vehicle. */
+ @com.fasterxml.jackson.annotation.JsonProperty("axleCount")
+ private Integer axleCount;
+
+ /**
+ * The axle count value of a tracked vehicle.
+ *
+ * @param axleCount the value to set
+ * @return this builder
+ */
+ public Builder axleCount(Integer axleCount) {
+ this.axleCount = axleCount;
+ this.__explicitlySet__.add("axleCount");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTrackedObjectProperties build() {
+ VideoTrackedObjectProperties model = new VideoTrackedObjectProperties(this.axleCount);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTrackedObjectProperties model) {
+ if (model.wasPropertyExplicitlySet("axleCount")) {
+ this.axleCount(model.getAxleCount());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The axle count value of a tracked vehicle. */
+ @com.fasterxml.jackson.annotation.JsonProperty("axleCount")
+ private final Integer axleCount;
+
+ /**
+ * The axle count value of a tracked vehicle.
+ *
+ * @return the value
+ */
+ public Integer getAxleCount() {
+ return axleCount;
+ }
+
+ @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("VideoTrackedObjectProperties(");
+ sb.append("super=").append(super.toString());
+ sb.append("axleCount=").append(String.valueOf(this.axleCount));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTrackedObjectProperties)) {
+ return false;
+ }
+
+ VideoTrackedObjectProperties other = (VideoTrackedObjectProperties) o;
+ return java.util.Objects.equals(this.axleCount, other.axleCount) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.axleCount == null ? 43 : this.axleCount.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObjectSegment.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObjectSegment.java
new file mode 100644
index 00000000000..17dacfcf027
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackedObjectSegment.java
@@ -0,0 +1,196 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A segment of a tracked object in a video.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoTrackedObjectSegment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTrackedObjectSegment
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"videoSegment", "confidence", "frames"})
+ public VideoTrackedObjectSegment(
+ VideoSegment videoSegment,
+ Float confidence,
+ java.util.List frames) {
+ super();
+ this.videoSegment = videoSegment;
+ this.confidence = confidence;
+ this.frames = frames;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+
+ @com.fasterxml.jackson.annotation.JsonProperty("videoSegment")
+ private VideoSegment videoSegment;
+
+ public Builder videoSegment(VideoSegment videoSegment) {
+ this.videoSegment = videoSegment;
+ this.__explicitlySet__.add("videoSegment");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+ /** Frames within the segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private java.util.List frames;
+
+ /**
+ * Frames within the segment.
+ *
+ * @param frames the value to set
+ * @return this builder
+ */
+ public Builder frames(java.util.List frames) {
+ this.frames = frames;
+ this.__explicitlySet__.add("frames");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTrackedObjectSegment build() {
+ VideoTrackedObjectSegment model =
+ new VideoTrackedObjectSegment(this.videoSegment, this.confidence, this.frames);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTrackedObjectSegment model) {
+ if (model.wasPropertyExplicitlySet("videoSegment")) {
+ this.videoSegment(model.getVideoSegment());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("frames")) {
+ this.frames(model.getFrames());
+ }
+ 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("videoSegment")
+ private final VideoSegment videoSegment;
+
+ public VideoSegment getVideoSegment() {
+ return videoSegment;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ /** Frames within the segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("frames")
+ private final java.util.List frames;
+
+ /**
+ * Frames within the segment.
+ *
+ * @return the value
+ */
+ public java.util.List getFrames() {
+ return frames;
+ }
+
+ @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("VideoTrackedObjectSegment(");
+ sb.append("super=").append(super.toString());
+ sb.append("videoSegment=").append(String.valueOf(this.videoSegment));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", frames=").append(String.valueOf(this.frames));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTrackedObjectSegment)) {
+ return false;
+ }
+
+ VideoTrackedObjectSegment other = (VideoTrackedObjectSegment) o;
+ return java.util.Objects.equals(this.videoSegment, other.videoSegment)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.frames, other.frames)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.videoSegment == null ? 43 : this.videoSegment.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result = (result * PRIME) + (this.frames == null ? 43 : this.frames.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackingFrame.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackingFrame.java
new file mode 100644
index 00000000000..be1231e1e10
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/model/VideoTrackingFrame.java
@@ -0,0 +1,243 @@
+/**
+ * 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.aivision.model;
+
+/**
+ * A frame capturing a tracked object.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = VideoTrackingFrame.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class VideoTrackingFrame
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "timeOffsetMs",
+ "confidence",
+ "boundingPolygon",
+ "properties"
+ })
+ public VideoTrackingFrame(
+ Integer timeOffsetMs,
+ Float confidence,
+ BoundingPolygon boundingPolygon,
+ java.util.List properties) {
+ super();
+ this.timeOffsetMs = timeOffsetMs;
+ this.confidence = confidence;
+ this.boundingPolygon = boundingPolygon;
+ this.properties = properties;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Time offset(Milliseconds) of the frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) of the frame.
+ *
+ * @param timeOffsetMs the value to set
+ * @return this builder
+ */
+ public Builder timeOffsetMs(Integer timeOffsetMs) {
+ this.timeOffsetMs = timeOffsetMs;
+ this.__explicitlySet__.add("timeOffsetMs");
+ return this;
+ }
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @param confidence the value to set
+ * @return this builder
+ */
+ public Builder confidence(Float confidence) {
+ this.confidence = confidence;
+ this.__explicitlySet__.add("confidence");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private BoundingPolygon boundingPolygon;
+
+ public Builder boundingPolygon(BoundingPolygon boundingPolygon) {
+ this.boundingPolygon = boundingPolygon;
+ this.__explicitlySet__.add("boundingPolygon");
+ return this;
+ }
+ /** Properties associated with the tracked object in the frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("properties")
+ private java.util.List properties;
+
+ /**
+ * Properties associated with the tracked object in the frame.
+ *
+ * @param properties the value to set
+ * @return this builder
+ */
+ public Builder properties(java.util.List properties) {
+ this.properties = properties;
+ this.__explicitlySet__.add("properties");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public VideoTrackingFrame build() {
+ VideoTrackingFrame model =
+ new VideoTrackingFrame(
+ this.timeOffsetMs,
+ this.confidence,
+ this.boundingPolygon,
+ this.properties);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(VideoTrackingFrame model) {
+ if (model.wasPropertyExplicitlySet("timeOffsetMs")) {
+ this.timeOffsetMs(model.getTimeOffsetMs());
+ }
+ if (model.wasPropertyExplicitlySet("confidence")) {
+ this.confidence(model.getConfidence());
+ }
+ if (model.wasPropertyExplicitlySet("boundingPolygon")) {
+ this.boundingPolygon(model.getBoundingPolygon());
+ }
+ if (model.wasPropertyExplicitlySet("properties")) {
+ this.properties(model.getProperties());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Time offset(Milliseconds) of the frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeOffsetMs")
+ private final Integer timeOffsetMs;
+
+ /**
+ * Time offset(Milliseconds) of the frame.
+ *
+ * @return the value
+ */
+ public Integer getTimeOffsetMs() {
+ return timeOffsetMs;
+ }
+
+ /** The confidence score, between 0 and 1. */
+ @com.fasterxml.jackson.annotation.JsonProperty("confidence")
+ private final Float confidence;
+
+ /**
+ * The confidence score, between 0 and 1.
+ *
+ * @return the value
+ */
+ public Float getConfidence() {
+ return confidence;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("boundingPolygon")
+ private final BoundingPolygon boundingPolygon;
+
+ public BoundingPolygon getBoundingPolygon() {
+ return boundingPolygon;
+ }
+
+ /** Properties associated with the tracked object in the frame. */
+ @com.fasterxml.jackson.annotation.JsonProperty("properties")
+ private final java.util.List properties;
+
+ /**
+ * Properties associated with the tracked object in the frame.
+ *
+ * @return the value
+ */
+ public java.util.List getProperties() {
+ return properties;
+ }
+
+ @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("VideoTrackingFrame(");
+ sb.append("super=").append(super.toString());
+ sb.append("timeOffsetMs=").append(String.valueOf(this.timeOffsetMs));
+ sb.append(", confidence=").append(String.valueOf(this.confidence));
+ sb.append(", boundingPolygon=").append(String.valueOf(this.boundingPolygon));
+ sb.append(", properties=").append(String.valueOf(this.properties));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof VideoTrackingFrame)) {
+ return false;
+ }
+
+ VideoTrackingFrame other = (VideoTrackingFrame) o;
+ return java.util.Objects.equals(this.timeOffsetMs, other.timeOffsetMs)
+ && java.util.Objects.equals(this.confidence, other.confidence)
+ && java.util.Objects.equals(this.boundingPolygon, other.boundingPolygon)
+ && java.util.Objects.equals(this.properties, other.properties)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.timeOffsetMs == null ? 43 : this.timeOffsetMs.hashCode());
+ result = (result * PRIME) + (this.confidence == null ? 43 : this.confidence.hashCode());
+ result =
+ (result * PRIME)
+ + (this.boundingPolygon == null ? 43 : this.boundingPolygon.hashCode());
+ result = (result * PRIME) + (this.properties == null ? 43 : this.properties.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/CancelVideoJobRequest.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/CancelVideoJobRequest.java
new file mode 100644
index 00000000000..2879a447fbd
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/CancelVideoJobRequest.java
@@ -0,0 +1,234 @@
+/**
+ * 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.aivision.requests;
+
+import com.oracle.bmc.aivision.model.*;
+/**
+ * Example: Click here to see how to use CancelVideoJobRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
+public class CancelVideoJobRequest extends com.oracle.bmc.requests.BmcRequest {
+
+ /** Video job id. */
+ private String videoJobId;
+
+ /** Video job id. */
+ public String getVideoJobId() {
+ return videoJobId;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /** The client request ID for tracing. */
+ private String opcRequestId;
+
+ /** The client request ID for tracing. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ CancelVideoJobRequest, java.lang.Void> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /** Video job id. */
+ private String videoJobId = null;
+
+ /**
+ * Video job id.
+ *
+ * @param videoJobId the value to set
+ * @return this builder instance
+ */
+ public Builder videoJobId(String videoJobId) {
+ this.videoJobId = videoJobId;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /** The client request ID for tracing. */
+ private String opcRequestId = null;
+
+ /**
+ * The client request ID for tracing.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(CancelVideoJobRequest o) {
+ videoJobId(o.getVideoJobId());
+ ifMatch(o.getIfMatch());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of CancelVideoJobRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of CancelVideoJobRequest
+ */
+ public CancelVideoJobRequest build() {
+ CancelVideoJobRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of CancelVideoJobRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of CancelVideoJobRequest
+ */
+ public CancelVideoJobRequest buildWithoutInvocationCallback() {
+ CancelVideoJobRequest request = new CancelVideoJobRequest();
+ request.videoJobId = videoJobId;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new CancelVideoJobRequest(videoJobId, ifMatch, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder().videoJobId(videoJobId).ifMatch(ifMatch).opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",videoJobId=").append(String.valueOf(this.videoJobId));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CancelVideoJobRequest)) {
+ return false;
+ }
+
+ CancelVideoJobRequest other = (CancelVideoJobRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.videoJobId, other.videoJobId)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.videoJobId == null ? 43 : this.videoJobId.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/CreateVideoJobRequest.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/CreateVideoJobRequest.java
new file mode 100644
index 00000000000..be5369415ae
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/CreateVideoJobRequest.java
@@ -0,0 +1,273 @@
+/**
+ * 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.aivision.requests;
+
+import com.oracle.bmc.aivision.model.*;
+/**
+ * Example: Click here to see how to use CreateVideoJobRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
+public class CreateVideoJobRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.aivision.model.CreateVideoJobDetails> {
+
+ /** Details about the video analysis. */
+ private com.oracle.bmc.aivision.model.CreateVideoJobDetails createVideoJobDetails;
+
+ /** Details about the video analysis. */
+ public com.oracle.bmc.aivision.model.CreateVideoJobDetails getCreateVideoJobDetails() {
+ return createVideoJobDetails;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without the risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations. For example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request might be rejected.
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without the risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations. For example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request might be rejected.
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+ /** The client request ID for tracing. */
+ private String opcRequestId;
+
+ /** The client request ID for tracing. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.aivision.model.CreateVideoJobDetails getBody$() {
+ return createVideoJobDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ CreateVideoJobRequest, com.oracle.bmc.aivision.model.CreateVideoJobDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /** Details about the video analysis. */
+ private com.oracle.bmc.aivision.model.CreateVideoJobDetails createVideoJobDetails = null;
+
+ /**
+ * Details about the video analysis.
+ *
+ * @param createVideoJobDetails the value to set
+ * @return this builder instance
+ */
+ public Builder createVideoJobDetails(
+ com.oracle.bmc.aivision.model.CreateVideoJobDetails createVideoJobDetails) {
+ this.createVideoJobDetails = createVideoJobDetails;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without the risk of executing that same action again. Retry tokens expire
+ * after 24 hours, but can be invalidated before then due to conflicting operations. For
+ * example, if a resource has been deleted and purged from the system, then a retry of the
+ * original creation request might be rejected.
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without the risk of executing that same action again. Retry tokens expire
+ * after 24 hours, but can be invalidated before then due to conflicting operations. For
+ * example, if a resource has been deleted and purged from the system, then a retry of the
+ * original creation request might be rejected.
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /** The client request ID for tracing. */
+ private String opcRequestId = null;
+
+ /**
+ * The client request ID for tracing.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(CreateVideoJobRequest o) {
+ createVideoJobDetails(o.getCreateVideoJobDetails());
+ opcRetryToken(o.getOpcRetryToken());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of CreateVideoJobRequest as configured by this builder
+ *
+ *
Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of CreateVideoJobRequest
+ */
+ public CreateVideoJobRequest build() {
+ CreateVideoJobRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.aivision.model.CreateVideoJobDetails body) {
+ createVideoJobDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of CreateVideoJobRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of CreateVideoJobRequest
+ */
+ public CreateVideoJobRequest buildWithoutInvocationCallback() {
+ CreateVideoJobRequest request = new CreateVideoJobRequest();
+ request.createVideoJobDetails = createVideoJobDetails;
+ request.opcRetryToken = opcRetryToken;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new CreateVideoJobRequest(createVideoJobDetails, opcRetryToken, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .createVideoJobDetails(createVideoJobDetails)
+ .opcRetryToken(opcRetryToken)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",createVideoJobDetails=").append(String.valueOf(this.createVideoJobDetails));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateVideoJobRequest)) {
+ return false;
+ }
+
+ CreateVideoJobRequest other = (CreateVideoJobRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.createVideoJobDetails, other.createVideoJobDetails)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.createVideoJobDetails == null
+ ? 43
+ : this.createVideoJobDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/GetVideoJobRequest.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/GetVideoJobRequest.java
new file mode 100644
index 00000000000..b0c9076adb5
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/requests/GetVideoJobRequest.java
@@ -0,0 +1,190 @@
+/**
+ * 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.aivision.requests;
+
+import com.oracle.bmc.aivision.model.*;
+/**
+ * Example: Click here to see how to use GetVideoJobRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
+public class GetVideoJobRequest extends com.oracle.bmc.requests.BmcRequest {
+
+ /** Video job id. */
+ private String videoJobId;
+
+ /** Video job id. */
+ public String getVideoJobId() {
+ return videoJobId;
+ }
+ /** The client request ID for tracing. */
+ private String opcRequestId;
+
+ /** The client request ID for tracing. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ GetVideoJobRequest, java.lang.Void> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /** Video job id. */
+ private String videoJobId = null;
+
+ /**
+ * Video job id.
+ *
+ * @param videoJobId the value to set
+ * @return this builder instance
+ */
+ public Builder videoJobId(String videoJobId) {
+ this.videoJobId = videoJobId;
+ return this;
+ }
+
+ /** The client request ID for tracing. */
+ private String opcRequestId = null;
+
+ /**
+ * The client request ID for tracing.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(GetVideoJobRequest o) {
+ videoJobId(o.getVideoJobId());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of GetVideoJobRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of GetVideoJobRequest
+ */
+ public GetVideoJobRequest build() {
+ GetVideoJobRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of GetVideoJobRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of GetVideoJobRequest
+ */
+ public GetVideoJobRequest buildWithoutInvocationCallback() {
+ GetVideoJobRequest request = new GetVideoJobRequest();
+ request.videoJobId = videoJobId;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new GetVideoJobRequest(videoJobId, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder().videoJobId(videoJobId).opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",videoJobId=").append(String.valueOf(this.videoJobId));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof GetVideoJobRequest)) {
+ return false;
+ }
+
+ GetVideoJobRequest other = (GetVideoJobRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.videoJobId, other.videoJobId)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.videoJobId == null ? 43 : this.videoJobId.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/CancelVideoJobResponse.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/CancelVideoJobResponse.java
new file mode 100644
index 00000000000..3c266332e4f
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/CancelVideoJobResponse.java
@@ -0,0 +1,136 @@
+/**
+ * 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.aivision.responses;
+
+import com.oracle.bmc.aivision.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
+public class CancelVideoJobResponse extends com.oracle.bmc.responses.BmcResponse {
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ @java.beans.ConstructorProperties({"__httpStatusCode__", "headers", "opcRequestId"})
+ private CancelVideoJobResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String opcRequestId) {
+ super(__httpStatusCode__, headers);
+ this.opcRequestId = opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about
+ * a particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about
+ * a particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(CancelVideoJobResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ opcRequestId(o.getOpcRequestId());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public CancelVideoJobResponse build() {
+ return new CancelVideoJobResponse(__httpStatusCode__, headers, opcRequestId);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CancelVideoJobResponse)) {
+ return false;
+ }
+
+ CancelVideoJobResponse other = (CancelVideoJobResponse) o;
+ return super.equals(o) && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/CreateVideoJobResponse.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/CreateVideoJobResponse.java
new file mode 100644
index 00000000000..f4094e44c1e
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/CreateVideoJobResponse.java
@@ -0,0 +1,208 @@
+/**
+ * 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.aivision.responses;
+
+import com.oracle.bmc.aivision.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
+public class CreateVideoJobResponse extends com.oracle.bmc.responses.BmcResponse {
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @return the value
+ */
+ public String getEtag() {
+ return etag;
+ }
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /** The returned {@code VideoJob} instance. */
+ private com.oracle.bmc.aivision.model.VideoJob videoJob;
+
+ /**
+ * The returned {@code VideoJob} instance.
+ *
+ * @return the value
+ */
+ public com.oracle.bmc.aivision.model.VideoJob getVideoJob() {
+ return videoJob;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "etag",
+ "opcRequestId",
+ "videoJob"
+ })
+ private CreateVideoJobResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String etag,
+ String opcRequestId,
+ com.oracle.bmc.aivision.model.VideoJob videoJob) {
+ super(__httpStatusCode__, headers);
+ this.etag = etag;
+ this.opcRequestId = opcRequestId;
+ this.videoJob = videoJob;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @param etag the value to set
+ * @return this builder
+ */
+ public Builder etag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about
+ * a particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about
+ * a particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /** The returned {@code VideoJob} instance. */
+ private com.oracle.bmc.aivision.model.VideoJob videoJob;
+
+ /**
+ * The returned {@code VideoJob} instance.
+ *
+ * @param videoJob the value to set
+ * @return this builder
+ */
+ public Builder videoJob(com.oracle.bmc.aivision.model.VideoJob videoJob) {
+ this.videoJob = videoJob;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(CreateVideoJobResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ etag(o.getEtag());
+ opcRequestId(o.getOpcRequestId());
+ videoJob(o.getVideoJob());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public CreateVideoJobResponse build() {
+ return new CreateVideoJobResponse(
+ __httpStatusCode__, headers, etag, opcRequestId, videoJob);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",etag=").append(String.valueOf(etag));
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(",videoJob=").append(String.valueOf(videoJob));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateVideoJobResponse)) {
+ return false;
+ }
+
+ CreateVideoJobResponse other = (CreateVideoJobResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.etag, other.etag)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.videoJob, other.videoJob);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.etag == null ? 43 : this.etag.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result = (result * PRIME) + (this.videoJob == null ? 43 : this.videoJob.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/GetVideoJobResponse.java b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/GetVideoJobResponse.java
new file mode 100644
index 00000000000..cc5f0644886
--- /dev/null
+++ b/bmc-aivision/src/main/java/com/oracle/bmc/aivision/responses/GetVideoJobResponse.java
@@ -0,0 +1,208 @@
+/**
+ * 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.aivision.responses;
+
+import com.oracle.bmc.aivision.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
+public class GetVideoJobResponse extends com.oracle.bmc.responses.BmcResponse {
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @return the value
+ */
+ public String getEtag() {
+ return etag;
+ }
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /** The returned {@code VideoJob} instance. */
+ private com.oracle.bmc.aivision.model.VideoJob videoJob;
+
+ /**
+ * The returned {@code VideoJob} instance.
+ *
+ * @return the value
+ */
+ public com.oracle.bmc.aivision.model.VideoJob getVideoJob() {
+ return videoJob;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "etag",
+ "opcRequestId",
+ "videoJob"
+ })
+ private GetVideoJobResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String etag,
+ String opcRequestId,
+ com.oracle.bmc.aivision.model.VideoJob videoJob) {
+ super(__httpStatusCode__, headers);
+ this.etag = etag;
+ this.opcRequestId = opcRequestId;
+ this.videoJob = videoJob;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @param etag the value to set
+ * @return this builder
+ */
+ public Builder etag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about
+ * a particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * A unique Oracle-assigned identifier for the request. If you need to contact Oracle about
+ * a particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /** The returned {@code VideoJob} instance. */
+ private com.oracle.bmc.aivision.model.VideoJob videoJob;
+
+ /**
+ * The returned {@code VideoJob} instance.
+ *
+ * @param videoJob the value to set
+ * @return this builder
+ */
+ public Builder videoJob(com.oracle.bmc.aivision.model.VideoJob videoJob) {
+ this.videoJob = videoJob;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(GetVideoJobResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ etag(o.getEtag());
+ opcRequestId(o.getOpcRequestId());
+ videoJob(o.getVideoJob());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public GetVideoJobResponse build() {
+ return new GetVideoJobResponse(
+ __httpStatusCode__, headers, etag, opcRequestId, videoJob);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",etag=").append(String.valueOf(etag));
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(",videoJob=").append(String.valueOf(videoJob));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof GetVideoJobResponse)) {
+ return false;
+ }
+
+ GetVideoJobResponse other = (GetVideoJobResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.etag, other.etag)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.videoJob, other.videoJob);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.etag == null ? 43 : this.etag.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result = (result * PRIME) + (this.videoJob == null ? 43 : this.videoJob.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-aivision/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-aivision/reflect-config.json b/bmc-aivision/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-aivision/reflect-config.json
index 7c8fe096a01..02a8cf0668a 100644
--- a/bmc-aivision/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-aivision/reflect-config.json
+++ b/bmc-aivision/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-aivision/reflect-config.json
@@ -61,6 +61,20 @@
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.AnalyzeVideoResult",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.AnalyzeVideoResult$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.aivision.model.BoundingPolygon",
@@ -173,6 +187,20 @@
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.CreateVideoJobDetails",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.CreateVideoJobDetails$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.aivision.model.DataScienceLabelingDataset",
@@ -792,6 +820,20 @@
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.ObjectProperty",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.ObjectProperty$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.aivision.model.ObjectStorageDataset",
@@ -1110,6 +1152,353 @@
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFace",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFace$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFaceDetectionFeature",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFaceDetectionFeature$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFaceFrame",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFaceFrame$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFaceSegment",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFaceSegment$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFeature",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoFeature$FeatureType",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoJob",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoJob$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoJob$LifecycleState",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoJob$LifecycleDetails",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoLabel",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoLabel$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoLabelDetectionFeature",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoLabelDetectionFeature$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoLabelSegment",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoLabelSegment$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoMetadata",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoMetadata$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObject",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObject$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectDetectionFeature",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectDetectionFeature$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectFrame",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectFrame$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectSegment",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectSegment$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectTrackingFeature",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoObjectTrackingFeature$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoSegment",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoSegment$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoText",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoText$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTextDetectionFeature",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTextDetectionFeature$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTextFrame",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTextFrame$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTextSegment",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTextSegment$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackedObject",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackedObject$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackedObjectProperties",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackedObjectProperties$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackedObjectSegment",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackedObjectSegment$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackingFrame",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.aivision.model.VideoTrackingFrame$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.aivision.model.Word",
diff --git a/bmc-analytics/pom.xml b/bmc-analytics/pom.xml
index 12eb40f7728..55f67e541f6 100644
--- a/bmc-analytics/pom.xml
+++ b/bmc-analytics/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-analytics
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-announcementsservice/pom.xml b/bmc-announcementsservice/pom.xml
index 3c54cf8c4d7..b2c586c169b 100644
--- a/bmc-announcementsservice/pom.xml
+++ b/bmc-announcementsservice/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-announcementsservice
@@ -16,7 +16,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-apigateway/pom.xml b/bmc-apigateway/pom.xml
index cbd7bca65ea..10844b47e3c 100644
--- a/bmc-apigateway/pom.xml
+++ b/bmc-apigateway/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-apigateway
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-apmconfig/pom.xml b/bmc-apmconfig/pom.xml
index 383183014b5..c84dfcfcdb7 100644
--- a/bmc-apmconfig/pom.xml
+++ b/bmc-apmconfig/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-apmconfig
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-apmcontrolplane/pom.xml b/bmc-apmcontrolplane/pom.xml
index 8abcd764348..45be01b8d3f 100644
--- a/bmc-apmcontrolplane/pom.xml
+++ b/bmc-apmcontrolplane/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-apmcontrolplane
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-apmsynthetics/pom.xml b/bmc-apmsynthetics/pom.xml
index 97e87e3d70a..78be967478c 100644
--- a/bmc-apmsynthetics/pom.xml
+++ b/bmc-apmsynthetics/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-apmsynthetics
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-apmtraces/pom.xml b/bmc-apmtraces/pom.xml
index 57d5e776191..282012e2fb1 100644
--- a/bmc-apmtraces/pom.xml
+++ b/bmc-apmtraces/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-apmtraces
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-appmgmtcontrol/pom.xml b/bmc-appmgmtcontrol/pom.xml
index c3f70871045..03d9796bda3 100644
--- a/bmc-appmgmtcontrol/pom.xml
+++ b/bmc-appmgmtcontrol/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-appmgmtcontrol
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
\ No newline at end of file
diff --git a/bmc-artifacts/pom.xml b/bmc-artifacts/pom.xml
index 65f63ecc4ae..5f8a4ba8061 100644
--- a/bmc-artifacts/pom.xml
+++ b/bmc-artifacts/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-artifacts
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-audit/pom.xml b/bmc-audit/pom.xml
index 0ad79b5b38a..bec6d65561b 100644
--- a/bmc-audit/pom.xml
+++ b/bmc-audit/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
@@ -18,7 +18,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-autoscaling/pom.xml b/bmc-autoscaling/pom.xml
index cbe9522634f..fcc19a77026 100644
--- a/bmc-autoscaling/pom.xml
+++ b/bmc-autoscaling/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-autoscaling
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-bastion/pom.xml b/bmc-bastion/pom.xml
index 00142a8faee..b54b746b218 100644
--- a/bmc-bastion/pom.xml
+++ b/bmc-bastion/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-bastion
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-bds/pom.xml b/bmc-bds/pom.xml
index d1dfc052e31..bbee8d49d1e 100644
--- a/bmc-bds/pom.xml
+++ b/bmc-bds/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.55.0
+ 3.55.1
../pom.xml
oci-java-sdk-bds
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.55.0
+ 3.55.1
diff --git a/bmc-bds/src/main/java/com/oracle/bmc/bds/Bds.java b/bmc-bds/src/main/java/com/oracle/bmc/bds/Bds.java
index f0090d57b3a..a3f226e114a 100644
--- a/bmc-bds/src/main/java/com/oracle/bmc/bds/Bds.java
+++ b/bmc-bds/src/main/java/com/oracle/bmc/bds/Bds.java
@@ -83,6 +83,40 @@ public interface Bds extends AutoCloseable {
ActivateBdsMetastoreConfigurationResponse activateBdsMetastoreConfiguration(
ActivateBdsMetastoreConfigurationRequest request);
+ /**
+ * Activate IAM user sync configuration for the given identity configuration
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ * Example: Click here to see how to use
+ * ActivateIamUserSyncConfiguration API.
+ */
+ ActivateIamUserSyncConfigurationResponse activateIamUserSyncConfiguration(
+ ActivateIamUserSyncConfigurationRequest request);
+
+ /**
+ * Activate UPST configuration for the given identity configuration
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * ActivateUpstConfiguration API.
+ */
+ ActivateUpstConfigurationResponse activateUpstConfiguration(
+ ActivateUpstConfigurationRequest request);
+
/**
* Add an autoscale configuration to the cluster.
*
@@ -318,6 +352,23 @@ ChangeBdsInstanceCompartmentResponse changeBdsInstanceCompartment(
CreateBdsMetastoreConfigurationResponse createBdsMetastoreConfiguration(
CreateBdsMetastoreConfigurationRequest request);
+ /**
+ * Create an identity configuration for the cluster
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * CreateIdentityConfiguration API.
+ */
+ CreateIdentityConfigurationResponse createIdentityConfiguration(
+ CreateIdentityConfigurationRequest request);
+
/**
* Add a node volume backup configuration to the cluster for an indicated node type or node.
*
@@ -369,6 +420,40 @@ CreateNodeReplaceConfigurationResponse createNodeReplaceConfiguration(
CreateResourcePrincipalConfigurationResponse createResourcePrincipalConfiguration(
CreateResourcePrincipalConfigurationRequest request);
+ /**
+ * Deactivate the IAM user sync configuration.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * DeactivateIamUserSyncConfiguration API.
+ */
+ DeactivateIamUserSyncConfigurationResponse deactivateIamUserSyncConfiguration(
+ DeactivateIamUserSyncConfigurationRequest request);
+
+ /**
+ * Deactivate the UPST configuration represented by the provided ID.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * DeactivateUpstConfiguration API.
+ */
+ DeactivateUpstConfigurationResponse deactivateUpstConfiguration(
+ DeactivateUpstConfigurationRequest request);
+
/**
* Deletes the user's API key represented by the provided ID.
*
@@ -418,6 +503,25 @@ CreateResourcePrincipalConfigurationResponse createResourcePrincipalConfiguratio
DeleteBdsMetastoreConfigurationResponse deleteBdsMetastoreConfiguration(
DeleteBdsMetastoreConfigurationRequest request);
+ /**
+ * Delete the identity configuration represented by the provided ID. Deletion is only allowed if
+ * this identity configuration is not associated with any active IAM user sync configuration or
+ * UPST configuration.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * DeleteIdentityConfiguration API.
+ */
+ DeleteIdentityConfigurationResponse deleteIdentityConfiguration(
+ DeleteIdentityConfigurationRequest request);
+
/**
* Delete the NodeBackup represented by the provided ID.
*
@@ -580,6 +684,23 @@ GetAutoScalingConfigurationResponse getAutoScalingConfiguration(
GetBdsMetastoreConfigurationResponse getBdsMetastoreConfiguration(
GetBdsMetastoreConfigurationRequest request);
+ /**
+ * Get details of one identity config on the cluster
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * GetIdentityConfiguration API.
+ */
+ GetIdentityConfigurationResponse getIdentityConfiguration(
+ GetIdentityConfigurationRequest request);
+
/**
* Returns details of NodeBackup identified by the given ID.
*
@@ -739,6 +860,22 @@ ListAutoScalingConfigurationsResponse listAutoScalingConfigurations(
*/
ListBdsApiKeysResponse listBdsApiKeys(ListBdsApiKeysRequest request);
+ /**
+ * Returns a list of cluster versions with associated odh and bds versions.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * ListBdsClusterVersions API.
+ */
+ ListBdsClusterVersionsResponse listBdsClusterVersions(ListBdsClusterVersionsRequest request);
+
/**
* Returns a list of all Big Data Service clusters in a compartment.
*
@@ -772,6 +909,23 @@ ListAutoScalingConfigurationsResponse listAutoScalingConfigurations(
ListBdsMetastoreConfigurationsResponse listBdsMetastoreConfigurations(
ListBdsMetastoreConfigurationsRequest request);
+ /**
+ * Returns a list of all identity configurations associated with this Big Data Service cluster.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * ListIdentityConfigurations API.
+ */
+ ListIdentityConfigurationsResponse listIdentityConfigurations(
+ ListIdentityConfigurationsRequest request);
+
/**
* Returns information about the NodeBackupConfigurations.
*
@@ -933,6 +1087,41 @@ ListResourcePrincipalConfigurationsResponse listResourcePrincipalConfigurations(
*/
ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request);
+ /**
+ * Refresh confidential application for the given identity configuration in case of any update
+ * to the confidential application (e.g. regenerated client secret)
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * RefreshConfidentialApplication API.
+ */
+ RefreshConfidentialApplicationResponse refreshConfidentialApplication(
+ RefreshConfidentialApplicationRequest request);
+
+ /**
+ * Refresh token exchange kerberos principal keytab for the UPST enabled identity configuration
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * RefreshUpstTokenExchangeKeytab API.
+ */
+ RefreshUpstTokenExchangeKeytabResponse refreshUpstTokenExchangeKeytab(
+ RefreshUpstTokenExchangeKeytabRequest request);
+
/**
* Deletes an autoscale configuration.
*
@@ -1192,6 +1381,23 @@ UpdateAutoScalingConfigurationResponse updateAutoScalingConfiguration(
UpdateBdsMetastoreConfigurationResponse updateBdsMetastoreConfiguration(
UpdateBdsMetastoreConfigurationRequest request);
+ /**
+ * Update the IAM user sync and UPST configuration for the specified identity configuration
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * UpdateIdentityConfiguration API.
+ */
+ UpdateIdentityConfigurationResponse updateIdentityConfiguration(
+ UpdateIdentityConfigurationRequest request);
+
/**
* Updates fields on NodeBackupConfiguration, including the name, the schedule.
*
diff --git a/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsync.java b/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsync.java
index 126f3378e00..2543ed4ebc5 100644
--- a/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsync.java
+++ b/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsync.java
@@ -81,6 +81,40 @@ public interface BdsAsync extends AutoCloseable {
ActivateBdsMetastoreConfigurationResponse>
handler);
+ /**
+ * Activate IAM user sync configuration for the given identity configuration
+ *
+ * @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
+ activateIamUserSyncConfiguration(
+ ActivateIamUserSyncConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ActivateIamUserSyncConfigurationRequest,
+ ActivateIamUserSyncConfigurationResponse>
+ handler);
+
+ /**
+ * Activate UPST configuration for the given identity configuration
+ *
+ * @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 activateUpstConfiguration(
+ ActivateUpstConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ActivateUpstConfigurationRequest, ActivateUpstConfigurationResponse>
+ handler);
+
/**
* Add an autoscale configuration to the cluster.
*
@@ -309,6 +343,22 @@ java.util.concurrent.Future createBdsInstance(
CreateBdsMetastoreConfigurationResponse>
handler);
+ /**
+ * Create an identity configuration for the cluster
+ *
+ * @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 createIdentityConfiguration(
+ CreateIdentityConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ CreateIdentityConfigurationRequest, CreateIdentityConfigurationResponse>
+ handler);
+
/**
* Add a node volume backup configuration to the cluster for an indicated node type or node.
*
@@ -363,6 +413,40 @@ java.util.concurrent.Future createBdsInstance(
CreateResourcePrincipalConfigurationResponse>
handler);
+ /**
+ * Deactivate the IAM user sync configuration.
+ *
+ * @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
+ deactivateIamUserSyncConfiguration(
+ DeactivateIamUserSyncConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ DeactivateIamUserSyncConfigurationRequest,
+ DeactivateIamUserSyncConfigurationResponse>
+ handler);
+
+ /**
+ * Deactivate the UPST configuration represented by the provided ID.
+ *
+ * @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 deactivateUpstConfiguration(
+ DeactivateUpstConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ DeactivateUpstConfigurationRequest, DeactivateUpstConfigurationResponse>
+ handler);
+
/**
* Deletes the user's API key represented by the provided ID.
*
@@ -412,6 +496,24 @@ java.util.concurrent.Future deleteBdsInstance(
DeleteBdsMetastoreConfigurationResponse>
handler);
+ /**
+ * Delete the identity configuration represented by the provided ID. Deletion is only allowed if
+ * this identity configuration is not associated with any active IAM user sync configuration or
+ * UPST configuration.
+ *
+ * @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 deleteIdentityConfiguration(
+ DeleteIdentityConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ DeleteIdentityConfigurationRequest, DeleteIdentityConfigurationResponse>
+ handler);
+
/**
* Delete the NodeBackup represented by the provided ID.
*
@@ -574,6 +676,22 @@ java.util.concurrent.Future getBdsMetastor
GetBdsMetastoreConfigurationResponse>
handler);
+ /**
+ * Get details of one identity config on the cluster
+ *
+ * @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 getIdentityConfiguration(
+ GetIdentityConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ GetIdentityConfigurationRequest, GetIdentityConfigurationResponse>
+ handler);
+
/**
* Returns details of NodeBackup identified by the given ID.
*
@@ -733,6 +851,22 @@ java.util.concurrent.Future listBdsApiKeys(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Returns a list of cluster versions with associated odh and bds versions.
+ *
+ * @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 listBdsClusterVersions(
+ ListBdsClusterVersionsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListBdsClusterVersionsRequest, ListBdsClusterVersionsResponse>
+ handler);
+
/**
* Returns a list of all Big Data Service clusters in a compartment.
*
@@ -766,6 +900,22 @@ java.util.concurrent.Future listBdsInstances(
ListBdsMetastoreConfigurationsResponse>
handler);
+ /**
+ * Returns a list of all identity configurations associated with this Big Data Service cluster.
+ *
+ * @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 listIdentityConfigurations(
+ ListIdentityConfigurationsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListIdentityConfigurationsRequest, ListIdentityConfigurationsResponse>
+ handler);
+
/**
* Returns information about the NodeBackupConfigurations.
*
@@ -926,6 +1076,43 @@ java.util.concurrent.Future listWorkRequests(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Refresh confidential application for the given identity configuration in case of any update
+ * to the confidential application (e.g. regenerated client secret)
+ *
+ * @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
+ refreshConfidentialApplication(
+ RefreshConfidentialApplicationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ RefreshConfidentialApplicationRequest,
+ RefreshConfidentialApplicationResponse>
+ handler);
+
+ /**
+ * Refresh token exchange kerberos principal keytab for the UPST enabled identity configuration
+ *
+ * @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
+ refreshUpstTokenExchangeKeytab(
+ RefreshUpstTokenExchangeKeytabRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ RefreshUpstTokenExchangeKeytabRequest,
+ RefreshUpstTokenExchangeKeytabResponse>
+ handler);
+
/**
* Deletes an autoscale configuration.
*
@@ -1185,6 +1372,22 @@ java.util.concurrent.Future updateBdsInstance(
UpdateBdsMetastoreConfigurationResponse>
handler);
+ /**
+ * Update the IAM user sync and UPST configuration for the specified identity configuration
+ *
+ * @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 updateIdentityConfiguration(
+ UpdateIdentityConfigurationRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ UpdateIdentityConfigurationRequest, UpdateIdentityConfigurationResponse>
+ handler);
+
/**
* Updates fields on NodeBackupConfiguration, including the name, the schedule.
*
diff --git a/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsyncClient.java b/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsyncClient.java
index cfbb922e389..00ad596bdb7 100644
--- a/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsyncClient.java
+++ b/bmc-bds/src/main/java/com/oracle/bmc/bds/BdsAsyncClient.java
@@ -140,6 +140,95 @@ public void setRegion(String regionId) {
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future
+ activateIamUserSyncConfiguration(
+ ActivateIamUserSyncConfigurationRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ActivateIamUserSyncConfigurationRequest,
+ ActivateIamUserSyncConfigurationResponse>
+ handler) {
+
+ Validate.notBlank(request.getBdsInstanceId(), "bdsInstanceId must not be blank");
+
+ Validate.notBlank(
+ request.getIdentityConfigurationId(), "identityConfigurationId must not be blank");
+ Objects.requireNonNull(
+ request.getActivateIamUserSyncConfigurationDetails(),
+ "activateIamUserSyncConfigurationDetails is required");
+
+ return clientCall(request, ActivateIamUserSyncConfigurationResponse::builder)
+ .logger(LOG, "activateIamUserSyncConfiguration")
+ .serviceDetails(
+ "Bds",
+ "ActivateIamUserSyncConfiguration",
+ "https://docs.oracle.com/iaas/api/#/en/bigdata/20190531/IdentityConfiguration/ActivateIamUserSyncConfiguration")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(ActivateIamUserSyncConfigurationRequest::builder)
+ .basePath("/20190531")
+ .appendPathParam("bdsInstances")
+ .appendPathParam(request.getBdsInstanceId())
+ .appendPathParam("identityConfigurations")
+ .appendPathParam(request.getIdentityConfigurationId())
+ .appendPathParam("actions")
+ .appendPathParam("activateIamUserSyncConfiguration")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleResponseHeaderString(
+ "opc-request-id",
+ ActivateIamUserSyncConfigurationResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ ActivateIamUserSyncConfigurationResponse.Builder::opcWorkRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future activateUpstConfiguration(
+ ActivateUpstConfigurationRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ActivateUpstConfigurationRequest, ActivateUpstConfigurationResponse>
+ handler) {
+
+ Validate.notBlank(request.getBdsInstanceId(), "bdsInstanceId must not be blank");
+
+ Validate.notBlank(
+ request.getIdentityConfigurationId(), "identityConfigurationId must not be blank");
+ Objects.requireNonNull(
+ request.getActivateUpstConfigurationDetails(),
+ "activateUpstConfigurationDetails is required");
+
+ return clientCall(request, ActivateUpstConfigurationResponse::builder)
+ .logger(LOG, "activateUpstConfiguration")
+ .serviceDetails(
+ "Bds",
+ "ActivateUpstConfiguration",
+ "https://docs.oracle.com/iaas/api/#/en/bigdata/20190531/IdentityConfiguration/ActivateUpstConfiguration")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(ActivateUpstConfigurationRequest::builder)
+ .basePath("/20190531")
+ .appendPathParam("bdsInstances")
+ .appendPathParam(request.getBdsInstanceId())
+ .appendPathParam("identityConfigurations")
+ .appendPathParam(request.getIdentityConfigurationId())
+ .appendPathParam("actions")
+ .appendPathParam("activateUpstConfiguration")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleResponseHeaderString(
+ "opc-request-id", ActivateUpstConfigurationResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ ActivateUpstConfigurationResponse.Builder::opcWorkRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future
addAutoScalingConfiguration(
@@ -642,6 +731,44 @@ public java.util.concurrent.Future