2424namespace Google \Cloud \Samples \Spanner ;
2525
2626// [START spanner_enable_fine_grained_access]
27- use Google \Cloud \Spanner \Admin \Database \V1 \DatabaseAdminClient ;
2827use \Google \Cloud \Iam \V1 \Binding ;
2928use \Google \Type \Expr ;
29+ use Google \Cloud \Iam \V1 \GetIamPolicyRequest ;
30+ use Google \Cloud \Iam \V1 \SetIamPolicyRequest ;
31+ use Google \Cloud \Spanner \Admin \Database \V1 \Client \DatabaseAdminClient ;
3032
3133/**
3234 * Enable Fine Grained Access.
@@ -54,7 +56,9 @@ function enable_fine_grained_access(
5456): void {
5557 $ adminClient = new DatabaseAdminClient ();
5658 $ resource = sprintf ('projects/%s/instances/%s/databases/%s ' , $ projectId , $ instanceId , $ databaseId );
57- $ policy = $ adminClient ->getIamPolicy ($ resource );
59+ $ getIamPolicyRequest = (new GetIamPolicyRequest ())
60+ ->setResource ($ resource );
61+ $ policy = $ adminClient ->getIamPolicy ($ getIamPolicyRequest );
5862
5963 // IAM conditions need at least version 3
6064 if ($ policy ->getVersion () != 3 ) {
@@ -70,7 +74,10 @@ function enable_fine_grained_access(
7074 ])
7175 ]);
7276 $ policy ->setBindings ([$ binding ]);
73- $ adminClient ->setIamPolicy ($ resource , $ policy );
77+ $ setIamPolicyRequest = (new SetIamPolicyRequest ())
78+ ->setResource ($ resource )
79+ ->setPolicy ($ policy );
80+ $ adminClient ->setIamPolicy ($ setIamPolicyRequest );
7481
7582 printf ('Enabled fine-grained access in IAM ' . PHP_EOL );
7683}
0 commit comments