Skip to content

Commit 81a1b48

Browse files
feat: add DeleteDatabase API and delete protection (#1508)
* feat: add DeleteDatabase API and delete protection docs: update Database API description PiperOrigin-RevId: 591922567 Source-Link: googleapis/googleapis@204f2ae Source-Link: https://github.com/googleapis/googleapis-gen/commit/bd9865000350465271911d99689b7561158855d4 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYmQ5ODY1MDAwMzUwNDY1MjcxOTExZDk5Njg5Yjc1NjExNTg4NTVkNCJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Allow difference --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Tom Andersen <[email protected]>
1 parent ac4cd21 commit 81a1b48

31 files changed

+4432
-353
lines changed

google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/FirestoreAdminClient.java

+158-7
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
import com.google.firestore.admin.v1.CreateIndexRequest;
3838
import com.google.firestore.admin.v1.Database;
3939
import com.google.firestore.admin.v1.DatabaseName;
40+
import com.google.firestore.admin.v1.DeleteDatabaseMetadata;
41+
import com.google.firestore.admin.v1.DeleteDatabaseRequest;
4042
import com.google.firestore.admin.v1.DeleteIndexRequest;
4143
import com.google.firestore.admin.v1.ExportDocumentsMetadata;
4244
import com.google.firestore.admin.v1.ExportDocumentsRequest;
@@ -1106,7 +1108,7 @@ public final UnaryCallable<UpdateFieldRequest, Operation> updateFieldCallable()
11061108
* <p>Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
11071109
* only supports listing fields that have been explicitly overridden. To issue this query, call
11081110
* [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the
1109-
* filter set to `indexConfig.usesAncestorConfig:false` .
1111+
* filter set to `indexConfig.usesAncestorConfig:false or `ttlConfig:&#42;`.
11101112
*
11111113
* <p>Sample code:
11121114
*
@@ -1142,7 +1144,7 @@ public final ListFieldsPagedResponse listFields(CollectionGroupName parent) {
11421144
* <p>Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
11431145
* only supports listing fields that have been explicitly overridden. To issue this query, call
11441146
* [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the
1145-
* filter set to `indexConfig.usesAncestorConfig:false` .
1147+
* filter set to `indexConfig.usesAncestorConfig:false or `ttlConfig:&#42;`.
11461148
*
11471149
* <p>Sample code:
11481150
*
@@ -1176,7 +1178,7 @@ public final ListFieldsPagedResponse listFields(String parent) {
11761178
* <p>Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
11771179
* only supports listing fields that have been explicitly overridden. To issue this query, call
11781180
* [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the
1179-
* filter set to `indexConfig.usesAncestorConfig:false` .
1181+
* filter set to `indexConfig.usesAncestorConfig:false or `ttlConfig:&#42;`.
11801182
*
11811183
* <p>Sample code:
11821184
*
@@ -1215,7 +1217,7 @@ public final ListFieldsPagedResponse listFields(ListFieldsRequest request) {
12151217
* <p>Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
12161218
* only supports listing fields that have been explicitly overridden. To issue this query, call
12171219
* [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the
1218-
* filter set to `indexConfig.usesAncestorConfig:false` .
1220+
* filter set to `indexConfig.usesAncestorConfig:false or `ttlConfig:&#42;`.
12191221
*
12201222
* <p>Sample code:
12211223
*
@@ -1253,7 +1255,7 @@ public final UnaryCallable<ListFieldsRequest, ListFieldsPagedResponse> listField
12531255
* <p>Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]
12541256
* only supports listing fields that have been explicitly overridden. To issue this query, call
12551257
* [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the
1256-
* filter set to `indexConfig.usesAncestorConfig:false` .
1258+
* filter set to `indexConfig.usesAncestorConfig:false or `ttlConfig:&#42;`.
12571259
*
12581260
* <p>Sample code:
12591261
*
@@ -1678,7 +1680,10 @@ public final UnaryCallable<ImportDocumentsRequest, Operation> importDocumentsCal
16781680
* @param database Required. The Database to create.
16791681
* @param databaseId Required. The ID to use for the database, which will become the final
16801682
* component of the database's resource name.
1681-
* <p>The value must be set to "(default)".
1683+
* <p>This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ with first
1684+
* character a letter and the last a letter or a number. Must not be UUID-like
1685+
* /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
1686+
* <p>"(default)" database id is also valid.
16821687
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
16831688
*/
16841689
public final OperationFuture<Database, CreateDatabaseMetadata> createDatabaseAsync(
@@ -1717,7 +1722,10 @@ public final OperationFuture<Database, CreateDatabaseMetadata> createDatabaseAsy
17171722
* @param database Required. The Database to create.
17181723
* @param databaseId Required. The ID to use for the database, which will become the final
17191724
* component of the database's resource name.
1720-
* <p>The value must be set to "(default)".
1725+
* <p>This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ with first
1726+
* character a letter and the last a letter or a number. Must not be UUID-like
1727+
* /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
1728+
* <p>"(default)" database id is also valid.
17211729
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
17221730
*/
17231731
public final OperationFuture<Database, CreateDatabaseMetadata> createDatabaseAsync(
@@ -2161,6 +2169,149 @@ public final UnaryCallable<UpdateDatabaseRequest, Operation> updateDatabaseCalla
21612169
return stub.updateDatabaseCallable();
21622170
}
21632171

2172+
// AUTO-GENERATED DOCUMENTATION AND METHOD.
2173+
/**
2174+
* Deletes a database.
2175+
*
2176+
* <p>Sample code:
2177+
*
2178+
* <pre>{@code
2179+
* // This snippet has been automatically generated and should be regarded as a code template only.
2180+
* // It will require modifications to work:
2181+
* // - It may require correct/in-range values for request initialization.
2182+
* // - It may require specifying regional endpoints when creating the service client as shown in
2183+
* // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
2184+
* try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
2185+
* DatabaseName name = DatabaseName.of("[PROJECT]", "[DATABASE]");
2186+
* Database response = firestoreAdminClient.deleteDatabaseAsync(name).get();
2187+
* }
2188+
* }</pre>
2189+
*
2190+
* @param name Required. A name of the form `projects/{project_id}/databases/{database_id}`
2191+
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
2192+
*/
2193+
public final OperationFuture<Database, DeleteDatabaseMetadata> deleteDatabaseAsync(
2194+
DatabaseName name) {
2195+
DeleteDatabaseRequest request =
2196+
DeleteDatabaseRequest.newBuilder().setName(name == null ? null : name.toString()).build();
2197+
return deleteDatabaseAsync(request);
2198+
}
2199+
2200+
// AUTO-GENERATED DOCUMENTATION AND METHOD.
2201+
/**
2202+
* Deletes a database.
2203+
*
2204+
* <p>Sample code:
2205+
*
2206+
* <pre>{@code
2207+
* // This snippet has been automatically generated and should be regarded as a code template only.
2208+
* // It will require modifications to work:
2209+
* // - It may require correct/in-range values for request initialization.
2210+
* // - It may require specifying regional endpoints when creating the service client as shown in
2211+
* // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
2212+
* try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
2213+
* String name = DatabaseName.of("[PROJECT]", "[DATABASE]").toString();
2214+
* Database response = firestoreAdminClient.deleteDatabaseAsync(name).get();
2215+
* }
2216+
* }</pre>
2217+
*
2218+
* @param name Required. A name of the form `projects/{project_id}/databases/{database_id}`
2219+
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
2220+
*/
2221+
public final OperationFuture<Database, DeleteDatabaseMetadata> deleteDatabaseAsync(String name) {
2222+
DeleteDatabaseRequest request = DeleteDatabaseRequest.newBuilder().setName(name).build();
2223+
return deleteDatabaseAsync(request);
2224+
}
2225+
2226+
// AUTO-GENERATED DOCUMENTATION AND METHOD.
2227+
/**
2228+
* Deletes a database.
2229+
*
2230+
* <p>Sample code:
2231+
*
2232+
* <pre>{@code
2233+
* // This snippet has been automatically generated and should be regarded as a code template only.
2234+
* // It will require modifications to work:
2235+
* // - It may require correct/in-range values for request initialization.
2236+
* // - It may require specifying regional endpoints when creating the service client as shown in
2237+
* // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
2238+
* try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
2239+
* DeleteDatabaseRequest request =
2240+
* DeleteDatabaseRequest.newBuilder()
2241+
* .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
2242+
* .setEtag("etag3123477")
2243+
* .build();
2244+
* Database response = firestoreAdminClient.deleteDatabaseAsync(request).get();
2245+
* }
2246+
* }</pre>
2247+
*
2248+
* @param request The request object containing all of the parameters for the API call.
2249+
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
2250+
*/
2251+
public final OperationFuture<Database, DeleteDatabaseMetadata> deleteDatabaseAsync(
2252+
DeleteDatabaseRequest request) {
2253+
return deleteDatabaseOperationCallable().futureCall(request);
2254+
}
2255+
2256+
// AUTO-GENERATED DOCUMENTATION AND METHOD.
2257+
/**
2258+
* Deletes a database.
2259+
*
2260+
* <p>Sample code:
2261+
*
2262+
* <pre>{@code
2263+
* // This snippet has been automatically generated and should be regarded as a code template only.
2264+
* // It will require modifications to work:
2265+
* // - It may require correct/in-range values for request initialization.
2266+
* // - It may require specifying regional endpoints when creating the service client as shown in
2267+
* // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
2268+
* try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
2269+
* DeleteDatabaseRequest request =
2270+
* DeleteDatabaseRequest.newBuilder()
2271+
* .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
2272+
* .setEtag("etag3123477")
2273+
* .build();
2274+
* OperationFuture<Database, DeleteDatabaseMetadata> future =
2275+
* firestoreAdminClient.deleteDatabaseOperationCallable().futureCall(request);
2276+
* // Do something.
2277+
* Database response = future.get();
2278+
* }
2279+
* }</pre>
2280+
*/
2281+
public final OperationCallable<DeleteDatabaseRequest, Database, DeleteDatabaseMetadata>
2282+
deleteDatabaseOperationCallable() {
2283+
return stub.deleteDatabaseOperationCallable();
2284+
}
2285+
2286+
// AUTO-GENERATED DOCUMENTATION AND METHOD.
2287+
/**
2288+
* Deletes a database.
2289+
*
2290+
* <p>Sample code:
2291+
*
2292+
* <pre>{@code
2293+
* // This snippet has been automatically generated and should be regarded as a code template only.
2294+
* // It will require modifications to work:
2295+
* // - It may require correct/in-range values for request initialization.
2296+
* // - It may require specifying regional endpoints when creating the service client as shown in
2297+
* // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
2298+
* try (FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create()) {
2299+
* DeleteDatabaseRequest request =
2300+
* DeleteDatabaseRequest.newBuilder()
2301+
* .setName(DatabaseName.of("[PROJECT]", "[DATABASE]").toString())
2302+
* .setEtag("etag3123477")
2303+
* .build();
2304+
* ApiFuture<Operation> future =
2305+
* firestoreAdminClient.deleteDatabaseCallable().futureCall(request);
2306+
* // Do something.
2307+
* Operation response = future.get();
2308+
* }
2309+
* }</pre>
2310+
*/
2311+
public final UnaryCallable<DeleteDatabaseRequest, Operation> deleteDatabaseCallable() {
2312+
return stub.deleteDatabaseCallable();
2313+
}
2314+
21642315
@Override
21652316
public final void close() {
21662317
stub.close();

google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/FirestoreAdminSettings.java

+24
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
import com.google.firestore.admin.v1.CreateDatabaseRequest;
3838
import com.google.firestore.admin.v1.CreateIndexRequest;
3939
import com.google.firestore.admin.v1.Database;
40+
import com.google.firestore.admin.v1.DeleteDatabaseMetadata;
41+
import com.google.firestore.admin.v1.DeleteDatabaseRequest;
4042
import com.google.firestore.admin.v1.DeleteIndexRequest;
4143
import com.google.firestore.admin.v1.ExportDocumentsMetadata;
4244
import com.google.firestore.admin.v1.ExportDocumentsRequest;
@@ -209,6 +211,17 @@ public UnaryCallSettings<UpdateDatabaseRequest, Operation> updateDatabaseSetting
209211
return ((FirestoreAdminStubSettings) getStubSettings()).updateDatabaseOperationSettings();
210212
}
211213

214+
/** Returns the object with the settings used for calls to deleteDatabase. */
215+
public UnaryCallSettings<DeleteDatabaseRequest, Operation> deleteDatabaseSettings() {
216+
return ((FirestoreAdminStubSettings) getStubSettings()).deleteDatabaseSettings();
217+
}
218+
219+
/** Returns the object with the settings used for calls to deleteDatabase. */
220+
public OperationCallSettings<DeleteDatabaseRequest, Database, DeleteDatabaseMetadata>
221+
deleteDatabaseOperationSettings() {
222+
return ((FirestoreAdminStubSettings) getStubSettings()).deleteDatabaseOperationSettings();
223+
}
224+
212225
public static final FirestoreAdminSettings create(FirestoreAdminStubSettings stub)
213226
throws IOException {
214227
return new FirestoreAdminSettings.Builder(stub.toBuilder()).build();
@@ -430,6 +443,17 @@ public UnaryCallSettings.Builder<UpdateDatabaseRequest, Operation> updateDatabas
430443
return getStubSettingsBuilder().updateDatabaseOperationSettings();
431444
}
432445

446+
/** Returns the builder for the settings used for calls to deleteDatabase. */
447+
public UnaryCallSettings.Builder<DeleteDatabaseRequest, Operation> deleteDatabaseSettings() {
448+
return getStubSettingsBuilder().deleteDatabaseSettings();
449+
}
450+
451+
/** Returns the builder for the settings used for calls to deleteDatabase. */
452+
public OperationCallSettings.Builder<DeleteDatabaseRequest, Database, DeleteDatabaseMetadata>
453+
deleteDatabaseOperationSettings() {
454+
return getStubSettingsBuilder().deleteDatabaseOperationSettings();
455+
}
456+
433457
@Override
434458
public FirestoreAdminSettings build() throws IOException {
435459
return new FirestoreAdminSettings(this);

google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/gapic_metadata.json

+3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
"CreateIndex": {
1717
"methods": ["createIndexAsync", "createIndexAsync", "createIndexAsync", "createIndexOperationCallable", "createIndexCallable"]
1818
},
19+
"DeleteDatabase": {
20+
"methods": ["deleteDatabaseAsync", "deleteDatabaseAsync", "deleteDatabaseAsync", "deleteDatabaseOperationCallable", "deleteDatabaseCallable"]
21+
},
1922
"DeleteIndex": {
2023
"methods": ["deleteIndex", "deleteIndex", "deleteIndex", "deleteIndexCallable"]
2124
},

google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreAdminStub.java

+11
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import com.google.firestore.admin.v1.CreateDatabaseRequest;
2727
import com.google.firestore.admin.v1.CreateIndexRequest;
2828
import com.google.firestore.admin.v1.Database;
29+
import com.google.firestore.admin.v1.DeleteDatabaseMetadata;
30+
import com.google.firestore.admin.v1.DeleteDatabaseRequest;
2931
import com.google.firestore.admin.v1.DeleteIndexRequest;
3032
import com.google.firestore.admin.v1.ExportDocumentsMetadata;
3133
import com.google.firestore.admin.v1.ExportDocumentsRequest;
@@ -160,6 +162,15 @@ public UnaryCallable<UpdateDatabaseRequest, Operation> updateDatabaseCallable()
160162
throw new UnsupportedOperationException("Not implemented: updateDatabaseCallable()");
161163
}
162164

165+
public OperationCallable<DeleteDatabaseRequest, Database, DeleteDatabaseMetadata>
166+
deleteDatabaseOperationCallable() {
167+
throw new UnsupportedOperationException("Not implemented: deleteDatabaseOperationCallable()");
168+
}
169+
170+
public UnaryCallable<DeleteDatabaseRequest, Operation> deleteDatabaseCallable() {
171+
throw new UnsupportedOperationException("Not implemented: deleteDatabaseCallable()");
172+
}
173+
163174
@Override
164175
public abstract void close();
165176
}

0 commit comments

Comments
 (0)