@@ -248,7 +248,13 @@ public CompletableFuture<ClientReadAuthorizationModelResponse> readAuthorization
248248            ClientReadAuthorizationModelOptions  options ) throws  FgaInvalidParameterException  {
249249        configuration .assertValid ();
250250        String  storeId  = configuration .getStoreIdChecked ();
251-         String  authorizationModelId  = options .getAuthorizationModelIdChecked ();
251+         // Set authorizationModelId from options if available; otherwise, require a valid configuration value 
252+         String  authorizationModelId ;
253+         if  (options  != null  && !isNullOrWhitespace (options .getAuthorizationModelId ())) {
254+             authorizationModelId  = options .getAuthorizationModelIdChecked ();
255+         } else  {
256+             authorizationModelId  = configuration .getAuthorizationModelIdChecked ();
257+         }
252258        var  overrides  = new  ConfigurationOverride ().addHeaders (options );
253259        return  call (() -> api .readAuthorizationModel (storeId , authorizationModelId , overrides ))
254260                .thenApply (ClientReadAuthorizationModelResponse ::new );
@@ -552,12 +558,12 @@ private CompletableFuture<ClientWriteResponse> writeNonTransaction(
552558                ? writeOptions 
553559                : new  ClientWriteOptions ().transactionChunkSize (DEFAULT_MAX_METHOD_PARALLEL_REQS );
554560
555-         if  ( options .getAdditionalHeaders () ==  null ) { 
556-             options . additionalHeaders ( new  HashMap <>()); 
557-         } 
558-         options . getAdditionalHeaders () .putIfAbsent (CLIENT_METHOD_HEADER , "Write" );
559-         options . getAdditionalHeaders () 
560-                 . putIfAbsent ( CLIENT_BULK_REQUEST_ID_HEADER ,  randomUUID (). toString () );
561+         HashMap < String ,  String >  headers  =  options .getAdditionalHeaders () !=  null 
562+                 ?  new  HashMap <>(options . getAdditionalHeaders ()) 
563+                 :  new   HashMap <>(); 
564+         headers .putIfAbsent (CLIENT_METHOD_HEADER , "Write" );
565+         headers . putIfAbsent ( CLIENT_BULK_REQUEST_ID_HEADER ,  randomUUID (). toString ()); 
566+         options . additionalHeaders ( headers );
561567
562568        int  chunkSize  = options .getTransactionChunkSize ();
563569
@@ -832,12 +838,13 @@ public CompletableFuture<List<ClientBatchCheckClientResponse>> clientBatchCheck(
832838        var  options  = batchCheckOptions  != null 
833839                ? batchCheckOptions 
834840                : new  ClientBatchCheckClientOptions ().maxParallelRequests (DEFAULT_MAX_METHOD_PARALLEL_REQS );
835-         if  (options .getAdditionalHeaders () == null ) {
836-             options .additionalHeaders (new  HashMap <>());
837-         }
838-         options .getAdditionalHeaders ().putIfAbsent (CLIENT_METHOD_HEADER , "ClientBatchCheck" );
839-         options .getAdditionalHeaders ()
840-                 .putIfAbsent (CLIENT_BULK_REQUEST_ID_HEADER , randomUUID ().toString ());
841+ 
842+         HashMap <String , String > headers  = options .getAdditionalHeaders () != null 
843+                 ? new  HashMap <>(options .getAdditionalHeaders ())
844+                 : new  HashMap <>();
845+         headers .putIfAbsent (CLIENT_METHOD_HEADER , "ClientBatchCheck" );
846+         headers .putIfAbsent (CLIENT_BULK_REQUEST_ID_HEADER , randomUUID ().toString ());
847+         options .additionalHeaders (headers );
841848
842849        int  maxParallelRequests  = options .getMaxParallelRequests () != null 
843850                ? options .getMaxParallelRequests ()
@@ -892,12 +899,13 @@ public CompletableFuture<ClientBatchCheckResponse> batchCheck(
892899                : new  ClientBatchCheckOptions ()
893900                        .maxParallelRequests (DEFAULT_MAX_METHOD_PARALLEL_REQS )
894901                        .maxBatchSize (DEFAULT_MAX_BATCH_SIZE );
895-         if  (options .getAdditionalHeaders () == null ) {
896-             options .additionalHeaders (new  HashMap <>());
897-         }
898-         options .getAdditionalHeaders ().putIfAbsent (CLIENT_METHOD_HEADER , "BatchCheck" );
899-         options .getAdditionalHeaders ()
900-                 .putIfAbsent (CLIENT_BULK_REQUEST_ID_HEADER , randomUUID ().toString ());
902+ 
903+         HashMap <String , String > headers  = options .getAdditionalHeaders () != null 
904+                 ? new  HashMap <>(options .getAdditionalHeaders ())
905+                 : new  HashMap <>();
906+         headers .putIfAbsent (CLIENT_METHOD_HEADER , "BatchCheck" );
907+         headers .putIfAbsent (CLIENT_BULK_REQUEST_ID_HEADER , randomUUID ().toString ());
908+         options .additionalHeaders (headers );
901909
902910        Map <String , ClientBatchCheckItem > correlationIdToCheck  = new  HashMap <>();
903911
@@ -1124,12 +1132,13 @@ public CompletableFuture<ClientListRelationsResponse> listRelations(
11241132        var  options  = listRelationsOptions  != null 
11251133                ? listRelationsOptions 
11261134                : new  ClientListRelationsOptions ().maxParallelRequests (DEFAULT_MAX_METHOD_PARALLEL_REQS );
1127-         if  (options .getAdditionalHeaders () == null ) {
1128-             options .additionalHeaders (new  HashMap <>());
1129-         }
1130-         options .getAdditionalHeaders ().putIfAbsent (CLIENT_METHOD_HEADER , "ListRelations" );
1131-         options .getAdditionalHeaders ()
1132-                 .putIfAbsent (CLIENT_BULK_REQUEST_ID_HEADER , randomUUID ().toString ());
1135+ 
1136+         HashMap <String , String > headers  = options .getAdditionalHeaders () != null 
1137+                 ? new  HashMap <>(options .getAdditionalHeaders ())
1138+                 : new  HashMap <>();
1139+         headers .putIfAbsent (CLIENT_METHOD_HEADER , "ListRelations" );
1140+         headers .putIfAbsent (CLIENT_BULK_REQUEST_ID_HEADER , randomUUID ().toString ());
1141+         options .additionalHeaders (headers );
11331142
11341143        var  batchCheckRequests  = request .getRelations ().stream ()
11351144                .map (relation  -> new  ClientCheckRequest ()
0 commit comments