diff --git a/CHANGELOG.md b/CHANGELOG.md
index f5aeae280fe..efdfa4dbb35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
### Added
- N/A
+## 1.2.40 - 2018-06-14
+### Added
+- Support for the Container Engine service. A sample showing how to use this service from the SDK is available [here](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ContainerEngineClusterExample.java)
+
## 1.2.39 - 2018-05-31
### Added
- Support for the "soft shutdown" instance action in the Compute service
diff --git a/bmc-audit/pom.xml b/bmc-audit/pom.xml
index b7ef63ce428..34d3679c011 100644
--- a/bmc-audit/pom.xml
+++ b/bmc-audit/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 1.2.39
+ 1.2.40
../pom.xml
@@ -18,7 +18,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 1.2.39
+ 1.2.40
diff --git a/bmc-bom/pom.xml b/bmc-bom/pom.xml
index 86865e51b64..acea0eb7a41 100644
--- a/bmc-bom/pom.xml
+++ b/bmc-bom/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 1.2.39
+ 1.2.40
../pom.xml
oci-java-sdk-bom
@@ -19,62 +19,68 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-audit
- 1.2.39
+ 1.2.40
+ false
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk-containerengine
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-core
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-database
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-dns
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-email
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-filestorage
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-identity
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-loadbalancer
- 1.2.39
+ 1.2.40
false
com.oracle.oci.sdk
oci-java-sdk-objectstorage
- 1.2.39
+ 1.2.40
false
pom
diff --git a/bmc-common/pom.xml b/bmc-common/pom.xml
index bf8bf147001..351a56bbba4 100644
--- a/bmc-common/pom.xml
+++ b/bmc-common/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 1.2.39
+ 1.2.40
../pom.xml
diff --git a/bmc-containerengine/pom.xml b/bmc-containerengine/pom.xml
new file mode 100644
index 00000000000..7e7cad3eb9d
--- /dev/null
+++ b/bmc-containerengine/pom.xml
@@ -0,0 +1,25 @@
+
+ 4.0.0
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk
+ 1.2.40
+ ../pom.xml
+
+
+ oci-java-sdk-containerengine
+ Oracle Cloud Infrastructure SDK - Container Engine
+ This project contains the SDK used for Oracle Cloud Infrastructure Container Engine
+ https://docs.us-phoenix-1.oraclecloud.com/Content/API/SDKDocs/javasdk.htm
+
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk-common
+ 1.2.40
+
+
+
+
diff --git a/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngine.java b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngine.java
new file mode 100644
index 00000000000..2e776b15e3a
--- /dev/null
+++ b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngine.java
@@ -0,0 +1,198 @@
+/**
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.containerengine;
+
+import com.oracle.bmc.containerengine.requests.*;
+import com.oracle.bmc.containerengine.responses.*;
+
+@javax.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20180222")
+public interface ContainerEngine extends AutoCloseable {
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ * @param endpoint The endpoint of the service.
+ */
+ void setEndpoint(String endpoint);
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ * Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the endpoint. If the service is not available in this Region, however, an IllegalArgumentException will be raised.
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ * Note, this will first try to map the region ID to a known Region and call
+ * {@link #setRegion(Region) setRegion}.
+ *
+ * If no known Region could be determined, it will create an endpoint based on the
+ * default endpoint format ({@link Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Create a new 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.
+ */
+ CreateClusterResponse createCluster(CreateClusterRequest request);
+
+ /**
+ * Create the Kubeconfig YAML for a 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.
+ */
+ CreateKubeconfigResponse createKubeconfig(CreateKubeconfigRequest request);
+
+ /**
+ * Create a new node pool.
+ * @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.
+ */
+ CreateNodePoolResponse createNodePool(CreateNodePoolRequest request);
+
+ /**
+ * Delete a 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.
+ */
+ DeleteClusterResponse deleteCluster(DeleteClusterRequest request);
+
+ /**
+ * Delete a node pool.
+ * @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.
+ */
+ DeleteNodePoolResponse deleteNodePool(DeleteNodePoolRequest request);
+
+ /**
+ * Cancel a work request that has not started.
+ * @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.
+ */
+ DeleteWorkRequestResponse deleteWorkRequest(DeleteWorkRequestRequest request);
+
+ /**
+ * Get the details of a 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.
+ */
+ GetClusterResponse getCluster(GetClusterRequest request);
+
+ /**
+ * Get options available for clusters.
+ * @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.
+ */
+ GetClusterOptionsResponse getClusterOptions(GetClusterOptionsRequest request);
+
+ /**
+ * Get the details of a node pool.
+ * @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.
+ */
+ GetNodePoolResponse getNodePool(GetNodePoolRequest request);
+
+ /**
+ * Get options available for node pools.
+ * @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.
+ */
+ GetNodePoolOptionsResponse getNodePoolOptions(GetNodePoolOptionsRequest request);
+
+ /**
+ * Get the details of a work request.
+ * @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.
+ */
+ GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request);
+
+ /**
+ * List all the cluster objects in a compartment.
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs.
+ */
+ ListClustersResponse listClusters(ListClustersRequest request);
+
+ /**
+ * List all the node pools in a compartment, and optionally filter by 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.
+ */
+ ListNodePoolsResponse listNodePools(ListNodePoolsRequest request);
+
+ /**
+ * Get the errors of a work request.
+ * @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.
+ */
+ ListWorkRequestErrorsResponse listWorkRequestErrors(ListWorkRequestErrorsRequest request);
+
+ /**
+ * Get the logs of a work request.
+ * @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.
+ */
+ ListWorkRequestLogsResponse listWorkRequestLogs(ListWorkRequestLogsRequest request);
+
+ /**
+ * List all work requests in a compartment.
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs.
+ */
+ ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request);
+
+ /**
+ * Update the details of a 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.
+ */
+ UpdateClusterResponse updateCluster(UpdateClusterRequest request);
+
+ /**
+ * Update the details of a node pool.
+ * @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.
+ */
+ UpdateNodePoolResponse updateNodePool(UpdateNodePoolRequest request);
+
+ /**
+ * Gets the pre-configured waiters available for resources for this service.
+ *
+ * @return The service waiters.
+ */
+ ContainerEngineWaiters getWaiters();
+
+ /**
+ * Gets the pre-configured paginators available for list operations in this service which may return multiple
+ * pages of data. These paginators provide an {@link java.lang.Iterable} interface so that service responses, or
+ * resources/records, can be iterated through without having to manually deal with pagination and page tokens.
+ *
+ * @return The service paginators.
+ */
+ ContainerEnginePaginators getPaginators();
+}
diff --git a/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineAsync.java b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineAsync.java
new file mode 100644
index 00000000000..b953bf195fd
--- /dev/null
+++ b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineAsync.java
@@ -0,0 +1,311 @@
+/**
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.containerengine;
+
+import com.oracle.bmc.containerengine.requests.*;
+import com.oracle.bmc.containerengine.responses.*;
+
+@javax.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20180222")
+public interface ContainerEngineAsync extends AutoCloseable {
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ * @param endpoint The endpoint of the serice.
+ */
+ void setEndpoint(String endpoint);
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ * Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the endpoint. If the service is not available in this region, however, an IllegalArgumentException will be raised.
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ * Note, this will first try to map the region ID to a known Region and call
+ * {@link #setRegion(Region) setRegion}.
+ *
+ * If no known Region could be determined, it will create an endpoint based on the
+ * default endpoint format ({@link Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Create a new 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 createCluster(
+ CreateClusterRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Create the Kubeconfig YAML for a 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 createKubeconfig(
+ CreateKubeconfigRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Create a new node pool.
+ *
+ * @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 createNodePool(
+ CreateNodePoolRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Delete a 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 deleteCluster(
+ DeleteClusterRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Delete a node pool.
+ *
+ * @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 deleteNodePool(
+ DeleteNodePoolRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Cancel a work request that has not started.
+ *
+ * @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 deleteWorkRequest(
+ DeleteWorkRequestRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ DeleteWorkRequestRequest, DeleteWorkRequestResponse>
+ handler);
+
+ /**
+ * Get the details of a 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 getCluster(
+ GetClusterRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Get options available for clusters.
+ *
+ * @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 getClusterOptions(
+ GetClusterOptionsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ GetClusterOptionsRequest, GetClusterOptionsResponse>
+ handler);
+
+ /**
+ * Get the details of a node pool.
+ *
+ * @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 getNodePool(
+ GetNodePoolRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Get options available for node pools.
+ *
+ * @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 getNodePoolOptions(
+ GetNodePoolOptionsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ GetNodePoolOptionsRequest, GetNodePoolOptionsResponse>
+ handler);
+
+ /**
+ * Get the details of a work request.
+ *
+ * @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 getWorkRequest(
+ GetWorkRequestRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * List all the cluster objects in a compartment.
+ *
+ * @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 listClusters(
+ ListClustersRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * List all the node pools in a compartment, and optionally filter by 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 listNodePools(
+ ListNodePoolsRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Get the errors of a work request.
+ *
+ * @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 listWorkRequestErrors(
+ ListWorkRequestErrorsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>
+ handler);
+
+ /**
+ * Get the logs of a work request.
+ *
+ * @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 listWorkRequestLogs(
+ ListWorkRequestLogsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>
+ handler);
+
+ /**
+ * List all work requests in a compartment.
+ *
+ * @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 listWorkRequests(
+ ListWorkRequestsRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Update the details of a 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 updateCluster(
+ UpdateClusterRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Update the details of a node pool.
+ *
+ * @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 updateNodePool(
+ UpdateNodePoolRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+}
diff --git a/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineAsyncClient.java b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineAsyncClient.java
new file mode 100644
index 00000000000..8814a72a88f
--- /dev/null
+++ b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineAsyncClient.java
@@ -0,0 +1,1619 @@
+/**
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.containerengine;
+
+import java.util.Locale;
+import com.oracle.bmc.containerengine.internal.http.*;
+import com.oracle.bmc.containerengine.requests.*;
+import com.oracle.bmc.containerengine.responses.*;
+
+@javax.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20180222")
+@lombok.extern.slf4j.Slf4j
+public class ContainerEngineAsyncClient implements ContainerEngineAsync {
+ /**
+ * Service instance for ContainerEngine.
+ */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.create("CONTAINERENGINE", "containerengine");
+
+ @lombok.Getter(value = lombok.AccessLevel.PACKAGE)
+ private final com.oracle.bmc.http.internal.RestClient client;
+
+ private final com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider;
+
+ /**
+ * Creates a new service instance using the given authentication provider.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(authenticationDetailsProvider, configuration, null);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD));
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ defaultRequestSignerFactory,
+ new java.util.ArrayList());
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ defaultRequestSignerFactory,
+ additionalClientConfigurators,
+ null);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
+ * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider})
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ defaultRequestSignerFactory,
+ com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory
+ .createDefaultRequestSignerFactories(),
+ additionalClientConfigurators,
+ endpoint);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ * @param signingStrategyRequestSignerFactories The request signer factories for each signing strategy used to create the request signer
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
+ * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider})
+ */
+ public ContainerEngineAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this.authenticationDetailsProvider = authenticationDetailsProvider;
+ com.oracle.bmc.http.internal.RestClientFactory restClientFactory =
+ com.oracle.bmc.http.internal.RestClientFactoryBuilder.builder()
+ .clientConfigurator(clientConfigurator)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .build();
+ com.oracle.bmc.http.signing.RequestSigner defaultRequestSigner =
+ defaultRequestSignerFactory.createRequestSigner(
+ SERVICE, this.authenticationDetailsProvider);
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSigner>
+ requestSigners = new java.util.HashMap<>();
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.BasicAuthenticationDetailsProvider) {
+ for (com.oracle.bmc.http.signing.SigningStrategy s :
+ com.oracle.bmc.http.signing.SigningStrategy.values()) {
+ requestSigners.put(
+ s,
+ signingStrategyRequestSignerFactories
+ .get(s)
+ .createRequestSigner(SERVICE, authenticationDetailsProvider));
+ }
+ }
+ this.client = restClientFactory.create(defaultRequestSigner, requestSigners, configuration);
+
+ if (this.authenticationDetailsProvider instanceof com.oracle.bmc.auth.RegionProvider) {
+ com.oracle.bmc.auth.RegionProvider provider =
+ (com.oracle.bmc.auth.RegionProvider) this.authenticationDetailsProvider;
+
+ if (provider.getRegion() != null) {
+ this.setRegion(provider.getRegion());
+ if (endpoint != null) {
+ LOG.info(
+ "Authentication details provider configured for region '{}', but endpoint specifically set to '{}'. Using endpoint setting instead of region.",
+ provider.getRegion(),
+ endpoint);
+ }
+ }
+ }
+ if (endpoint != null) {
+ setEndpoint(endpoint);
+ }
+ }
+
+ /**
+ * Create a builder for this client.
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be passed to the
+ * {@link #build(AbstractAuthenticationDetailsProvider)} or {@link #buildAsync(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder<
+ Builder, ContainerEngineAsyncClient> {
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Build the client.
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public ContainerEngineAsyncClient build(
+ @lombok.NonNull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new ContainerEngineAsyncClient(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ requestSignerFactory,
+ additionalClientConfigurators,
+ endpoint);
+ }
+ }
+
+ @Override
+ public void setEndpoint(String endpoint) {
+ LOG.info("Setting endpoint to {}", endpoint);
+ client.setEndpoint(endpoint);
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ com.google.common.base.Optional endpoint = region.getEndpoint(SERVICE);
+ if (endpoint.isPresent()) {
+ setEndpoint(endpoint.get());
+ } else {
+ throw new IllegalArgumentException(
+ "Endpoint for " + SERVICE + " is not known in region " + region);
+ }
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ regionId = regionId.toLowerCase(Locale.ENGLISH);
+ try {
+ com.oracle.bmc.Region region = com.oracle.bmc.Region.fromRegionId(regionId);
+ setRegion(region);
+ } catch (IllegalArgumentException e) {
+ LOG.info("Unknown regionId '{}', falling back to default endpoint format", regionId);
+ String endpoint = com.oracle.bmc.Region.formatDefaultRegionEndpoint(SERVICE, regionId);
+ setEndpoint(endpoint);
+ }
+ }
+
+ @Override
+ public void close() {
+ client.close();
+ }
+
+ @Override
+ public java.util.concurrent.Future createCluster(
+ final CreateClusterRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async createCluster");
+ final CreateClusterRequest interceptedRequest =
+ CreateClusterConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ CreateClusterConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = CreateClusterConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ CreateClusterRequest, CreateClusterResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.post(
+ ib,
+ interceptedRequest.getCreateClusterDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.post(
+ ib,
+ interceptedRequest.getCreateClusterDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, CreateClusterResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.post(
+ ib,
+ interceptedRequest.getCreateClusterDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future createKubeconfig(
+ final CreateKubeconfigRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateKubeconfigRequest, CreateKubeconfigResponse>
+ handler) {
+ LOG.trace("Called async createKubeconfig");
+ final CreateKubeconfigRequest interceptedRequest =
+ CreateKubeconfigConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ CreateKubeconfigConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = CreateKubeconfigConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ CreateKubeconfigRequest, CreateKubeconfigResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.post(
+ ib,
+ interceptedRequest.getCreateClusterKubeconfigContentDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.post(
+ ib,
+ interceptedRequest.getCreateClusterKubeconfigContentDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, CreateKubeconfigResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.post(
+ ib,
+ interceptedRequest.getCreateClusterKubeconfigContentDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future createNodePool(
+ final CreateNodePoolRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateNodePoolRequest, CreateNodePoolResponse>
+ handler) {
+ LOG.trace("Called async createNodePool");
+ final CreateNodePoolRequest interceptedRequest =
+ CreateNodePoolConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ CreateNodePoolConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = CreateNodePoolConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ CreateNodePoolRequest, CreateNodePoolResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.post(
+ ib,
+ interceptedRequest.getCreateNodePoolDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.post(
+ ib,
+ interceptedRequest.getCreateNodePoolDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, CreateNodePoolResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.post(
+ ib,
+ interceptedRequest.getCreateNodePoolDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteCluster(
+ final DeleteClusterRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async deleteCluster");
+ final DeleteClusterRequest interceptedRequest =
+ DeleteClusterConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ DeleteClusterConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = DeleteClusterConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ DeleteClusterRequest, DeleteClusterResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.delete(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.delete(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, DeleteClusterResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.delete(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteNodePool(
+ final DeleteNodePoolRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ DeleteNodePoolRequest, DeleteNodePoolResponse>
+ handler) {
+ LOG.trace("Called async deleteNodePool");
+ final DeleteNodePoolRequest interceptedRequest =
+ DeleteNodePoolConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ DeleteNodePoolConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = DeleteNodePoolConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ DeleteNodePoolRequest, DeleteNodePoolResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.delete(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.delete(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, DeleteNodePoolResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.delete(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteWorkRequest(
+ final DeleteWorkRequestRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ DeleteWorkRequestRequest, DeleteWorkRequestResponse>
+ handler) {
+ LOG.trace("Called async deleteWorkRequest");
+ final DeleteWorkRequestRequest interceptedRequest =
+ DeleteWorkRequestConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ DeleteWorkRequestConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = DeleteWorkRequestConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ DeleteWorkRequestRequest, DeleteWorkRequestResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.delete(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.delete(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, DeleteWorkRequestResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.delete(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future getCluster(
+ final GetClusterRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async getCluster");
+ final GetClusterRequest interceptedRequest = GetClusterConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetClusterConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = GetClusterConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler handlerToUse =
+ handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ GetClusterRequest, GetClusterResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, GetClusterResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future getClusterOptions(
+ final GetClusterOptionsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetClusterOptionsRequest, GetClusterOptionsResponse>
+ handler) {
+ LOG.trace("Called async getClusterOptions");
+ final GetClusterOptionsRequest interceptedRequest =
+ GetClusterOptionsConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetClusterOptionsConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = GetClusterOptionsConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ GetClusterOptionsRequest, GetClusterOptionsResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, GetClusterOptionsResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future getNodePool(
+ final GetNodePoolRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async getNodePool");
+ final GetNodePoolRequest interceptedRequest =
+ GetNodePoolConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetNodePoolConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = GetNodePoolConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ GetNodePoolRequest, GetNodePoolResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, GetNodePoolResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future getNodePoolOptions(
+ final GetNodePoolOptionsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetNodePoolOptionsRequest, GetNodePoolOptionsResponse>
+ handler) {
+ LOG.trace("Called async getNodePoolOptions");
+ final GetNodePoolOptionsRequest interceptedRequest =
+ GetNodePoolOptionsConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetNodePoolOptionsConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = GetNodePoolOptionsConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ GetNodePoolOptionsRequest, GetNodePoolOptionsResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, GetNodePoolOptionsResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future getWorkRequest(
+ final GetWorkRequestRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetWorkRequestRequest, GetWorkRequestResponse>
+ handler) {
+ LOG.trace("Called async getWorkRequest");
+ final GetWorkRequestRequest interceptedRequest =
+ GetWorkRequestConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetWorkRequestConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = GetWorkRequestConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ GetWorkRequestRequest, GetWorkRequestResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, GetWorkRequestResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future listClusters(
+ final ListClustersRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async listClusters");
+ final ListClustersRequest interceptedRequest =
+ ListClustersConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListClustersConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = ListClustersConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ ListClustersRequest, ListClustersResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, ListClustersResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future listNodePools(
+ final ListNodePoolsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async listNodePools");
+ final ListNodePoolsRequest interceptedRequest =
+ ListNodePoolsConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListNodePoolsConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = ListNodePoolsConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ ListNodePoolsRequest, ListNodePoolsResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, ListNodePoolsResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future listWorkRequestErrors(
+ final ListWorkRequestErrorsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>
+ handler) {
+ LOG.trace("Called async listWorkRequestErrors");
+ final ListWorkRequestErrorsRequest interceptedRequest =
+ ListWorkRequestErrorsConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListWorkRequestErrorsConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function<
+ javax.ws.rs.core.Response, ListWorkRequestErrorsResponse>
+ transformer = ListWorkRequestErrorsConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, ListWorkRequestErrorsResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future listWorkRequestLogs(
+ final ListWorkRequestLogsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>
+ handler) {
+ LOG.trace("Called async listWorkRequestLogs");
+ final ListWorkRequestLogsRequest interceptedRequest =
+ ListWorkRequestLogsConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListWorkRequestLogsConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function<
+ javax.ws.rs.core.Response, ListWorkRequestLogsResponse>
+ transformer = ListWorkRequestLogsConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, ListWorkRequestLogsResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future listWorkRequests(
+ final ListWorkRequestsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestsRequest, ListWorkRequestsResponse>
+ handler) {
+ LOG.trace("Called async listWorkRequests");
+ final ListWorkRequestsRequest interceptedRequest =
+ ListWorkRequestsConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListWorkRequestsConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = ListWorkRequestsConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ ListWorkRequestsRequest, ListWorkRequestsResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.get(ib, interceptedRequest, onSuccess, onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, ListWorkRequestsResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.get(ib, interceptedRequest, onSuccess, onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future updateCluster(
+ final UpdateClusterRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ LOG.trace("Called async updateCluster");
+ final UpdateClusterRequest interceptedRequest =
+ UpdateClusterConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ UpdateClusterConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = UpdateClusterConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ UpdateClusterRequest, UpdateClusterResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.put(
+ ib,
+ interceptedRequest.getUpdateClusterDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.put(
+ ib,
+ interceptedRequest.getUpdateClusterDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, UpdateClusterResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.put(
+ ib,
+ interceptedRequest.getUpdateClusterDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+
+ @Override
+ public java.util.concurrent.Future updateNodePool(
+ final UpdateNodePoolRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ UpdateNodePoolRequest, UpdateNodePoolResponse>
+ handler) {
+ LOG.trace("Called async updateNodePool");
+ final UpdateNodePoolRequest interceptedRequest =
+ UpdateNodePoolConverter.interceptRequest(request);
+ final com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ UpdateNodePoolConverter.fromRequest(client, interceptedRequest);
+ final com.google.common.base.Function
+ transformer = UpdateNodePoolConverter.fromResponse();
+
+ com.oracle.bmc.responses.AsyncHandler
+ handlerToUse = handler;
+ if (handler != null
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ handlerToUse =
+ new com.oracle.bmc.util.internal.InstancePrincipalsWrappingAsyncHandler<
+ UpdateNodePoolRequest, UpdateNodePoolResponse>(
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ handler) {
+ @Override
+ public void retryCall() {
+ final com.oracle.bmc.util.internal.Consumer
+ onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ this, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(
+ this, interceptedRequest);
+ client.put(
+ ib,
+ interceptedRequest.getUpdateNodePoolDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ };
+ }
+
+ final com.oracle.bmc.util.internal.Consumer onSuccess =
+ new com.oracle.bmc.http.internal.SuccessConsumer<>(
+ handlerToUse, transformer, interceptedRequest);
+ final com.oracle.bmc.util.internal.Consumer onError =
+ new com.oracle.bmc.http.internal.ErrorConsumer<>(handlerToUse, interceptedRequest);
+
+ java.util.concurrent.Future responseFuture =
+ client.put(
+ ib,
+ interceptedRequest.getUpdateNodePoolDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ return new com.oracle.bmc.util.internal.InstancePrincipalsBasedTransformingFuture<
+ javax.ws.rs.core.Response, UpdateNodePoolResponse>(
+ responseFuture,
+ transformer,
+ (com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider,
+ new com.google.common.base.Supplier<
+ java.util.concurrent.Future>() {
+ @Override
+ public java.util.concurrent.Future get() {
+ return client.put(
+ ib,
+ interceptedRequest.getUpdateNodePoolDetails(),
+ interceptedRequest,
+ onSuccess,
+ onError);
+ }
+ });
+ } else {
+ return new com.oracle.bmc.util.internal.TransformingFuture<>(
+ responseFuture, transformer);
+ }
+ }
+}
diff --git a/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineClient.java b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineClient.java
new file mode 100644
index 00000000000..e7b7482e49e
--- /dev/null
+++ b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEngineClient.java
@@ -0,0 +1,790 @@
+/**
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.containerengine;
+
+import java.util.Locale;
+import com.oracle.bmc.containerengine.internal.http.*;
+import com.oracle.bmc.containerengine.requests.*;
+import com.oracle.bmc.containerengine.responses.*;
+
+@javax.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20180222")
+@lombok.extern.slf4j.Slf4j
+public class ContainerEngineClient implements ContainerEngine {
+ /**
+ * Service instance for ContainerEngine.
+ */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.create("CONTAINERENGINE", "containerengine");
+ // attempt twice if it's instance principals, immediately failures will try to refresh the token
+ private static final int MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS = 2;
+
+ private final ContainerEngineWaiters waiters;
+ private final ContainerEnginePaginators paginators;
+
+ @lombok.Getter(value = lombok.AccessLevel.PACKAGE)
+ private final com.oracle.bmc.http.internal.RestClient client;
+
+ private final com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider;
+
+ /**
+ * Creates a new service instance using the given authentication provider.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(authenticationDetailsProvider, configuration, null);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD));
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ defaultRequestSignerFactory,
+ new java.util.ArrayList());
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ defaultRequestSignerFactory,
+ additionalClientConfigurators,
+ null);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
+ * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider})
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ defaultRequestSignerFactory,
+ com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory
+ .createDefaultRequestSignerFactories(),
+ additionalClientConfigurators,
+ endpoint);
+ }
+
+ /**
+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
+ *
+ * This is an advanced constructor for clients that want to take control over how requests are signed.
+ * @param authenticationDetailsProvider The authentication details provider, required.
+ * @param configuration The client configuration, optional.
+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
+ * @param signingStrategyRequestSignerFactories The request signer factories for each signing strategy used to create the request signer
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
+ * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider})
+ */
+ public ContainerEngineClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this.authenticationDetailsProvider = authenticationDetailsProvider;
+ com.oracle.bmc.http.internal.RestClientFactory restClientFactory =
+ com.oracle.bmc.http.internal.RestClientFactoryBuilder.builder()
+ .clientConfigurator(clientConfigurator)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .build();
+ com.oracle.bmc.http.signing.RequestSigner defaultRequestSigner =
+ defaultRequestSignerFactory.createRequestSigner(
+ SERVICE, this.authenticationDetailsProvider);
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSigner>
+ requestSigners = new java.util.HashMap<>();
+ if (this.authenticationDetailsProvider
+ instanceof com.oracle.bmc.auth.BasicAuthenticationDetailsProvider) {
+ for (com.oracle.bmc.http.signing.SigningStrategy s :
+ com.oracle.bmc.http.signing.SigningStrategy.values()) {
+ requestSigners.put(
+ s,
+ signingStrategyRequestSignerFactories
+ .get(s)
+ .createRequestSigner(SERVICE, authenticationDetailsProvider));
+ }
+ }
+ this.client = restClientFactory.create(defaultRequestSigner, requestSigners, configuration);
+ // up to 50 (core) threads, time out after 60s idle, all daemon
+ java.util.concurrent.ThreadPoolExecutor executorService =
+ new java.util.concurrent.ThreadPoolExecutor(
+ 50,
+ 50,
+ 60L,
+ java.util.concurrent.TimeUnit.SECONDS,
+ new java.util.concurrent.LinkedBlockingQueue(),
+ new com.google.common.util.concurrent.ThreadFactoryBuilder()
+ .setDaemon(false)
+ .setNameFormat("ContainerEngine-waiters-%d")
+ .build());
+ executorService.allowCoreThreadTimeOut(true);
+
+ this.waiters = new ContainerEngineWaiters(executorService, this);
+
+ this.paginators = new ContainerEnginePaginators(this);
+
+ if (this.authenticationDetailsProvider instanceof com.oracle.bmc.auth.RegionProvider) {
+ com.oracle.bmc.auth.RegionProvider provider =
+ (com.oracle.bmc.auth.RegionProvider) this.authenticationDetailsProvider;
+
+ if (provider.getRegion() != null) {
+ this.setRegion(provider.getRegion());
+ if (endpoint != null) {
+ LOG.info(
+ "Authentication details provider configured for region '{}', but endpoint specifically set to '{}'. Using endpoint setting instead of region.",
+ provider.getRegion(),
+ endpoint);
+ }
+ }
+ }
+ if (endpoint != null) {
+ setEndpoint(endpoint);
+ }
+ }
+
+ /**
+ * Create a builder for this client.
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be passed to the
+ * {@link #build(AbstractAuthenticationDetailsProvider)} or {@link #buildAsync(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Build the client.
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public ContainerEngineClient build(
+ @lombok.NonNull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new ContainerEngineClient(
+ authenticationDetailsProvider,
+ configuration,
+ clientConfigurator,
+ requestSignerFactory,
+ signingStrategyRequestSignerFactories,
+ additionalClientConfigurators,
+ endpoint);
+ }
+ }
+
+ @Override
+ public void setEndpoint(String endpoint) {
+ LOG.info("Setting endpoint to {}", endpoint);
+ client.setEndpoint(endpoint);
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ com.google.common.base.Optional endpoint = region.getEndpoint(SERVICE);
+ if (endpoint.isPresent()) {
+ setEndpoint(endpoint.get());
+ } else {
+ throw new IllegalArgumentException(
+ "Endpoint for " + SERVICE + " is not known in region " + region);
+ }
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ regionId = regionId.toLowerCase(Locale.ENGLISH);
+ try {
+ com.oracle.bmc.Region region = com.oracle.bmc.Region.fromRegionId(regionId);
+ setRegion(region);
+ } catch (IllegalArgumentException e) {
+ LOG.info("Unknown regionId '{}', falling back to default endpoint format", regionId);
+ String endpoint = com.oracle.bmc.Region.formatDefaultRegionEndpoint(SERVICE, regionId);
+ setEndpoint(endpoint);
+ }
+ }
+
+ @Override
+ public void close() {
+ client.close();
+ }
+
+ @Override
+ public CreateClusterResponse createCluster(CreateClusterRequest request) {
+ LOG.trace("Called createCluster");
+ request = CreateClusterConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ CreateClusterConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = CreateClusterConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response =
+ client.post(ib, request.getCreateClusterDetails(), request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public CreateKubeconfigResponse createKubeconfig(CreateKubeconfigRequest request) {
+ LOG.trace("Called createKubeconfig");
+ request = CreateKubeconfigConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ CreateKubeconfigConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = CreateKubeconfigConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response =
+ client.post(
+ ib, request.getCreateClusterKubeconfigContentDetails(), request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public CreateNodePoolResponse createNodePool(CreateNodePoolRequest request) {
+ LOG.trace("Called createNodePool");
+ request = CreateNodePoolConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ CreateNodePoolConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = CreateNodePoolConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response =
+ client.post(ib, request.getCreateNodePoolDetails(), request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public DeleteClusterResponse deleteCluster(DeleteClusterRequest request) {
+ LOG.trace("Called deleteCluster");
+ request = DeleteClusterConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ DeleteClusterConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = DeleteClusterConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.delete(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public DeleteNodePoolResponse deleteNodePool(DeleteNodePoolRequest request) {
+ LOG.trace("Called deleteNodePool");
+ request = DeleteNodePoolConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ DeleteNodePoolConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = DeleteNodePoolConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.delete(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public DeleteWorkRequestResponse deleteWorkRequest(DeleteWorkRequestRequest request) {
+ LOG.trace("Called deleteWorkRequest");
+ request = DeleteWorkRequestConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ DeleteWorkRequestConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = DeleteWorkRequestConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.delete(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public GetClusterResponse getCluster(GetClusterRequest request) {
+ LOG.trace("Called getCluster");
+ request = GetClusterConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetClusterConverter.fromRequest(client, request);
+ com.google.common.base.Function transformer =
+ GetClusterConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public GetClusterOptionsResponse getClusterOptions(GetClusterOptionsRequest request) {
+ LOG.trace("Called getClusterOptions");
+ request = GetClusterOptionsConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetClusterOptionsConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = GetClusterOptionsConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public GetNodePoolResponse getNodePool(GetNodePoolRequest request) {
+ LOG.trace("Called getNodePool");
+ request = GetNodePoolConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetNodePoolConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = GetNodePoolConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public GetNodePoolOptionsResponse getNodePoolOptions(GetNodePoolOptionsRequest request) {
+ LOG.trace("Called getNodePoolOptions");
+ request = GetNodePoolOptionsConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetNodePoolOptionsConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = GetNodePoolOptionsConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request) {
+ LOG.trace("Called getWorkRequest");
+ request = GetWorkRequestConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ GetWorkRequestConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = GetWorkRequestConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public ListClustersResponse listClusters(ListClustersRequest request) {
+ LOG.trace("Called listClusters");
+ request = ListClustersConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListClustersConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = ListClustersConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public ListNodePoolsResponse listNodePools(ListNodePoolsRequest request) {
+ LOG.trace("Called listNodePools");
+ request = ListNodePoolsConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListNodePoolsConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = ListNodePoolsConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public ListWorkRequestErrorsResponse listWorkRequestErrors(
+ ListWorkRequestErrorsRequest request) {
+ LOG.trace("Called listWorkRequestErrors");
+ request = ListWorkRequestErrorsConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListWorkRequestErrorsConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = ListWorkRequestErrorsConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public ListWorkRequestLogsResponse listWorkRequestLogs(ListWorkRequestLogsRequest request) {
+ LOG.trace("Called listWorkRequestLogs");
+ request = ListWorkRequestLogsConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListWorkRequestLogsConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = ListWorkRequestLogsConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request) {
+ LOG.trace("Called listWorkRequests");
+ request = ListWorkRequestsConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ ListWorkRequestsConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = ListWorkRequestsConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response = client.get(ib, request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public UpdateClusterResponse updateCluster(UpdateClusterRequest request) {
+ LOG.trace("Called updateCluster");
+ request = UpdateClusterConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ UpdateClusterConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = UpdateClusterConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response =
+ client.put(ib, request.getUpdateClusterDetails(), request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ @Override
+ public UpdateNodePoolResponse updateNodePool(UpdateNodePoolRequest request) {
+ LOG.trace("Called updateNodePool");
+ request = UpdateNodePoolConverter.interceptRequest(request);
+ com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
+ UpdateNodePoolConverter.fromRequest(client, request);
+ com.google.common.base.Function
+ transformer = UpdateNodePoolConverter.fromResponse();
+
+ int attempts = 0;
+ while (true) {
+ try {
+ javax.ws.rs.core.Response response =
+ client.put(ib, request.getUpdateNodePoolDetails(), request);
+ return transformer.apply(response);
+ } catch (com.oracle.bmc.model.BmcException e) {
+ if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
+ && canRetryRequestIfInstancePrincipalsUsed(e)) {
+ continue;
+ } else {
+ throw e;
+ }
+ }
+ }
+ }
+
+ private boolean canRetryRequestIfInstancePrincipalsUsed(com.oracle.bmc.model.BmcException e) {
+ if (e.getStatusCode() == 401
+ && this.authenticationDetailsProvider
+ instanceof
+ com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider) {
+ ((com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider)
+ this.authenticationDetailsProvider)
+ .refreshSecurityToken();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public ContainerEngineWaiters getWaiters() {
+ return waiters;
+ }
+
+ @Override
+ public ContainerEnginePaginators getPaginators() {
+ return paginators;
+ }
+}
diff --git a/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEnginePaginators.java b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEnginePaginators.java
new file mode 100644
index 00000000000..1dadcc927fe
--- /dev/null
+++ b/bmc-containerengine/src/main/java/com/oracle/bmc/containerengine/ContainerEnginePaginators.java
@@ -0,0 +1,363 @@
+/**
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.containerengine;
+
+import com.oracle.bmc.containerengine.requests.*;
+import com.oracle.bmc.containerengine.responses.*;
+
+/**
+ * Collection of helper methods that can be used to provide an {@link java.lang.Iterable} interface
+ * to any list operations of ContainerEngine where multiple pages of data may be fetched.
+ * Two styles of iteration are supported:
+ *
+ *