2121import com .google .api .gax .rpc .NotFoundException ;
2222import com .google .api .gax .rpc .PermissionDeniedException ;
2323import com .google .api .gax .rpc .ServerStream ;
24- import com .google .cloud .bigtable .admin .v2 .BigtableTableAdminClient ;
25- import com .google .cloud .bigtable .admin .v2 .BigtableTableAdminSettings ;
26- import com .google .cloud .bigtable .admin .v2 .models .AuthorizedView ;
27- import com .google .cloud .bigtable .admin .v2 .models .CreateAuthorizedViewRequest ;
28- import com .google .cloud .bigtable .admin .v2 .models .CreateTableRequest ;
29- import com .google .cloud .bigtable .admin .v2 .models .FamilySubsets ;
30- import com .google .cloud .bigtable .admin .v2 .models .SubsetView ;
31- import com .google .cloud .bigtable .admin .v2 .models .Table ;
32- import com .google .cloud .bigtable .admin .v2 .models .UpdateAuthorizedViewRequest ;
24+ import com .google .cloud .bigtable .admin .v2 .BaseBigtableTableAdminSettings ;
25+ import com .google .cloud .bigtable .admin .v2 .BigtableTableAdminClientV2 ;
3326import com .google .cloud .bigtable .data .v2 .BigtableDataClient ;
3427import com .google .cloud .bigtable .data .v2 .BigtableDataSettings ;
3528import com .google .cloud .bigtable .data .v2 .models .AuthorizedViewId ;
@@ -50,9 +43,11 @@ public class AuthorizedViewExample {
5043 private static final String COLUMN_QUALIFIER_GREETING = "greeting" ;
5144 private static final String COLUMN_QUALIFIER_NAME = "name" ;
5245 private static final String ROW_KEY_PREFIX = "rowKey" ;
46+ private final String projectId ;
47+ private final String instanceId ;
5348 private final String tableId ;
5449 private final String authorizedViewId ;
55- private final BigtableTableAdminClient adminClient ;
50+ private final BigtableTableAdminClientV2 adminClient ;
5651 private final BigtableDataClient dataClient ;
5752
5853 public static void main (String [] args ) throws IOException {
@@ -72,6 +67,8 @@ public static void main(String[] args) throws IOException {
7267 public AuthorizedViewExample (
7368 String projectId , String instanceId , String tableId , String authorizedViewId )
7469 throws IOException {
70+ this .projectId = projectId ;
71+ this .instanceId = instanceId ;
7572 this .tableId = tableId ;
7673 this .authorizedViewId = authorizedViewId ;
7774
@@ -83,14 +80,23 @@ public AuthorizedViewExample(
8380 dataClient = BigtableDataClient .create (settings );
8481
8582 // Creates the settings to configure a bigtable table admin client.
86- BigtableTableAdminSettings adminSettings =
87- BigtableTableAdminSettings .newBuilder ()
88- .setProjectId (projectId )
89- .setInstanceId (instanceId )
90- .build ();
83+ BaseBigtableTableAdminSettings adminSettings =
84+ BaseBigtableTableAdminSettings .newBuilder ().build ();
9185
9286 // Creates a bigtable table admin client.
93- adminClient = BigtableTableAdminClient .create (adminSettings );
87+ adminClient = BigtableTableAdminClientV2 .create (adminSettings );
88+ }
89+
90+ private boolean exists (String tableId ) {
91+ try {
92+ adminClient .getTable (
93+ com .google .bigtable .admin .v2 .GetTableRequest .newBuilder ()
94+ .setName ("projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId )
95+ .build ());
96+ return true ;
97+ } catch (com .google .api .gax .rpc .NotFoundException e ) {
98+ return false ;
99+ }
94100 }
95101
96102 public void close () {
@@ -114,20 +120,30 @@ public void run() {
114120
115121 public void createTable () {
116122 // Checks if table exists, creates table if it does not exist.
117- if (!adminClient . exists (tableId )) {
123+ if (!exists (tableId )) {
118124 System .out .println ("Table does not exist, creating table: " + tableId );
119- CreateTableRequest createTableRequest =
120- CreateTableRequest .of (tableId ).addFamily (COLUMN_FAMILY );
121- Table table = adminClient .createTable (createTableRequest );
122- System .out .printf ("Table: %s created successfully%n" , table .getId ());
125+ com .google .bigtable .admin .v2 .CreateTableRequest request =
126+ com .google .bigtable .admin .v2 .CreateTableRequest .newBuilder ()
127+ .setParent ("projects/" + projectId + "/instances/" + instanceId )
128+ .setTableId (tableId )
129+ .setTable (
130+ com .google .bigtable .admin .v2 .Table .newBuilder ()
131+ .putColumnFamilies (
132+ COLUMN_FAMILY ,
133+ com .google .bigtable .admin .v2 .ColumnFamily .getDefaultInstance ())
134+ .build ())
135+ .build ();
136+ com .google .bigtable .admin .v2 .Table table = adminClient .createTable (request );
137+ System .out .printf ("Table: %s created successfully%n" , table .getName ());
123138 }
124139 }
125140
126141 public void deleteTable () {
127142 // Deletes the entire table.
128143 System .out .println ("\n Delete table: " + tableId );
129144 try {
130- adminClient .deleteTable (tableId );
145+ adminClient .deleteTable (
146+ "projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId );
131147 System .out .printf ("Table: %s deleted successfully%n" , tableId );
132148 } catch (NotFoundException e ) {
133149 System .err .println ("Failed to delete a non-existent table: " + e .getMessage ());
@@ -140,24 +156,45 @@ public void deleteTable() {
140156 public void createAuthorizedView () {
141157 // Checks if the authorized view exists, creates it if it does not exist.
142158 try {
143- adminClient .getAuthorizedView (tableId , authorizedViewId );
159+ adminClient .getAuthorizedView (
160+ "projects/"
161+ + projectId
162+ + "/instances/"
163+ + instanceId
164+ + "/tables/"
165+ + tableId
166+ + "/authorizedViews/"
167+ + authorizedViewId );
144168 } catch (NotFoundException exception ) {
145169 System .out .printf ("%nCreating authorized view %s in table %s%n" , authorizedViewId , tableId );
146170 // [START bigtable_create_authorized_view]
147171 try {
148- CreateAuthorizedViewRequest request =
149- CreateAuthorizedViewRequest .of (tableId , authorizedViewId )
150- .setAuthorizedViewType (
151- SubsetView .create ()
152- .addRowPrefix ("" )
153- .setFamilySubsets (
154- COLUMN_FAMILY ,
155- FamilySubsets .create ().addQualifierPrefix (COLUMN_QUALIFIER_NAME )));
156- AuthorizedView authorizedView = adminClient .createAuthorizedView (request );
157- System .out .printf ("AuthorizedView: %s created successfully%n" , authorizedView .getId ());
158- } catch (NotFoundException e ) {
159- System .err .println (
160- "Failed to create an authorized view from a non-existent table: " + e .getMessage ());
172+ com .google .bigtable .admin .v2 .AuthorizedView .SubsetView subsetView =
173+ com .google .bigtable .admin .v2 .AuthorizedView .SubsetView .newBuilder ()
174+ .addRowPrefixes (com .google .protobuf .ByteString .EMPTY )
175+ .putFamilySubsets (
176+ COLUMN_FAMILY ,
177+ com .google .bigtable .admin .v2 .AuthorizedView .FamilySubsets .newBuilder ()
178+ .addQualifierPrefixes (
179+ com .google .protobuf .ByteString .copyFromUtf8 (COLUMN_QUALIFIER_NAME ))
180+ .build ())
181+ .build ();
182+ com .google .bigtable .admin .v2 .AuthorizedView authorizedViewObj =
183+ com .google .bigtable .admin .v2 .AuthorizedView .newBuilder ()
184+ .setSubsetView (subsetView )
185+ .build ();
186+ com .google .bigtable .admin .v2 .CreateAuthorizedViewRequest request =
187+ com .google .bigtable .admin .v2 .CreateAuthorizedViewRequest .newBuilder ()
188+ .setParent (
189+ "projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId )
190+ .setAuthorizedViewId (authorizedViewId )
191+ .setAuthorizedView (authorizedViewObj )
192+ .build ();
193+ com .google .bigtable .admin .v2 .AuthorizedView authorizedView =
194+ adminClient .createAuthorizedViewAsync (request ).get ();
195+ System .out .printf ("AuthorizedView: %s created successfully%n" , authorizedView .getName ());
196+ } catch (Exception e ) {
197+ System .err .println ("Failed to create an authorized view: " + e .getMessage ());
161198 }
162199 // [END bigtable_create_authorized_view]
163200 }
@@ -169,40 +206,73 @@ public void updateAuthorizedView() {
169206 // [START bigtable_update_authorized_view]
170207 try {
171208 // Update to an authorized view permitting everything.
172- UpdateAuthorizedViewRequest request =
173- UpdateAuthorizedViewRequest .of (tableId , authorizedViewId )
174- .setAuthorizedViewType (
175- SubsetView .create ()
176- .addRowPrefix ("" )
177- .setFamilySubsets (
178- COLUMN_FAMILY , FamilySubsets .create ().addQualifierPrefix ("" )));
179- AuthorizedView authorizedView = adminClient .updateAuthorizedView (request );
180- System .out .printf ("AuthorizedView: %s updated successfully%n" , authorizedView .getId ());
181- } catch (NotFoundException e ) {
182- System .err .println ("Failed to modify a non-existent authorized view: " + e .getMessage ());
209+ com .google .bigtable .admin .v2 .AuthorizedView .SubsetView subsetView =
210+ com .google .bigtable .admin .v2 .AuthorizedView .SubsetView .newBuilder ()
211+ .addRowPrefixes (com .google .protobuf .ByteString .EMPTY )
212+ .putFamilySubsets (
213+ COLUMN_FAMILY ,
214+ com .google .bigtable .admin .v2 .AuthorizedView .FamilySubsets .newBuilder ()
215+ .addQualifierPrefixes (com .google .protobuf .ByteString .EMPTY )
216+ .build ())
217+ .build ();
218+ com .google .bigtable .admin .v2 .AuthorizedView authorizedViewObj =
219+ com .google .bigtable .admin .v2 .AuthorizedView .newBuilder ()
220+ .setSubsetView (subsetView )
221+ .setName (
222+ "projects/"
223+ + projectId
224+ + "/instances/"
225+ + instanceId
226+ + "/tables/"
227+ + tableId
228+ + "/authorizedViews/"
229+ + authorizedViewId )
230+ .build ();
231+ com .google .bigtable .admin .v2 .UpdateAuthorizedViewRequest request =
232+ com .google .bigtable .admin .v2 .UpdateAuthorizedViewRequest .newBuilder ()
233+ .setAuthorizedView (authorizedViewObj )
234+ .setUpdateMask (
235+ com .google .protobuf .FieldMask .newBuilder ().addPaths ("subset_view" ).build ())
236+ .build ();
237+ com .google .bigtable .admin .v2 .AuthorizedView authorizedView =
238+ adminClient .updateAuthorizedViewAsync (request ).get ();
239+ System .out .printf ("AuthorizedView: %s updated successfully%n" , authorizedView .getName ());
240+ } catch (Exception e ) {
241+ System .err .println ("Failed to modify authorized view: " + e .getMessage ());
183242 }
184243 // [END bigtable_update_authorized_view]
185244 }
186245
187246 /** Demonstrates how to get an authorized view's metadata. */
188- public AuthorizedView getAuthorizedView () {
247+ public com . google . bigtable . admin . v2 . AuthorizedView getAuthorizedView () {
189248 System .out .printf ("%nGetting authorized view %s in table %s%n" , authorizedViewId , tableId );
190249 // [START bigtable_get_authorized_view]
191- AuthorizedView authorizedView = null ;
250+ com . google . bigtable . admin . v2 . AuthorizedView authorizedView = null ;
192251 try {
193- authorizedView = adminClient .getAuthorizedView (tableId , authorizedViewId );
194- SubsetView subsetView = (SubsetView ) authorizedView .getAuthorizedViewType ();
252+ authorizedView =
253+ adminClient .getAuthorizedView (
254+ "projects/"
255+ + projectId
256+ + "/instances/"
257+ + instanceId
258+ + "/tables/"
259+ + tableId
260+ + "/authorizedViews/"
261+ + authorizedViewId );
262+ com .google .bigtable .admin .v2 .AuthorizedView .SubsetView subsetView =
263+ authorizedView .getSubsetView ();
195264
196- for (ByteString rowPrefix : subsetView .getRowPrefixes ()) {
265+ for (ByteString rowPrefix : subsetView .getRowPrefixesList ()) {
197266 System .out .printf ("Row Prefix: %s%n" , rowPrefix .toStringUtf8 ());
198267 }
199- for (Map .Entry <String , FamilySubsets > entry : subsetView .getFamilySubsets ().entrySet ()) {
200- for (ByteString qualifierPrefix : entry .getValue ().getQualifierPrefixes ()) {
268+ for (Map .Entry <String , com .google .bigtable .admin .v2 .AuthorizedView .FamilySubsets > entry :
269+ subsetView .getFamilySubsetsMap ().entrySet ()) {
270+ for (ByteString qualifierPrefix : entry .getValue ().getQualifierPrefixesList ()) {
201271 System .out .printf (
202272 "Column Family: %s, Qualifier Prefix: %s%n" ,
203273 entry .getKey (), qualifierPrefix .toStringUtf8 ());
204274 }
205- for (ByteString qualifier : entry .getValue ().getQualifiers ()) {
275+ for (ByteString qualifier : entry .getValue ().getQualifiersList ()) {
206276 System .out .printf (
207277 "Column Family: %s, Qualifier: %s%n" , entry .getKey (), qualifier .toStringUtf8 ());
208278 }
@@ -221,9 +291,16 @@ public List<String> listAllAuthorizedViews() {
221291 // [START bigtable_list_authorized_views]
222292 List <String > authorizedViewIds = new ArrayList <>();
223293 try {
224- authorizedViewIds = adminClient .listAuthorizedViews (tableId );
225- for (String authorizedViewId : authorizedViewIds ) {
226- System .out .println (authorizedViewId );
294+ com .google .bigtable .admin .v2 .ListAuthorizedViewsRequest request =
295+ com .google .bigtable .admin .v2 .ListAuthorizedViewsRequest .newBuilder ()
296+ .setParent (
297+ "projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId )
298+ .build ();
299+ for (com .google .bigtable .admin .v2 .AuthorizedView view :
300+ adminClient .listAuthorizedViews (request ).iterateAll ()) {
301+ String id = view .getName ().substring (view .getName ().lastIndexOf ("/" ) + 1 );
302+ System .out .println (id );
303+ authorizedViewIds .add (id );
227304 }
228305 } catch (NotFoundException e ) {
229306 System .err .println (
@@ -238,7 +315,15 @@ public void deleteAuthorizedView() {
238315 System .out .printf ("%nDeleting authorized view %s in table %s%n" , authorizedViewId , tableId );
239316 // [START bigtable_delete_authorized_view]
240317 try {
241- adminClient .deleteAuthorizedView (tableId , authorizedViewId );
318+ adminClient .deleteAuthorizedView (
319+ "projects/"
320+ + projectId
321+ + "/instances/"
322+ + instanceId
323+ + "/tables/"
324+ + tableId
325+ + "/authorizedViews/"
326+ + authorizedViewId );
242327 System .out .printf ("AuthorizedView: %s deleted successfully%n" , authorizedViewId );
243328 } catch (NotFoundException e ) {
244329 System .err .println ("Failed to delete a non-existent authorized view: " + e .getMessage ());
0 commit comments