Skip to content

Commit 1f9ec78

Browse files
authored
Merge branch 'main' into renovate/sinon-17.x
2 parents f6253cd + 3f5db96 commit 1f9ec78

File tree

93 files changed

+20615
-4312
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+20615
-4312
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
# The yoshi-nodejs team is the default owner for nodejs repositories.
9-
* @googleapis/yoshi-nodejs @googleapis/api-bigtable
9+
* @googleapis/yoshi-nodejs @googleapis/api-bigtable @googleapis/api-bigtable-partners
1010

1111
# The github automation team is the default owner for the auto-approve file.
1212
.github/auto-approve.yml @googleapis/github-automation

.github/flakybot.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
issuePriority: p2

.jsdoc.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2023 Google LLC
1+
// Copyright 2024 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -40,7 +40,7 @@ module.exports = {
4040
includePattern: '\\.js$'
4141
},
4242
templates: {
43-
copyright: 'Copyright 2023 Google LLC',
43+
copyright: 'Copyright 2024 Google LLC',
4444
includeDate: false,
4545
sourceFiles: false,
4646
systemName: '@google-cloud/bigtable',

.repo-metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"distribution_name": "@google-cloud/bigtable",
1111
"api_id": "bigtable.googleapis.com",
1212
"requires_billing": true,
13-
"codeowner_team": "@googleapis/api-bigtable",
13+
"codeowner_team": "@googleapis/api-bigtable @googleapis/api-bigtable-partners",
1414
"api_shortname": "bigtable",
1515
"library_type": "GAPIC_COMBO"
1616
}

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
"devDependencies": {
6868
"@grpc/grpc-js": "^1.9.0",
6969
"@grpc/proto-loader": "^0.7.3",
70-
"@types/escape-string-regexp": "^1.0.0",
70+
"@types/escape-string-regexp": "^2.0.0",
7171
"@types/extend": "^3.0.1",
7272
"@types/is": "0.0.25",
7373
"@types/lodash.snakecase": "^4.1.5",
@@ -77,9 +77,9 @@
7777
"@types/pumpify": "^1.4.1",
7878
"@types/sinon": "^17.0.0",
7979
"@types/uuid": "^9.0.0",
80-
"c8": "^8.0.1",
80+
"c8": "^9.0.0",
8181
"codecov": "^3.6.5",
82-
"gapic-tools": "^0.1.8",
82+
"gapic-tools": "^0.4.0",
8383
"gts": "^5.0.0",
8484
"jsdoc": "^4.0.2",
8585
"jsdoc-fresh": "^3.0.0",

protos/google/bigtable/admin/v2/bigtable_table_admin.proto

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,61 @@ service BigtableTableAdmin {
136136
};
137137
}
138138

139+
// Creates a new AuthorizedView in a table.
140+
rpc CreateAuthorizedView(CreateAuthorizedViewRequest)
141+
returns (google.longrunning.Operation) {
142+
option (google.api.http) = {
143+
post: "/v2/{parent=projects/*/instances/*/tables/*}/authorizedViews"
144+
body: "authorized_view"
145+
};
146+
option (google.api.method_signature) =
147+
"parent,authorized_view,authorized_view_id";
148+
option (google.longrunning.operation_info) = {
149+
response_type: "AuthorizedView"
150+
metadata_type: "CreateAuthorizedViewMetadata"
151+
};
152+
}
153+
154+
// Lists all AuthorizedViews from a specific table.
155+
rpc ListAuthorizedViews(ListAuthorizedViewsRequest)
156+
returns (ListAuthorizedViewsResponse) {
157+
option (google.api.http) = {
158+
get: "/v2/{parent=projects/*/instances/*/tables/*}/authorizedViews"
159+
};
160+
option (google.api.method_signature) = "parent";
161+
}
162+
163+
// Gets information from a specified AuthorizedView.
164+
rpc GetAuthorizedView(GetAuthorizedViewRequest) returns (AuthorizedView) {
165+
option (google.api.http) = {
166+
get: "/v2/{name=projects/*/instances/*/tables/*/authorizedViews/*}"
167+
};
168+
option (google.api.method_signature) = "name";
169+
}
170+
171+
// Updates an AuthorizedView in a table.
172+
rpc UpdateAuthorizedView(UpdateAuthorizedViewRequest)
173+
returns (google.longrunning.Operation) {
174+
option (google.api.http) = {
175+
patch: "/v2/{authorized_view.name=projects/*/instances/*/tables/*/authorizedViews/*}"
176+
body: "authorized_view"
177+
};
178+
option (google.api.method_signature) = "authorized_view,update_mask";
179+
option (google.longrunning.operation_info) = {
180+
response_type: "AuthorizedView"
181+
metadata_type: "UpdateAuthorizedViewMetadata"
182+
};
183+
}
184+
185+
// Permanently deletes a specified AuthorizedView.
186+
rpc DeleteAuthorizedView(DeleteAuthorizedViewRequest)
187+
returns (google.protobuf.Empty) {
188+
option (google.api.http) = {
189+
delete: "/v2/{name=projects/*/instances/*/tables/*/authorizedViews/*}"
190+
};
191+
option (google.api.method_signature) = "name";
192+
}
193+
139194
// Performs a series of column family modifications on the specified table.
140195
// Either all or none of the modifications will occur before this method
141196
// returns, but data requests received prior to that point may see a table
@@ -716,6 +771,12 @@ message ModifyColumnFamiliesRequest {
716771
// family exists.
717772
bool drop = 4;
718773
}
774+
775+
// Optional. A mask specifying which fields (e.g. `gc_rule`) in the `update`
776+
// mod should be updated, ignored for other modification types. If unset or
777+
// empty, we treat it as updating `gc_rule` to be backward compatible.
778+
google.protobuf.FieldMask update_mask = 6
779+
[(google.api.field_behavior) = OPTIONAL];
719780
}
720781

721782
// Required. The unique name of the table whose families should be modified.
@@ -734,6 +795,9 @@ message ModifyColumnFamiliesRequest {
734795
// family, for example).
735796
repeated Modification modifications = 2
736797
[(google.api.field_behavior) = REQUIRED];
798+
799+
// Optional. If true, ignore safety checks when modifying the column families.
800+
bool ignore_warnings = 3 [(google.api.field_behavior) = OPTIONAL];
737801
}
738802

739803
// Request message for
@@ -772,8 +836,30 @@ message CheckConsistencyRequest {
772836

773837
// Required. The token created using GenerateConsistencyToken for the Table.
774838
string consistency_token = 2 [(google.api.field_behavior) = REQUIRED];
839+
840+
// Which type of read needs to consistently observe which type of write?
841+
// Default: `standard_read_remote_writes`
842+
oneof mode {
843+
// Checks that reads using an app profile with `StandardIsolation` can
844+
// see all writes committed before the token was created, even if the
845+
// read and write target different clusters.
846+
StandardReadRemoteWrites standard_read_remote_writes = 3;
847+
848+
// Checks that reads using an app profile with `DataBoostIsolationReadOnly`
849+
// can see all writes committed before the token was created, but only if
850+
// the read and write target the same cluster.
851+
DataBoostReadLocalWrites data_boost_read_local_writes = 4;
852+
}
775853
}
776854

855+
// Checks that all writes before the consistency token was generated are
856+
// replicated in every cluster and readable.
857+
message StandardReadRemoteWrites {}
858+
859+
// Checks that all writes before the consistency token was generated in the same
860+
// cluster are readable by Databoost.
861+
message DataBoostReadLocalWrites {}
862+
777863
// Response message for
778864
// [google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency][google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency]
779865
message CheckConsistencyResponse {
@@ -1191,3 +1277,158 @@ message CopyBackupMetadata {
11911277
// operation.
11921278
OperationProgress progress = 3;
11931279
}
1280+
1281+
// The request for
1282+
// [CreateAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.CreateAuthorizedView]
1283+
message CreateAuthorizedViewRequest {
1284+
// Required. This is the name of the table the AuthorizedView belongs to.
1285+
// Values are of the form
1286+
// `projects/{project}/instances/{instance}/tables/{table}`.
1287+
string parent = 1 [
1288+
(google.api.field_behavior) = REQUIRED,
1289+
(google.api.resource_reference) = {
1290+
child_type: "bigtableadmin.googleapis.com/AuthorizedView"
1291+
}
1292+
];
1293+
1294+
// Required. The id of the AuthorizedView to create. This AuthorizedView must
1295+
// not already exist. The `authorized_view_id` appended to `parent` forms the
1296+
// full AuthorizedView name of the form
1297+
// `projects/{project}/instances/{instance}/tables/{table}/authorizedView/{authorized_view}`.
1298+
string authorized_view_id = 2 [(google.api.field_behavior) = REQUIRED];
1299+
1300+
// Required. The AuthorizedView to create.
1301+
AuthorizedView authorized_view = 3 [(google.api.field_behavior) = REQUIRED];
1302+
}
1303+
1304+
// The metadata for the Operation returned by CreateAuthorizedView.
1305+
message CreateAuthorizedViewMetadata {
1306+
// The request that prompted the initiation of this CreateInstance operation.
1307+
CreateAuthorizedViewRequest original_request = 1;
1308+
1309+
// The time at which the original request was received.
1310+
google.protobuf.Timestamp request_time = 2;
1311+
1312+
// The time at which the operation failed or was completed successfully.
1313+
google.protobuf.Timestamp finish_time = 3;
1314+
}
1315+
1316+
// Request message for
1317+
// [google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews][google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews]
1318+
message ListAuthorizedViewsRequest {
1319+
// Required. The unique name of the table for which AuthorizedViews should be
1320+
// listed. Values are of the form
1321+
// `projects/{project}/instances/{instance}/tables/{table}`.
1322+
string parent = 1 [
1323+
(google.api.field_behavior) = REQUIRED,
1324+
(google.api.resource_reference) = {
1325+
child_type: "bigtableadmin.googleapis.com/AuthorizedView"
1326+
}
1327+
];
1328+
1329+
// Optional. Maximum number of results per page.
1330+
//
1331+
// A page_size of zero lets the server choose the number of items to return.
1332+
// A page_size which is strictly positive will return at most that many items.
1333+
// A negative page_size will cause an error.
1334+
//
1335+
// Following the first request, subsequent paginated calls are not required
1336+
// to pass a page_size. If a page_size is set in subsequent calls, it must
1337+
// match the page_size given in the first request.
1338+
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1339+
1340+
// Optional. The value of `next_page_token` returned by a previous call.
1341+
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1342+
1343+
// Optional. The resource_view to be applied to the returned views' fields.
1344+
// Default to NAME_ONLY.
1345+
AuthorizedView.ResponseView view = 4 [(google.api.field_behavior) = OPTIONAL];
1346+
}
1347+
1348+
// Response message for
1349+
// [google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews][google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews]
1350+
message ListAuthorizedViewsResponse {
1351+
// The AuthorizedViews present in the requested table.
1352+
repeated AuthorizedView authorized_views = 1;
1353+
1354+
// Set if not all tables could be returned in a single response.
1355+
// Pass this value to `page_token` in another request to get the next
1356+
// page of results.
1357+
string next_page_token = 2;
1358+
}
1359+
1360+
// Request message for
1361+
// [google.bigtable.admin.v2.BigtableTableAdmin.GetAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.GetAuthorizedView]
1362+
message GetAuthorizedViewRequest {
1363+
// Required. The unique name of the requested AuthorizedView.
1364+
// Values are of the form
1365+
// `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`.
1366+
string name = 1 [
1367+
(google.api.field_behavior) = REQUIRED,
1368+
(google.api.resource_reference) = {
1369+
type: "bigtableadmin.googleapis.com/AuthorizedView"
1370+
}
1371+
];
1372+
1373+
// Optional. The resource_view to be applied to the returned AuthorizedView's
1374+
// fields. Default to BASIC.
1375+
AuthorizedView.ResponseView view = 2 [(google.api.field_behavior) = OPTIONAL];
1376+
}
1377+
1378+
// The request for
1379+
// [UpdateAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.UpdateAuthorizedView].
1380+
message UpdateAuthorizedViewRequest {
1381+
// Required. The AuthorizedView to update. The `name` in `authorized_view` is
1382+
// used to identify the AuthorizedView. AuthorizedView name must in this
1383+
// format
1384+
// projects/<project>/instances/<instance>/tables/<table>/authorizedViews/<authorized_view>
1385+
AuthorizedView authorized_view = 1 [(google.api.field_behavior) = REQUIRED];
1386+
1387+
// Optional. The list of fields to update.
1388+
// A mask specifying which fields in the AuthorizedView resource should be
1389+
// updated. This mask is relative to the AuthorizedView resource, not to the
1390+
// request message. A field will be overwritten if it is in the mask. If
1391+
// empty, all fields set in the request will be overwritten. A special value
1392+
// `*` means to overwrite all fields (including fields not set in the
1393+
// request).
1394+
google.protobuf.FieldMask update_mask = 2
1395+
[(google.api.field_behavior) = OPTIONAL];
1396+
1397+
// Optional. If true, ignore the safety checks when updating the
1398+
// AuthorizedView.
1399+
bool ignore_warnings = 3 [(google.api.field_behavior) = OPTIONAL];
1400+
}
1401+
1402+
// Metadata for the google.longrunning.Operation returned by
1403+
// [UpdateAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.UpdateAuthorizedView].
1404+
message UpdateAuthorizedViewMetadata {
1405+
// The request that prompted the initiation of this UpdateAuthorizedView
1406+
// operation.
1407+
UpdateAuthorizedViewRequest original_request = 1;
1408+
1409+
// The time at which the original request was received.
1410+
google.protobuf.Timestamp request_time = 2;
1411+
1412+
// The time at which the operation failed or was completed successfully.
1413+
google.protobuf.Timestamp finish_time = 3;
1414+
}
1415+
1416+
// Request message for
1417+
// [google.bigtable.admin.v2.BigtableTableAdmin.DeleteAuthorizedView][google.bigtable.admin.v2.BigtableTableAdmin.DeleteAuthorizedView]
1418+
message DeleteAuthorizedViewRequest {
1419+
// Required. The unique name of the AuthorizedView to be deleted.
1420+
// Values are of the form
1421+
// `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`.
1422+
string name = 1 [
1423+
(google.api.field_behavior) = REQUIRED,
1424+
(google.api.resource_reference) = {
1425+
type: "bigtableadmin.googleapis.com/AuthorizedView"
1426+
}
1427+
];
1428+
1429+
// Optional. The current etag of the AuthorizedView.
1430+
// If an etag is provided and does not match the current etag of the
1431+
// AuthorizedView, deletion will be blocked and an ABORTED error will be
1432+
// returned.
1433+
string etag = 2 [(google.api.field_behavior) = OPTIONAL];
1434+
}

protos/google/bigtable/admin/v2/instance.proto

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,35 @@ message AppProfile {
297297
Priority priority = 1;
298298
}
299299

300+
// Data Boost is a serverless compute capability that lets you run
301+
// high-throughput read jobs on your Bigtable data, without impacting the
302+
// performance of the clusters that handle your application traffic.
303+
// Currently, Data Boost exclusively supports read-only use-cases with
304+
// single-cluster routing.
305+
//
306+
// Data Boost reads are only guaranteed to see the results of writes that
307+
// were written at least 30 minutes ago. This means newly written values may
308+
// not become visible for up to 30m, and also means that old values may
309+
// remain visible for up to 30m after being deleted or overwritten. To
310+
// mitigate the staleness of the data, users may either wait 30m, or use
311+
// CheckConsistency.
312+
message DataBoostIsolationReadOnly {
313+
// Compute Billing Owner specifies how usage should be accounted when using
314+
// Data Boost. Compute Billing Owner also configures which Cloud Project is
315+
// charged for relevant quota.
316+
enum ComputeBillingOwner {
317+
// Unspecified value.
318+
COMPUTE_BILLING_OWNER_UNSPECIFIED = 0;
319+
320+
// The host Cloud Project containing the targeted Bigtable Instance /
321+
// Table pays for compute.
322+
HOST_PAYS = 1;
323+
}
324+
325+
// The Compute Billing Owner for this Data Boost App Profile.
326+
optional ComputeBillingOwner compute_billing_owner = 1;
327+
}
328+
300329
// The unique name of the app profile. Values are of the form
301330
// `projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
302331
string name = 1;
@@ -335,6 +364,10 @@ message AppProfile {
335364
// The standard options used for isolating this app profile's traffic from
336365
// other use cases.
337366
StandardIsolation standard_isolation = 11;
367+
368+
// Specifies that this app profile is intended for read-only usage via the
369+
// Data Boost feature.
370+
DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
338371
}
339372
}
340373

0 commit comments

Comments
 (0)