@@ -74,18 +74,18 @@ public AuditClient(
7474     * @param authenticationDetailsProvider The authentication details provider, required. 
7575     * @param configuration The client configuration, optional. 
7676     * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional. 
77-      * @param requestSignerFactory  The request signer factory used to create the request signer for this service. 
77+      * @param defaultRequestSignerFactory  The request signer factory used to create the request signer for this service. 
7878     */ 
7979    public  AuditClient (
8080            com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider  authenticationDetailsProvider ,
8181            com .oracle .bmc .ClientConfiguration  configuration ,
8282            com .oracle .bmc .http .ClientConfigurator  clientConfigurator ,
83-             com .oracle .bmc .http .signing .RequestSignerFactory  requestSignerFactory ) {
83+             com .oracle .bmc .http .signing .RequestSignerFactory  defaultRequestSignerFactory ) {
8484        this (
8585                authenticationDetailsProvider ,
8686                configuration ,
8787                clientConfigurator ,
88-                 requestSignerFactory ,
88+                 defaultRequestSignerFactory ,
8989                new  java .util .ArrayList <com .oracle .bmc .http .ClientConfigurator >());
9090    }
9191
@@ -97,20 +97,20 @@ public AuditClient(
9797     * @param authenticationDetailsProvider The authentication details provider, required. 
9898     * @param configuration The client configuration, optional. 
9999     * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional. 
100-      * @param requestSignerFactory  The request signer factory used to create the request signer for this service. 
100+      * @param defaultRequestSignerFactory  The request signer factory used to create the request signer for this service. 
101101     * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator. 
102102     */ 
103103    public  AuditClient (
104104            com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider  authenticationDetailsProvider ,
105105            com .oracle .bmc .ClientConfiguration  configuration ,
106106            com .oracle .bmc .http .ClientConfigurator  clientConfigurator ,
107-             com .oracle .bmc .http .signing .RequestSignerFactory  requestSignerFactory ,
107+             com .oracle .bmc .http .signing .RequestSignerFactory  defaultRequestSignerFactory ,
108108            java .util .List <com .oracle .bmc .http .ClientConfigurator > additionalClientConfigurators ) {
109109        this (
110110                authenticationDetailsProvider ,
111111                configuration ,
112112                clientConfigurator ,
113-                 requestSignerFactory ,
113+                 defaultRequestSignerFactory ,
114114                additionalClientConfigurators ,
115115                null );
116116    }
@@ -123,15 +123,50 @@ public AuditClient(
123123     * @param authenticationDetailsProvider The authentication details provider, required. 
124124     * @param configuration The client configuration, optional. 
125125     * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional. 
126-      * @param requestSignerFactory  The request signer factory used to create the request signer for this service. 
126+      * @param defaultRequestSignerFactory  The request signer factory used to create the request signer for this service. 
127127     * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator. 
128128     * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider}) 
129129     */ 
130130    public  AuditClient (
131131            com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider  authenticationDetailsProvider ,
132132            com .oracle .bmc .ClientConfiguration  configuration ,
133133            com .oracle .bmc .http .ClientConfigurator  clientConfigurator ,
134-             com .oracle .bmc .http .signing .RequestSignerFactory  requestSignerFactory ,
134+             com .oracle .bmc .http .signing .RequestSignerFactory  defaultRequestSignerFactory ,
135+             java .util .List <com .oracle .bmc .http .ClientConfigurator > additionalClientConfigurators ,
136+             String  endpoint ) {
137+         this (
138+                 authenticationDetailsProvider ,
139+                 configuration ,
140+                 clientConfigurator ,
141+                 defaultRequestSignerFactory ,
142+                 com .oracle .bmc .http .signing .internal .DefaultRequestSignerFactory 
143+                         .createDefaultRequestSignerFactories (),
144+                 additionalClientConfigurators ,
145+                 endpoint );
146+     }
147+ 
148+     /** 
149+      * Creates a new service instance using the given authentication provider and client configuration.  Additionally, 
150+      * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization. 
151+      * <p> 
152+      * This is an advanced constructor for clients that want to take control over how requests are signed. 
153+      * @param authenticationDetailsProvider The authentication details provider, required. 
154+      * @param configuration The client configuration, optional. 
155+      * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional. 
156+      * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service. 
157+      * @param signingStrategyRequestSignerFactories The request signer factories for each signing strategy used to create the request signer 
158+      * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator. 
159+      * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider}) 
160+      */ 
161+     public  AuditClient (
162+             com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider  authenticationDetailsProvider ,
163+             com .oracle .bmc .ClientConfiguration  configuration ,
164+             com .oracle .bmc .http .ClientConfigurator  clientConfigurator ,
165+             com .oracle .bmc .http .signing .RequestSignerFactory  defaultRequestSignerFactory ,
166+             java .util .Map <
167+                             com .oracle .bmc .http .signing .SigningStrategy ,
168+                             com .oracle .bmc .http .signing .RequestSignerFactory >
169+                     signingStrategyRequestSignerFactories ,
135170            java .util .List <com .oracle .bmc .http .ClientConfigurator > additionalClientConfigurators ,
136171            String  endpoint ) {
137172        this .authenticationDetailsProvider  = authenticationDetailsProvider ;
@@ -140,10 +175,22 @@ public AuditClient(
140175                        .clientConfigurator (clientConfigurator )
141176                        .additionalClientConfigurators (additionalClientConfigurators )
142177                        .build ();
143-         com .oracle .bmc .http .signing .RequestSigner  requestSigner  =
144-                 requestSignerFactory .createRequestSigner (
178+         com .oracle .bmc .http .signing .RequestSigner  defaultRequestSigner  =
179+                 defaultRequestSignerFactory .createRequestSigner (
145180                        SERVICE , this .authenticationDetailsProvider );
146-         this .client  = restClientFactory .create (requestSigner , configuration );
181+         java .util .Map <
182+                         com .oracle .bmc .http .signing .SigningStrategy ,
183+                         com .oracle .bmc .http .signing .RequestSigner >
184+                 requestSigners  = new  java .util .HashMap <>();
185+         for  (com .oracle .bmc .http .signing .SigningStrategy  s  :
186+                 com .oracle .bmc .http .signing .SigningStrategy .values ()) {
187+             requestSigners .put (
188+                     s ,
189+                     signingStrategyRequestSignerFactories 
190+                             .get (s )
191+                             .createRequestSigner (SERVICE , authenticationDetailsProvider ));
192+         }
193+         this .client  = restClientFactory .create (defaultRequestSigner , requestSigners , configuration );
147194
148195        this .paginators  = new  AuditPaginators (this );
149196
@@ -201,6 +248,7 @@ public AuditClient build(
201248                    configuration ,
202249                    clientConfigurator ,
203250                    requestSignerFactory ,
251+                     signingStrategyRequestSignerFactories ,
204252                    additionalClientConfigurators ,
205253                    endpoint );
206254        }
0 commit comments