generate googlapis
diff --git a/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart b/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
index 50949b3..0999752 100644
--- a/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
+++ b/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
@@ -143,13 +143,9 @@
   async.Future<Client> create(
     Client request,
     core.String accountId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -190,14 +186,8 @@
   async.Future<Client> get(
     core.String accountId,
     core.String clientAccountId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -245,14 +235,11 @@
   /// this method will complete with the same error.
   async.Future<ListClientsResponse> list(
     core.String accountId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String partnerClientId,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? partnerClientId,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -300,16 +287,9 @@
     Client request,
     core.String accountId,
     core.String clientAccountId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -362,16 +342,9 @@
     ClientUserInvitation request,
     core.String accountId,
     core.String clientAccountId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -419,17 +392,8 @@
     core.String accountId,
     core.String clientAccountId,
     core.String invitationId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
-    if (invitationId == null) {
-      throw core.ArgumentError('Parameter invitationId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -484,16 +448,10 @@
   async.Future<ListClientUserInvitationsResponse> list(
     core.String accountId,
     core.String clientAccountId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -548,17 +506,8 @@
     core.String accountId,
     core.String clientAccountId,
     core.String userId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
-    if (userId == null) {
-      throw core.ArgumentError('Parameter userId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -612,16 +561,10 @@
   async.Future<ListClientUsersResponse> list(
     core.String accountId,
     core.String clientAccountId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -674,19 +617,9 @@
     core.String accountId,
     core.String clientAccountId,
     core.String userId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (clientAccountId == null) {
-      throw core.ArgumentError('Parameter clientAccountId is required.');
-    }
-    if (userId == null) {
-      throw core.ArgumentError('Parameter userId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -751,14 +684,10 @@
   async.Future<Creative> create(
     Creative request,
     core.String accountId, {
-    core.String duplicateIdMode,
-    core.String $fields,
+    core.String? duplicateIdMode,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (duplicateIdMode != null) 'duplicateIdMode': [duplicateIdMode],
       if ($fields != null) 'fields': [$fields],
@@ -798,14 +727,8 @@
   async.Future<Creative> get(
     core.String accountId,
     core.String creativeId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -862,14 +785,11 @@
   /// this method will complete with the same error.
   async.Future<ListCreativesResponse> list(
     core.String accountId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String query,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? query,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -918,16 +838,9 @@
     StopWatchingCreativeRequest request,
     core.String accountId,
     core.String creativeId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -973,16 +886,9 @@
     Creative request,
     core.String accountId,
     core.String creativeId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1031,16 +937,9 @@
     WatchCreativeRequest request,
     core.String accountId,
     core.String creativeId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1091,16 +990,9 @@
     AddDealAssociationRequest request,
     core.String accountId,
     core.String creativeId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1159,17 +1051,11 @@
   async.Future<ListDealAssociationsResponse> list(
     core.String accountId,
     core.String creativeId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String query,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? query,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1216,16 +1102,9 @@
     RemoveDealAssociationRequest request,
     core.String accountId,
     core.String creativeId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (creativeId == null) {
-      throw core.ArgumentError('Parameter creativeId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1294,15 +1173,12 @@
   /// this method will complete with the same error.
   async.Future<ListProposalsResponse> list(
     core.String accountId, {
-    core.String filter,
-    core.String filterSyntax,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? filterSyntax,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (filterSyntax != null) 'filterSyntax': [filterSyntax],
@@ -1351,14 +1227,8 @@
   async.Future<Product> get(
     core.String accountId,
     core.String productId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (productId == null) {
-      throw core.ArgumentError('Parameter productId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1405,14 +1275,11 @@
   /// this method will complete with the same error.
   async.Future<ListProductsResponse> list(
     core.String accountId, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1469,16 +1336,9 @@
     AcceptProposalRequest request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1525,16 +1385,9 @@
     AddNoteRequest request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1581,16 +1434,9 @@
     CancelNegotiationRequest request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1640,16 +1486,9 @@
     CompleteSetupRequest request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1693,13 +1532,9 @@
   async.Future<Proposal> create(
     Proposal request,
     core.String accountId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1740,14 +1575,8 @@
   async.Future<Proposal> get(
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1811,15 +1640,12 @@
   /// this method will complete with the same error.
   async.Future<ListProposalsResponse> list(
     core.String accountId, {
-    core.String filter,
-    core.String filterSyntax,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? filterSyntax,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (filterSyntax != null) 'filterSyntax': [filterSyntax],
@@ -1871,16 +1697,9 @@
     PauseProposalRequest request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1931,16 +1750,9 @@
     ResumeProposalRequest request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1994,16 +1806,9 @@
     Proposal request,
     core.String accountId,
     core.String proposalId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (proposalId == null) {
-      throw core.ArgumentError('Parameter proposalId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2050,14 +1855,8 @@
   async.Future<PublisherProfile> get(
     core.String accountId,
     core.String publisherProfileId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
-    if (publisherProfileId == null) {
-      throw core.ArgumentError('Parameter publisherProfileId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2098,13 +1897,10 @@
   /// this method will complete with the same error.
   async.Future<ListPublisherProfilesResponse> list(
     core.String accountId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (accountId == null) {
-      throw core.ArgumentError('Parameter accountId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2202,14 +1998,10 @@
   async.Future<FilterSet> create(
     FilterSet request,
     core.String ownerName, {
-    core.bool isTransient,
-    core.String $fields,
+    core.bool? isTransient,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (ownerName == null) {
-      throw core.ArgumentError('Parameter ownerName is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (isTransient != null) 'isTransient': ['${isTransient}'],
       if ($fields != null) 'fields': [$fields],
@@ -2254,11 +2046,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2299,11 +2088,8 @@
   /// this method will complete with the same error.
   async.Future<FilterSet> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2350,13 +2136,10 @@
   /// this method will complete with the same error.
   async.Future<ListFilterSetsResponse> list(
     core.String ownerName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (ownerName == null) {
-      throw core.ArgumentError('Parameter ownerName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2417,13 +2200,10 @@
   /// this method will complete with the same error.
   async.Future<ListBidMetricsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2486,13 +2266,10 @@
   /// this method will complete with the same error.
   async.Future<ListBidResponseErrorsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2556,13 +2333,10 @@
   /// this method will complete with the same error.
   async.Future<ListBidResponsesWithoutBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2625,13 +2399,10 @@
   /// this method will complete with the same error.
   async.Future<ListFilteredBidRequestsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2698,13 +2469,10 @@
   /// this method will complete with the same error.
   async.Future<ListFilteredBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2772,16 +2540,10 @@
   async.Future<ListCreativeStatusBreakdownByCreativeResponse> list(
     core.String filterSetName,
     core.int creativeStatusId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
-    if (creativeStatusId == null) {
-      throw core.ArgumentError('Parameter creativeStatusId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2853,16 +2615,10 @@
   async.Future<ListCreativeStatusBreakdownByDetailResponse> list(
     core.String filterSetName,
     core.int creativeStatusId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
-    if (creativeStatusId == null) {
-      throw core.ArgumentError('Parameter creativeStatusId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2926,13 +2682,10 @@
   /// this method will complete with the same error.
   async.Future<ListImpressionMetricsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2994,13 +2747,10 @@
   /// this method will complete with the same error.
   async.Future<ListLosingBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3063,13 +2813,10 @@
   /// this method will complete with the same error.
   async.Future<ListNonBillableWinningBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3145,14 +2892,10 @@
   async.Future<FilterSet> create(
     FilterSet request,
     core.String ownerName, {
-    core.bool isTransient,
-    core.String $fields,
+    core.bool? isTransient,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (ownerName == null) {
-      throw core.ArgumentError('Parameter ownerName is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (isTransient != null) 'isTransient': ['${isTransient}'],
       if ($fields != null) 'fields': [$fields],
@@ -3196,11 +2939,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3240,11 +2980,8 @@
   /// this method will complete with the same error.
   async.Future<FilterSet> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3291,13 +3028,10 @@
   /// this method will complete with the same error.
   async.Future<ListFilterSetsResponse> list(
     core.String ownerName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (ownerName == null) {
-      throw core.ArgumentError('Parameter ownerName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3357,13 +3091,10 @@
   /// this method will complete with the same error.
   async.Future<ListBidMetricsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3424,13 +3155,10 @@
   /// this method will complete with the same error.
   async.Future<ListBidResponseErrorsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3492,13 +3220,10 @@
   /// this method will complete with the same error.
   async.Future<ListBidResponsesWithoutBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3559,13 +3284,10 @@
   /// this method will complete with the same error.
   async.Future<ListFilteredBidRequestsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3631,13 +3353,10 @@
   /// this method will complete with the same error.
   async.Future<ListFilteredBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3703,16 +3422,10 @@
   async.Future<ListCreativeStatusBreakdownByCreativeResponse> list(
     core.String filterSetName,
     core.int creativeStatusId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
-    if (creativeStatusId == null) {
-      throw core.ArgumentError('Parameter creativeStatusId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3782,16 +3495,10 @@
   async.Future<ListCreativeStatusBreakdownByDetailResponse> list(
     core.String filterSetName,
     core.int creativeStatusId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
-    if (creativeStatusId == null) {
-      throw core.ArgumentError('Parameter creativeStatusId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3853,13 +3560,10 @@
   /// this method will complete with the same error.
   async.Future<ListImpressionMetricsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3920,13 +3624,10 @@
   /// this method will complete with the same error.
   async.Future<ListLosingBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3987,13 +3688,10 @@
   /// this method will complete with the same error.
   async.Future<ListNonBillableWinningBidsResponse> list(
     core.String filterSetName, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (filterSetName == null) {
-      throw core.ArgumentError('Parameter filterSetName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -4025,13 +3723,13 @@
   ///
   /// Must be within the 30 days leading up to current date, and must be equal
   /// to or after start_date.
-  Date endDate;
+  Date? endDate;
 
   /// The start date of the range (inclusive).
   ///
   /// Must be within the 30 days leading up to current date, and must be equal
   /// to or before end_date.
-  Date startDate;
+  Date? startDate;
 
   AbsoluteDateRange();
 
@@ -4046,16 +3744,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endDate != null) 'endDate': endDate.toJson(),
-        if (startDate != null) 'startDate': startDate.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endDate != null) 'endDate': endDate!.toJson(),
+        if (startDate != null) 'startDate': startDate!.toJson(),
       };
 }
 
 /// Request to accept a proposal.
 class AcceptProposalRequest {
   /// The last known client revision number of the proposal.
-  core.String proposalRevision;
+  core.String? proposalRevision;
 
   AcceptProposalRequest();
 
@@ -4065,8 +3763,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (proposalRevision != null) 'proposalRevision': proposalRevision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (proposalRevision != null) 'proposalRevision': proposalRevision!,
       };
 }
 
@@ -4075,7 +3773,7 @@
   /// The height of the ad slot in pixels.
   ///
   /// This field will be present only when size type is `PIXEL`.
-  core.String height;
+  core.String? height;
 
   /// The size type of the ad slot.
   /// Possible string values are:
@@ -4085,12 +3783,12 @@
   /// - "NATIVE" : Native (mobile) ads rendered by the publisher.
   /// - "FLUID" : Fluid size (i.e., responsive size) can be resized
   /// automatically with the change of outside environment.
-  core.String sizeType;
+  core.String? sizeType;
 
   /// The width of the ad slot in pixels.
   ///
   /// This field will be present only when size type is `PIXEL`.
-  core.String width;
+  core.String? width;
 
   AdSize();
 
@@ -4106,10 +3804,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (sizeType != null) 'sizeType': sizeType,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (sizeType != null) 'sizeType': sizeType!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -4130,14 +3828,14 @@
   /// protocol)\[https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto\],
   /// and a bid is submitted with that creative for an impression that will
   /// serve to an EEA user, the bid will be filtered before the auction.
-  core.List<core.String> detectedProviderIds;
+  core.List<core.String>? detectedProviderIds;
 
   /// Whether the creative contains an unidentified ad technology provider.
   ///
   /// If true for a given creative, any bid submitted with that creative for an
   /// impression that will serve to an EEA user will be filtered before the
   /// auction.
-  core.bool hasUnidentifiedProvider;
+  core.bool? hasUnidentifiedProvider;
 
   AdTechnologyProviders();
 
@@ -4152,18 +3850,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedProviderIds != null)
-          'detectedProviderIds': detectedProviderIds,
+          'detectedProviderIds': detectedProviderIds!,
         if (hasUnidentifiedProvider != null)
-          'hasUnidentifiedProvider': hasUnidentifiedProvider,
+          'hasUnidentifiedProvider': hasUnidentifiedProvider!,
       };
 }
 
 /// A request for associating a deal and a creative.
 class AddDealAssociationRequest {
   /// The association between a creative and a deal that should be added.
-  CreativeDealAssociation association;
+  CreativeDealAssociation? association;
 
   AddDealAssociationRequest();
 
@@ -4174,15 +3872,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (association != null) 'association': association.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (association != null) 'association': association!.toJson(),
       };
 }
 
 /// Request message for adding a note to a given proposal.
 class AddNoteRequest {
   /// Details of the note to add.
-  Note note;
+  Note? note;
 
   AddNoteRequest();
 
@@ -4193,8 +3891,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (note != null) 'note': note.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (note != null) 'note': note!.toJson(),
       };
 }
 
@@ -4203,7 +3901,7 @@
 /// Output only.
 class AppContext {
   /// The app types this restriction applies to.
-  core.List<core.String> appTypes;
+  core.List<core.String>? appTypes;
 
   AppContext();
 
@@ -4215,8 +3913,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appTypes != null) 'appTypes': appTypes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appTypes != null) 'appTypes': appTypes!,
       };
 }
 
@@ -4225,7 +3923,7 @@
 /// Output only.
 class AuctionContext {
   /// The auction types this restriction applies to.
-  core.List<core.String> auctionTypes;
+  core.List<core.String>? auctionTypes;
 
   AuctionContext();
 
@@ -4237,8 +3935,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (auctionTypes != null) 'auctionTypes': auctionTypes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (auctionTypes != null) 'auctionTypes': auctionTypes!,
       };
 }
 
@@ -4247,31 +3945,31 @@
 /// each stage of the bidding funnel;
 class BidMetricsRow {
   /// The number of bids that Ad Exchange received from the buyer.
-  MetricValue bids;
+  MetricValue? bids;
 
   /// The number of bids that were permitted to compete in the auction.
-  MetricValue bidsInAuction;
+  MetricValue? bidsInAuction;
 
   /// The number of bids for which the buyer was billed.
-  MetricValue billedImpressions;
+  MetricValue? billedImpressions;
 
   /// The number of bids that won the auction.
-  MetricValue impressionsWon;
+  MetricValue? impressionsWon;
 
   /// The number of bids for which the corresponding impression was measurable
   /// for viewability (as defined by Active View).
-  MetricValue measurableImpressions;
+  MetricValue? measurableImpressions;
 
   /// The number of bids that won the auction and also won the mediation
   /// waterfall (if any).
-  MetricValue reachedQueries;
+  MetricValue? reachedQueries;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   /// The number of bids for which the corresponding impression was viewable (as
   /// defined by Active View).
-  MetricValue viewableImpressions;
+  MetricValue? viewableImpressions;
 
   BidMetricsRow();
 
@@ -4311,18 +4009,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bids != null) 'bids': bids.toJson(),
-        if (bidsInAuction != null) 'bidsInAuction': bidsInAuction.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bids != null) 'bids': bids!.toJson(),
+        if (bidsInAuction != null) 'bidsInAuction': bidsInAuction!.toJson(),
         if (billedImpressions != null)
-          'billedImpressions': billedImpressions.toJson(),
-        if (impressionsWon != null) 'impressionsWon': impressionsWon.toJson(),
+          'billedImpressions': billedImpressions!.toJson(),
+        if (impressionsWon != null) 'impressionsWon': impressionsWon!.toJson(),
         if (measurableImpressions != null)
-          'measurableImpressions': measurableImpressions.toJson(),
-        if (reachedQueries != null) 'reachedQueries': reachedQueries.toJson(),
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
+          'measurableImpressions': measurableImpressions!.toJson(),
+        if (reachedQueries != null) 'reachedQueries': reachedQueries!.toJson(),
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
         if (viewableImpressions != null)
-          'viewableImpressions': viewableImpressions.toJson(),
+          'viewableImpressions': viewableImpressions!.toJson(),
       };
 }
 
@@ -4331,10 +4029,10 @@
 class BidResponseWithoutBidsStatusRow {
   /// The number of impressions for which there was a bid response with the
   /// specified status.
-  MetricValue impressionCount;
+  MetricValue? impressionCount;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   /// The status specifying why the bid responses were considered to have no
   /// applicable bids.
@@ -4352,7 +4050,7 @@
   /// bidder and an account filter is not present, this also includes responses
   /// that have bids on behalf of accounts other than the account to which the
   /// deal belongs.
-  core.String status;
+  core.String? status;
 
   BidResponseWithoutBidsStatusRow();
 
@@ -4370,11 +4068,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (impressionCount != null)
-          'impressionCount': impressionCount.toJson(),
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
-        if (status != null) 'status': status,
+          'impressionCount': impressionCount!.toJson(),
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
+        if (status != null) 'status': status!,
       };
 }
 
@@ -4383,7 +4081,7 @@
 /// Each buyer is identified by a unique Authorized Buyers account ID.
 class Buyer {
   /// Authorized Buyers account ID of the buyer.
-  core.String accountId;
+  core.String? accountId;
 
   Buyer();
 
@@ -4393,8 +4091,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accountId != null) 'accountId': accountId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accountId != null) 'accountId': accountId!,
       };
 }
 
@@ -4406,14 +4104,14 @@
   ///
   /// See
   /// \[callout-status-codes\](https://developers.google.com/authorized-buyers/rtb/downloads/callout-status-codes).
-  core.int calloutStatusId;
+  core.int? calloutStatusId;
 
   /// The number of impressions for which there was a bid request or bid
   /// response with the specified callout status.
-  MetricValue impressionCount;
+  MetricValue? impressionCount;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   CalloutStatusRow();
 
@@ -4431,11 +4129,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (calloutStatusId != null) 'calloutStatusId': calloutStatusId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (calloutStatusId != null) 'calloutStatusId': calloutStatusId!,
         if (impressionCount != null)
-          'impressionCount': impressionCount.toJson(),
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
+          'impressionCount': impressionCount!.toJson(),
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
       };
 }
 
@@ -4447,7 +4145,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A client resource represents a client buyer—an agency, a brand, or an
@@ -4461,14 +4159,14 @@
   /// The globally-unique numerical ID of the client.
   ///
   /// The value of this field is ignored in create and update operations.
-  core.String clientAccountId;
+  core.String? clientAccountId;
 
   /// Name used to represent this client to publishers.
   ///
   /// You may have multiple clients that map to the same entity, but for each
   /// client the combination of `clientName` and entity must be unique. You can
   /// specify this field as empty.
-  core.String clientName;
+  core.String? clientName;
 
   /// Numerical identifier of the client entity.
   ///
@@ -4484,13 +4182,13 @@
   /// the
   /// [agencies.txt](https://storage.googleapis.com/adx-rtb-dictionaries/agencies.txt)
   /// file.
-  core.String entityId;
+  core.String? entityId;
 
   /// The name of the entity.
   ///
   /// This field is automatically fetched based on the type and ID. The value of
   /// this field is ignored in create and update operations.
-  core.String entityName;
+  core.String? entityName;
 
   /// An optional field for specifying the type of the client entity:
   /// `ADVERTISER`, `BRAND`, or `AGENCY`.
@@ -4502,7 +4200,7 @@
   /// - "AGENCY" : An advertising agency.
   /// - "ENTITY_TYPE_UNCLASSIFIED" : An explicit value for a client that was not
   /// yet classified as any particular entity.
-  core.String entityType;
+  core.String? entityType;
 
   /// Optional arbitrary unique identifier of this client buyer from the
   /// standpoint of its Ad Exchange sponsor buyer.
@@ -4512,7 +4210,7 @@
   /// identifier and verify whether an Ad Exchange counterpart of a given client
   /// buyer already exists. If present, must be unique among all the client
   /// buyers for its Ad Exchange sponsor buyer.
-  core.String partnerClientId;
+  core.String? partnerClientId;
 
   /// The role which is assigned to the client buyer.
   ///
@@ -4532,7 +4230,7 @@
   /// eligible deals on your behalf. Some deals may still explicitly require
   /// publisher finalization. If this role is not selected, the sponsor buyer
   /// will need to manually approve each of their deals.
-  core.String role;
+  core.String? role;
 
   /// The status of the client buyer.
   /// Possible string values are:
@@ -4540,10 +4238,10 @@
   /// status.
   /// - "DISABLED" : A client that is currently disabled.
   /// - "ACTIVE" : A client that is currently active.
-  core.String status;
+  core.String? status;
 
   /// Whether the client buyer will be visible to sellers.
-  core.bool visibleToSeller;
+  core.bool? visibleToSeller;
 
   Client();
 
@@ -4577,16 +4275,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (clientAccountId != null) 'clientAccountId': clientAccountId,
-        if (clientName != null) 'clientName': clientName,
-        if (entityId != null) 'entityId': entityId,
-        if (entityName != null) 'entityName': entityName,
-        if (entityType != null) 'entityType': entityType,
-        if (partnerClientId != null) 'partnerClientId': partnerClientId,
-        if (role != null) 'role': role,
-        if (status != null) 'status': status,
-        if (visibleToSeller != null) 'visibleToSeller': visibleToSeller,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (clientAccountId != null) 'clientAccountId': clientAccountId!,
+        if (clientName != null) 'clientName': clientName!,
+        if (entityId != null) 'entityId': entityId!,
+        if (entityName != null) 'entityName': entityName!,
+        if (entityType != null) 'entityType': entityType!,
+        if (partnerClientId != null) 'partnerClientId': partnerClientId!,
+        if (role != null) 'role': role!,
+        if (status != null) 'status': status!,
+        if (visibleToSeller != null) 'visibleToSeller': visibleToSeller!,
       };
 }
 
@@ -4602,12 +4300,12 @@
   /// associated; the buyer must be a client of the current sponsor buyer.
   ///
   /// The value of this field is ignored in an update operation.
-  core.String clientAccountId;
+  core.String? clientAccountId;
 
   /// User's email address.
   ///
   /// The value of this field is ignored in an update operation.
-  core.String email;
+  core.String? email;
 
   /// The status of the client user.
   /// Possible string values are:
@@ -4616,13 +4314,13 @@
   /// invitation yet.
   /// - "ACTIVE" : A user that is currently active.
   /// - "DISABLED" : A user that is currently disabled.
-  core.String status;
+  core.String? status;
 
   /// The unique numerical ID of the client user that has accepted an
   /// invitation.
   ///
   /// The value of this field is ignored in an update operation.
-  core.String userId;
+  core.String? userId;
 
   ClientUser();
 
@@ -4641,11 +4339,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (clientAccountId != null) 'clientAccountId': clientAccountId,
-        if (email != null) 'email': email,
-        if (status != null) 'status': status,
-        if (userId != null) 'userId': userId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (clientAccountId != null) 'clientAccountId': clientAccountId!,
+        if (email != null) 'email': email!,
+        if (status != null) 'status': status!,
+        if (userId != null) 'userId': userId!,
       };
 }
 
@@ -4658,18 +4356,18 @@
   /// associated with.
   ///
   /// The value of this field is ignored in create operations.
-  core.String clientAccountId;
+  core.String? clientAccountId;
 
   /// The email address to which the invitation is sent.
   ///
   /// Email addresses should be unique among all client users under each sponsor
   /// buyer.
-  core.String email;
+  core.String? email;
 
   /// The unique numerical ID of the invitation that is sent to the user.
   ///
   /// The value of this field is ignored in create operations.
-  core.String invitationId;
+  core.String? invitationId;
 
   ClientUserInvitation();
 
@@ -4685,10 +4383,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (clientAccountId != null) 'clientAccountId': clientAccountId,
-        if (email != null) 'email': email,
-        if (invitationId != null) 'invitationId': invitationId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (clientAccountId != null) 'clientAccountId': clientAccountId!,
+        if (email != null) 'email': email!,
+        if (invitationId != null) 'invitationId': invitationId!,
       };
 }
 
@@ -4700,16 +4398,16 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Contains information on how a buyer or seller can be reached.
 class ContactInformation {
   /// Email address for the contact.
-  core.String email;
+  core.String? email;
 
   /// The name of the contact.
-  core.String name;
+  core.String? name;
 
   ContactInformation();
 
@@ -4722,9 +4420,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4733,10 +4431,10 @@
 /// Output only.
 class Correction {
   /// The contexts for the correction.
-  core.List<ServingContext> contexts;
+  core.List<ServingContext>? contexts;
 
   /// Additional details about what was corrected.
-  core.List<core.String> details;
+  core.List<core.String>? details;
 
   /// The type of correction that was applied to the creative.
   /// Possible string values are:
@@ -4764,7 +4462,7 @@
   /// - "FLASH_ATTRIBUTE_REMOVED" : The ad unnecessarily declared the Flash
   /// attribute, so the Flash attribute was removed.
   /// - "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED" : The ad contains video content.
-  core.String type;
+  core.String? type;
 
   Correction();
 
@@ -4785,11 +4483,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (contexts != null)
-          'contexts': contexts.map((value) => value.toJson()).toList(),
-        if (details != null) 'details': details,
-        if (type != null) 'type': type,
+          'contexts': contexts!.map((value) => value.toJson()).toList(),
+        if (details != null) 'details': details!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -4798,44 +4496,44 @@
   /// The account that this creative belongs to.
   ///
   /// Can be used to filter the response of the creatives.list method.
-  core.String accountId;
+  core.String? accountId;
 
   /// The link to AdChoices destination page.
-  core.String adChoicesDestinationUrl;
+  core.String? adChoicesDestinationUrl;
 
   /// The detected ad technology providers.
   ///
   /// Output only.
-  AdTechnologyProviders adTechnologyProviders;
+  AdTechnologyProviders? adTechnologyProviders;
 
   /// The name of the company being advertised in the creative.
-  core.String advertiserName;
+  core.String? advertiserName;
 
   /// The agency ID for this creative.
-  core.String agencyId;
+  core.String? agencyId;
 
   /// The last update timestamp of the creative via API.
   ///
   /// Output only.
-  core.String apiUpdateTime;
+  core.String? apiUpdateTime;
 
   /// All attributes for the ads that may be shown from this creative.
   ///
   /// Can be used to filter the response of the creatives.list method.
-  core.List<core.String> attributes;
+  core.List<core.String>? attributes;
 
   /// The set of destination URLs for the creative.
-  core.List<core.String> clickThroughUrls;
+  core.List<core.String>? clickThroughUrls;
 
   /// Shows any corrections that were applied to this creative.
   ///
   /// Output only.
-  core.List<Correction> corrections;
+  core.List<Correction>? corrections;
 
   /// The buyer-defined creative ID of this creative.
   ///
   /// Can be used to filter the response of the creatives.list method.
-  core.String creativeId;
+  core.String? creativeId;
 
   /// The top-level deals status of this creative.
   ///
@@ -4857,20 +4555,20 @@
   /// used.
   /// - "STATUS_TYPE_UNSPECIFIED" : Placeholder for transition to v1beta1.
   /// Currently not used.
-  core.String dealsStatus;
+  core.String? dealsStatus;
 
   /// The set of declared destination URLs for the creative.
-  core.List<core.String> declaredClickThroughUrls;
+  core.List<core.String>? declaredClickThroughUrls;
 
   /// Detected advertiser IDs, if any.
   ///
   /// Output only.
-  core.List<core.String> detectedAdvertiserIds;
+  core.List<core.String>? detectedAdvertiserIds;
 
   /// The detected domains for this creative.
   ///
   /// Output only.
-  core.List<core.String> detectedDomains;
+  core.List<core.String>? detectedDomains;
 
   /// The detected languages for this creative.
   ///
@@ -4878,7 +4576,7 @@
   /// at https://developers.google.com/adwords/api/docs/appendix/languagecodes.
   ///
   /// Output only.
-  core.List<core.String> detectedLanguages;
+  core.List<core.String>? detectedLanguages;
 
   /// Detected product categories, if any.
   ///
@@ -4886,7 +4584,7 @@
   /// a list of IDs.
   ///
   /// Output only.
-  core.List<core.int> detectedProductCategories;
+  core.List<core.int>? detectedProductCategories;
 
   /// Detected sensitive categories, if any.
   ///
@@ -4895,16 +4593,16 @@
   /// excluded-sensitive-category field in the bid request to filter your bids.
   ///
   /// Output only.
-  core.List<core.int> detectedSensitiveCategories;
+  core.List<core.int>? detectedSensitiveCategories;
 
   /// An HTML creative.
-  HtmlContent html;
+  HtmlContent? html;
 
   /// The set of URLs to be called to record an impression.
-  core.List<core.String> impressionTrackingUrls;
+  core.List<core.String>? impressionTrackingUrls;
 
   /// A native creative.
-  NativeContent native;
+  NativeContent? native;
 
   /// The top-level open auction status of this creative.
   ///
@@ -4926,11 +4624,11 @@
   /// used.
   /// - "STATUS_TYPE_UNSPECIFIED" : Placeholder for transition to v1beta1.
   /// Currently not used.
-  core.String openAuctionStatus;
+  core.String? openAuctionStatus;
 
   /// All restricted categories for the ads that may be shown from this
   /// creative.
-  core.List<core.String> restrictedCategories;
+  core.List<core.String>? restrictedCategories;
 
   /// The granular status of this ad in specific contexts.
   ///
@@ -4939,21 +4637,21 @@
   /// auction).
   ///
   /// Output only.
-  core.List<ServingRestriction> servingRestrictions;
+  core.List<ServingRestriction>? servingRestrictions;
 
   /// All vendor IDs for the ads that may be shown from this creative.
   ///
   /// See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for
   /// possible values.
-  core.List<core.int> vendorIds;
+  core.List<core.int>? vendorIds;
 
   /// The version of this creative.
   ///
   /// Output only.
-  core.int version;
+  core.int? version;
 
   /// A video creative.
-  VideoContent video;
+  VideoContent? video;
 
   Creative();
 
@@ -5074,57 +4772,57 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accountId != null) 'accountId': accountId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accountId != null) 'accountId': accountId!,
         if (adChoicesDestinationUrl != null)
-          'adChoicesDestinationUrl': adChoicesDestinationUrl,
+          'adChoicesDestinationUrl': adChoicesDestinationUrl!,
         if (adTechnologyProviders != null)
-          'adTechnologyProviders': adTechnologyProviders.toJson(),
-        if (advertiserName != null) 'advertiserName': advertiserName,
-        if (agencyId != null) 'agencyId': agencyId,
-        if (apiUpdateTime != null) 'apiUpdateTime': apiUpdateTime,
-        if (attributes != null) 'attributes': attributes,
-        if (clickThroughUrls != null) 'clickThroughUrls': clickThroughUrls,
+          'adTechnologyProviders': adTechnologyProviders!.toJson(),
+        if (advertiserName != null) 'advertiserName': advertiserName!,
+        if (agencyId != null) 'agencyId': agencyId!,
+        if (apiUpdateTime != null) 'apiUpdateTime': apiUpdateTime!,
+        if (attributes != null) 'attributes': attributes!,
+        if (clickThroughUrls != null) 'clickThroughUrls': clickThroughUrls!,
         if (corrections != null)
-          'corrections': corrections.map((value) => value.toJson()).toList(),
-        if (creativeId != null) 'creativeId': creativeId,
-        if (dealsStatus != null) 'dealsStatus': dealsStatus,
+          'corrections': corrections!.map((value) => value.toJson()).toList(),
+        if (creativeId != null) 'creativeId': creativeId!,
+        if (dealsStatus != null) 'dealsStatus': dealsStatus!,
         if (declaredClickThroughUrls != null)
-          'declaredClickThroughUrls': declaredClickThroughUrls,
+          'declaredClickThroughUrls': declaredClickThroughUrls!,
         if (detectedAdvertiserIds != null)
-          'detectedAdvertiserIds': detectedAdvertiserIds,
-        if (detectedDomains != null) 'detectedDomains': detectedDomains,
-        if (detectedLanguages != null) 'detectedLanguages': detectedLanguages,
+          'detectedAdvertiserIds': detectedAdvertiserIds!,
+        if (detectedDomains != null) 'detectedDomains': detectedDomains!,
+        if (detectedLanguages != null) 'detectedLanguages': detectedLanguages!,
         if (detectedProductCategories != null)
-          'detectedProductCategories': detectedProductCategories,
+          'detectedProductCategories': detectedProductCategories!,
         if (detectedSensitiveCategories != null)
-          'detectedSensitiveCategories': detectedSensitiveCategories,
-        if (html != null) 'html': html.toJson(),
+          'detectedSensitiveCategories': detectedSensitiveCategories!,
+        if (html != null) 'html': html!.toJson(),
         if (impressionTrackingUrls != null)
-          'impressionTrackingUrls': impressionTrackingUrls,
-        if (native != null) 'native': native.toJson(),
-        if (openAuctionStatus != null) 'openAuctionStatus': openAuctionStatus,
+          'impressionTrackingUrls': impressionTrackingUrls!,
+        if (native != null) 'native': native!.toJson(),
+        if (openAuctionStatus != null) 'openAuctionStatus': openAuctionStatus!,
         if (restrictedCategories != null)
-          'restrictedCategories': restrictedCategories,
+          'restrictedCategories': restrictedCategories!,
         if (servingRestrictions != null)
           'servingRestrictions':
-              servingRestrictions.map((value) => value.toJson()).toList(),
-        if (vendorIds != null) 'vendorIds': vendorIds,
-        if (version != null) 'version': version,
-        if (video != null) 'video': video.toJson(),
+              servingRestrictions!.map((value) => value.toJson()).toList(),
+        if (vendorIds != null) 'vendorIds': vendorIds!,
+        if (version != null) 'version': version!,
+        if (video != null) 'video': video!.toJson(),
       };
 }
 
 /// The association between a creative and a deal.
 class CreativeDealAssociation {
   /// The account the creative belongs to.
-  core.String accountId;
+  core.String? accountId;
 
   /// The ID of the creative associated with the deal.
-  core.String creativeId;
+  core.String? creativeId;
 
   /// The externalDealId for the deal associated with the creative.
-  core.String dealsId;
+  core.String? dealsId;
 
   CreativeDealAssociation();
 
@@ -5140,10 +4838,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accountId != null) 'accountId': accountId,
-        if (creativeId != null) 'creativeId': creativeId,
-        if (dealsId != null) 'dealsId': dealsId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accountId != null) 'accountId': accountId!,
+        if (creativeId != null) 'creativeId': creativeId!,
+        if (dealsId != null) 'dealsId': dealsId!,
       };
 }
 
@@ -5160,8 +4858,8 @@
   /// browser.
   /// - "VIDEO" : A video creative that will be displayed in environments such
   /// as a video player.
-  core.String creativeFormat;
-  core.List<CreativeSpecification> creativeSpecifications;
+  core.String? creativeFormat;
+  core.List<CreativeSpecification>? creativeSpecifications;
 
   /// Skippable video ads allow viewers to skip ads after 5 seconds.
   /// Possible string values are:
@@ -5173,7 +4871,7 @@
   /// YouTube only, and viewcount of the YouTube video increments after the
   /// engaged view.
   /// - "NOT_SKIPPABLE" : This video ad is not skippable.
-  core.String skippableAdType;
+  core.String? skippableAdType;
 
   CreativeRestrictions();
 
@@ -5192,12 +4890,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (creativeFormat != null) 'creativeFormat': creativeFormat,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (creativeFormat != null) 'creativeFormat': creativeFormat!,
         if (creativeSpecifications != null)
           'creativeSpecifications':
-              creativeSpecifications.map((value) => value.toJson()).toList(),
-        if (skippableAdType != null) 'skippableAdType': skippableAdType,
+              creativeSpecifications!.map((value) => value.toJson()).toList(),
+        if (skippableAdType != null) 'skippableAdType': skippableAdType!,
       };
 }
 
@@ -5208,12 +4906,12 @@
   /// If this repeated field is empty then all formats are allowed. For example,
   /// if this field contains AllowedFormatType.AUDIO then the publisher only
   /// allows an audio ad (without any video).
-  core.List<core.String> allowedFormats;
+  core.List<core.String>? allowedFormats;
 
   /// For video creatives specifies the sizes of companion ads (if present).
   ///
   /// Companion sizes may be filled in only when creative_size_type = VIDEO
-  core.List<Size> companionSizes;
+  core.List<Size>? companionSizes;
 
   /// The creative size type.
   /// Possible string values are:
@@ -5223,7 +4921,7 @@
   /// - "INTERSTITIAL" : The creative is an interstitial creative.
   /// - "VIDEO" : The creative is a video creative.
   /// - "NATIVE" : The creative is a native (mobile) creative.
-  core.String creativeSizeType;
+  core.String? creativeSizeType;
 
   /// The native template for this creative.
   ///
@@ -5240,11 +4938,11 @@
   /// content ad.
   /// - "NATIVE_VIDEO_APP_INSTALL_AD" : The creative is linked to native video
   /// app install ad.
-  core.String nativeTemplate;
+  core.String? nativeTemplate;
 
   /// For regular or video creative size type, specifies the size of the
   /// creative
-  Size size;
+  Size? size;
 
   /// The type of skippable ad for this creative.
   ///
@@ -5258,7 +4956,7 @@
   /// only, and viewcount of the YouTube video increments after the engaged
   /// view.
   /// - "NOT_SKIPPABLE" : This video ad is not skippable.
-  core.String skippableAdType;
+  core.String? skippableAdType;
 
   CreativeSize();
 
@@ -5289,15 +4987,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowedFormats != null) 'allowedFormats': allowedFormats,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowedFormats != null) 'allowedFormats': allowedFormats!,
         if (companionSizes != null)
           'companionSizes':
-              companionSizes.map((value) => value.toJson()).toList(),
-        if (creativeSizeType != null) 'creativeSizeType': creativeSizeType,
-        if (nativeTemplate != null) 'nativeTemplate': nativeTemplate,
-        if (size != null) 'size': size.toJson(),
-        if (skippableAdType != null) 'skippableAdType': skippableAdType,
+              companionSizes!.map((value) => value.toJson()).toList(),
+        if (creativeSizeType != null) 'creativeSizeType': creativeSizeType!,
+        if (nativeTemplate != null) 'nativeTemplate': nativeTemplate!,
+        if (size != null) 'size': size!.toJson(),
+        if (skippableAdType != null) 'skippableAdType': skippableAdType!,
       };
 }
 
@@ -5305,10 +5003,10 @@
 /// Guaranteed/Preferred Deal in Ad Manager.
 class CreativeSpecification {
   /// Companion sizes may be filled in only when this is a video creative.
-  core.List<AdSize> creativeCompanionSizes;
+  core.List<AdSize>? creativeCompanionSizes;
 
   /// The size of the creative.
-  AdSize creativeSize;
+  AdSize? creativeSize;
 
   CreativeSpecification();
 
@@ -5325,11 +5023,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (creativeCompanionSizes != null)
           'creativeCompanionSizes':
-              creativeCompanionSizes.map((value) => value.toJson()).toList(),
-        if (creativeSize != null) 'creativeSize': creativeSize.toJson(),
+              creativeCompanionSizes!.map((value) => value.toJson()).toList(),
+        if (creativeSize != null) 'creativeSize': creativeSize!.toJson(),
       };
 }
 
@@ -5338,16 +5036,16 @@
 /// by the specified creative status.
 class CreativeStatusRow {
   /// The number of bids with the specified status.
-  MetricValue bidCount;
+  MetricValue? bidCount;
 
   /// The ID of the creative status.
   ///
   /// See
   /// \[creative-status-codes\](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes).
-  core.int creativeStatusId;
+  core.int? creativeStatusId;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   CreativeStatusRow();
 
@@ -5365,10 +5063,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bidCount != null) 'bidCount': bidCount.toJson(),
-        if (creativeStatusId != null) 'creativeStatusId': creativeStatusId,
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bidCount != null) 'bidCount': bidCount!.toJson(),
+        if (creativeStatusId != null) 'creativeStatusId': creativeStatusId!,
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
       };
 }
 
@@ -5376,10 +5074,10 @@
 /// included and excluded numeric IDs.
 class CriteriaTargeting {
   /// A list of numeric IDs to be excluded.
-  core.List<core.String> excludedCriteriaIds;
+  core.List<core.String>? excludedCriteriaIds;
 
   /// A list of numeric IDs to be included.
-  core.List<core.String> targetedCriteriaIds;
+  core.List<core.String>? targetedCriteriaIds;
 
   CriteriaTargeting();
 
@@ -5396,11 +5094,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (excludedCriteriaIds != null)
-          'excludedCriteriaIds': excludedCriteriaIds,
+          'excludedCriteriaIds': excludedCriteriaIds!,
         if (targetedCriteriaIds != null)
-          'targetedCriteriaIds': targetedCriteriaIds,
+          'targetedCriteriaIds': targetedCriteriaIds!,
       };
 }
 
@@ -5418,17 +5116,17 @@
   ///
   /// Must be from 1 to 31 and valid for the year and month, or 0 to specify a
   /// year by itself or a year and month where the day isn't significant.
-  core.int day;
+  core.int? day;
 
   /// Month of a year.
   ///
   /// Must be from 1 to 12, or 0 to specify a year without a month and day.
-  core.int month;
+  core.int? month;
 
   /// Year of the date.
   ///
   /// Must be from 1 to 9999, or 0 to specify a date without a year.
-  core.int year;
+  core.int? year;
 
   Date();
 
@@ -5444,10 +5142,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (day != null) 'day': day,
-        if (month != null) 'month': month,
-        if (year != null) 'year': year,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (day != null) 'day': day!,
+        if (month != null) 'month': month!,
+        if (year != null) 'year': year!,
       };
 }
 
@@ -5467,19 +5165,19 @@
   /// - "FRIDAY" : Friday
   /// - "SATURDAY" : Saturday
   /// - "SUNDAY" : Sunday
-  core.String dayOfWeek;
+  core.String? dayOfWeek;
 
   /// The ending time of the day for the ad to show (minute level granularity).
   ///
   /// The end time is exclusive. This field is not available for filtering in
   /// PQL queries.
-  TimeOfDay endTime;
+  TimeOfDay? endTime;
 
   /// The starting time of day for the ad to show (minute level granularity).
   ///
   /// The start time is inclusive. This field is not available for filtering in
   /// PQL queries.
-  TimeOfDay startTime;
+  TimeOfDay? startTime;
 
   DayPart();
 
@@ -5497,17 +5195,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dayOfWeek != null) 'dayOfWeek': dayOfWeek,
-        if (endTime != null) 'endTime': endTime.toJson(),
-        if (startTime != null) 'startTime': startTime.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dayOfWeek != null) 'dayOfWeek': dayOfWeek!,
+        if (endTime != null) 'endTime': endTime!.toJson(),
+        if (startTime != null) 'startTime': startTime!.toJson(),
       };
 }
 
 /// Specifies the day part targeting criteria.
 class DayPartTargeting {
   /// A list of day part targeting criterion.
-  core.List<DayPart> dayParts;
+  core.List<DayPart>? dayParts;
 
   /// The timezone to use for interpreting the day part targeting.
   /// Possible string values are:
@@ -5515,7 +5213,7 @@
   /// zone source.
   /// - "PUBLISHER" : Use publisher's time zone setting.
   /// - "USER" : Use the user's time zone setting.
-  core.String timeZoneType;
+  core.String? timeZoneType;
 
   DayPartTargeting();
 
@@ -5531,10 +5229,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dayParts != null)
-          'dayParts': dayParts.map((value) => value.toJson()).toList(),
-        if (timeZoneType != null) 'timeZoneType': timeZoneType,
+          'dayParts': dayParts!.map((value) => value.toJson()).toList(),
+        if (timeZoneType != null) 'timeZoneType': timeZoneType!,
       };
 }
 
@@ -5547,7 +5245,7 @@
   ///
   /// This will generally be stored in a granularity of a second. A value is not
   /// required for Private Auction deals or Preferred Deals.
-  core.String availableEndTime;
+  core.String? availableEndTime;
 
   /// Proposed flight start time of the deal.
   ///
@@ -5557,16 +5255,16 @@
   /// time in seconds.
   ///
   /// Optional.
-  core.String availableStartTime;
+  core.String? availableStartTime;
 
   /// Buyer private data (hidden from seller).
-  PrivateData buyerPrivateData;
+  PrivateData? buyerPrivateData;
 
   /// The product ID from which this deal was created.
   ///
   /// Note: This field may be set only when creating the resource. Modifying
   /// this field while updating the resource will result in an error.
-  core.String createProductId;
+  core.String? createProductId;
 
   /// Revision number of the product that the deal was created from.
   ///
@@ -5576,12 +5274,12 @@
   /// Modifying this field while updating the resource will result in an error.
   ///
   /// Optional.
-  core.String createProductRevision;
+  core.String? createProductRevision;
 
   /// The time of the deal creation.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Specifies the creative pre-approval policy.
   ///
@@ -5593,14 +5291,14 @@
   /// creative before it can serve.
   /// - "SELLER_PRE_APPROVAL_NOT_REQUIRED" : The seller does not need to approve
   /// each creative before it can serve.
-  core.String creativePreApprovalPolicy;
+  core.String? creativePreApprovalPolicy;
 
   /// Restricitions about the creatives associated with the deal (i.e., size)
   /// This is available for Programmatic Guaranteed/Preferred Deals in Ad
   /// Manager.
   ///
   /// Output only.
-  CreativeRestrictions creativeRestrictions;
+  CreativeRestrictions? creativeRestrictions;
 
   /// Specifies whether the creative is safeFrame compatible.
   ///
@@ -5612,44 +5310,44 @@
   /// option.
   /// - "INCOMPATIBLE" : The creatives can be incompatible with the safe frame
   /// option.
-  core.String creativeSafeFrameCompatibility;
+  core.String? creativeSafeFrameCompatibility;
 
   /// A unique deal ID for the deal (server-assigned).
   ///
   /// Output only.
-  core.String dealId;
+  core.String? dealId;
 
   /// Metadata about the serving status of this deal.
   ///
   /// Output only.
-  DealServingMetadata dealServingMetadata;
+  DealServingMetadata? dealServingMetadata;
 
   /// The negotiable terms of the deal.
-  DealTerms dealTerms;
+  DealTerms? dealTerms;
 
   /// The set of fields around delivery control that are interesting for a buyer
   /// to see but are non-negotiable.
   ///
   /// These are set by the publisher.
-  DeliveryControl deliveryControl;
+  DeliveryControl? deliveryControl;
 
   /// Description for the deal terms.
-  core.String description;
+  core.String? description;
 
   /// The name of the deal.
-  core.String displayName;
+  core.String? displayName;
 
   /// The external deal ID assigned to this deal once the deal is finalized.
   ///
   /// This is the deal ID that shows up in serving/reporting etc.
   ///
   /// Output only.
-  core.String externalDealId;
+  core.String? externalDealId;
 
   /// True, if the buyside inventory setup is complete for this deal.
   ///
   /// Output only.
-  core.bool isSetupComplete;
+  core.bool? isSetupComplete;
 
   /// Specifies the creative source for programmatic deals.
   ///
@@ -5662,17 +5360,17 @@
   /// undefined programmatic creative source.
   /// - "ADVERTISER" : The advertiser provides the creatives.
   /// - "PUBLISHER" : The publisher provides the creatives to be served.
-  core.String programmaticCreativeSource;
+  core.String? programmaticCreativeSource;
 
   /// ID of the proposal that this deal is part of.
   ///
   /// Output only.
-  core.String proposalId;
+  core.String? proposalId;
 
   /// Seller contact information for the deal.
   ///
   /// Output only.
-  core.List<ContactInformation> sellerContacts;
+  core.List<ContactInformation>? sellerContacts;
 
   /// The syndication product associated with the deal.
   ///
@@ -5685,25 +5383,25 @@
   /// - "MOBILE" : This represents a mobile property.
   /// - "VIDEO" : This represents video ad formats.
   /// - "GAMES" : This represents ads shown within games.
-  core.String syndicationProduct;
+  core.String? syndicationProduct;
 
   /// Specifies the subset of inventory targeted by the deal.
   ///
   /// Output only.
-  MarketplaceTargeting targeting;
+  MarketplaceTargeting? targeting;
 
   /// The shared targeting visible to buyers and sellers.
   ///
   /// Each shared targeting entity is AND'd together.
-  core.List<TargetingCriteria> targetingCriterion;
+  core.List<TargetingCriteria>? targetingCriterion;
 
   /// The time when the deal was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The web property code for the seller copied over from the product.
-  core.String webPropertyCode;
+  core.String? webPropertyCode;
 
   Deal();
 
@@ -5800,46 +5498,46 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (availableEndTime != null) 'availableEndTime': availableEndTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (availableEndTime != null) 'availableEndTime': availableEndTime!,
         if (availableStartTime != null)
-          'availableStartTime': availableStartTime,
+          'availableStartTime': availableStartTime!,
         if (buyerPrivateData != null)
-          'buyerPrivateData': buyerPrivateData.toJson(),
-        if (createProductId != null) 'createProductId': createProductId,
+          'buyerPrivateData': buyerPrivateData!.toJson(),
+        if (createProductId != null) 'createProductId': createProductId!,
         if (createProductRevision != null)
-          'createProductRevision': createProductRevision,
-        if (createTime != null) 'createTime': createTime,
+          'createProductRevision': createProductRevision!,
+        if (createTime != null) 'createTime': createTime!,
         if (creativePreApprovalPolicy != null)
-          'creativePreApprovalPolicy': creativePreApprovalPolicy,
+          'creativePreApprovalPolicy': creativePreApprovalPolicy!,
         if (creativeRestrictions != null)
-          'creativeRestrictions': creativeRestrictions.toJson(),
+          'creativeRestrictions': creativeRestrictions!.toJson(),
         if (creativeSafeFrameCompatibility != null)
-          'creativeSafeFrameCompatibility': creativeSafeFrameCompatibility,
-        if (dealId != null) 'dealId': dealId,
+          'creativeSafeFrameCompatibility': creativeSafeFrameCompatibility!,
+        if (dealId != null) 'dealId': dealId!,
         if (dealServingMetadata != null)
-          'dealServingMetadata': dealServingMetadata.toJson(),
-        if (dealTerms != null) 'dealTerms': dealTerms.toJson(),
+          'dealServingMetadata': dealServingMetadata!.toJson(),
+        if (dealTerms != null) 'dealTerms': dealTerms!.toJson(),
         if (deliveryControl != null)
-          'deliveryControl': deliveryControl.toJson(),
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (externalDealId != null) 'externalDealId': externalDealId,
-        if (isSetupComplete != null) 'isSetupComplete': isSetupComplete,
+          'deliveryControl': deliveryControl!.toJson(),
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (externalDealId != null) 'externalDealId': externalDealId!,
+        if (isSetupComplete != null) 'isSetupComplete': isSetupComplete!,
         if (programmaticCreativeSource != null)
-          'programmaticCreativeSource': programmaticCreativeSource,
-        if (proposalId != null) 'proposalId': proposalId,
+          'programmaticCreativeSource': programmaticCreativeSource!,
+        if (proposalId != null) 'proposalId': proposalId!,
         if (sellerContacts != null)
           'sellerContacts':
-              sellerContacts.map((value) => value.toJson()).toList(),
+              sellerContacts!.map((value) => value.toJson()).toList(),
         if (syndicationProduct != null)
-          'syndicationProduct': syndicationProduct,
-        if (targeting != null) 'targeting': targeting.toJson(),
+          'syndicationProduct': syndicationProduct!,
+        if (targeting != null) 'targeting': targeting!.toJson(),
         if (targetingCriterion != null)
           'targetingCriterion':
-              targetingCriterion.map((value) => value.toJson()).toList(),
-        if (updateTime != null) 'updateTime': updateTime,
-        if (webPropertyCode != null) 'webPropertyCode': webPropertyCode,
+              targetingCriterion!.map((value) => value.toJson()).toList(),
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (webPropertyCode != null) 'webPropertyCode': webPropertyCode!,
       };
 }
 
@@ -5849,7 +5547,7 @@
 /// true.
 class DealPauseStatus {
   /// The buyer's reason for pausing, if the buyer paused the deal.
-  core.String buyerPauseReason;
+  core.String? buyerPauseReason;
 
   /// The role of the person who first paused this deal.
   /// Possible string values are:
@@ -5857,16 +5555,16 @@
   /// buyer/seller role.
   /// - "BUYER" : Specifies the role as buyer.
   /// - "SELLER" : Specifies the role as seller.
-  core.String firstPausedBy;
+  core.String? firstPausedBy;
 
   /// True, if the buyer has paused the deal unilaterally.
-  core.bool hasBuyerPaused;
+  core.bool? hasBuyerPaused;
 
   /// True, if the seller has paused the deal unilaterally.
-  core.bool hasSellerPaused;
+  core.bool? hasSellerPaused;
 
   /// The seller's reason for pausing, if the seller paused the deal.
-  core.String sellerPauseReason;
+  core.String? sellerPauseReason;
 
   DealPauseStatus();
 
@@ -5888,12 +5586,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (buyerPauseReason != null) 'buyerPauseReason': buyerPauseReason,
-        if (firstPausedBy != null) 'firstPausedBy': firstPausedBy,
-        if (hasBuyerPaused != null) 'hasBuyerPaused': hasBuyerPaused,
-        if (hasSellerPaused != null) 'hasSellerPaused': hasSellerPaused,
-        if (sellerPauseReason != null) 'sellerPauseReason': sellerPauseReason,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (buyerPauseReason != null) 'buyerPauseReason': buyerPauseReason!,
+        if (firstPausedBy != null) 'firstPausedBy': firstPausedBy!,
+        if (hasBuyerPaused != null) 'hasBuyerPaused': hasBuyerPaused!,
+        if (hasSellerPaused != null) 'hasSellerPaused': hasSellerPaused!,
+        if (sellerPauseReason != null) 'sellerPauseReason': sellerPauseReason!,
       };
 }
 
@@ -5902,7 +5600,7 @@
   /// Tracks which parties (if any) have paused a deal.
   ///
   /// Output only.
-  DealPauseStatus dealPauseStatus;
+  DealPauseStatus? dealPauseStatus;
 
   DealServingMetadata();
 
@@ -5913,9 +5611,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dealPauseStatus != null)
-          'dealPauseStatus': dealPauseStatus.toJson(),
+          'dealPauseStatus': dealPauseStatus!.toJson(),
       };
 }
 
@@ -5933,29 +5631,29 @@
   /// - "BRANDED" : Full URL is included in bid requests.
   /// - "SEMI_TRANSPARENT" : A TopLevelDomain or masked URL is sent in bid
   /// requests rather than the full one.
-  core.String brandingType;
+  core.String? brandingType;
 
   /// Publisher provided description for the terms.
-  core.String description;
+  core.String? description;
 
   /// Non-binding estimate of the estimated gross spend for this deal.
   ///
   /// Can be set by buyer or seller.
-  Price estimatedGrossSpend;
+  Price? estimatedGrossSpend;
 
   /// Non-binding estimate of the impressions served per day.
   ///
   /// Can be set by buyer or seller.
-  core.String estimatedImpressionsPerDay;
+  core.String? estimatedImpressionsPerDay;
 
   /// The terms for guaranteed fixed price deals.
-  GuaranteedFixedPriceTerms guaranteedFixedPriceTerms;
+  GuaranteedFixedPriceTerms? guaranteedFixedPriceTerms;
 
   /// The terms for non-guaranteed auction deals.
-  NonGuaranteedAuctionTerms nonGuaranteedAuctionTerms;
+  NonGuaranteedAuctionTerms? nonGuaranteedAuctionTerms;
 
   /// The terms for non-guaranteed fixed price deals.
-  NonGuaranteedFixedPriceTerms nonGuaranteedFixedPriceTerms;
+  NonGuaranteedFixedPriceTerms? nonGuaranteedFixedPriceTerms;
 
   /// The time zone name.
   ///
@@ -5963,7 +5661,7 @@
   /// the boundaries of a day. It should be an IANA TZ name, such as
   /// "America/Los_Angeles". For more information, see
   /// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
-  core.String sellerTimeZone;
+  core.String? sellerTimeZone;
 
   DealTerms();
 
@@ -6002,20 +5700,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (brandingType != null) 'brandingType': brandingType,
-        if (description != null) 'description': description,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (brandingType != null) 'brandingType': brandingType!,
+        if (description != null) 'description': description!,
         if (estimatedGrossSpend != null)
-          'estimatedGrossSpend': estimatedGrossSpend.toJson(),
+          'estimatedGrossSpend': estimatedGrossSpend!.toJson(),
         if (estimatedImpressionsPerDay != null)
-          'estimatedImpressionsPerDay': estimatedImpressionsPerDay,
+          'estimatedImpressionsPerDay': estimatedImpressionsPerDay!,
         if (guaranteedFixedPriceTerms != null)
-          'guaranteedFixedPriceTerms': guaranteedFixedPriceTerms.toJson(),
+          'guaranteedFixedPriceTerms': guaranteedFixedPriceTerms!.toJson(),
         if (nonGuaranteedAuctionTerms != null)
-          'nonGuaranteedAuctionTerms': nonGuaranteedAuctionTerms.toJson(),
+          'nonGuaranteedAuctionTerms': nonGuaranteedAuctionTerms!.toJson(),
         if (nonGuaranteedFixedPriceTerms != null)
-          'nonGuaranteedFixedPriceTerms': nonGuaranteedFixedPriceTerms.toJson(),
-        if (sellerTimeZone != null) 'sellerTimeZone': sellerTimeZone,
+          'nonGuaranteedFixedPriceTerms':
+              nonGuaranteedFixedPriceTerms!.toJson(),
+        if (sellerTimeZone != null) 'sellerTimeZone': sellerTimeZone!,
       };
 }
 
@@ -6030,7 +5729,7 @@
   /// - "PUBLISHER_BLOCKING_RULES" : Publisher blocking rules will be applied.
   /// - "ADX_POLICY_BLOCKING_ONLY" : The Ad Exchange policy blocking rules will
   /// be applied.
-  core.String creativeBlockingLevel;
+  core.String? creativeBlockingLevel;
 
   /// Specifies how the impression delivery will be paced.
   ///
@@ -6041,12 +5740,12 @@
   /// - "EVENLY" : Impressions are served uniformly over the life of the deal.
   /// - "FRONT_LOADED" : Impressions are served front-loaded.
   /// - "AS_FAST_AS_POSSIBLE" : Impressions are served as fast as possible.
-  core.String deliveryRateType;
+  core.String? deliveryRateType;
 
   /// Specifies any frequency caps.
   ///
   /// Output only.
-  core.List<FrequencyCap> frequencyCaps;
+  core.List<FrequencyCap>? frequencyCaps;
 
   DeliveryControl();
 
@@ -6065,13 +5764,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (creativeBlockingLevel != null)
-          'creativeBlockingLevel': creativeBlockingLevel,
-        if (deliveryRateType != null) 'deliveryRateType': deliveryRateType,
+          'creativeBlockingLevel': creativeBlockingLevel!,
+        if (deliveryRateType != null) 'deliveryRateType': deliveryRateType!,
         if (frequencyCaps != null)
           'frequencyCaps':
-              frequencyCaps.map((value) => value.toJson()).toList(),
+              frequencyCaps!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6080,7 +5779,7 @@
 /// Output only.
 class Disapproval {
   /// Additional details about the reason for disapproval.
-  core.List<core.String> details;
+  core.List<core.String>? details;
 
   /// The categorized reason for disapproval.
   /// Possible string values are:
@@ -6237,7 +5936,7 @@
   /// - "BAIL_BONDS" : Promotes services related to bail bonds.
   /// - "EXPERIMENTAL_MEDICAL_TREATMENT" : Promotes speculative and/or
   /// experimental medical treatments.
-  core.String reason;
+  core.String? reason;
 
   Disapproval();
 
@@ -6252,9 +5951,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (details != null) 'details': details,
-        if (reason != null) 'reason': reason,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (details != null) 'details': details!,
+        if (reason != null) 'reason': reason!,
       };
 }
 
@@ -6272,7 +5971,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A set of filters that is applied to a request for data.
@@ -6285,28 +5984,28 @@
   /// An absolute date range, defined by a start date and an end date.
   ///
   /// Interpreted relative to Pacific time zone.
-  AbsoluteDateRange absoluteDateRange;
+  AbsoluteDateRange? absoluteDateRange;
 
   /// The set of dimensions along which to break down the response; may be
   /// empty.
   ///
   /// If multiple dimensions are requested, the breakdown is along the Cartesian
   /// product of the requested dimensions.
-  core.List<core.String> breakdownDimensions;
+  core.List<core.String>? breakdownDimensions;
 
   /// The ID of the creative on which to filter; optional.
   ///
   /// This field may be set only for a filter set that accesses account-level
   /// troubleshooting data, i.e., one whose name matches the `bidders / *
   /// /accounts / * /filterSets / * ` pattern.
-  core.String creativeId;
+  core.String? creativeId;
 
   /// The ID of the deal on which to filter; optional.
   ///
   /// This field may be set only for a filter set that accesses account-level
   /// troubleshooting data, i.e., one whose name matches the `bidders / *
   /// /accounts / * /filterSets / * ` pattern.
-  core.String dealId;
+  core.String? dealId;
 
   /// The environment on which to filter; optional.
   /// Possible string values are:
@@ -6314,7 +6013,7 @@
   /// indicates that no environment filter will be applied.
   /// - "WEB" : The ad impression appears on the web.
   /// - "APP" : The ad impression appears in an app.
-  core.String environment;
+  core.String? environment;
 
   /// Creative format bidded on or allowed to bid on, can be empty.
   /// Possible string values are:
@@ -6327,14 +6026,14 @@
   /// (i.e., image) format.
   /// - "NON_NATIVE_VIDEO" : The ad impression is not a native ad, and video
   /// format.
-  core.String format;
+  core.String? format;
 
   /// Creative formats bidded on or allowed to bid on, can be empty.
   ///
   /// Although this field is a list, it can only be populated with a single
   /// item. A HTTP 400 bad request error will be returned in the response if you
   /// specify multiple items.
-  core.List<core.String> formats;
+  core.List<core.String>? formats;
 
   /// A user-defined name of the filter set.
   ///
@@ -6343,28 +6042,28 @@
   /// data) - `bidders / * /accounts / * /filterSets / * ` (for accessing
   /// account-level troubleshooting data) This field is required in create
   /// operations.
-  core.String name;
+  core.String? name;
 
   /// The list of platforms on which to filter; may be empty.
   ///
   /// The filters represented by multiple platforms are ORed together (i.e., if
   /// non-empty, results must match any one of the platforms).
-  core.List<core.String> platforms;
+  core.List<core.String>? platforms;
 
   /// For Open Bidding partners only.
   ///
   /// The list of publisher identifiers on which to filter; may be empty. The
   /// filters represented by multiple publisher identifiers are ORed together.
-  core.List<core.String> publisherIdentifiers;
+  core.List<core.String>? publisherIdentifiers;
 
   /// An open-ended realtime time range, defined by the aggregation start
   /// timestamp.
-  RealtimeTimeRange realtimeTimeRange;
+  RealtimeTimeRange? realtimeTimeRange;
 
   /// A relative date range, defined by an offset from today and a duration.
   ///
   /// Interpreted relative to Pacific time zone.
-  RelativeDateRange relativeDateRange;
+  RelativeDateRange? relativeDateRange;
 
   /// For Authorized Buyers only.
   ///
@@ -6374,7 +6073,7 @@
   /// networks). See
   /// \[seller-network-ids\](https://developers.google.com/authorized-buyers/rtb/downloads/seller-network-ids)
   /// file for the set of existing seller network IDs.
-  core.List<core.int> sellerNetworkIds;
+  core.List<core.int>? sellerNetworkIds;
 
   /// The granularity of time intervals if a time series breakdown is desired;
   /// optional.
@@ -6384,7 +6083,7 @@
   /// data for the entire requested time range.
   /// - "HOURLY" : Indicates that data will be broken down by the hour.
   /// - "DAILY" : Indicates that data will be broken down by the day.
-  core.String timeSeriesGranularity;
+  core.String? timeSeriesGranularity;
 
   FilterSet();
 
@@ -6446,27 +6145,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (absoluteDateRange != null)
-          'absoluteDateRange': absoluteDateRange.toJson(),
+          'absoluteDateRange': absoluteDateRange!.toJson(),
         if (breakdownDimensions != null)
-          'breakdownDimensions': breakdownDimensions,
-        if (creativeId != null) 'creativeId': creativeId,
-        if (dealId != null) 'dealId': dealId,
-        if (environment != null) 'environment': environment,
-        if (format != null) 'format': format,
-        if (formats != null) 'formats': formats,
-        if (name != null) 'name': name,
-        if (platforms != null) 'platforms': platforms,
+          'breakdownDimensions': breakdownDimensions!,
+        if (creativeId != null) 'creativeId': creativeId!,
+        if (dealId != null) 'dealId': dealId!,
+        if (environment != null) 'environment': environment!,
+        if (format != null) 'format': format!,
+        if (formats != null) 'formats': formats!,
+        if (name != null) 'name': name!,
+        if (platforms != null) 'platforms': platforms!,
         if (publisherIdentifiers != null)
-          'publisherIdentifiers': publisherIdentifiers,
+          'publisherIdentifiers': publisherIdentifiers!,
         if (realtimeTimeRange != null)
-          'realtimeTimeRange': realtimeTimeRange.toJson(),
+          'realtimeTimeRange': realtimeTimeRange!.toJson(),
         if (relativeDateRange != null)
-          'relativeDateRange': relativeDateRange.toJson(),
-        if (sellerNetworkIds != null) 'sellerNetworkIds': sellerNetworkIds,
+          'relativeDateRange': relativeDateRange!.toJson(),
+        if (sellerNetworkIds != null) 'sellerNetworkIds': sellerNetworkIds!,
         if (timeSeriesGranularity != null)
-          'timeSeriesGranularity': timeSeriesGranularity,
+          'timeSeriesGranularity': timeSeriesGranularity!,
       };
 }
 
@@ -6474,13 +6173,13 @@
 /// the specified creative.
 class FilteredBidCreativeRow {
   /// The number of bids with the specified creative.
-  MetricValue bidCount;
+  MetricValue? bidCount;
 
   /// The ID of the creative.
-  core.String creativeId;
+  core.String? creativeId;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   FilteredBidCreativeRow();
 
@@ -6498,10 +6197,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bidCount != null) 'bidCount': bidCount.toJson(),
-        if (creativeId != null) 'creativeId': creativeId,
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bidCount != null) 'bidCount': bidCount!.toJson(),
+        if (creativeId != null) 'creativeId': creativeId!,
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
       };
 }
 
@@ -6510,13 +6209,13 @@
 /// have the specified detail.
 class FilteredBidDetailRow {
   /// The number of bids with the specified detail.
-  MetricValue bidCount;
+  MetricValue? bidCount;
 
   /// The ID of the detail, can be numeric or text.
   ///
   /// The associated value can be looked up in the dictionary file corresponding
   /// to the DetailType in the response message.
-  core.String detail;
+  core.String? detail;
 
   /// Note: this field will be deprecated, use "detail" field instead.
   ///
@@ -6525,10 +6224,10 @@
   /// will be 0. The ID of the detail. The associated value can be looked up in
   /// the dictionary file corresponding to the DetailType in the response
   /// message.
-  core.int detailId;
+  core.int? detailId;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   FilteredBidDetailRow();
 
@@ -6549,11 +6248,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bidCount != null) 'bidCount': bidCount.toJson(),
-        if (detail != null) 'detail': detail,
-        if (detailId != null) 'detailId': detailId,
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bidCount != null) 'bidCount': bidCount!.toJson(),
+        if (detail != null) 'detail': detail!,
+        if (detailId != null) 'detailId': detailId!,
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
       };
 }
 
@@ -6566,10 +6265,10 @@
 /// store URL. First party mobile applications is either included or excluded.
 class FirstPartyMobileApplicationTargeting {
   /// A list of application IDs to be excluded.
-  core.List<core.String> excludedAppIds;
+  core.List<core.String>? excludedAppIds;
 
   /// A list of application IDs to be included.
-  core.List<core.String> targetedAppIds;
+  core.List<core.String>? targetedAppIds;
 
   FirstPartyMobileApplicationTargeting();
 
@@ -6586,9 +6285,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (excludedAppIds != null) 'excludedAppIds': excludedAppIds,
-        if (targetedAppIds != null) 'targetedAppIds': targetedAppIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (excludedAppIds != null) 'excludedAppIds': excludedAppIds!,
+        if (targetedAppIds != null) 'targetedAppIds': targetedAppIds!,
       };
 }
 
@@ -6596,13 +6295,13 @@
 class FrequencyCap {
   /// The maximum number of impressions that can be served to a user within the
   /// specified time period.
-  core.int maxImpressions;
+  core.int? maxImpressions;
 
   /// The amount of time, in the units specified by time_unit_type.
   ///
   /// Defines the amount of time over which impressions per user are counted and
   /// capped.
-  core.int numTimeUnits;
+  core.int? numTimeUnits;
 
   /// The time unit.
   ///
@@ -6618,7 +6317,7 @@
   /// - "WEEK" : Week
   /// - "MONTH" : Month
   /// - "LIFETIME" : Lifetime
-  core.String timeUnitType;
+  core.String? timeUnitType;
 
   FrequencyCap();
 
@@ -6634,31 +6333,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (maxImpressions != null) 'maxImpressions': maxImpressions,
-        if (numTimeUnits != null) 'numTimeUnits': numTimeUnits,
-        if (timeUnitType != null) 'timeUnitType': timeUnitType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (maxImpressions != null) 'maxImpressions': maxImpressions!,
+        if (numTimeUnits != null) 'numTimeUnits': numTimeUnits!,
+        if (timeUnitType != null) 'timeUnitType': timeUnitType!,
       };
 }
 
 /// Terms for Programmatic Guaranteed Deals.
 class GuaranteedFixedPriceTerms {
   /// Fixed price for the specified buyer.
-  core.List<PricePerBuyer> fixedPrices;
+  core.List<PricePerBuyer>? fixedPrices;
 
   /// Guaranteed impressions as a percentage.
   ///
   /// This is the percentage of guaranteed looks that the buyer is guaranteeing
   /// to buy.
-  core.String guaranteedImpressions;
+  core.String? guaranteedImpressions;
 
   /// Count of guaranteed looks.
   ///
   /// Required for deal, optional for product.
-  core.String guaranteedLooks;
+  core.String? guaranteedLooks;
 
   /// Daily minimum looks for CPD deal types.
-  core.String minimumDailyLooks;
+  core.String? minimumDailyLooks;
 
   GuaranteedFixedPriceTerms();
 
@@ -6680,26 +6379,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (fixedPrices != null)
-          'fixedPrices': fixedPrices.map((value) => value.toJson()).toList(),
+          'fixedPrices': fixedPrices!.map((value) => value.toJson()).toList(),
         if (guaranteedImpressions != null)
-          'guaranteedImpressions': guaranteedImpressions,
-        if (guaranteedLooks != null) 'guaranteedLooks': guaranteedLooks,
-        if (minimumDailyLooks != null) 'minimumDailyLooks': minimumDailyLooks,
+          'guaranteedImpressions': guaranteedImpressions!,
+        if (guaranteedLooks != null) 'guaranteedLooks': guaranteedLooks!,
+        if (minimumDailyLooks != null) 'minimumDailyLooks': minimumDailyLooks!,
       };
 }
 
 /// HTML content for a creative.
 class HtmlContent {
   /// The height of the HTML snippet in pixels.
-  core.int height;
+  core.int? height;
 
   /// The HTML snippet that displays the ad when inserted in the web page.
-  core.String snippet;
+  core.String? snippet;
 
   /// The width of the HTML snippet in pixels.
-  core.int width;
+  core.int? width;
 
   HtmlContent();
 
@@ -6715,10 +6414,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (snippet != null) 'snippet': snippet,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (snippet != null) 'snippet': snippet!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -6728,13 +6427,13 @@
 /// ratio is preserved.
 class Image {
   /// Image height in pixels.
-  core.int height;
+  core.int? height;
 
   /// The URL of the image.
-  core.String url;
+  core.String? url;
 
   /// Image width in pixels.
-  core.int width;
+  core.int? width;
 
   Image();
 
@@ -6750,10 +6449,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (url != null) 'url': url,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (url != null) 'url': url!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -6764,25 +6463,25 @@
   /// The number of impressions available to the buyer on Ad Exchange.
   ///
   /// In some cases this value may be unavailable.
-  MetricValue availableImpressions;
+  MetricValue? availableImpressions;
 
   /// The number of impressions for which Ad Exchange sent the buyer a bid
   /// request.
-  MetricValue bidRequests;
+  MetricValue? bidRequests;
 
   /// The number of impressions that match the buyer's inventory pretargeting.
-  MetricValue inventoryMatches;
+  MetricValue? inventoryMatches;
 
   /// The number of impressions for which Ad Exchange received a response from
   /// the buyer that contained at least one applicable bid.
-  MetricValue responsesWithBids;
+  MetricValue? responsesWithBids;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   /// The number of impressions for which the buyer successfully sent a response
   /// to Ad Exchange.
-  MetricValue successfulResponses;
+  MetricValue? successfulResponses;
 
   ImpressionMetricsRow();
 
@@ -6813,17 +6512,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (availableImpressions != null)
-          'availableImpressions': availableImpressions.toJson(),
-        if (bidRequests != null) 'bidRequests': bidRequests.toJson(),
+          'availableImpressions': availableImpressions!.toJson(),
+        if (bidRequests != null) 'bidRequests': bidRequests!.toJson(),
         if (inventoryMatches != null)
-          'inventoryMatches': inventoryMatches.toJson(),
+          'inventoryMatches': inventoryMatches!.toJson(),
         if (responsesWithBids != null)
-          'responsesWithBids': responsesWithBids.toJson(),
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
+          'responsesWithBids': responsesWithBids!.toJson(),
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
         if (successfulResponses != null)
-          'successfulResponses': successfulResponses.toJson(),
+          'successfulResponses': successfulResponses!.toJson(),
       };
 }
 
@@ -6834,10 +6533,10 @@
 /// Preferred Deals in Ad Manager.
 class InventorySizeTargeting {
   /// A list of inventory sizes to be excluded.
-  core.List<AdSize> excludedInventorySizes;
+  core.List<AdSize>? excludedInventorySizes;
 
   /// A list of inventory sizes to be included.
-  core.List<AdSize> targetedInventorySizes;
+  core.List<AdSize>? targetedInventorySizes;
 
   InventorySizeTargeting();
 
@@ -6856,13 +6555,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (excludedInventorySizes != null)
           'excludedInventorySizes':
-              excludedInventorySizes.map((value) => value.toJson()).toList(),
+              excludedInventorySizes!.map((value) => value.toJson()).toList(),
         if (targetedInventorySizes != null)
           'targetedInventorySizes':
-              targetedInventorySizes.map((value) => value.toJson()).toList(),
+              targetedInventorySizes!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6870,14 +6569,14 @@
 /// bids.
 class ListBidMetricsResponse {
   /// List of rows, each containing a set of bid metrics.
-  core.List<BidMetricsRow> bidMetricsRows;
+  core.List<BidMetricsRow>? bidMetricsRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListBidMetricsRequest.pageToken field in the
   /// subsequent call to the bidMetrics.list method to retrieve the next page of
   /// results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListBidMetricsResponse();
 
@@ -6893,11 +6592,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bidMetricsRows != null)
           'bidMetricsRows':
-              bidMetricsRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              bidMetricsRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -6905,14 +6604,14 @@
 /// error.
 class ListBidResponseErrorsResponse {
   /// List of rows, with counts of bid responses aggregated by callout status.
-  core.List<CalloutStatusRow> calloutStatusRows;
+  core.List<CalloutStatusRow>? calloutStatusRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListBidResponseErrorsRequest.pageToken field in the
   /// subsequent call to the bidResponseErrors.list method to retrieve the next
   /// page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListBidResponseErrorsResponse();
 
@@ -6928,11 +6627,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (calloutStatusRows != null)
           'calloutStatusRows':
-              calloutStatusRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              calloutStatusRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -6941,14 +6640,14 @@
 class ListBidResponsesWithoutBidsResponse {
   /// List of rows, with counts of bid responses without bids aggregated by
   /// status.
-  core.List<BidResponseWithoutBidsStatusRow> bidResponseWithoutBidsStatusRows;
+  core.List<BidResponseWithoutBidsStatusRow>? bidResponseWithoutBidsStatusRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListBidResponsesWithoutBidsRequest.pageToken field
   /// in the subsequent call to the bidResponsesWithoutBids.list method to
   /// retrieve the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListBidResponsesWithoutBidsResponse();
 
@@ -6966,25 +6665,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bidResponseWithoutBidsStatusRows != null)
-          'bidResponseWithoutBidsStatusRows': bidResponseWithoutBidsStatusRows
+          'bidResponseWithoutBidsStatusRows': bidResponseWithoutBidsStatusRows!
               .map((value) => value.toJson())
               .toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 class ListClientUserInvitationsResponse {
   /// The returned list of client users.
-  core.List<ClientUserInvitation> invitations;
+  core.List<ClientUserInvitation>? invitations;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListClientUserInvitationsRequest.pageToken field in
   /// the subsequent call to the clients.invitations.list method to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListClientUserInvitationsResponse();
 
@@ -7000,10 +6699,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (invitations != null)
-          'invitations': invitations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'invitations': invitations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7013,10 +6712,10 @@
   /// Pass this value in the ListClientUsersRequest.pageToken field in the
   /// subsequent call to the clients.invitations.list method to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The returned list of client users.
-  core.List<ClientUser> users;
+  core.List<ClientUser>? users;
 
   ListClientUsersResponse();
 
@@ -7032,23 +6731,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (users != null)
-          'users': users.map((value) => value.toJson()).toList(),
+          'users': users!.map((value) => value.toJson()).toList(),
       };
 }
 
 class ListClientsResponse {
   /// The returned list of clients.
-  core.List<Client> clients;
+  core.List<Client>? clients;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListClientsRequest.pageToken field in the
   /// subsequent call to the accounts.clients.list method to retrieve the next
   /// page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListClientsResponse();
 
@@ -7064,10 +6763,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (clients != null)
-          'clients': clients.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'clients': clients!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7076,7 +6775,7 @@
 class ListCreativeStatusBreakdownByCreativeResponse {
   /// List of rows, with counts of bids with a given creative status aggregated
   /// by creative.
-  core.List<FilteredBidCreativeRow> filteredBidCreativeRows;
+  core.List<FilteredBidCreativeRow>? filteredBidCreativeRows;
 
   /// A token to retrieve the next page of results.
   ///
@@ -7084,7 +6783,7 @@
   /// ListCreativeStatusBreakdownByCreativeRequest.pageToken field in the
   /// subsequent call to the filteredBids.creatives.list method to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListCreativeStatusBreakdownByCreativeResponse();
 
@@ -7101,11 +6800,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (filteredBidCreativeRows != null)
           'filteredBidCreativeRows':
-              filteredBidCreativeRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              filteredBidCreativeRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7143,11 +6842,11 @@
   /// - "GVL_ID" : Indicates that the detail ID refers an IAB GVL ID which
   /// Google did not detect in the latest TCF Vendor List. See
   /// [Global Vendor List](https://vendor-list.consensu.org/v2/vendor-list.json)
-  core.String detailType;
+  core.String? detailType;
 
   /// List of rows, with counts of bids with a given creative status aggregated
   /// by detail.
-  core.List<FilteredBidDetailRow> filteredBidDetailRows;
+  core.List<FilteredBidDetailRow>? filteredBidDetailRows;
 
   /// A token to retrieve the next page of results.
   ///
@@ -7155,7 +6854,7 @@
   /// ListCreativeStatusBreakdownByDetailRequest.pageToken field in the
   /// subsequent call to the filteredBids.details.list method to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListCreativeStatusBreakdownByDetailResponse();
 
@@ -7174,26 +6873,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (detailType != null) 'detailType': detailType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (detailType != null) 'detailType': detailType!,
         if (filteredBidDetailRows != null)
           'filteredBidDetailRows':
-              filteredBidDetailRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              filteredBidDetailRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// A response for listing creatives.
 class ListCreativesResponse {
   /// The list of creatives.
-  core.List<Creative> creatives;
+  core.List<Creative>? creatives;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListCreativesRequest.page_token field in the
   /// subsequent call to `ListCreatives` method to retrieve the next page of
   /// results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListCreativesResponse();
 
@@ -7209,24 +6908,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (creatives != null)
-          'creatives': creatives.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'creatives': creatives!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// A response for listing creative and deal associations
 class ListDealAssociationsResponse {
   /// The list of associations.
-  core.List<CreativeDealAssociation> associations;
+  core.List<CreativeDealAssociation>? associations;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListDealAssociationsRequest.page_token field in the
   /// subsequent call to 'ListDealAssociation' method to retrieve the next page
   /// of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListDealAssociationsResponse();
 
@@ -7243,24 +6942,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (associations != null)
-          'associations': associations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'associations': associations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for listing filter sets.
 class ListFilterSetsResponse {
   /// The filter sets belonging to the buyer.
-  core.List<FilterSet> filterSets;
+  core.List<FilterSet>? filterSets;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListFilterSetsRequest.pageToken field in the
   /// subsequent call to the accounts.filterSets.list method to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListFilterSetsResponse();
 
@@ -7276,10 +6975,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (filterSets != null)
-          'filterSets': filterSets.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'filterSets': filterSets!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7288,14 +6987,14 @@
 class ListFilteredBidRequestsResponse {
   /// List of rows, with counts of filtered bid requests aggregated by callout
   /// status.
-  core.List<CalloutStatusRow> calloutStatusRows;
+  core.List<CalloutStatusRow>? calloutStatusRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListFilteredBidRequestsRequest.pageToken field in
   /// the subsequent call to the filteredBidRequests.list method to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListFilteredBidRequestsResponse();
 
@@ -7311,11 +7010,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (calloutStatusRows != null)
           'calloutStatusRows':
-              calloutStatusRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              calloutStatusRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7324,14 +7023,14 @@
 class ListFilteredBidsResponse {
   /// List of rows, with counts of filtered bids aggregated by filtering reason
   /// (i.e. creative status).
-  core.List<CreativeStatusRow> creativeStatusRows;
+  core.List<CreativeStatusRow>? creativeStatusRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListFilteredBidsRequest.pageToken field in the
   /// subsequent call to the filteredBids.list method to retrieve the next page
   /// of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListFilteredBidsResponse();
 
@@ -7347,11 +7046,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (creativeStatusRows != null)
           'creativeStatusRows':
-              creativeStatusRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              creativeStatusRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7359,14 +7058,14 @@
 /// impressions.
 class ListImpressionMetricsResponse {
   /// List of rows, each containing a set of impression metrics.
-  core.List<ImpressionMetricsRow> impressionMetricsRows;
+  core.List<ImpressionMetricsRow>? impressionMetricsRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListImpressionMetricsRequest.pageToken field in the
   /// subsequent call to the impressionMetrics.list method to retrieve the next
   /// page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListImpressionMetricsResponse();
 
@@ -7382,11 +7081,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (impressionMetricsRows != null)
           'impressionMetricsRows':
-              impressionMetricsRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              impressionMetricsRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7394,14 +7093,14 @@
 class ListLosingBidsResponse {
   /// List of rows, with counts of losing bids aggregated by loss reason (i.e.
   /// creative status).
-  core.List<CreativeStatusRow> creativeStatusRows;
+  core.List<CreativeStatusRow>? creativeStatusRows;
 
   /// A token to retrieve the next page of results.
   ///
   /// Pass this value in the ListLosingBidsRequest.pageToken field in the
   /// subsequent call to the losingBids.list method to retrieve the next page of
   /// results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLosingBidsResponse();
 
@@ -7417,11 +7116,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (creativeStatusRows != null)
           'creativeStatusRows':
-              creativeStatusRows.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              creativeStatusRows!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7433,10 +7132,10 @@
   /// Pass this value in the ListNonBillableWinningBidsRequest.pageToken field
   /// in the subsequent call to the nonBillableWinningBids.list method to
   /// retrieve the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// List of rows, with counts of bids not billed aggregated by reason.
-  core.List<NonBillableWinningBidStatusRow> nonBillableWinningBidStatusRows;
+  core.List<NonBillableWinningBidStatusRow>? nonBillableWinningBidStatusRows;
 
   ListNonBillableWinningBidsResponse();
 
@@ -7454,10 +7153,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (nonBillableWinningBidStatusRows != null)
-          'nonBillableWinningBidStatusRows': nonBillableWinningBidStatusRows
+          'nonBillableWinningBidStatusRows': nonBillableWinningBidStatusRows!
               .map((value) => value.toJson())
               .toList(),
       };
@@ -7466,10 +7165,10 @@
 /// Response message for listing products visible to the buyer.
 class ListProductsResponse {
   /// List pagination support.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of matching products at their head revision number.
-  core.List<Product> products;
+  core.List<Product>? products;
 
   ListProductsResponse();
 
@@ -7485,20 +7184,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (products != null)
-          'products': products.map((value) => value.toJson()).toList(),
+          'products': products!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for listing proposals.
 class ListProposalsResponse {
   /// Continuation token for fetching the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of proposals.
-  core.List<Proposal> proposals;
+  core.List<Proposal>? proposals;
 
   ListProposalsResponse();
 
@@ -7514,20 +7213,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (proposals != null)
-          'proposals': proposals.map((value) => value.toJson()).toList(),
+          'proposals': proposals!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for profiles visible to the buyer.
 class ListPublisherProfilesResponse {
   /// List pagination support
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of matching publisher profiles.
-  core.List<PublisherProfile> publisherProfiles;
+  core.List<PublisherProfile>? publisherProfiles;
 
   ListPublisherProfilesResponse();
 
@@ -7543,11 +7242,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (publisherProfiles != null)
           'publisherProfiles':
-              publisherProfiles.map((value) => value.toJson()).toList(),
+              publisherProfiles!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7560,7 +7259,7 @@
   /// Please refer to the
   /// \[geo-table.csv\](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
   /// file for different geo criteria IDs.
-  core.List<core.int> geoCriteriaIds;
+  core.List<core.int>? geoCriteriaIds;
 
   LocationContext();
 
@@ -7572,8 +7271,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (geoCriteriaIds != null) 'geoCriteriaIds': geoCriteriaIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (geoCriteriaIds != null) 'geoCriteriaIds': geoCriteriaIds!,
       };
 }
 
@@ -7585,19 +7284,19 @@
 /// unless noted otherwise.
 class MarketplaceTargeting {
   /// Geo criteria IDs to be included/excluded.
-  CriteriaTargeting geoTargeting;
+  CriteriaTargeting? geoTargeting;
 
   /// Inventory sizes to be included/excluded.
-  InventorySizeTargeting inventorySizeTargeting;
+  InventorySizeTargeting? inventorySizeTargeting;
 
   /// Placement targeting information, e.g., URL, mobile applications.
-  PlacementTargeting placementTargeting;
+  PlacementTargeting? placementTargeting;
 
   /// Technology targeting information, e.g., operating system, device category.
-  TechnologyTargeting technologyTargeting;
+  TechnologyTargeting? technologyTargeting;
 
   /// Video targeting information.
-  VideoTargeting videoTargeting;
+  VideoTargeting? videoTargeting;
 
   MarketplaceTargeting();
 
@@ -7625,15 +7324,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (geoTargeting != null) 'geoTargeting': geoTargeting.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (geoTargeting != null) 'geoTargeting': geoTargeting!.toJson(),
         if (inventorySizeTargeting != null)
-          'inventorySizeTargeting': inventorySizeTargeting.toJson(),
+          'inventorySizeTargeting': inventorySizeTargeting!.toJson(),
         if (placementTargeting != null)
-          'placementTargeting': placementTargeting.toJson(),
+          'placementTargeting': placementTargeting!.toJson(),
         if (technologyTargeting != null)
-          'technologyTargeting': technologyTargeting.toJson(),
-        if (videoTargeting != null) 'videoTargeting': videoTargeting.toJson(),
+          'technologyTargeting': technologyTargeting!.toJson(),
+        if (videoTargeting != null) 'videoTargeting': videoTargeting!.toJson(),
       };
 }
 
@@ -7641,7 +7340,7 @@
 /// that may be either exact or estimated (i.e. when sampled).
 class MetricValue {
   /// The expected value of the metric.
-  core.String value;
+  core.String? value;
 
   /// The variance (i.e. square of the standard deviation) of the metric value.
   ///
@@ -7650,7 +7349,7 @@
   /// standard constant that depends on the desired size of the confidence
   /// interval (e.g. for 90% confidence interval, use Z = 1.645): marginOfError
   /// = 100 * Z * sqrt(variance) / value
-  core.String variance;
+  core.String? variance;
 
   MetricValue();
 
@@ -7663,9 +7362,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (value != null) 'value': value,
-        if (variance != null) 'variance': variance,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (value != null) 'value': value!,
+        if (variance != null) 'variance': variance!,
       };
 }
 
@@ -7673,7 +7372,7 @@
 class MobileApplicationTargeting {
   /// Publisher owned apps to be targeted or excluded by the publisher to
   /// display the ads in.
-  FirstPartyMobileApplicationTargeting firstPartyTargeting;
+  FirstPartyMobileApplicationTargeting? firstPartyTargeting;
 
   MobileApplicationTargeting();
 
@@ -7684,16 +7383,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (firstPartyTargeting != null)
-          'firstPartyTargeting': firstPartyTargeting.toJson(),
+          'firstPartyTargeting': firstPartyTargeting!.toJson(),
       };
 }
 
 /// Represents an amount of money with its currency type.
 class Money {
   /// The three-letter currency code defined in ISO 4217.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Number of nano (10^-9) units of the amount.
   ///
@@ -7702,12 +7401,12 @@
   /// `nanos` can be positive, zero, or negative. If `units` is negative,
   /// `nanos` must be negative or zero. For example $-1.75 is represented as
   /// `units`=-1 and `nanos`=-750,000,000.
-  core.int nanos;
+  core.int? nanos;
 
   /// The whole units of the amount.
   ///
   /// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-  core.String units;
+  core.String? units;
 
   Money();
 
@@ -7723,55 +7422,55 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (nanos != null) 'nanos': nanos,
-        if (units != null) 'units': units,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (nanos != null) 'nanos': nanos!,
+        if (units != null) 'units': units!,
       };
 }
 
 /// Native content for a creative.
 class NativeContent {
   /// The name of the advertiser or sponsor, to be displayed in the ad creative.
-  core.String advertiserName;
+  core.String? advertiserName;
 
   /// The app icon, for app download ads.
-  Image appIcon;
+  Image? appIcon;
 
   /// A long description of the ad.
-  core.String body;
+  core.String? body;
 
   /// A label for the button that the user is supposed to click.
-  core.String callToAction;
+  core.String? callToAction;
 
   /// The URL that the browser/SDK will load when the user clicks the ad.
-  core.String clickLinkUrl;
+  core.String? clickLinkUrl;
 
   /// The URL to use for click tracking.
-  core.String clickTrackingUrl;
+  core.String? clickTrackingUrl;
 
   /// A short title for the ad.
-  core.String headline;
+  core.String? headline;
 
   /// A large image.
-  Image image;
+  Image? image;
 
   /// A smaller image, for the advertiser's logo.
-  Image logo;
+  Image? logo;
 
   /// The price of the promoted app including currency info.
-  core.String priceDisplayText;
+  core.String? priceDisplayText;
 
   /// The app rating in the app store.
   ///
   /// Must be in the range \[0-5\].
-  core.double starRating;
+  core.double? starRating;
 
   /// The URL to the app store to purchase/download the promoted app.
-  core.String storeUrl;
+  core.String? storeUrl;
 
   /// The URL to fetch a native video ad.
-  core.String videoUrl;
+  core.String? videoUrl;
 
   NativeContent();
 
@@ -7820,20 +7519,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (advertiserName != null) 'advertiserName': advertiserName,
-        if (appIcon != null) 'appIcon': appIcon.toJson(),
-        if (body != null) 'body': body,
-        if (callToAction != null) 'callToAction': callToAction,
-        if (clickLinkUrl != null) 'clickLinkUrl': clickLinkUrl,
-        if (clickTrackingUrl != null) 'clickTrackingUrl': clickTrackingUrl,
-        if (headline != null) 'headline': headline,
-        if (image != null) 'image': image.toJson(),
-        if (logo != null) 'logo': logo.toJson(),
-        if (priceDisplayText != null) 'priceDisplayText': priceDisplayText,
-        if (starRating != null) 'starRating': starRating,
-        if (storeUrl != null) 'storeUrl': storeUrl,
-        if (videoUrl != null) 'videoUrl': videoUrl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (advertiserName != null) 'advertiserName': advertiserName!,
+        if (appIcon != null) 'appIcon': appIcon!.toJson(),
+        if (body != null) 'body': body!,
+        if (callToAction != null) 'callToAction': callToAction!,
+        if (clickLinkUrl != null) 'clickLinkUrl': clickLinkUrl!,
+        if (clickTrackingUrl != null) 'clickTrackingUrl': clickTrackingUrl!,
+        if (headline != null) 'headline': headline!,
+        if (image != null) 'image': image!.toJson(),
+        if (logo != null) 'logo': logo!.toJson(),
+        if (priceDisplayText != null) 'priceDisplayText': priceDisplayText!,
+        if (starRating != null) 'starRating': starRating!,
+        if (storeUrl != null) 'storeUrl': storeUrl!,
+        if (videoUrl != null) 'videoUrl': videoUrl!,
       };
 }
 
@@ -7841,10 +7540,10 @@
 /// buyer was not billed, as described by the specified status.
 class NonBillableWinningBidStatusRow {
   /// The number of bids with the specified status.
-  MetricValue bidCount;
+  MetricValue? bidCount;
 
   /// The values of all dimensions associated with metric values in this row.
-  RowDimensions rowDimensions;
+  RowDimensions? rowDimensions;
 
   /// The status specifying why the winning bids were not billed.
   /// Possible string values are:
@@ -7858,7 +7557,7 @@
   /// reported from the client during playback.
   /// - "LOST_IN_MEDIATION" : The buyer was not billed because the ad was
   /// outplaced in the mediation waterfall.
-  core.String status;
+  core.String? status;
 
   NonBillableWinningBidStatusRow();
 
@@ -7876,10 +7575,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bidCount != null) 'bidCount': bidCount.toJson(),
-        if (rowDimensions != null) 'rowDimensions': rowDimensions.toJson(),
-        if (status != null) 'status': status,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bidCount != null) 'bidCount': bidCount!.toJson(),
+        if (rowDimensions != null) 'rowDimensions': rowDimensions!.toJson(),
+        if (status != null) 'status': status!,
       };
 }
 
@@ -7890,10 +7589,10 @@
 class NonGuaranteedAuctionTerms {
   /// True if open auction buyers are allowed to compete with invited buyers in
   /// this private auction.
-  core.bool autoOptimizePrivateAuction;
+  core.bool? autoOptimizePrivateAuction;
 
   /// Reserve price for the specified buyer.
-  core.List<PricePerBuyer> reservePricesPerBuyer;
+  core.List<PricePerBuyer>? reservePricesPerBuyer;
 
   NonGuaranteedAuctionTerms();
 
@@ -7910,12 +7609,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (autoOptimizePrivateAuction != null)
-          'autoOptimizePrivateAuction': autoOptimizePrivateAuction,
+          'autoOptimizePrivateAuction': autoOptimizePrivateAuction!,
         if (reservePricesPerBuyer != null)
           'reservePricesPerBuyer':
-              reservePricesPerBuyer.map((value) => value.toJson()).toList(),
+              reservePricesPerBuyer!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7925,7 +7624,7 @@
 /// can be returned in a get or list request.
 class NonGuaranteedFixedPriceTerms {
   /// Fixed price for the specified buyer.
-  core.List<PricePerBuyer> fixedPrices;
+  core.List<PricePerBuyer>? fixedPrices;
 
   NonGuaranteedFixedPriceTerms();
 
@@ -7938,9 +7637,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (fixedPrices != null)
-          'fixedPrices': fixedPrices.map((value) => value.toJson()).toList(),
+          'fixedPrices': fixedPrices!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7949,7 +7648,7 @@
   /// The timestamp for when this note was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The role of the person (buyer/seller) creating the note.
   ///
@@ -7959,24 +7658,24 @@
   /// buyer/seller role.
   /// - "BUYER" : Specifies the role as buyer.
   /// - "SELLER" : Specifies the role as seller.
-  core.String creatorRole;
+  core.String? creatorRole;
 
   /// The actual note to attach.
   ///
   /// (max-length: 1024 unicode code units) Note: This field may be set only
   /// when creating the resource. Modifying this field while updating the
   /// resource will result in an error.
-  core.String note;
+  core.String? note;
 
   /// The unique ID for the note.
   ///
   /// Output only.
-  core.String noteId;
+  core.String? noteId;
 
   /// The revision number of the proposal when the note is created.
   ///
   /// Output only.
-  core.String proposalRevision;
+  core.String? proposalRevision;
 
   Note();
 
@@ -7998,22 +7697,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (creatorRole != null) 'creatorRole': creatorRole,
-        if (note != null) 'note': note,
-        if (noteId != null) 'noteId': noteId,
-        if (proposalRevision != null) 'proposalRevision': proposalRevision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (creatorRole != null) 'creatorRole': creatorRole!,
+        if (note != null) 'note': note!,
+        if (noteId != null) 'noteId': noteId!,
+        if (proposalRevision != null) 'proposalRevision': proposalRevision!,
       };
 }
 
 /// Represents targeting information for operating systems.
 class OperatingSystemTargeting {
   /// IDs of operating systems to be included/excluded.
-  CriteriaTargeting operatingSystemCriteria;
+  CriteriaTargeting? operatingSystemCriteria;
 
   /// IDs of operating system versions to be included/excluded.
-  CriteriaTargeting operatingSystemVersionCriteria;
+  CriteriaTargeting? operatingSystemVersionCriteria;
 
   OperatingSystemTargeting();
 
@@ -8030,12 +7729,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (operatingSystemCriteria != null)
-          'operatingSystemCriteria': operatingSystemCriteria.toJson(),
+          'operatingSystemCriteria': operatingSystemCriteria!.toJson(),
         if (operatingSystemVersionCriteria != null)
           'operatingSystemVersionCriteria':
-              operatingSystemVersionCriteria.toJson(),
+              operatingSystemVersionCriteria!.toJson(),
       };
 }
 
@@ -8045,7 +7744,7 @@
   ///
   /// This human readable message will be displayed in the seller's UI. (Max
   /// length: 1000 unicode code units.)
-  core.String reason;
+  core.String? reason;
 
   PauseProposalRequest();
 
@@ -8055,8 +7754,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (reason != null) 'reason': reason,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (reason != null) 'reason': reason!,
       };
 }
 
@@ -8068,10 +7767,10 @@
   /// Mobile application targeting information in a deal.
   ///
   /// This doesn't apply to Auction Packages.
-  MobileApplicationTargeting mobileApplicationTargeting;
+  MobileApplicationTargeting? mobileApplicationTargeting;
 
   /// URLs to be included/excluded.
-  UrlTargeting urlTargeting;
+  UrlTargeting? urlTargeting;
 
   PlacementTargeting();
 
@@ -8087,10 +7786,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (mobileApplicationTargeting != null)
-          'mobileApplicationTargeting': mobileApplicationTargeting.toJson(),
-        if (urlTargeting != null) 'urlTargeting': urlTargeting.toJson(),
+          'mobileApplicationTargeting': mobileApplicationTargeting!.toJson(),
+        if (urlTargeting != null) 'urlTargeting': urlTargeting!.toJson(),
       };
 }
 
@@ -8099,7 +7798,7 @@
 /// Output only.
 class PlatformContext {
   /// The platforms this restriction applies to.
-  core.List<core.String> platforms;
+  core.List<core.String>? platforms;
 
   PlatformContext();
 
@@ -8111,15 +7810,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (platforms != null) 'platforms': platforms,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (platforms != null) 'platforms': platforms!,
       };
 }
 
 /// Represents a price and a pricing type for a product / deal.
 class Price {
   /// The actual price with currency specified.
-  Money amount;
+  Money? amount;
 
   /// The pricing type for the deal/product.
   ///
@@ -8130,7 +7829,7 @@
   /// instead.
   /// - "COST_PER_MILLE" : Cost per thousand impressions.
   /// - "COST_PER_DAY" : Cost per day
-  core.String pricingType;
+  core.String? pricingType;
 
   Price();
 
@@ -8144,9 +7843,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (amount != null) 'amount': amount.toJson(),
-        if (pricingType != null) 'pricingType': pricingType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (amount != null) 'amount': amount!.toJson(),
+        if (pricingType != null) 'pricingType': pricingType!,
       };
 }
 
@@ -8161,16 +7860,16 @@
   /// The list of advertisers for this price when associated with this buyer.
   ///
   /// If empty, all advertisers with this buyer pay this price.
-  core.List<core.String> advertiserIds;
+  core.List<core.String>? advertiserIds;
 
   /// The buyer who will pay this price.
   ///
   /// If unset, all buyers can pay this price (if the advertisers match, and
   /// there's no more specific rule matching the buyer).
-  Buyer buyer;
+  Buyer? buyer;
 
   /// The specified price.
-  Price price;
+  Price? price;
 
   PricePerBuyer();
 
@@ -8190,10 +7889,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (advertiserIds != null) 'advertiserIds': advertiserIds,
-        if (buyer != null) 'buyer': buyer.toJson(),
-        if (price != null) 'price': price.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (advertiserIds != null) 'advertiserIds': advertiserIds!,
+        if (buyer != null) 'buyer': buyer!.toJson(),
+        if (price != null) 'price': price!.toJson(),
       };
 }
 
@@ -8204,7 +7903,7 @@
   ///
   /// This can be queried in the list operations (max-length: 1024 unicode code
   /// units).
-  core.String referenceId;
+  core.String? referenceId;
 
   PrivateData();
 
@@ -8214,8 +7913,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (referenceId != null) 'referenceId': referenceId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (referenceId != null) 'referenceId': referenceId!,
       };
 }
 
@@ -8229,43 +7928,43 @@
   /// The proposed end time for the deal.
   ///
   /// The field will be truncated to the order of seconds during serving.
-  core.String availableEndTime;
+  core.String? availableEndTime;
 
   /// Inventory availability dates.
   ///
   /// The start time will be truncated to seconds during serving. Thus, a field
   /// specified as 3:23:34.456 (HH:mm:ss.SSS) will be truncated to 3:23:34 when
   /// serving.
-  core.String availableStartTime;
+  core.String? availableStartTime;
 
   /// Creation time.
-  core.String createTime;
+  core.String? createTime;
 
   /// Optional contact information for the creator of this product.
-  core.List<ContactInformation> creatorContacts;
+  core.List<ContactInformation>? creatorContacts;
 
   /// The display name for this product as set by the seller.
-  core.String displayName;
+  core.String? displayName;
 
   /// If the creator has already signed off on the product, then the buyer can
   /// finalize the deal by accepting the product as is.
   ///
   /// When copying to a proposal, if any of the terms are changed, then
   /// auto_finalize is automatically set to false.
-  core.bool hasCreatorSignedOff;
+  core.bool? hasCreatorSignedOff;
 
   /// The unique ID for the product.
-  core.String productId;
+  core.String? productId;
 
   /// The revision number of the product (auto-assigned by Marketplace).
-  core.String productRevision;
+  core.String? productRevision;
 
   /// An ID which can be used by the Publisher Profile API to get more
   /// information about the seller that created this product.
-  core.String publisherProfileId;
+  core.String? publisherProfileId;
 
   /// Information about the seller that created this product.
-  Seller seller;
+  Seller? seller;
 
   /// The syndication product associated with the deal.
   /// Possible string values are:
@@ -8275,24 +7974,24 @@
   /// - "MOBILE" : This represents a mobile property.
   /// - "VIDEO" : This represents video ad formats.
   /// - "GAMES" : This represents ads shown within games.
-  core.String syndicationProduct;
+  core.String? syndicationProduct;
 
   /// Targeting that is shared between the buyer and the seller.
   ///
   /// Each targeting criterion has a specified key and for each key there is a
   /// list of inclusion value or exclusion values.
-  core.List<TargetingCriteria> targetingCriterion;
+  core.List<TargetingCriteria>? targetingCriterion;
 
   /// The negotiable terms of the deal.
-  DealTerms terms;
+  DealTerms? terms;
 
   /// Time of last update.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The web-property code for the seller.
   ///
   /// This needs to be copied as is when adding a new deal to a proposal.
-  core.String webPropertyCode;
+  core.String? webPropertyCode;
 
   Product();
 
@@ -8352,30 +8051,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (availableEndTime != null) 'availableEndTime': availableEndTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (availableEndTime != null) 'availableEndTime': availableEndTime!,
         if (availableStartTime != null)
-          'availableStartTime': availableStartTime,
-        if (createTime != null) 'createTime': createTime,
+          'availableStartTime': availableStartTime!,
+        if (createTime != null) 'createTime': createTime!,
         if (creatorContacts != null)
           'creatorContacts':
-              creatorContacts.map((value) => value.toJson()).toList(),
-        if (displayName != null) 'displayName': displayName,
+              creatorContacts!.map((value) => value.toJson()).toList(),
+        if (displayName != null) 'displayName': displayName!,
         if (hasCreatorSignedOff != null)
-          'hasCreatorSignedOff': hasCreatorSignedOff,
-        if (productId != null) 'productId': productId,
-        if (productRevision != null) 'productRevision': productRevision,
+          'hasCreatorSignedOff': hasCreatorSignedOff!,
+        if (productId != null) 'productId': productId!,
+        if (productRevision != null) 'productRevision': productRevision!,
         if (publisherProfileId != null)
-          'publisherProfileId': publisherProfileId,
-        if (seller != null) 'seller': seller.toJson(),
+          'publisherProfileId': publisherProfileId!,
+        if (seller != null) 'seller': seller!.toJson(),
         if (syndicationProduct != null)
-          'syndicationProduct': syndicationProduct,
+          'syndicationProduct': syndicationProduct!,
         if (targetingCriterion != null)
           'targetingCriterion':
-              targetingCriterion.map((value) => value.toJson()).toList(),
-        if (terms != null) 'terms': terms.toJson(),
-        if (updateTime != null) 'updateTime': updateTime,
-        if (webPropertyCode != null) 'webPropertyCode': webPropertyCode,
+              targetingCriterion!.map((value) => value.toJson()).toList(),
+        if (terms != null) 'terms': terms!.toJson(),
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (webPropertyCode != null) 'webPropertyCode': webPropertyCode!,
       };
 }
 
@@ -8391,40 +8090,40 @@
   /// Reference to the buyer that will get billed for this proposal.
   ///
   /// Output only.
-  Buyer billedBuyer;
+  Buyer? billedBuyer;
 
   /// Reference to the buyer on the proposal.
   ///
   /// Note: This field may be set only when creating the resource. Modifying
   /// this field while updating the resource will result in an error.
-  Buyer buyer;
+  Buyer? buyer;
 
   /// Contact information for the buyer.
-  core.List<ContactInformation> buyerContacts;
+  core.List<ContactInformation>? buyerContacts;
 
   /// Private data for buyer.
   ///
   /// (hidden from seller).
-  PrivateData buyerPrivateData;
+  PrivateData? buyerPrivateData;
 
   /// The deals associated with this proposal.
   ///
   /// For Private Auction proposals (whose deals have
   /// NonGuaranteedAuctionTerms), there will only be one deal.
-  core.List<Deal> deals;
+  core.List<Deal>? deals;
 
   /// The name for the proposal.
-  core.String displayName;
+  core.String? displayName;
 
   /// True if the proposal is being renegotiated.
   ///
   /// Output only.
-  core.bool isRenegotiating;
+  core.bool? isRenegotiating;
 
   /// True, if the buyside inventory setup is complete for this proposal.
   ///
   /// Output only.
-  core.bool isSetupComplete;
+  core.bool? isSetupComplete;
 
   /// The role of the last user that either updated the proposal or left a
   /// comment.
@@ -8435,12 +8134,12 @@
   /// buyer/seller role.
   /// - "BUYER" : Specifies the role as buyer.
   /// - "SELLER" : Specifies the role as seller.
-  core.String lastUpdaterOrCommentorRole;
+  core.String? lastUpdaterOrCommentorRole;
 
   /// The notes associated with this proposal.
   ///
   /// Output only.
-  core.List<Note> notes;
+  core.List<Note>? notes;
 
   /// Indicates whether the buyer/seller created the proposal.
   ///
@@ -8450,17 +8149,17 @@
   /// buyer/seller role.
   /// - "BUYER" : Specifies the role as buyer.
   /// - "SELLER" : Specifies the role as seller.
-  core.String originatorRole;
+  core.String? originatorRole;
 
   /// Private auction ID if this proposal is a private auction proposal.
   ///
   /// Output only.
-  core.String privateAuctionId;
+  core.String? privateAuctionId;
 
   /// The unique ID of the proposal.
   ///
   /// Output only.
-  core.String proposalId;
+  core.String? proposalId;
 
   /// The revision number for the proposal.
   ///
@@ -8472,7 +8171,7 @@
   /// subsequent update was made.
   ///
   /// Output only.
-  core.String proposalRevision;
+  core.String? proposalRevision;
 
   /// The current state of the proposal.
   ///
@@ -8487,28 +8186,28 @@
   /// proposal was never finalized.
   /// - "FINALIZED" : The proposal is finalized. During renegotiation, the
   /// proposal may not be in this state.
-  core.String proposalState;
+  core.String? proposalState;
 
   /// Reference to the seller on the proposal.
   ///
   /// Note: This field may be set only when creating the resource. Modifying
   /// this field while updating the resource will result in an error.
-  Seller seller;
+  Seller? seller;
 
   /// Contact information for the seller.
   ///
   /// Output only.
-  core.List<ContactInformation> sellerContacts;
+  core.List<ContactInformation>? sellerContacts;
 
   /// The terms and conditions set by the publisher for this proposal.
   ///
   /// Output only.
-  core.String termsAndConditions;
+  core.String? termsAndConditions;
 
   /// The time when the proposal was last revised.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   Proposal();
 
@@ -8589,35 +8288,35 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (billedBuyer != null) 'billedBuyer': billedBuyer.toJson(),
-        if (buyer != null) 'buyer': buyer.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (billedBuyer != null) 'billedBuyer': billedBuyer!.toJson(),
+        if (buyer != null) 'buyer': buyer!.toJson(),
         if (buyerContacts != null)
           'buyerContacts':
-              buyerContacts.map((value) => value.toJson()).toList(),
+              buyerContacts!.map((value) => value.toJson()).toList(),
         if (buyerPrivateData != null)
-          'buyerPrivateData': buyerPrivateData.toJson(),
+          'buyerPrivateData': buyerPrivateData!.toJson(),
         if (deals != null)
-          'deals': deals.map((value) => value.toJson()).toList(),
-        if (displayName != null) 'displayName': displayName,
-        if (isRenegotiating != null) 'isRenegotiating': isRenegotiating,
-        if (isSetupComplete != null) 'isSetupComplete': isSetupComplete,
+          'deals': deals!.map((value) => value.toJson()).toList(),
+        if (displayName != null) 'displayName': displayName!,
+        if (isRenegotiating != null) 'isRenegotiating': isRenegotiating!,
+        if (isSetupComplete != null) 'isSetupComplete': isSetupComplete!,
         if (lastUpdaterOrCommentorRole != null)
-          'lastUpdaterOrCommentorRole': lastUpdaterOrCommentorRole,
+          'lastUpdaterOrCommentorRole': lastUpdaterOrCommentorRole!,
         if (notes != null)
-          'notes': notes.map((value) => value.toJson()).toList(),
-        if (originatorRole != null) 'originatorRole': originatorRole,
-        if (privateAuctionId != null) 'privateAuctionId': privateAuctionId,
-        if (proposalId != null) 'proposalId': proposalId,
-        if (proposalRevision != null) 'proposalRevision': proposalRevision,
-        if (proposalState != null) 'proposalState': proposalState,
-        if (seller != null) 'seller': seller.toJson(),
+          'notes': notes!.map((value) => value.toJson()).toList(),
+        if (originatorRole != null) 'originatorRole': originatorRole!,
+        if (privateAuctionId != null) 'privateAuctionId': privateAuctionId!,
+        if (proposalId != null) 'proposalId': proposalId!,
+        if (proposalRevision != null) 'proposalRevision': proposalRevision!,
+        if (proposalState != null) 'proposalState': proposalState!,
+        if (seller != null) 'seller': seller!.toJson(),
         if (sellerContacts != null)
           'sellerContacts':
-              sellerContacts.map((value) => value.toJson()).toList(),
+              sellerContacts!.map((value) => value.toJson()).toList(),
         if (termsAndConditions != null)
-          'termsAndConditions': termsAndConditions,
-        if (updateTime != null) 'updateTime': updateTime,
+          'termsAndConditions': termsAndConditions!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -8630,30 +8329,30 @@
 /// publisher unless noted otherwise.
 class PublisherProfile {
   /// Description on the publisher's audience.
-  core.String audienceDescription;
+  core.String? audienceDescription;
 
   /// Statement explaining what's unique about publisher's business, and why
   /// buyers should partner with the publisher.
-  core.String buyerPitchStatement;
+  core.String? buyerPitchStatement;
 
   /// Contact information for direct reservation deals.
   ///
   /// This is free text entered by the publisher and may include information
   /// like names, phone numbers and email addresses.
-  core.String directDealsContact;
+  core.String? directDealsContact;
 
   /// Name of the publisher profile.
-  core.String displayName;
+  core.String? displayName;
 
   /// The list of domains represented in this publisher profile.
   ///
   /// Empty if this is a parent profile. These are top private domains, meaning
   /// that these will not contain a string like "photos.google.co.uk/123", but
   /// will instead contain "google.co.uk".
-  core.List<core.String> domains;
+  core.List<core.String>? domains;
 
   /// URL to publisher's Google+ page.
-  core.String googlePlusUrl;
+  core.String? googlePlusUrl;
 
   /// Indicates if this profile is the parent profile of the seller.
   ///
@@ -8664,47 +8363,47 @@
   /// same value of field
   /// google.ads.adexchange.buyer.v2beta1.PublisherProfile.seller. See
   /// https://support.google.com/admanager/answer/6035806 for details.
-  core.bool isParent;
+  core.bool? isParent;
 
   /// A Google public URL to the logo for this publisher profile.
   ///
   /// The logo is stored as a PNG, JPG, or GIF image.
-  core.String logoUrl;
+  core.String? logoUrl;
 
   /// URL to additional marketing and sales materials.
-  core.String mediaKitUrl;
+  core.String? mediaKitUrl;
 
   /// The list of apps represented in this publisher profile.
   ///
   /// Empty if this is a parent profile.
-  core.List<PublisherProfileMobileApplication> mobileApps;
+  core.List<PublisherProfileMobileApplication>? mobileApps;
 
   /// Overview of the publisher.
-  core.String overview;
+  core.String? overview;
 
   /// Contact information for programmatic deals.
   ///
   /// This is free text entered by the publisher and may include information
   /// like names, phone numbers and email addresses.
-  core.String programmaticDealsContact;
+  core.String? programmaticDealsContact;
 
   /// Unique ID for publisher profile.
-  core.String publisherProfileId;
+  core.String? publisherProfileId;
 
   /// URL to a publisher rate card.
-  core.String rateCardInfoUrl;
+  core.String? rateCardInfoUrl;
 
   /// URL to a sample content page.
-  core.String samplePageUrl;
+  core.String? samplePageUrl;
 
   /// Seller of the publisher profile.
-  Seller seller;
+  Seller? seller;
 
   /// Up to three key metrics and rankings.
   ///
   /// Max 100 characters each. For example "#1 Mobile News Site for 20 Straight
   /// Months".
-  core.List<core.String> topHeadlines;
+  core.List<core.String>? topHeadlines;
 
   PublisherProfile();
 
@@ -8772,30 +8471,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (audienceDescription != null)
-          'audienceDescription': audienceDescription,
+          'audienceDescription': audienceDescription!,
         if (buyerPitchStatement != null)
-          'buyerPitchStatement': buyerPitchStatement,
+          'buyerPitchStatement': buyerPitchStatement!,
         if (directDealsContact != null)
-          'directDealsContact': directDealsContact,
-        if (displayName != null) 'displayName': displayName,
-        if (domains != null) 'domains': domains,
-        if (googlePlusUrl != null) 'googlePlusUrl': googlePlusUrl,
-        if (isParent != null) 'isParent': isParent,
-        if (logoUrl != null) 'logoUrl': logoUrl,
-        if (mediaKitUrl != null) 'mediaKitUrl': mediaKitUrl,
+          'directDealsContact': directDealsContact!,
+        if (displayName != null) 'displayName': displayName!,
+        if (domains != null) 'domains': domains!,
+        if (googlePlusUrl != null) 'googlePlusUrl': googlePlusUrl!,
+        if (isParent != null) 'isParent': isParent!,
+        if (logoUrl != null) 'logoUrl': logoUrl!,
+        if (mediaKitUrl != null) 'mediaKitUrl': mediaKitUrl!,
         if (mobileApps != null)
-          'mobileApps': mobileApps.map((value) => value.toJson()).toList(),
-        if (overview != null) 'overview': overview,
+          'mobileApps': mobileApps!.map((value) => value.toJson()).toList(),
+        if (overview != null) 'overview': overview!,
         if (programmaticDealsContact != null)
-          'programmaticDealsContact': programmaticDealsContact,
+          'programmaticDealsContact': programmaticDealsContact!,
         if (publisherProfileId != null)
-          'publisherProfileId': publisherProfileId,
-        if (rateCardInfoUrl != null) 'rateCardInfoUrl': rateCardInfoUrl,
-        if (samplePageUrl != null) 'samplePageUrl': samplePageUrl,
-        if (seller != null) 'seller': seller.toJson(),
-        if (topHeadlines != null) 'topHeadlines': topHeadlines,
+          'publisherProfileId': publisherProfileId!,
+        if (rateCardInfoUrl != null) 'rateCardInfoUrl': rateCardInfoUrl!,
+        if (samplePageUrl != null) 'samplePageUrl': samplePageUrl!,
+        if (seller != null) 'seller': seller!.toJson(),
+        if (topHeadlines != null) 'topHeadlines': topHeadlines!,
       };
 }
 
@@ -8816,13 +8515,13 @@
   /// - "SAMSUNG" : Samsung Galaxy Store
   /// - "VIVO" : VIVO App Store
   /// - "XIAOMI" : Xiaomi GetApps
-  core.String appStore;
+  core.String? appStore;
 
   /// The external ID for the app from its app store.
-  core.String externalAppId;
+  core.String? externalAppId;
 
   /// The name of the app.
-  core.String name;
+  core.String? name;
 
   PublisherProfileMobileApplication();
 
@@ -8838,10 +8537,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appStore != null) 'appStore': appStore,
-        if (externalAppId != null) 'externalAppId': externalAppId,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appStore != null) 'appStore': appStore!,
+        if (externalAppId != null) 'externalAppId': externalAppId!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -8851,7 +8550,7 @@
 /// be aggregated throughout the lifetime of the filter set.
 class RealtimeTimeRange {
   /// The start timestamp of the real-time RTB metrics aggregation.
-  core.String startTimestamp;
+  core.String? startTimestamp;
 
   RealtimeTimeRange();
 
@@ -8861,8 +8560,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (startTimestamp != null) 'startTimestamp': startTimestamp,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (startTimestamp != null) 'startTimestamp': startTimestamp!,
       };
 }
 
@@ -8876,11 +8575,11 @@
   /// today: 1.
   ///
   /// For a range spanning the last 7 days: 7.
-  core.int durationDays;
+  core.int? durationDays;
 
   /// The end date of the filter set, specified as the number of days before
   /// today, e.g., for a range where the last date is today: 0.
-  core.int offsetDays;
+  core.int? offsetDays;
 
   RelativeDateRange();
 
@@ -8893,16 +8592,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (durationDays != null) 'durationDays': durationDays,
-        if (offsetDays != null) 'offsetDays': offsetDays,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (durationDays != null) 'durationDays': durationDays!,
+        if (offsetDays != null) 'offsetDays': offsetDays!,
       };
 }
 
 /// A request for removing the association between a deal and a creative.
 class RemoveDealAssociationRequest {
   /// The association between a creative and a deal that should be removed.
-  CreativeDealAssociation association;
+  CreativeDealAssociation? association;
 
   RemoveDealAssociationRequest();
 
@@ -8913,8 +8612,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (association != null) 'association': association.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (association != null) 'association': association!.toJson(),
       };
 }
 
@@ -8927,7 +8626,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A response may include multiple rows, breaking down along various
@@ -8938,10 +8637,10 @@
   /// The publisher identifier for this row, if a breakdown by
   /// [BreakdownDimension.PUBLISHER_IDENTIFIER](https://developers.google.com/authorized-buyers/apis/reference/rest/v2beta1/bidders.accounts.filterSets#FilterSet.BreakdownDimension)
   /// was requested.
-  core.String publisherIdentifier;
+  core.String? publisherIdentifier;
 
   /// The time interval that this row represents.
-  TimeInterval timeInterval;
+  TimeInterval? timeInterval;
 
   RowDimensions();
 
@@ -8955,10 +8654,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (publisherIdentifier != null)
-          'publisherIdentifier': publisherIdentifier,
-        if (timeInterval != null) 'timeInterval': timeInterval.toJson(),
+          'publisherIdentifier': publisherIdentifier!,
+        if (timeInterval != null) 'timeInterval': timeInterval!.toJson(),
       };
 }
 
@@ -8967,7 +8666,7 @@
 /// Output only.
 class SecurityContext {
   /// The security types in this context.
-  core.List<core.String> securities;
+  core.List<core.String>? securities;
 
   SecurityContext();
 
@@ -8979,8 +8678,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (securities != null) 'securities': securities,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (securities != null) 'securities': securities!,
       };
 }
 
@@ -8992,10 +8691,10 @@
   ///
   /// The seller fills in this field. The seller account ID is then available to
   /// buyer in the product.
-  core.String accountId;
+  core.String? accountId;
 
   /// Optional sub-account ID for the seller.
-  core.String subAccountId;
+  core.String? subAccountId;
 
   Seller();
 
@@ -9008,9 +8707,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accountId != null) 'accountId': accountId,
-        if (subAccountId != null) 'subAccountId': subAccountId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accountId != null) 'accountId': accountId!,
+        if (subAccountId != null) 'subAccountId': subAccountId!,
       };
 }
 
@@ -9019,23 +8718,23 @@
   /// Matches all contexts.
   /// Possible string values are:
   /// - "SIMPLE_CONTEXT" : A simple context.
-  core.String all;
+  core.String? all;
 
   /// Matches impressions for a particular app type.
-  AppContext appType;
+  AppContext? appType;
 
   /// Matches impressions for a particular auction type.
-  AuctionContext auctionType;
+  AuctionContext? auctionType;
 
   /// Matches impressions coming from users *or* publishers in a specific
   /// location.
-  LocationContext location;
+  LocationContext? location;
 
   /// Matches impressions coming from a particular platform.
-  PlatformContext platform;
+  PlatformContext? platform;
 
   /// Matches impressions for a particular security type.
-  SecurityContext securityType;
+  SecurityContext? securityType;
 
   ServingContext();
 
@@ -9065,13 +8764,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (all != null) 'all': all,
-        if (appType != null) 'appType': appType.toJson(),
-        if (auctionType != null) 'auctionType': auctionType.toJson(),
-        if (location != null) 'location': location.toJson(),
-        if (platform != null) 'platform': platform.toJson(),
-        if (securityType != null) 'securityType': securityType.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (all != null) 'all': all!,
+        if (appType != null) 'appType': appType!.toJson(),
+        if (auctionType != null) 'auctionType': auctionType!.toJson(),
+        if (location != null) 'location': location!.toJson(),
+        if (platform != null) 'platform': platform!.toJson(),
+        if (securityType != null) 'securityType': securityType!.toJson(),
       };
 }
 
@@ -9084,20 +8783,20 @@
 /// Output only.
 class ServingRestriction {
   /// The contexts for the restriction.
-  core.List<ServingContext> contexts;
+  core.List<ServingContext>? contexts;
 
   /// Disapproval bound to this restriction.
   ///
   /// Only present if status=DISAPPROVED. Can be used to filter the response of
   /// the creatives.list method.
-  Disapproval disapproval;
+  Disapproval? disapproval;
 
   /// Any disapprovals bound to this restriction.
   ///
   /// Only present if status=DISAPPROVED. Can be used to filter the response of
   /// the creatives.list method. Deprecated; please use disapproval field
   /// instead.
-  core.List<Disapproval> disapprovalReasons;
+  core.List<Disapproval>? disapprovalReasons;
 
   /// The status of the creative in this context (for example, it has been
   /// explicitly disapproved or is pending review).
@@ -9105,7 +8804,7 @@
   /// - "STATUS_UNSPECIFIED" : The status is not known.
   /// - "DISAPPROVAL" : The ad was disapproved in this context.
   /// - "PENDING_REVIEW" : The ad is pending review in this context.
-  core.String status;
+  core.String? status;
 
   ServingRestriction();
 
@@ -9131,14 +8830,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (contexts != null)
-          'contexts': contexts.map((value) => value.toJson()).toList(),
-        if (disapproval != null) 'disapproval': disapproval.toJson(),
+          'contexts': contexts!.map((value) => value.toJson()).toList(),
+        if (disapproval != null) 'disapproval': disapproval!.toJson(),
         if (disapprovalReasons != null)
           'disapprovalReasons':
-              disapprovalReasons.map((value) => value.toJson()).toList(),
-        if (status != null) 'status': status,
+              disapprovalReasons!.map((value) => value.toJson()).toList(),
+        if (status != null) 'status': status!,
       };
 }
 
@@ -9147,10 +8846,10 @@
 /// The units of width and height depend on the type of the targeting.
 class Size {
   /// The height of the creative.
-  core.int height;
+  core.int? height;
 
   /// The width of the creative
-  core.int width;
+  core.int? width;
 
   Size();
 
@@ -9163,9 +8862,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -9177,7 +8876,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Advertisers can target different attributes of an ad slot.
@@ -9188,12 +8887,12 @@
   /// The list of values to exclude from targeting.
   ///
   /// Each value is AND'd together.
-  core.List<TargetingValue> exclusions;
+  core.List<TargetingValue>? exclusions;
 
   /// The list of value to include as part of the targeting.
   ///
   /// Each value is OR'd together.
-  core.List<TargetingValue> inclusions;
+  core.List<TargetingValue>? inclusions;
 
   /// The key representing the shared targeting criterion.
   ///
@@ -9201,7 +8900,7 @@
   /// Third parties may define their own keys. A list of permissible keys along
   /// with the acceptable values will be provided as part of the external
   /// documentation.
-  core.String key;
+  core.String? key;
 
   TargetingCriteria();
 
@@ -9223,12 +8922,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (exclusions != null)
-          'exclusions': exclusions.map((value) => value.toJson()).toList(),
+          'exclusions': exclusions!.map((value) => value.toJson()).toList(),
         if (inclusions != null)
-          'inclusions': inclusions.map((value) => value.toJson()).toList(),
-        if (key != null) 'key': key,
+          'inclusions': inclusions!.map((value) => value.toJson()).toList(),
+        if (key != null) 'key': key!,
       };
 }
 
@@ -9237,19 +8936,19 @@
   /// The creative size value to include/exclude.
   ///
   /// Filled in when key = GOOG_CREATIVE_SIZE
-  CreativeSize creativeSizeValue;
+  CreativeSize? creativeSizeValue;
 
   /// The daypart targeting to include / exclude.
   ///
   /// Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this
   /// targeting is derived from the structure used by Ad Manager.
-  DayPartTargeting dayPartTargetingValue;
+  DayPartTargeting? dayPartTargetingValue;
 
   /// The long value to include/exclude.
-  core.String longValue;
+  core.String? longValue;
 
   /// The string value to include/exclude.
-  core.String stringValue;
+  core.String? stringValue;
 
   TargetingValue();
 
@@ -9271,26 +8970,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (creativeSizeValue != null)
-          'creativeSizeValue': creativeSizeValue.toJson(),
+          'creativeSizeValue': creativeSizeValue!.toJson(),
         if (dayPartTargetingValue != null)
-          'dayPartTargetingValue': dayPartTargetingValue.toJson(),
-        if (longValue != null) 'longValue': longValue,
-        if (stringValue != null) 'stringValue': stringValue,
+          'dayPartTargetingValue': dayPartTargetingValue!.toJson(),
+        if (longValue != null) 'longValue': longValue!,
+        if (stringValue != null) 'stringValue': stringValue!,
       };
 }
 
 /// Represents targeting about various types of technology.
 class TechnologyTargeting {
   /// IDs of device capabilities to be included/excluded.
-  CriteriaTargeting deviceCapabilityTargeting;
+  CriteriaTargeting? deviceCapabilityTargeting;
 
   /// IDs of device categories to be included/excluded.
-  CriteriaTargeting deviceCategoryTargeting;
+  CriteriaTargeting? deviceCategoryTargeting;
 
   /// Operating system related targeting information.
-  OperatingSystemTargeting operatingSystemTargeting;
+  OperatingSystemTargeting? operatingSystemTargeting;
 
   TechnologyTargeting();
 
@@ -9312,13 +9011,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (deviceCapabilityTargeting != null)
-          'deviceCapabilityTargeting': deviceCapabilityTargeting.toJson(),
+          'deviceCapabilityTargeting': deviceCapabilityTargeting!.toJson(),
         if (deviceCategoryTargeting != null)
-          'deviceCategoryTargeting': deviceCategoryTargeting.toJson(),
+          'deviceCategoryTargeting': deviceCategoryTargeting!.toJson(),
         if (operatingSystemTargeting != null)
-          'operatingSystemTargeting': operatingSystemTargeting.toJson(),
+          'operatingSystemTargeting': operatingSystemTargeting!.toJson(),
       };
 }
 
@@ -9326,11 +9025,11 @@
 class TimeInterval {
   /// The timestamp marking the end of the range (exclusive) for which data is
   /// included.
-  core.String endTime;
+  core.String? endTime;
 
   /// The timestamp marking the start of the range (inclusive) for which data is
   /// included.
-  core.String startTime;
+  core.String? startTime;
 
   TimeInterval();
 
@@ -9343,9 +9042,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endTime != null) 'endTime': endTime,
-        if (startTime != null) 'startTime': startTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endTime != null) 'endTime': endTime!,
+        if (startTime != null) 'startTime': startTime!,
       };
 }
 
@@ -9359,23 +9058,23 @@
   ///
   /// Should be from 0 to 23. An API may choose to allow the value "24:00:00"
   /// for scenarios like business closing time.
-  core.int hours;
+  core.int? hours;
 
   /// Minutes of hour of day.
   ///
   /// Must be from 0 to 59.
-  core.int minutes;
+  core.int? minutes;
 
   /// Fractions of seconds in nanoseconds.
   ///
   /// Must be from 0 to 999,999,999.
-  core.int nanos;
+  core.int? nanos;
 
   /// Seconds of minutes of the time.
   ///
   /// Must normally be from 0 to 59. An API may allow the value 60 if it allows
   /// leap-seconds.
-  core.int seconds;
+  core.int? seconds;
 
   TimeOfDay();
 
@@ -9394,11 +9093,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hours != null) 'hours': hours,
-        if (minutes != null) 'minutes': minutes,
-        if (nanos != null) 'nanos': nanos,
-        if (seconds != null) 'seconds': seconds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hours != null) 'hours': hours!,
+        if (minutes != null) 'minutes': minutes!,
+        if (nanos != null) 'nanos': nanos!,
+        if (seconds != null) 'seconds': seconds!,
       };
 }
 
@@ -9409,10 +9108,10 @@
 /// apply.
 class UrlTargeting {
   /// A list of URLs to be excluded.
-  core.List<core.String> excludedUrls;
+  core.List<core.String>? excludedUrls;
 
   /// A list of URLs to be included.
-  core.List<core.String> targetedUrls;
+  core.List<core.String>? targetedUrls;
 
   UrlTargeting();
 
@@ -9429,21 +9128,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (excludedUrls != null) 'excludedUrls': excludedUrls,
-        if (targetedUrls != null) 'targetedUrls': targetedUrls,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (excludedUrls != null) 'excludedUrls': excludedUrls!,
+        if (targetedUrls != null) 'targetedUrls': targetedUrls!,
       };
 }
 
 /// Video content for a creative.
 class VideoContent {
   /// The URL to fetch a video ad.
-  core.String videoUrl;
+  core.String? videoUrl;
 
   /// The contents of a VAST document for a video ad.
   ///
   /// This document should conform to the VAST 2.0 or 3.0 standard.
-  core.String videoVastXml;
+  core.String? videoVastXml;
 
   VideoContent();
 
@@ -9456,9 +9155,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (videoUrl != null) 'videoUrl': videoUrl,
-        if (videoVastXml != null) 'videoVastXml': videoVastXml,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (videoUrl != null) 'videoUrl': videoUrl!,
+        if (videoVastXml != null) 'videoVastXml': videoVastXml!,
       };
 }
 
@@ -9467,13 +9166,13 @@
   /// A list of video positions to be excluded.
   ///
   /// Position types can either be included or excluded (XOR).
-  core.List<core.String> excludedPositionTypes;
+  core.List<core.String>? excludedPositionTypes;
 
   /// A list of video positions to be included.
   ///
   /// When the included list is present, the excluded list must be empty. When
   /// the excluded list is present, the included list must be empty.
-  core.List<core.String> targetedPositionTypes;
+  core.List<core.String>? targetedPositionTypes;
 
   VideoTargeting();
 
@@ -9490,11 +9189,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (excludedPositionTypes != null)
-          'excludedPositionTypes': excludedPositionTypes,
+          'excludedPositionTypes': excludedPositionTypes!,
         if (targetedPositionTypes != null)
-          'targetedPositionTypes': targetedPositionTypes,
+          'targetedPositionTypes': targetedPositionTypes!,
       };
 }
 
@@ -9506,7 +9205,7 @@
   /// ad-exchange-buyside-reports@google.com to write to the topic. This should
   /// be the full resource name in "projects/{project_id}/topics/{topic_id}"
   /// format.
-  core.String topic;
+  core.String? topic;
 
   WatchCreativeRequest();
 
@@ -9516,7 +9215,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (topic != null) 'topic': topic,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (topic != null) 'topic': topic!,
       };
 }
diff --git a/generated/googleapis_beta/lib/alertcenter/v1beta1.dart b/generated/googleapis_beta/lib/alertcenter/v1beta1.dart
index 3ef808c..028b3b3 100644
--- a/generated/googleapis_beta/lib/alertcenter/v1beta1.dart
+++ b/generated/googleapis_beta/lib/alertcenter/v1beta1.dart
@@ -82,10 +82,9 @@
   /// this method will complete with the same error.
   async.Future<BatchDeleteAlertsResponse> batchDelete(
     BatchDeleteAlertsRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -120,10 +119,9 @@
   /// this method will complete with the same error.
   async.Future<BatchUndeleteAlertsResponse> batchUndelete(
     BatchUndeleteAlertsRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -167,12 +165,9 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String alertId, {
-    core.String customerId,
-    core.String $fields,
+    core.String? customerId,
+    core.String? $fields,
   }) async {
-    if (alertId == null) {
-      throw core.ArgumentError('Parameter alertId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
       if ($fields != null) 'fields': [$fields],
@@ -212,12 +207,9 @@
   /// this method will complete with the same error.
   async.Future<Alert> get(
     core.String alertId, {
-    core.String customerId,
-    core.String $fields,
+    core.String? customerId,
+    core.String? $fields,
   }) async {
-    if (alertId == null) {
-      throw core.ArgumentError('Parameter alertId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
       if ($fields != null) 'fields': [$fields],
@@ -259,12 +251,9 @@
   /// this method will complete with the same error.
   async.Future<AlertMetadata> getMetadata(
     core.String alertId, {
-    core.String customerId,
-    core.String $fields,
+    core.String? customerId,
+    core.String? $fields,
   }) async {
-    if (alertId == null) {
-      throw core.ArgumentError('Parameter alertId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
       if ($fields != null) 'fields': [$fields],
@@ -322,12 +311,12 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<ListAlertsResponse> list({
-    core.String customerId,
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? customerId,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
@@ -376,13 +365,9 @@
   async.Future<Alert> undelete(
     UndeleteAlertRequest request,
     core.String alertId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (alertId == null) {
-      throw core.ArgumentError('Parameter alertId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -436,14 +421,10 @@
   async.Future<AlertFeedback> create(
     AlertFeedback request,
     core.String alertId, {
-    core.String customerId,
-    core.String $fields,
+    core.String? customerId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (alertId == null) {
-      throw core.ArgumentError('Parameter alertId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
       if ($fields != null) 'fields': [$fields],
@@ -495,13 +476,10 @@
   /// this method will complete with the same error.
   async.Future<ListAlertFeedbackResponse> list(
     core.String alertId, {
-    core.String customerId,
-    core.String filter,
-    core.String $fields,
+    core.String? customerId,
+    core.String? filter,
+    core.String? $fields,
   }) async {
-    if (alertId == null) {
-      throw core.ArgumentError('Parameter alertId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
       if (filter != null) 'filter': [filter],
@@ -546,8 +524,8 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<Settings> getSettings({
-    core.String customerId,
-    core.String $fields,
+    core.String? customerId,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
@@ -586,11 +564,10 @@
   /// this method will complete with the same error.
   async.Future<Settings> updateSettings(
     Settings request, {
-    core.String customerId,
-    core.String $fields,
+    core.String? customerId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (customerId != null) 'customerId': [customerId],
       if ($fields != null) 'fields': [$fields],
@@ -613,7 +590,7 @@
   /// The email of the user that this event belongs to.
   ///
   /// Required.
-  core.String email;
+  core.String? email;
 
   /// Details of the login action associated with the warning event.
   ///
@@ -622,7 +599,7 @@
   /// activity)
   ///
   /// Optional.
-  LoginDetails loginDetails;
+  LoginDetails? loginDetails;
 
   AccountWarning();
 
@@ -636,60 +613,60 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
-        if (loginDetails != null) 'loginDetails': loginDetails.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
+        if (loginDetails != null) 'loginDetails': loginDetails!.toJson(),
       };
 }
 
 /// Alerts from G Suite Security Center rules service configured by admin.
 class ActivityRule {
   /// List of action names associated with the rule threshold.
-  core.List<core.String> actionNames;
+  core.List<core.String>? actionNames;
 
   /// Rule create timestamp.
-  core.String createTime;
+  core.String? createTime;
 
   /// Description of the rule.
-  core.String description;
+  core.String? description;
 
   /// Alert display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// Rule name.
-  core.String name;
+  core.String? name;
 
   /// Query that is used to get the data from the associated source.
-  core.String query;
+  core.String? query;
 
   /// List of alert IDs superseded by this alert.
   ///
   /// It is used to indicate that this alert is essentially extension of
   /// superseded alerts and we found the relationship after creating these
   /// alerts.
-  core.List<core.String> supersededAlerts;
+  core.List<core.String>? supersededAlerts;
 
   /// Alert ID superseding this alert.
   ///
   /// It is used to indicate that superseding alert is essentially extension of
   /// this alert and we found the relationship after creating both alerts.
-  core.String supersedingAlert;
+  core.String? supersedingAlert;
 
   /// Alert threshold is for example “COUNT > 5”.
-  core.String threshold;
+  core.String? threshold;
 
   /// The trigger sources for this rule.
   ///
   /// * GMAIL_EVENTS * DEVICE_EVENTS * USER_EVENTS
-  core.String triggerSource;
+  core.String? triggerSource;
 
   /// The timestamp of the last update to the rule.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// Rule window size.
   ///
   /// Possible values are 1 hour or 24 hours.
-  core.String windowSize;
+  core.String? windowSize;
 
   ActivityRule();
 
@@ -736,19 +713,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (actionNames != null) 'actionNames': actionNames,
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (query != null) 'query': query,
-        if (supersededAlerts != null) 'supersededAlerts': supersededAlerts,
-        if (supersedingAlert != null) 'supersedingAlert': supersedingAlert,
-        if (threshold != null) 'threshold': threshold,
-        if (triggerSource != null) 'triggerSource': triggerSource,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (windowSize != null) 'windowSize': windowSize,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (actionNames != null) 'actionNames': actionNames!,
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (query != null) 'query': query!,
+        if (supersededAlerts != null) 'supersededAlerts': supersededAlerts!,
+        if (supersedingAlert != null) 'supersedingAlert': supersedingAlert!,
+        if (threshold != null) 'threshold': threshold!,
+        if (triggerSource != null) 'triggerSource': triggerSource!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (windowSize != null) 'windowSize': windowSize!,
       };
 }
 
@@ -757,17 +734,17 @@
   /// The unique identifier for the alert.
   ///
   /// Output only.
-  core.String alertId;
+  core.String? alertId;
 
   /// The time this alert was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The unique identifier of the Google account of the customer.
   ///
   /// Output only.
-  core.String customerId;
+  core.String? customerId;
 
   /// The data associated with this alert, for example
   /// google.apps.alertcenter.type.DeviceCompromised.
@@ -776,12 +753,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> data;
+  core.Map<core.String, core.Object>? data;
 
   /// `True` if this alert is marked for deletion.
   ///
   /// Output only.
-  core.bool deleted;
+  core.bool? deleted;
 
   /// The time the event that caused this alert ceased being active.
   ///
@@ -789,7 +766,7 @@
   /// provided, it indicates an ongoing alert.
   ///
   /// Optional.
-  core.String endTime;
+  core.String? endTime;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of an alert from overwriting each other.
@@ -803,19 +780,19 @@
   /// existing alert is overwritten blindly.
   ///
   /// Optional.
-  core.String etag;
+  core.String? etag;
 
   /// The metadata associated with this alert.
   ///
   /// Output only.
-  AlertMetadata metadata;
+  AlertMetadata? metadata;
 
   /// An optional
   /// [Security Investigation Tool](https://support.google.com/a/answer/7575955)
   /// query for this alert.
   ///
   /// Output only.
-  core.String securityInvestigationToolLink;
+  core.String? securityInvestigationToolLink;
 
   /// A unique identifier for the system that reported the alert.
   ///
@@ -824,12 +801,12 @@
   /// phishing * Domain wide takeout * State sponsored attack * Google identity
   ///
   /// Required.
-  core.String source;
+  core.String? source;
 
   /// The time the event that caused this alert was started or detected.
   ///
   /// Required.
-  core.String startTime;
+  core.String? startTime;
 
   /// The type of the alert.
   ///
@@ -838,12 +815,12 @@
   /// types\](/admin-sdk/alertcenter/reference/alert-types).
   ///
   /// Required.
-  core.String type;
+  core.String? type;
 
   /// The time this alert was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   Alert();
 
@@ -896,21 +873,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alertId != null) 'alertId': alertId,
-        if (createTime != null) 'createTime': createTime,
-        if (customerId != null) 'customerId': customerId,
-        if (data != null) 'data': data,
-        if (deleted != null) 'deleted': deleted,
-        if (endTime != null) 'endTime': endTime,
-        if (etag != null) 'etag': etag,
-        if (metadata != null) 'metadata': metadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alertId != null) 'alertId': alertId!,
+        if (createTime != null) 'createTime': createTime!,
+        if (customerId != null) 'customerId': customerId!,
+        if (data != null) 'data': data!,
+        if (deleted != null) 'deleted': deleted!,
+        if (endTime != null) 'endTime': endTime!,
+        if (etag != null) 'etag': etag!,
+        if (metadata != null) 'metadata': metadata!.toJson(),
         if (securityInvestigationToolLink != null)
-          'securityInvestigationToolLink': securityInvestigationToolLink,
-        if (source != null) 'source': source,
-        if (startTime != null) 'startTime': startTime,
-        if (type != null) 'type': type,
-        if (updateTime != null) 'updateTime': updateTime,
+          'securityInvestigationToolLink': securityInvestigationToolLink!,
+        if (source != null) 'source': source!,
+        if (startTime != null) 'startTime': startTime!,
+        if (type != null) 'type': type!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -919,27 +896,27 @@
   /// The alert identifier.
   ///
   /// Output only.
-  core.String alertId;
+  core.String? alertId;
 
   /// The time this feedback was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The unique identifier of the Google account of the customer.
   ///
   /// Output only.
-  core.String customerId;
+  core.String? customerId;
 
   /// The email of the user that provided the feedback.
   ///
   /// Output only.
-  core.String email;
+  core.String? email;
 
   /// The unique identifier for the feedback.
   ///
   /// Output only.
-  core.String feedbackId;
+  core.String? feedbackId;
 
   /// The type of the feedback.
   ///
@@ -949,7 +926,7 @@
   /// - "NOT_USEFUL" : The alert report is not useful.
   /// - "SOMEWHAT_USEFUL" : The alert report is somewhat useful.
   /// - "VERY_USEFUL" : The alert report is very useful.
-  core.String type;
+  core.String? type;
 
   AlertFeedback();
 
@@ -974,13 +951,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alertId != null) 'alertId': alertId,
-        if (createTime != null) 'createTime': createTime,
-        if (customerId != null) 'customerId': customerId,
-        if (email != null) 'email': email,
-        if (feedbackId != null) 'feedbackId': feedbackId,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alertId != null) 'alertId': alertId!,
+        if (createTime != null) 'createTime': createTime!,
+        if (customerId != null) 'customerId': customerId!,
+        if (email != null) 'email': email!,
+        if (feedbackId != null) 'feedbackId': feedbackId!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -989,15 +966,15 @@
   /// The alert identifier.
   ///
   /// Output only.
-  core.String alertId;
+  core.String? alertId;
 
   /// The email address of the user assigned to the alert.
-  core.String assignee;
+  core.String? assignee;
 
   /// The unique identifier of the Google account of the customer.
   ///
   /// Output only.
-  core.String customerId;
+  core.String? customerId;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of an alert metadata from overwriting each other.
@@ -1012,25 +989,25 @@
   /// overwritten blindly.
   ///
   /// Optional.
-  core.String etag;
+  core.String? etag;
 
   /// The severity value of the alert.
   ///
   /// Alert Center will set this field at alert creation time, default's to an
   /// empty string when it could not be determined. The supported values for
   /// update actions on this field are the following: * HIGH * MEDIUM * LOW
-  core.String severity;
+  core.String? severity;
 
   /// The current status of the alert.
   ///
   /// The supported values are the following: * NOT_STARTED * IN_PROGRESS *
   /// CLOSED
-  core.String status;
+  core.String? status;
 
   /// The time this metadata was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   AlertMetadata();
 
@@ -1058,21 +1035,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alertId != null) 'alertId': alertId,
-        if (assignee != null) 'assignee': assignee,
-        if (customerId != null) 'customerId': customerId,
-        if (etag != null) 'etag': etag,
-        if (severity != null) 'severity': severity,
-        if (status != null) 'status': status,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alertId != null) 'alertId': alertId!,
+        if (assignee != null) 'assignee': assignee!,
+        if (customerId != null) 'customerId': customerId!,
+        if (etag != null) 'etag': etag!,
+        if (severity != null) 'severity': severity!,
+        if (status != null) 'status': status!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// Alerts from App Maker to notify admins to set up default SQL instance.
 class AppMakerSqlSetupNotification {
   /// List of applications with requests for default SQL set up.
-  core.List<RequestInfo> requestInfo;
+  core.List<RequestInfo>? requestInfo;
 
   AppMakerSqlSetupNotification();
 
@@ -1085,16 +1062,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requestInfo != null)
-          'requestInfo': requestInfo.map((value) => value.toJson()).toList(),
+          'requestInfo': requestInfo!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Attachment with application-specific information about an alert.
 class Attachment {
   /// A CSV file attachment.
-  Csv csv;
+  Csv? csv;
 
   Attachment();
 
@@ -1104,8 +1081,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (csv != null) 'csv': csv.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (csv != null) 'csv': csv!.toJson(),
       };
 }
 
@@ -1113,16 +1090,16 @@
 /// whitelisted domain or IP in Gmail advanced settings.
 class BadWhitelist {
   /// The domain ID.
-  DomainId domainId;
+  DomainId? domainId;
 
   /// The entity whose actions triggered a Gmail phishing alert.
-  MaliciousEntity maliciousEntity;
+  MaliciousEntity? maliciousEntity;
 
   /// The list of messages contained by this alert.
-  core.List<GmailMessageInfo> messages;
+  core.List<GmailMessageInfo>? messages;
 
   /// The source IP address of the malicious email, for example, `127.0.0.1`.
-  core.String sourceIp;
+  core.String? sourceIp;
 
   BadWhitelist();
 
@@ -1146,13 +1123,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (domainId != null) 'domainId': domainId.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (domainId != null) 'domainId': domainId!.toJson(),
         if (maliciousEntity != null)
-          'maliciousEntity': maliciousEntity.toJson(),
+          'maliciousEntity': maliciousEntity!.toJson(),
         if (messages != null)
-          'messages': messages.map((value) => value.toJson()).toList(),
-        if (sourceIp != null) 'sourceIp': sourceIp,
+          'messages': messages!.map((value) => value.toJson()).toList(),
+        if (sourceIp != null) 'sourceIp': sourceIp!,
       };
 }
 
@@ -1161,13 +1138,13 @@
   /// list of alert IDs.
   ///
   /// Required.
-  core.List<core.String> alertId;
+  core.List<core.String>? alertId;
 
   /// The unique identifier of the Google Workspace organization account of the
   /// customer the alerts are associated with.
   ///
   /// Optional.
-  core.String customerId;
+  core.String? customerId;
 
   BatchDeleteAlertsRequest();
 
@@ -1182,26 +1159,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alertId != null) 'alertId': alertId,
-        if (customerId != null) 'customerId': customerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alertId != null) 'alertId': alertId!,
+        if (customerId != null) 'customerId': customerId!,
       };
 }
 
 /// Response to batch delete operation on alerts.
 class BatchDeleteAlertsResponse {
   /// The status details for each failed alert_id.
-  core.Map<core.String, Status> failedAlertStatus;
+  core.Map<core.String, Status>? failedAlertStatus;
 
   /// The successful list of alert IDs.
-  core.List<core.String> successAlertIds;
+  core.List<core.String>? successAlertIds;
 
   BatchDeleteAlertsResponse();
 
   BatchDeleteAlertsResponse.fromJson(core.Map _json) {
     if (_json.containsKey('failedAlertStatus')) {
       failedAlertStatus = (_json['failedAlertStatus'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -1216,11 +1193,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (failedAlertStatus != null)
-          'failedAlertStatus': failedAlertStatus
+          'failedAlertStatus': failedAlertStatus!
               .map((key, item) => core.MapEntry(key, item.toJson())),
-        if (successAlertIds != null) 'successAlertIds': successAlertIds,
+        if (successAlertIds != null) 'successAlertIds': successAlertIds!,
       };
 }
 
@@ -1229,13 +1206,13 @@
   /// list of alert IDs.
   ///
   /// Required.
-  core.List<core.String> alertId;
+  core.List<core.String>? alertId;
 
   /// The unique identifier of the Google Workspace organization account of the
   /// customer the alerts are associated with.
   ///
   /// Optional.
-  core.String customerId;
+  core.String? customerId;
 
   BatchUndeleteAlertsRequest();
 
@@ -1250,26 +1227,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alertId != null) 'alertId': alertId,
-        if (customerId != null) 'customerId': customerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alertId != null) 'alertId': alertId!,
+        if (customerId != null) 'customerId': customerId!,
       };
 }
 
 /// Response to batch undelete operation on alerts.
 class BatchUndeleteAlertsResponse {
   /// The status details for each failed alert_id.
-  core.Map<core.String, Status> failedAlertStatus;
+  core.Map<core.String, Status>? failedAlertStatus;
 
   /// The successful list of alert IDs.
-  core.List<core.String> successAlertIds;
+  core.List<core.String>? successAlertIds;
 
   BatchUndeleteAlertsResponse();
 
   BatchUndeleteAlertsResponse.fromJson(core.Map _json) {
     if (_json.containsKey('failedAlertStatus')) {
       failedAlertStatus = (_json['failedAlertStatus'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -1284,11 +1261,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (failedAlertStatus != null)
-          'failedAlertStatus': failedAlertStatus
+          'failedAlertStatus': failedAlertStatus!
               .map((key, item) => core.MapEntry(key, item.toJson())),
-        if (successAlertIds != null) 'successAlertIds': successAlertIds,
+        if (successAlertIds != null) 'successAlertIds': successAlertIds!,
       };
 }
 
@@ -1307,11 +1284,11 @@
   /// - "PAYLOAD_FORMAT_UNSPECIFIED" : Payload format is not specified (will use
   /// JSON as default).
   /// - "JSON" : Use JSON.
-  core.String payloadFormat;
+  core.String? payloadFormat;
 
   /// The `name` field of a Cloud Pubsub
   /// [Topic](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic).
-  core.String topicName;
+  core.String? topicName;
 
   CloudPubsubTopic();
 
@@ -1324,9 +1301,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (payloadFormat != null) 'payloadFormat': payloadFormat,
-        if (topicName != null) 'topicName': topicName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (payloadFormat != null) 'payloadFormat': payloadFormat!,
+        if (topicName != null) 'topicName': topicName!,
       };
 }
 
@@ -1335,10 +1312,10 @@
 class Csv {
   /// The list of data rows in a CSV file, as string arrays rather than as a
   /// single comma-separated string.
-  core.List<CsvRow> dataRows;
+  core.List<CsvRow>? dataRows;
 
   /// The list of headers for data columns in a CSV file.
-  core.List<core.String> headers;
+  core.List<core.String>? headers;
 
   Csv();
 
@@ -1356,10 +1333,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dataRows != null)
-          'dataRows': dataRows.map((value) => value.toJson()).toList(),
-        if (headers != null) 'headers': headers,
+          'dataRows': dataRows!.map((value) => value.toJson()).toList(),
+        if (headers != null) 'headers': headers!,
       };
 }
 
@@ -1367,7 +1344,7 @@
 class CsvRow {
   /// The data entries in a CSV file row, as a string array rather than a single
   /// comma-separated string.
-  core.List<core.String> entries;
+  core.List<core.String>? entries;
 
   CsvRow();
 
@@ -1379,8 +1356,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (entries != null) 'entries': entries,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (entries != null) 'entries': entries!,
       };
 }
 
@@ -1389,12 +1366,12 @@
 /// Derived from audit logs.
 class DeviceCompromised {
   /// The email of the user this alert was created for.
-  core.String email;
+  core.String? email;
 
   /// The list of security events.
   ///
   /// Required.
-  core.List<DeviceCompromisedSecurityDetail> events;
+  core.List<DeviceCompromisedSecurityDetail>? events;
 
   DeviceCompromised();
 
@@ -1411,10 +1388,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
         if (events != null)
-          'events': events.map((value) => value.toJson()).toList(),
+          'events': events!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1423,27 +1400,27 @@
   /// The device compromised state.
   ///
   /// Possible values are "`Compromised`" or "`Not Compromised`".
-  core.String deviceCompromisedState;
+  core.String? deviceCompromisedState;
 
   /// The device ID.
   ///
   /// Required.
-  core.String deviceId;
+  core.String? deviceId;
 
   /// The model of the device.
-  core.String deviceModel;
+  core.String? deviceModel;
 
   /// The type of the device.
-  core.String deviceType;
+  core.String? deviceType;
 
   /// Required for iOS, empty for others.
-  core.String iosVendorId;
+  core.String? iosVendorId;
 
   /// The device resource ID.
-  core.String resourceId;
+  core.String? resourceId;
 
   /// The serial number of the device.
-  core.String serialNumber;
+  core.String? serialNumber;
 
   DeviceCompromisedSecurityDetail();
 
@@ -1471,15 +1448,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (deviceCompromisedState != null)
-          'deviceCompromisedState': deviceCompromisedState,
-        if (deviceId != null) 'deviceId': deviceId,
-        if (deviceModel != null) 'deviceModel': deviceModel,
-        if (deviceType != null) 'deviceType': deviceType,
-        if (iosVendorId != null) 'iosVendorId': iosVendorId,
-        if (resourceId != null) 'resourceId': resourceId,
-        if (serialNumber != null) 'serialNumber': serialNumber,
+          'deviceCompromisedState': deviceCompromisedState!,
+        if (deviceId != null) 'deviceId': deviceId!,
+        if (deviceModel != null) 'deviceModel': deviceModel!,
+        if (deviceType != null) 'deviceType': deviceType!,
+        if (iosVendorId != null) 'iosVendorId': iosVendorId!,
+        if (resourceId != null) 'resourceId': resourceId!,
+        if (serialNumber != null) 'serialNumber': serialNumber!,
       };
 }
 
@@ -1491,7 +1468,7 @@
   /// https://cloud.google.com/dlp/ when setting up a DLP rule. Matched Cloud
   /// DLP detectors in this violation if any will be captured in the
   /// MatchInfo.predefined_detector.
-  RuleViolationInfo ruleViolationInfo;
+  RuleViolationInfo? ruleViolationInfo;
 
   DlpRuleViolation();
 
@@ -1502,16 +1479,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (ruleViolationInfo != null)
-          'ruleViolationInfo': ruleViolationInfo.toJson(),
+          'ruleViolationInfo': ruleViolationInfo!.toJson(),
       };
 }
 
 /// Domain ID of Gmail phishing alerts.
 class DomainId {
   /// The primary domain for the customer.
-  core.String customerPrimaryDomain;
+  core.String? customerPrimaryDomain;
 
   DomainId();
 
@@ -1521,9 +1498,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (customerPrimaryDomain != null)
-          'customerPrimaryDomain': customerPrimaryDomain,
+          'customerPrimaryDomain': customerPrimaryDomain!,
       };
 }
 
@@ -1532,10 +1509,10 @@
 /// Derived from audit logs.
 class DomainWideTakeoutInitiated {
   /// The email of the admin who initiated the takeout.
-  core.String email;
+  core.String? email;
 
   /// The takeout request ID.
-  core.String takeoutRequestId;
+  core.String? takeoutRequestId;
 
   DomainWideTakeoutInitiated();
 
@@ -1548,9 +1525,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
-        if (takeoutRequestId != null) 'takeoutRequestId': takeoutRequestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
+        if (takeoutRequestId != null) 'takeoutRequestId': takeoutRequestId!,
       };
 }
 
@@ -1568,34 +1545,34 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Details of a message in phishing spike alert.
 class GmailMessageInfo {
   /// The `SHA256` hash of email's attachment and all MIME parts.
-  core.List<core.String> attachmentsSha256Hash;
+  core.List<core.String>? attachmentsSha256Hash;
 
   /// The date the malicious email was sent.
-  core.String date;
+  core.String? date;
 
   /// The hash of the message body text.
-  core.String md5HashMessageBody;
+  core.String? md5HashMessageBody;
 
   /// The MD5 Hash of email's subject (only available for reported emails).
-  core.String md5HashSubject;
+  core.String? md5HashSubject;
 
   /// The snippet of the message body text (only available for reported emails).
-  core.String messageBodySnippet;
+  core.String? messageBodySnippet;
 
   /// The message ID.
-  core.String messageId;
+  core.String? messageId;
 
   /// The recipient of this email.
-  core.String recipient;
+  core.String? recipient;
 
   /// The email subject text (only available for reported emails).
-  core.String subjectText;
+  core.String? subjectText;
 
   GmailMessageInfo();
 
@@ -1628,18 +1605,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (attachmentsSha256Hash != null)
-          'attachmentsSha256Hash': attachmentsSha256Hash,
-        if (date != null) 'date': date,
+          'attachmentsSha256Hash': attachmentsSha256Hash!,
+        if (date != null) 'date': date!,
         if (md5HashMessageBody != null)
-          'md5HashMessageBody': md5HashMessageBody,
-        if (md5HashSubject != null) 'md5HashSubject': md5HashSubject,
+          'md5HashMessageBody': md5HashMessageBody!,
+        if (md5HashSubject != null) 'md5HashSubject': md5HashSubject!,
         if (messageBodySnippet != null)
-          'messageBodySnippet': messageBodySnippet,
-        if (messageId != null) 'messageId': messageId,
-        if (recipient != null) 'recipient': recipient,
-        if (subjectText != null) 'subjectText': subjectText,
+          'messageBodySnippet': messageBodySnippet!,
+        if (messageId != null) 'messageId': messageId!,
+        if (recipient != null) 'recipient': recipient!,
+        if (subjectText != null) 'subjectText': subjectText!,
       };
 }
 
@@ -1647,26 +1624,26 @@
 class GoogleOperations {
   /// The list of emails which correspond to the users directly affected by the
   /// incident.
-  core.List<core.String> affectedUserEmails;
+  core.List<core.String>? affectedUserEmails;
 
   /// Application-specific data for an incident, provided when the G Suite
   /// application which reported the incident cannot be completely restored to a
   /// valid state.
   ///
   /// Optional.
-  Attachment attachmentData;
+  Attachment? attachmentData;
 
   /// A detailed, freeform incident description.
-  core.String description;
+  core.String? description;
 
   /// A header to display above the incident message.
   ///
   /// Typcially used to attach a localized notice on the timeline for followup
   /// comms translations.
-  core.String header;
+  core.String? header;
 
   /// A one-line incident description.
-  core.String title;
+  core.String? title;
 
   GoogleOperations();
 
@@ -1691,13 +1668,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (affectedUserEmails != null)
-          'affectedUserEmails': affectedUserEmails,
-        if (attachmentData != null) 'attachmentData': attachmentData.toJson(),
-        if (description != null) 'description': description,
-        if (header != null) 'header': header,
-        if (title != null) 'title': title,
+          'affectedUserEmails': affectedUserEmails!,
+        if (attachmentData != null) 'attachmentData': attachmentData!.toJson(),
+        if (description != null) 'description': description!,
+        if (header != null) 'header': header!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -1706,7 +1683,7 @@
   /// The list of alert feedback.
   ///
   /// Feedback entries for each alert are ordered by creation time descending.
-  core.List<AlertFeedback> feedback;
+  core.List<AlertFeedback>? feedback;
 
   ListAlertFeedbackResponse();
 
@@ -1719,23 +1696,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (feedback != null)
-          'feedback': feedback.map((value) => value.toJson()).toList(),
+          'feedback': feedback!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for an alert listing request.
 class ListAlertsResponse {
   /// The list of alerts.
-  core.List<Alert> alerts;
+  core.List<Alert>? alerts;
 
   /// The token for the next page.
   ///
   /// If not empty, indicates that there may be more alerts that match the
   /// listing request; this value can be used in a subsequent ListAlertsRequest
   /// to get alerts continuing from last result of the current list call.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListAlertsResponse();
 
@@ -1751,10 +1728,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (alerts != null)
-          'alerts': alerts.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'alerts': alerts!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -1764,14 +1741,14 @@
   /// associated with the warning event.
   ///
   /// Optional.
-  core.String ipAddress;
+  core.String? ipAddress;
 
   /// The successful login time that is associated with the warning event.
   ///
   /// This isn't present for blocked login attempts.
   ///
   /// Optional.
-  core.String loginTime;
+  core.String? loginTime;
 
   LoginDetails();
 
@@ -1784,9 +1761,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (ipAddress != null) 'ipAddress': ipAddress,
-        if (loginTime != null) 'loginTime': loginTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (ipAddress != null) 'ipAddress': ipAddress!,
+        if (loginTime != null) 'loginTime': loginTime!,
       };
 }
 
@@ -1798,23 +1775,23 @@
 /// spoofing
 class MailPhishing {
   /// The domain ID.
-  DomainId domainId;
+  DomainId? domainId;
 
   /// If `true`, the email originated from within the organization.
-  core.bool isInternal;
+  core.bool? isInternal;
 
   /// The entity whose actions triggered a Gmail phishing alert.
-  MaliciousEntity maliciousEntity;
+  MaliciousEntity? maliciousEntity;
 
   /// The list of messages contained by this alert.
-  core.List<GmailMessageInfo> messages;
+  core.List<GmailMessageInfo>? messages;
 
   /// System actions on the messages.
   /// Possible string values are:
   /// - "SYSTEM_ACTION_TYPE_UNSPECIFIED" : System action is unspecified.
   /// - "NO_OPERATION" : No operation.
   /// - "REMOVED_FROM_INBOX" : Messages were removed from the inbox.
-  core.String systemActionType;
+  core.String? systemActionType;
 
   MailPhishing();
 
@@ -1841,27 +1818,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (domainId != null) 'domainId': domainId.toJson(),
-        if (isInternal != null) 'isInternal': isInternal,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (domainId != null) 'domainId': domainId!.toJson(),
+        if (isInternal != null) 'isInternal': isInternal!,
         if (maliciousEntity != null)
-          'maliciousEntity': maliciousEntity.toJson(),
+          'maliciousEntity': maliciousEntity!.toJson(),
         if (messages != null)
-          'messages': messages.map((value) => value.toJson()).toList(),
-        if (systemActionType != null) 'systemActionType': systemActionType,
+          'messages': messages!.map((value) => value.toJson()).toList(),
+        if (systemActionType != null) 'systemActionType': systemActionType!,
       };
 }
 
 /// Entity whose actions triggered a Gmail phishing alert.
 class MaliciousEntity {
   /// The header from display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// The actor who triggered a gmail phishing alert.
-  User entity;
+  User? entity;
 
   /// The sender email address.
-  core.String fromHeader;
+  core.String? fromHeader;
 
   MaliciousEntity();
 
@@ -1878,20 +1855,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (entity != null) 'entity': entity.toJson(),
-        if (fromHeader != null) 'fromHeader': fromHeader,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (entity != null) 'entity': entity!.toJson(),
+        if (fromHeader != null) 'fromHeader': fromHeader!,
       };
 }
 
 /// Proto that contains match information from the condition part of the rule.
 class MatchInfo {
   /// For matched detector predefined by Google.
-  PredefinedDetectorInfo predefinedDetector;
+  PredefinedDetectorInfo? predefinedDetector;
 
   /// For matched detector defined by administrators.
-  UserDefinedDetectorInfo userDefinedDetector;
+  UserDefinedDetectorInfo? userDefinedDetector;
 
   MatchInfo();
 
@@ -1906,11 +1883,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (predefinedDetector != null)
-          'predefinedDetector': predefinedDetector.toJson(),
+          'predefinedDetector': predefinedDetector!.toJson(),
         if (userDefinedDetector != null)
-          'userDefinedDetector': userDefinedDetector.toJson(),
+          'userDefinedDetector': userDefinedDetector!.toJson(),
       };
 }
 
@@ -1920,7 +1897,7 @@
 /// Notification\](/admin-sdk/alertcenter/guides/notifications).
 class Notification {
   /// A Google Cloud Pub/sub topic destination.
-  CloudPubsubTopic cloudPubsubTopic;
+  CloudPubsubTopic? cloudPubsubTopic;
 
   Notification();
 
@@ -1931,9 +1908,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (cloudPubsubTopic != null)
-          'cloudPubsubTopic': cloudPubsubTopic.toJson(),
+          'cloudPubsubTopic': cloudPubsubTopic!.toJson(),
       };
 }
 
@@ -1944,16 +1921,16 @@
 /// instead.
 class PhishingSpike {
   /// The domain ID.
-  DomainId domainId;
+  DomainId? domainId;
 
   /// If `true`, the email originated from within the organization.
-  core.bool isInternal;
+  core.bool? isInternal;
 
   /// The entity whose actions triggered a Gmail phishing alert.
-  MaliciousEntity maliciousEntity;
+  MaliciousEntity? maliciousEntity;
 
   /// The list of messages contained by this alert.
-  core.List<GmailMessageInfo> messages;
+  core.List<GmailMessageInfo>? messages;
 
   PhishingSpike();
 
@@ -1977,20 +1954,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (domainId != null) 'domainId': domainId.toJson(),
-        if (isInternal != null) 'isInternal': isInternal,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (domainId != null) 'domainId': domainId!.toJson(),
+        if (isInternal != null) 'isInternal': isInternal!,
         if (maliciousEntity != null)
-          'maliciousEntity': maliciousEntity.toJson(),
+          'maliciousEntity': maliciousEntity!.toJson(),
         if (messages != null)
-          'messages': messages.map((value) => value.toJson()).toList(),
+          'messages': messages!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Detector provided by Google.
 class PredefinedDetectorInfo {
   /// Name that uniquely identifies the detector.
-  core.String detectorName;
+  core.String? detectorName;
 
   PredefinedDetectorInfo();
 
@@ -2000,26 +1977,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (detectorName != null) 'detectorName': detectorName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (detectorName != null) 'detectorName': detectorName!,
       };
 }
 
 /// Requests for one application that needs default SQL setup.
 class RequestInfo {
   /// List of app developers who triggered notifications for above application.
-  core.List<core.String> appDeveloperEmail;
+  core.List<core.String>? appDeveloperEmail;
 
   /// The application that requires the SQL setup.
   ///
   /// Required.
-  core.String appKey;
+  core.String? appKey;
 
   /// Number of requests sent for this application to set up default SQL
   /// instance.
   ///
   /// Required.
-  core.String numberOfRequests;
+  core.String? numberOfRequests;
 
   RequestInfo();
 
@@ -2037,20 +2014,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appDeveloperEmail != null) 'appDeveloperEmail': appDeveloperEmail,
-        if (appKey != null) 'appKey': appKey,
-        if (numberOfRequests != null) 'numberOfRequests': numberOfRequests,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appDeveloperEmail != null) 'appDeveloperEmail': appDeveloperEmail!,
+        if (appKey != null) 'appKey': appKey!,
+        if (numberOfRequests != null) 'numberOfRequests': numberOfRequests!,
       };
 }
 
 /// Proto that contains resource information.
 class ResourceInfo {
   /// Drive file ID.
-  core.String documentId;
+  core.String? documentId;
 
   /// Title of the resource, for example email subject, or document title.
-  core.String resourceTitle;
+  core.String? resourceTitle;
 
   ResourceInfo();
 
@@ -2063,19 +2040,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (documentId != null) 'documentId': documentId,
-        if (resourceTitle != null) 'resourceTitle': resourceTitle,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (documentId != null) 'documentId': documentId!,
+        if (resourceTitle != null) 'resourceTitle': resourceTitle!,
       };
 }
 
 /// Proto that contains rule information.
 class RuleInfo {
   /// User provided name of the rule.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name that uniquely identifies the rule.
-  core.String resourceName;
+  core.String? resourceName;
 
   RuleInfo();
 
@@ -2088,9 +2065,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
 
@@ -2101,10 +2078,10 @@
   /// Possible string values are:
   /// - "DATA_SOURCE_UNSPECIFIED" : Data source is unspecified.
   /// - "DRIVE" : Drive data source.
-  core.String dataSource;
+  core.String? dataSource;
 
   /// List of matches that were found in the resource content.
-  core.List<MatchInfo> matchInfo;
+  core.List<MatchInfo>? matchInfo;
 
   /// Resource recipients.
   ///
@@ -2113,31 +2090,31 @@
   /// domains, or 'anyone' if the file was publicly accessible. If the file was
   /// private the recipients list will be empty. For Gmail, they are emails of
   /// the users or groups that the Gmail message was sent to.
-  core.List<core.String> recipients;
+  core.List<core.String>? recipients;
 
   /// Details of the resource which violated the rule.
-  ResourceInfo resourceInfo;
+  ResourceInfo? resourceInfo;
 
   /// Details of the violated rule.
-  RuleInfo ruleInfo;
+  RuleInfo? ruleInfo;
 
   /// Actions suppressed due to other actions with higher priority.
-  core.List<core.String> suppressedActionTypes;
+  core.List<core.String>? suppressedActionTypes;
 
   /// Trigger of the rule.
   /// Possible string values are:
   /// - "TRIGGER_UNSPECIFIED" : Trigger is unspecified.
   /// - "DRIVE_SHARE" : A Drive file is shared.
-  core.String trigger;
+  core.String? trigger;
 
   /// Actions applied as a consequence of the rule being triggered.
-  core.List<core.String> triggeredActionTypes;
+  core.List<core.String>? triggeredActionTypes;
 
   /// Email of the user who caused the violation.
   ///
   /// Value could be empty if not applicable, for example, a violation found by
   /// drive continuous scan.
-  core.String triggeringUserEmail;
+  core.String? triggeringUserEmail;
 
   RuleViolationInfo();
 
@@ -2182,27 +2159,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataSource != null) 'dataSource': dataSource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataSource != null) 'dataSource': dataSource!,
         if (matchInfo != null)
-          'matchInfo': matchInfo.map((value) => value.toJson()).toList(),
-        if (recipients != null) 'recipients': recipients,
-        if (resourceInfo != null) 'resourceInfo': resourceInfo.toJson(),
-        if (ruleInfo != null) 'ruleInfo': ruleInfo.toJson(),
+          'matchInfo': matchInfo!.map((value) => value.toJson()).toList(),
+        if (recipients != null) 'recipients': recipients!,
+        if (resourceInfo != null) 'resourceInfo': resourceInfo!.toJson(),
+        if (ruleInfo != null) 'ruleInfo': ruleInfo!.toJson(),
         if (suppressedActionTypes != null)
-          'suppressedActionTypes': suppressedActionTypes,
-        if (trigger != null) 'trigger': trigger,
+          'suppressedActionTypes': suppressedActionTypes!,
+        if (trigger != null) 'trigger': trigger!,
         if (triggeredActionTypes != null)
-          'triggeredActionTypes': triggeredActionTypes,
+          'triggeredActionTypes': triggeredActionTypes!,
         if (triggeringUserEmail != null)
-          'triggeringUserEmail': triggeringUserEmail,
+          'triggeringUserEmail': triggeringUserEmail!,
       };
 }
 
 /// Customer-level settings.
 class Settings {
   /// The list of notifications.
-  core.List<Notification> notifications;
+  core.List<Notification>? notifications;
 
   Settings();
 
@@ -2215,10 +2192,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (notifications != null)
           'notifications':
-              notifications.map((value) => value.toJson()).toList(),
+              notifications!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2227,7 +2204,7 @@
 /// Derived from audit logs.
 class StateSponsoredAttack {
   /// The email of the user this incident was created for.
-  core.String email;
+  core.String? email;
 
   StateSponsoredAttack();
 
@@ -2237,8 +2214,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
       };
 }
 
@@ -2251,7 +2228,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -2259,13 +2236,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -2289,10 +2266,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -2301,12 +2278,12 @@
 /// Derived from audit logs.
 class SuspiciousActivity {
   /// The email of the user this alert was created for.
-  core.String email;
+  core.String? email;
 
   /// The list of security events.
   ///
   /// Required.
-  core.List<SuspiciousActivitySecurityDetail> events;
+  core.List<SuspiciousActivitySecurityDetail>? events;
 
   SuspiciousActivity();
 
@@ -2323,10 +2300,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
         if (events != null)
-          'events': events.map((value) => value.toJson()).toList(),
+          'events': events!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2335,31 +2312,31 @@
   /// The device ID.
   ///
   /// Required.
-  core.String deviceId;
+  core.String? deviceId;
 
   /// The model of the device.
-  core.String deviceModel;
+  core.String? deviceModel;
 
   /// The device property which was changed.
-  core.String deviceProperty;
+  core.String? deviceProperty;
 
   /// The type of the device.
-  core.String deviceType;
+  core.String? deviceType;
 
   /// Required for iOS, empty for others.
-  core.String iosVendorId;
+  core.String? iosVendorId;
 
   /// The new value of the device property after the change.
-  core.String newValue;
+  core.String? newValue;
 
   /// The old value of the device property before the change.
-  core.String oldValue;
+  core.String? oldValue;
 
   /// The device resource ID.
-  core.String resourceId;
+  core.String? resourceId;
 
   /// The serial number of the device.
-  core.String serialNumber;
+  core.String? serialNumber;
 
   SuspiciousActivitySecurityDetail();
 
@@ -2393,16 +2370,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (deviceId != null) 'deviceId': deviceId,
-        if (deviceModel != null) 'deviceModel': deviceModel,
-        if (deviceProperty != null) 'deviceProperty': deviceProperty,
-        if (deviceType != null) 'deviceType': deviceType,
-        if (iosVendorId != null) 'iosVendorId': iosVendorId,
-        if (newValue != null) 'newValue': newValue,
-        if (oldValue != null) 'oldValue': oldValue,
-        if (resourceId != null) 'resourceId': resourceId,
-        if (serialNumber != null) 'serialNumber': serialNumber,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (deviceId != null) 'deviceId': deviceId!,
+        if (deviceModel != null) 'deviceModel': deviceModel!,
+        if (deviceProperty != null) 'deviceProperty': deviceProperty!,
+        if (deviceType != null) 'deviceType': deviceType!,
+        if (iosVendorId != null) 'iosVendorId': iosVendorId!,
+        if (newValue != null) 'newValue': newValue!,
+        if (oldValue != null) 'oldValue': oldValue!,
+        if (resourceId != null) 'resourceId': resourceId!,
+        if (serialNumber != null) 'serialNumber': serialNumber!,
       };
 }
 
@@ -2414,7 +2391,7 @@
   /// Inferred from the caller identity if not provided.
   ///
   /// Optional.
-  core.String customerId;
+  core.String? customerId;
 
   UndeleteAlertRequest();
 
@@ -2424,18 +2401,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (customerId != null) 'customerId': customerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (customerId != null) 'customerId': customerId!,
       };
 }
 
 /// A user.
 class User {
   /// Display name of the user.
-  core.String displayName;
+  core.String? displayName;
 
   /// Email address of the user.
-  core.String emailAddress;
+  core.String? emailAddress;
 
   User();
 
@@ -2448,19 +2425,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (emailAddress != null) 'emailAddress': emailAddress,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (emailAddress != null) 'emailAddress': emailAddress!,
       };
 }
 
 /// Detector defined by administrators.
 class UserDefinedDetectorInfo {
   /// Display name of the detector.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name that uniquely identifies the detector.
-  core.String resourceName;
+  core.String? resourceName;
 
   UserDefinedDetectorInfo();
 
@@ -2473,8 +2450,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
diff --git a/generated/googleapis_beta/lib/analyticsadmin/v1alpha.dart b/generated/googleapis_beta/lib/analyticsadmin/v1alpha.dart
index a34e455..b6f2304 100644
--- a/generated/googleapis_beta/lib/analyticsadmin/v1alpha.dart
+++ b/generated/googleapis_beta/lib/analyticsadmin/v1alpha.dart
@@ -107,9 +107,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListAccountSummariesResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -164,11 +164,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -204,11 +201,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaAccount> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -248,11 +242,8 @@
   async.Future<GoogleAnalyticsAdminV1alphaDataSharingSettings>
       getDataSharingSettings(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -301,10 +292,10 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListAccountsResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.bool showDeleted,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.bool? showDeleted,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -352,14 +343,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaAccount> patch(
     GoogleAnalyticsAdminV1alphaAccount request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -397,10 +384,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaProvisionAccountTicketResponse>
       provisionAccountTicket(
     GoogleAnalyticsAdminV1alphaProvisionAccountTicketRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -453,13 +439,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaAuditUserLinksResponse> audit(
     GoogleAnalyticsAdminV1alphaAuditUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -508,13 +490,9 @@
       batchCreate(
     GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -557,13 +535,9 @@
   async.Future<GoogleProtobufEmpty> batchDelete(
     GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -607,12 +581,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse> batchGet(
     core.String parent, {
-    core.List<core.String> names,
-    core.String $fields,
+    core.List<core.String>? names,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (names != null) 'names': names,
       if ($fields != null) 'fields': [$fields],
@@ -657,13 +628,9 @@
       batchUpdate(
     GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -711,14 +678,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaUserLink> create(
     GoogleAnalyticsAdminV1alphaUserLink request,
     core.String parent, {
-    core.bool notifyNewUser,
-    core.String $fields,
+    core.bool? notifyNewUser,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (notifyNewUser != null) 'notifyNewUser': ['${notifyNewUser}'],
       if ($fields != null) 'fields': [$fields],
@@ -757,11 +720,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -796,11 +756,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaUserLink> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -845,13 +802,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListUserLinksResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -893,13 +847,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaUserLink> patch(
     GoogleAnalyticsAdminV1alphaUserLink request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -953,10 +903,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaProperty> create(
     GoogleAnalyticsAdminV1alphaProperty request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1000,11 +949,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1040,11 +986,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaProperty> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1103,11 +1046,11 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListPropertiesResponse> list({
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.bool showDeleted,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.bool? showDeleted,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
@@ -1156,14 +1099,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaProperty> patch(
     GoogleAnalyticsAdminV1alphaProperty request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1217,13 +1156,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaAndroidAppDataStream> create(
     GoogleAnalyticsAdminV1alphaAndroidAppDataStream request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1264,11 +1199,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1306,11 +1238,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaAndroidAppDataStream> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1361,13 +1290,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaListAndroidAppDataStreamsResponse>
       list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1417,14 +1343,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaAndroidAppDataStream> patch(
     GoogleAnalyticsAdminV1alphaAndroidAppDataStream request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1474,13 +1396,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaFirebaseLink> create(
     GoogleAnalyticsAdminV1alphaFirebaseLink request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1520,11 +1438,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1572,13 +1487,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListFirebaseLinksResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1625,14 +1537,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaFirebaseLink> patch(
     GoogleAnalyticsAdminV1alphaFirebaseLink request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1679,13 +1587,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaGoogleAdsLink> create(
     GoogleAnalyticsAdminV1alphaGoogleAdsLink request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1723,11 +1627,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1771,13 +1672,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListGoogleAdsLinksResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1826,14 +1724,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaGoogleAdsLink> patch(
     GoogleAnalyticsAdminV1alphaGoogleAdsLink request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1887,13 +1781,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaIosAppDataStream> create(
     GoogleAnalyticsAdminV1alphaIosAppDataStream request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1933,11 +1823,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1974,11 +1861,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaIosAppDataStream> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2027,13 +1911,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListIosAppDataStreamsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2082,14 +1963,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaIosAppDataStream> patch(
     GoogleAnalyticsAdminV1alphaIosAppDataStream request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2144,13 +2021,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaAuditUserLinksResponse> audit(
     GoogleAnalyticsAdminV1alphaAuditUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2199,13 +2072,9 @@
       batchCreate(
     GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2248,13 +2117,9 @@
   async.Future<GoogleProtobufEmpty> batchDelete(
     GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2298,12 +2163,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse> batchGet(
     core.String parent, {
-    core.List<core.String> names,
-    core.String $fields,
+    core.List<core.String>? names,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (names != null) 'names': names,
       if ($fields != null) 'fields': [$fields],
@@ -2348,13 +2210,9 @@
       batchUpdate(
     GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2402,14 +2260,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaUserLink> create(
     GoogleAnalyticsAdminV1alphaUserLink request,
     core.String parent, {
-    core.bool notifyNewUser,
-    core.String $fields,
+    core.bool? notifyNewUser,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (notifyNewUser != null) 'notifyNewUser': ['${notifyNewUser}'],
       if ($fields != null) 'fields': [$fields],
@@ -2448,11 +2302,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2487,11 +2338,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaUserLink> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2536,13 +2384,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListUserLinksResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2584,13 +2429,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaUserLink> patch(
     GoogleAnalyticsAdminV1alphaUserLink request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2637,13 +2478,9 @@
   async.Future<GoogleAnalyticsAdminV1alphaWebDataStream> create(
     GoogleAnalyticsAdminV1alphaWebDataStream request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2683,11 +2520,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2724,11 +2558,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaWebDataStream> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2770,11 +2601,8 @@
   async.Future<GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings>
       getEnhancedMeasurementSettings(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2815,11 +2643,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaGlobalSiteTag> getGlobalSiteTag(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2867,13 +2692,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleAnalyticsAdminV1alphaListWebDataStreamsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2922,14 +2744,10 @@
   async.Future<GoogleAnalyticsAdminV1alphaWebDataStream> patch(
     GoogleAnalyticsAdminV1alphaWebDataStream request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2981,14 +2799,10 @@
       updateEnhancedMeasurementSettings(
     GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -3012,7 +2826,7 @@
   /// Time when this account was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Indicates whether this Account is soft-deleted or not.
   ///
@@ -3020,29 +2834,29 @@
   /// requested.
   ///
   /// Output only.
-  core.bool deleted;
+  core.bool? deleted;
 
   /// Human-readable display name for this account.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of this account.
   ///
   /// Format: accounts/{account} Example: "accounts/100"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Country of business.
   ///
   /// Must be a Unicode CLDR region code.
-  core.String regionCode;
+  core.String? regionCode;
 
   /// Time when account payload fields were last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleAnalyticsAdminV1alphaAccount();
 
@@ -3067,13 +2881,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (deleted != null) 'deleted': deleted,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (regionCode != null) 'regionCode': regionCode,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (deleted != null) 'deleted': deleted!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (regionCode != null) 'regionCode': regionCode!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -3082,18 +2896,18 @@
 class GoogleAnalyticsAdminV1alphaAccountSummary {
   /// Resource name of account referred to by this account summary Format:
   /// accounts/{account_id} Example: "accounts/1000"
-  core.String account;
+  core.String? account;
 
   /// Display name for the account referred to in this account summary.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name for this account summary.
   ///
   /// Format: accountSummaries/{account_id} Example: "accountSummaries/1000"
-  core.String name;
+  core.String? name;
 
   /// List of summaries for child accounts of this account.
-  core.List<GoogleAnalyticsAdminV1alphaPropertySummary> propertySummaries;
+  core.List<GoogleAnalyticsAdminV1alphaPropertySummary>? propertySummaries;
 
   GoogleAnalyticsAdminV1alphaAccountSummary();
 
@@ -3116,13 +2930,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (account != null) 'account': account,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (account != null) 'account': account!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
         if (propertySummaries != null)
           'propertySummaries':
-              propertySummaries.map((value) => value.toJson()).toList(),
+              propertySummaries!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3131,19 +2945,19 @@
   /// Time when this stream was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Human-readable display name for the Data Stream.
   ///
   /// The max allowed display name length is 255 UTF-16 code units.
-  core.String displayName;
+  core.String? displayName;
 
   /// ID of the corresponding Android app in Firebase, if any.
   ///
   /// This ID can change if the Android app is deleted and recreated.
   ///
   /// Output only.
-  core.String firebaseAppId;
+  core.String? firebaseAppId;
 
   /// Resource name of this Data Stream.
   ///
@@ -3151,19 +2965,19 @@
   /// Example: "properties/1000/androidAppDataStreams/2000"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The package name for the app being measured.
   ///
   /// Example: "com.example.myandroidapp"
   ///
   /// Immutable.
-  core.String packageName;
+  core.String? packageName;
 
   /// Time when stream payload fields were last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleAnalyticsAdminV1alphaAndroidAppDataStream();
 
@@ -3188,13 +3002,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (displayName != null) 'displayName': displayName,
-        if (firebaseAppId != null) 'firebaseAppId': firebaseAppId,
-        if (name != null) 'name': name,
-        if (packageName != null) 'packageName': packageName,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (displayName != null) 'displayName': displayName!,
+        if (firebaseAppId != null) 'firebaseAppId': firebaseAppId!,
+        if (name != null) 'name': name!,
+        if (packageName != null) 'packageName': packageName!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -3204,19 +3018,19 @@
   ///
   /// Format: predefinedRoles/read Excludes roles that are inherited from an
   /// account (if this is for a property), group, or organization admin role.
-  core.List<core.String> directRoles;
+  core.List<core.String>? directRoles;
 
   /// Union of all permissions a user has at this account or property (includes
   /// direct permissions, group-inherited permissions, etc.).
   ///
   /// Format: predefinedRoles/read
-  core.List<core.String> effectiveRoles;
+  core.List<core.String>? effectiveRoles;
 
   /// Email address of the linked user
-  core.String emailAddress;
+  core.String? emailAddress;
 
   /// Example format: properties/1234/userLinks/5678
-  core.String name;
+  core.String? name;
 
   GoogleAnalyticsAdminV1alphaAuditUserLink();
 
@@ -3239,11 +3053,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (directRoles != null) 'directRoles': directRoles,
-        if (effectiveRoles != null) 'effectiveRoles': effectiveRoles,
-        if (emailAddress != null) 'emailAddress': emailAddress,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (directRoles != null) 'directRoles': directRoles!,
+        if (effectiveRoles != null) 'effectiveRoles': effectiveRoles!,
+        if (emailAddress != null) 'emailAddress': emailAddress!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -3254,14 +3068,14 @@
   /// The service may return fewer than this value. If unspecified, at most 1000
   /// user links will be returned. The maximum value is 5000; values above 5000
   /// will be coerced to 5000.
-  core.int pageSize;
+  core.int? pageSize;
 
   /// A page token, received from a previous `AuditUserLinks` call.
   ///
   /// Provide this to retrieve the subsequent page. When paginating, all other
   /// parameters provided to `AuditUserLinks` must match the call that provided
   /// the page token.
-  core.String pageToken;
+  core.String? pageToken;
 
   GoogleAnalyticsAdminV1alphaAuditUserLinksRequest();
 
@@ -3274,9 +3088,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (pageSize != null) 'pageSize': pageSize,
-        if (pageToken != null) 'pageToken': pageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (pageSize != null) 'pageSize': pageSize!,
+        if (pageToken != null) 'pageToken': pageToken!,
       };
 }
 
@@ -3285,12 +3099,12 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// List of AuditUserLinks.
   ///
   /// These will be ordered stably, but in an arbitrary order.
-  core.List<GoogleAnalyticsAdminV1alphaAuditUserLink> userLinks;
+  core.List<GoogleAnalyticsAdminV1alphaAuditUserLink>? userLinks;
 
   GoogleAnalyticsAdminV1alphaAuditUserLinksResponse();
 
@@ -3307,10 +3121,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (userLinks != null)
-          'userLinks': userLinks.map((value) => value.toJson()).toList(),
+          'userLinks': userLinks!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3323,14 +3137,14 @@
   /// each individual request is ignored.
   ///
   /// Optional.
-  core.bool notifyNewUsers;
+  core.bool? notifyNewUsers;
 
   /// The requests specifying the user links to create.
   ///
   /// A maximum of 1000 user links can be created in a batch.
   ///
   /// Required.
-  core.List<GoogleAnalyticsAdminV1alphaCreateUserLinkRequest> requests;
+  core.List<GoogleAnalyticsAdminV1alphaCreateUserLinkRequest>? requests;
 
   GoogleAnalyticsAdminV1alphaBatchCreateUserLinksRequest();
 
@@ -3348,17 +3162,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (notifyNewUsers != null) 'notifyNewUsers': notifyNewUsers,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (notifyNewUsers != null) 'notifyNewUsers': notifyNewUsers!,
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for BatchCreateUserLinks RPC.
 class GoogleAnalyticsAdminV1alphaBatchCreateUserLinksResponse {
   /// The user links created.
-  core.List<GoogleAnalyticsAdminV1alphaUserLink> userLinks;
+  core.List<GoogleAnalyticsAdminV1alphaUserLink>? userLinks;
 
   GoogleAnalyticsAdminV1alphaBatchCreateUserLinksResponse();
 
@@ -3373,9 +3187,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (userLinks != null)
-          'userLinks': userLinks.map((value) => value.toJson()).toList(),
+          'userLinks': userLinks!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3386,7 +3200,7 @@
   /// A maximum of 1000 user links can be updated in a batch.
   ///
   /// Required.
-  core.List<GoogleAnalyticsAdminV1alphaDeleteUserLinkRequest> requests;
+  core.List<GoogleAnalyticsAdminV1alphaDeleteUserLinkRequest>? requests;
 
   GoogleAnalyticsAdminV1alphaBatchDeleteUserLinksRequest();
 
@@ -3401,16 +3215,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for BatchGetUserLinks RPC.
 class GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse {
   /// The requested user links.
-  core.List<GoogleAnalyticsAdminV1alphaUserLink> userLinks;
+  core.List<GoogleAnalyticsAdminV1alphaUserLink>? userLinks;
 
   GoogleAnalyticsAdminV1alphaBatchGetUserLinksResponse();
 
@@ -3425,9 +3239,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (userLinks != null)
-          'userLinks': userLinks.map((value) => value.toJson()).toList(),
+          'userLinks': userLinks!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3438,7 +3252,7 @@
   /// A maximum of 1000 user links can be updated in a batch.
   ///
   /// Required.
-  core.List<GoogleAnalyticsAdminV1alphaUpdateUserLinkRequest> requests;
+  core.List<GoogleAnalyticsAdminV1alphaUpdateUserLinkRequest>? requests;
 
   GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksRequest();
 
@@ -3453,16 +3267,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for BatchUpdateUserLinks RPC.
 class GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksResponse {
   /// The user links updated.
-  core.List<GoogleAnalyticsAdminV1alphaUserLink> userLinks;
+  core.List<GoogleAnalyticsAdminV1alphaUserLink>? userLinks;
 
   GoogleAnalyticsAdminV1alphaBatchUpdateUserLinksResponse();
 
@@ -3477,9 +3291,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (userLinks != null)
-          'userLinks': userLinks.map((value) => value.toJson()).toList(),
+          'userLinks': userLinks!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3496,17 +3310,17 @@
   /// permissions to the resource.
   ///
   /// Optional.
-  core.bool notifyNewUser;
+  core.bool? notifyNewUser;
 
   /// Example format: accounts/1234
   ///
   /// Required.
-  core.String parent;
+  core.String? parent;
 
   /// The user link to create.
   ///
   /// Required.
-  GoogleAnalyticsAdminV1alphaUserLink userLink;
+  GoogleAnalyticsAdminV1alphaUserLink? userLink;
 
   GoogleAnalyticsAdminV1alphaCreateUserLinkRequest();
 
@@ -3523,10 +3337,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (notifyNewUser != null) 'notifyNewUser': notifyNewUser,
-        if (parent != null) 'parent': parent,
-        if (userLink != null) 'userLink': userLink.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (notifyNewUser != null) 'notifyNewUser': notifyNewUser!,
+        if (parent != null) 'parent': parent!,
+        if (userLink != null) 'userLink': userLink!.toJson(),
       };
 }
 
@@ -3539,28 +3353,28 @@
   /// "accounts/1000/dataSharingSettings"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Allows any of Google sales to access the data in order to suggest
   /// configuration changes to improve results.
-  core.bool sharingWithGoogleAnySalesEnabled;
+  core.bool? sharingWithGoogleAnySalesEnabled;
 
   /// Allows Google sales teams that are assigned to the customer to access the
   /// data in order to suggest configuration changes to improve results.
   ///
   /// Sales team restrictions still apply when enabled.
-  core.bool sharingWithGoogleAssignedSalesEnabled;
+  core.bool? sharingWithGoogleAssignedSalesEnabled;
 
   /// Allows Google to use the data to improve other Google products or
   /// services.
-  core.bool sharingWithGoogleProductsEnabled;
+  core.bool? sharingWithGoogleProductsEnabled;
 
   /// Allows Google support to access the data in order to help troubleshoot
   /// issues.
-  core.bool sharingWithGoogleSupportEnabled;
+  core.bool? sharingWithGoogleSupportEnabled;
 
   /// Allows Google to share the data anonymously in aggregate form with others.
-  core.bool sharingWithOthersEnabled;
+  core.bool? sharingWithOthersEnabled;
 
   GoogleAnalyticsAdminV1alphaDataSharingSettings();
 
@@ -3589,19 +3403,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
         if (sharingWithGoogleAnySalesEnabled != null)
-          'sharingWithGoogleAnySalesEnabled': sharingWithGoogleAnySalesEnabled,
+          'sharingWithGoogleAnySalesEnabled': sharingWithGoogleAnySalesEnabled!,
         if (sharingWithGoogleAssignedSalesEnabled != null)
           'sharingWithGoogleAssignedSalesEnabled':
-              sharingWithGoogleAssignedSalesEnabled,
+              sharingWithGoogleAssignedSalesEnabled!,
         if (sharingWithGoogleProductsEnabled != null)
-          'sharingWithGoogleProductsEnabled': sharingWithGoogleProductsEnabled,
+          'sharingWithGoogleProductsEnabled': sharingWithGoogleProductsEnabled!,
         if (sharingWithGoogleSupportEnabled != null)
-          'sharingWithGoogleSupportEnabled': sharingWithGoogleSupportEnabled,
+          'sharingWithGoogleSupportEnabled': sharingWithGoogleSupportEnabled!,
         if (sharingWithOthersEnabled != null)
-          'sharingWithOthersEnabled': sharingWithOthersEnabled,
+          'sharingWithOthersEnabled': sharingWithOthersEnabled!,
       };
 }
 
@@ -3610,7 +3424,7 @@
   /// Example format: accounts/1234/userLinks/5678
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   GoogleAnalyticsAdminV1alphaDeleteUserLinkRequest();
 
@@ -3620,8 +3434,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
       };
 }
 
@@ -3631,7 +3445,7 @@
   /// If enabled, capture a file download event each time a link is clicked with
   /// a common document, compressed file, application, video, or audio
   /// extension.
-  core.bool fileDownloadsEnabled;
+  core.bool? fileDownloadsEnabled;
 
   /// Resource name of this Data Stream.
   ///
@@ -3640,57 +3454,57 @@
   /// Example: "properties/1000/webDataStreams/2000/enhancedMeasurementSettings"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// If enabled, capture an outbound click event each time a visitor clicks a
   /// link that leads them away from your domain.
-  core.bool outboundClicksEnabled;
+  core.bool? outboundClicksEnabled;
 
   /// If enabled, capture a page view event each time the website changes the
   /// browser history state.
-  core.bool pageChangesEnabled;
+  core.bool? pageChangesEnabled;
 
   /// If enabled, capture a page view event each time a page loads.
   ///
   /// Output only.
-  core.bool pageLoadsEnabled;
+  core.bool? pageLoadsEnabled;
 
   /// If enabled, capture a page view event each time a page loads or the
   /// website changes the browser history state.
   ///
   /// Output only.
-  core.bool pageViewsEnabled;
+  core.bool? pageViewsEnabled;
 
   /// If enabled, capture scroll events each time a visitor gets to the bottom
   /// of a page.
-  core.bool scrollsEnabled;
+  core.bool? scrollsEnabled;
 
   /// URL query parameters to interpret as site search parameters.
   ///
   /// Max length is 1024 characters. Must not be empty.
   ///
   /// Required.
-  core.String searchQueryParameter;
+  core.String? searchQueryParameter;
 
   /// If enabled, capture a view search results event each time a visitor
   /// performs a search on your site (based on a query parameter).
-  core.bool siteSearchEnabled;
+  core.bool? siteSearchEnabled;
 
   /// Indicates whether Enhanced Measurement Settings will be used to
   /// automatically measure interactions and content on this web stream.
   ///
   /// Changing this value does not affect the settings themselves, but
   /// determines whether they are respected.
-  core.bool streamEnabled;
+  core.bool? streamEnabled;
 
   /// Additional URL query parameters.
   ///
   /// Max length is 1024 characters.
-  core.String uriQueryParameter;
+  core.String? uriQueryParameter;
 
   /// If enabled, capture video play, progress, and complete events as visitors
   /// view embedded videos on your site.
-  core.bool videoEngagementEnabled;
+  core.bool? videoEngagementEnabled;
 
   GoogleAnalyticsAdminV1alphaEnhancedMeasurementSettings();
 
@@ -3734,24 +3548,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (fileDownloadsEnabled != null)
-          'fileDownloadsEnabled': fileDownloadsEnabled,
-        if (name != null) 'name': name,
+          'fileDownloadsEnabled': fileDownloadsEnabled!,
+        if (name != null) 'name': name!,
         if (outboundClicksEnabled != null)
-          'outboundClicksEnabled': outboundClicksEnabled,
+          'outboundClicksEnabled': outboundClicksEnabled!,
         if (pageChangesEnabled != null)
-          'pageChangesEnabled': pageChangesEnabled,
-        if (pageLoadsEnabled != null) 'pageLoadsEnabled': pageLoadsEnabled,
-        if (pageViewsEnabled != null) 'pageViewsEnabled': pageViewsEnabled,
-        if (scrollsEnabled != null) 'scrollsEnabled': scrollsEnabled,
+          'pageChangesEnabled': pageChangesEnabled!,
+        if (pageLoadsEnabled != null) 'pageLoadsEnabled': pageLoadsEnabled!,
+        if (pageViewsEnabled != null) 'pageViewsEnabled': pageViewsEnabled!,
+        if (scrollsEnabled != null) 'scrollsEnabled': scrollsEnabled!,
         if (searchQueryParameter != null)
-          'searchQueryParameter': searchQueryParameter,
-        if (siteSearchEnabled != null) 'siteSearchEnabled': siteSearchEnabled,
-        if (streamEnabled != null) 'streamEnabled': streamEnabled,
-        if (uriQueryParameter != null) 'uriQueryParameter': uriQueryParameter,
+          'searchQueryParameter': searchQueryParameter!,
+        if (siteSearchEnabled != null) 'siteSearchEnabled': siteSearchEnabled!,
+        if (streamEnabled != null) 'streamEnabled': streamEnabled!,
+        if (uriQueryParameter != null) 'uriQueryParameter': uriQueryParameter!,
         if (videoEngagementEnabled != null)
-          'videoEngagementEnabled': videoEngagementEnabled,
+          'videoEngagementEnabled': videoEngagementEnabled!,
       };
 }
 
@@ -3760,7 +3574,7 @@
   /// Time when this FirebaseLink was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Maximum user access to the GA4 property allowed to admins of the linked
   /// Firebase project.
@@ -3773,12 +3587,12 @@
   /// the Analytics property, but may not manage the Firebase link.
   /// - "EDITOR_INCLUDING_LINK_MANAGEMENT" : Firebase users have edit access to
   /// the Analytics property and may manage the Firebase link.
-  core.String maximumUserAccess;
+  core.String? maximumUserAccess;
 
   /// Example format: properties/1234/firebaseLinks/5678
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Firebase project resource name.
   ///
@@ -3789,7 +3603,7 @@
   /// 'projects/1234'
   ///
   /// Immutable.
-  core.String project;
+  core.String? project;
 
   GoogleAnalyticsAdminV1alphaFirebaseLink();
 
@@ -3808,11 +3622,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (maximumUserAccess != null) 'maximumUserAccess': maximumUserAccess,
-        if (name != null) 'name': name,
-        if (project != null) 'project': project,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (maximumUserAccess != null) 'maximumUserAccess': maximumUserAccess!,
+        if (name != null) 'name': name!,
+        if (project != null) 'project': project!,
       };
 }
 
@@ -3824,13 +3638,13 @@
   /// Format: properties/{propertyId}/globalSiteTag
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// JavaScript code snippet to be pasted as the first item into the head tag
   /// of every webpage to measure.
   ///
   /// Immutable.
-  core.String snippet;
+  core.String? snippet;
 
   GoogleAnalyticsAdminV1alphaGlobalSiteTag();
 
@@ -3843,9 +3657,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (snippet != null) 'snippet': snippet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (snippet != null) 'snippet': snippet!,
       };
 }
 
@@ -3856,40 +3670,40 @@
   /// Automatically publish my Google Analytics audience lists and Google
   /// Analytics remarketing events/parameters to the linked Google Ads account.
   /// If this field is not set on create/update it will be defaulted to true.
-  core.bool adsPersonalizationEnabled;
+  core.bool? adsPersonalizationEnabled;
 
   /// If true, this link is for a Google Ads manager account.
   ///
   /// Output only.
-  core.bool canManageClients;
+  core.bool? canManageClients;
 
   /// Time when this link was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Google Ads customer ID.
   ///
   /// Immutable.
-  core.String customerId;
+  core.String? customerId;
 
   /// Email address of the user that created the link.
   ///
   /// An empty string will be returned if the email address can't be retrieved.
   ///
   /// Output only.
-  core.String emailAddress;
+  core.String? emailAddress;
 
   /// Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note:
   /// googleAdsLinkId is not the Google Ads customer ID.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Time when this link was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleAnalyticsAdminV1alphaGoogleAdsLink();
 
@@ -3918,15 +3732,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (adsPersonalizationEnabled != null)
-          'adsPersonalizationEnabled': adsPersonalizationEnabled,
-        if (canManageClients != null) 'canManageClients': canManageClients,
-        if (createTime != null) 'createTime': createTime,
-        if (customerId != null) 'customerId': customerId,
-        if (emailAddress != null) 'emailAddress': emailAddress,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
+          'adsPersonalizationEnabled': adsPersonalizationEnabled!,
+        if (canManageClients != null) 'canManageClients': canManageClients!,
+        if (createTime != null) 'createTime': createTime!,
+        if (customerId != null) 'customerId': customerId!,
+        if (emailAddress != null) 'emailAddress': emailAddress!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -3935,24 +3749,24 @@
   /// The Apple App Store Bundle ID for the app Example: "com.example.myiosapp"
   ///
   /// Required. Immutable.
-  core.String bundleId;
+  core.String? bundleId;
 
   /// Time when this stream was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Human-readable display name for the Data Stream.
   ///
   /// The max allowed display name length is 255 UTF-16 code units.
-  core.String displayName;
+  core.String? displayName;
 
   /// ID of the corresponding iOS app in Firebase, if any.
   ///
   /// This ID can change if the iOS app is deleted and recreated.
   ///
   /// Output only.
-  core.String firebaseAppId;
+  core.String? firebaseAppId;
 
   /// Resource name of this Data Stream.
   ///
@@ -3960,12 +3774,12 @@
   /// "properties/1000/iosAppDataStreams/2000"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Time when stream payload fields were last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleAnalyticsAdminV1alphaIosAppDataStream();
 
@@ -3990,25 +3804,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bundleId != null) 'bundleId': bundleId,
-        if (createTime != null) 'createTime': createTime,
-        if (displayName != null) 'displayName': displayName,
-        if (firebaseAppId != null) 'firebaseAppId': firebaseAppId,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bundleId != null) 'bundleId': bundleId!,
+        if (createTime != null) 'createTime': createTime!,
+        if (displayName != null) 'displayName': displayName!,
+        if (firebaseAppId != null) 'firebaseAppId': firebaseAppId!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// Response message for ListAccountSummaries RPC.
 class GoogleAnalyticsAdminV1alphaListAccountSummariesResponse {
   /// Account summaries of all accounts the caller has access to.
-  core.List<GoogleAnalyticsAdminV1alphaAccountSummary> accountSummaries;
+  core.List<GoogleAnalyticsAdminV1alphaAccountSummary>? accountSummaries;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleAnalyticsAdminV1alphaListAccountSummariesResponse();
 
@@ -4026,23 +3840,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (accountSummaries != null)
           'accountSummaries':
-              accountSummaries.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              accountSummaries!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Request message for ListAccounts RPC.
 class GoogleAnalyticsAdminV1alphaListAccountsResponse {
   /// Results that were accessible to the caller.
-  core.List<GoogleAnalyticsAdminV1alphaAccount> accounts;
+  core.List<GoogleAnalyticsAdminV1alphaAccount>? accounts;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleAnalyticsAdminV1alphaListAccountsResponse();
 
@@ -4059,10 +3873,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (accounts != null)
-          'accounts': accounts.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'accounts': accounts!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4070,13 +3884,13 @@
 class GoogleAnalyticsAdminV1alphaListAndroidAppDataStreamsResponse {
   /// Results that matched the filter criteria and were accessible to the
   /// caller.
-  core.List<GoogleAnalyticsAdminV1alphaAndroidAppDataStream>
+  core.List<GoogleAnalyticsAdminV1alphaAndroidAppDataStream>?
       androidAppDataStreams;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleAnalyticsAdminV1alphaListAndroidAppDataStreamsResponse();
 
@@ -4094,11 +3908,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (androidAppDataStreams != null)
           'androidAppDataStreams':
-              androidAppDataStreams.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              androidAppDataStreams!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4107,14 +3921,14 @@
   /// List of FirebaseLinks.
   ///
   /// This will have at most one value.
-  core.List<GoogleAnalyticsAdminV1alphaFirebaseLink> firebaseLinks;
+  core.List<GoogleAnalyticsAdminV1alphaFirebaseLink>? firebaseLinks;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages. Currently, Google
   /// Analytics supports only one FirebaseLink per property, so this will never
   /// be populated.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleAnalyticsAdminV1alphaListFirebaseLinksResponse();
 
@@ -4132,23 +3946,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (firebaseLinks != null)
           'firebaseLinks':
-              firebaseLinks.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              firebaseLinks!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for ListGoogleAdsLinks RPC.
 class GoogleAnalyticsAdminV1alphaListGoogleAdsLinksResponse {
   /// List of GoogleAdsLinks.
-  core.List<GoogleAnalyticsAdminV1alphaGoogleAdsLink> googleAdsLinks;
+  core.List<GoogleAnalyticsAdminV1alphaGoogleAdsLink>? googleAdsLinks;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleAnalyticsAdminV1alphaListGoogleAdsLinksResponse();
 
@@ -4166,11 +3980,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (googleAdsLinks != null)
           'googleAdsLinks':
-              googleAdsLinks.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              googleAdsLinks!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4178,12 +3992,12 @@
 class GoogleAnalyticsAdminV1alphaListIosAppDataStreamsResponse {
   /// Results that matched the filter criteria and were accessible to the
   /// caller.
-  core.List<GoogleAnalyticsAdminV1alphaIosAppDataStream> iosAppDataStreams;
+  core.List<GoogleAnalyticsAdminV1alphaIosAppDataStream>? iosAppDataStreams;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleAnalyticsAdminV1alphaListIosAppDataStreamsResponse();
 
@@ -4201,11 +4015,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (iosAppDataStreams != null)
           'iosAppDataStreams':
-              iosAppDataStreams.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              iosAppDataStreams!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4214,11 +4028,11 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Results that matched the filter criteria and were accessible to the
   /// caller.
-  core.List<GoogleAnalyticsAdminV1alphaProperty> properties;
+  core.List<GoogleAnalyticsAdminV1alphaProperty>? properties;
 
   GoogleAnalyticsAdminV1alphaListPropertiesResponse();
 
@@ -4235,10 +4049,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (properties != null)
-          'properties': properties.map((value) => value.toJson()).toList(),
+          'properties': properties!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4247,12 +4061,12 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// List of UserLinks.
   ///
   /// These will be ordered stably, but in an arbitrary order.
-  core.List<GoogleAnalyticsAdminV1alphaUserLink> userLinks;
+  core.List<GoogleAnalyticsAdminV1alphaUserLink>? userLinks;
 
   GoogleAnalyticsAdminV1alphaListUserLinksResponse();
 
@@ -4269,10 +4083,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (userLinks != null)
-          'userLinks': userLinks.map((value) => value.toJson()).toList(),
+          'userLinks': userLinks!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4281,11 +4095,11 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Results that matched the filter criteria and were accessible to the
   /// caller.
-  core.List<GoogleAnalyticsAdminV1alphaWebDataStream> webDataStreams;
+  core.List<GoogleAnalyticsAdminV1alphaWebDataStream>? webDataStreams;
 
   GoogleAnalyticsAdminV1alphaListWebDataStreamsResponse();
 
@@ -4303,11 +4117,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (webDataStreams != null)
           'webDataStreams':
-              webDataStreams.map((value) => value.toJson()).toList(),
+              webDataStreams!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4316,13 +4130,13 @@
   /// Time when the entity was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The currency type used in reports involving monetary values.
   ///
   /// Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR",
   /// "JPY"
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Indicates whether this Property is soft-deleted or not.
   ///
@@ -4330,14 +4144,14 @@
   /// requested.
   ///
   /// Output only.
-  core.bool deleted;
+  core.bool? deleted;
 
   /// Human-readable display name for this property.
   ///
   /// The max allowed display name length is 100 UTF-16 code units.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   /// Possible string values are:
@@ -4368,14 +4182,14 @@
   /// - "SPORTS" : Sports
   /// - "JOBS_AND_EDUCATION" : Jobs and education
   /// - "SHOPPING" : Shopping
-  core.String industryCategory;
+  core.String? industryCategory;
 
   /// Resource name of this property.
   ///
   /// Format: properties/{property_id} Example: "properties/1000"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Resource name of this property's logical parent.
   ///
@@ -4383,7 +4197,7 @@
   /// accounts/{account} Example: "accounts/100"
   ///
   /// Immutable.
-  core.String parent;
+  core.String? parent;
 
   /// Reporting Time Zone, used as the day boundary for reports, regardless of
   /// where the data originates.
@@ -4392,12 +4206,12 @@
   /// changes. NOTE: Changing the time zone only affects data going forward, and
   /// is not applied retroactively. Format: https://www.iana.org/time-zones
   /// Example: "America/Los_Angeles"
-  core.String timeZone;
+  core.String? timeZone;
 
   /// Time when entity payload fields were last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleAnalyticsAdminV1alphaProperty();
 
@@ -4431,27 +4245,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (deleted != null) 'deleted': deleted,
-        if (displayName != null) 'displayName': displayName,
-        if (industryCategory != null) 'industryCategory': industryCategory,
-        if (name != null) 'name': name,
-        if (parent != null) 'parent': parent,
-        if (timeZone != null) 'timeZone': timeZone,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (deleted != null) 'deleted': deleted!,
+        if (displayName != null) 'displayName': displayName!,
+        if (industryCategory != null) 'industryCategory': industryCategory!,
+        if (name != null) 'name': name!,
+        if (parent != null) 'parent': parent!,
+        if (timeZone != null) 'timeZone': timeZone!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// A virtual resource representing metadata for an GA4 property.
 class GoogleAnalyticsAdminV1alphaPropertySummary {
   /// Display name for the property referred to in this account summary.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of property referred to by this property summary Format:
   /// properties/{property_id} Example: "properties/1000"
-  core.String property;
+  core.String? property;
 
   GoogleAnalyticsAdminV1alphaPropertySummary();
 
@@ -4464,21 +4278,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (property != null) 'property': property,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (property != null) 'property': property!,
       };
 }
 
 /// Request message for ProvisionAccountTicket RPC.
 class GoogleAnalyticsAdminV1alphaProvisionAccountTicketRequest {
   /// The account to create.
-  GoogleAnalyticsAdminV1alphaAccount account;
+  GoogleAnalyticsAdminV1alphaAccount? account;
 
   /// Redirect URI where the user will be sent after accepting Terms of Service.
   ///
   /// Must be configured in Developers Console as a Redirect URI
-  core.String redirectUri;
+  core.String? redirectUri;
 
   GoogleAnalyticsAdminV1alphaProvisionAccountTicketRequest();
 
@@ -4493,16 +4307,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (account != null) 'account': account.toJson(),
-        if (redirectUri != null) 'redirectUri': redirectUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (account != null) 'account': account!.toJson(),
+        if (redirectUri != null) 'redirectUri': redirectUri!,
       };
 }
 
 /// Response message for ProvisionAccountTicket RPC.
 class GoogleAnalyticsAdminV1alphaProvisionAccountTicketResponse {
   /// The param to be passed in the ToS link.
-  core.String accountTicketId;
+  core.String? accountTicketId;
 
   GoogleAnalyticsAdminV1alphaProvisionAccountTicketResponse();
 
@@ -4513,8 +4327,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accountTicketId != null) 'accountTicketId': accountTicketId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accountTicketId != null) 'accountTicketId': accountTicketId!,
       };
 }
 
@@ -4523,7 +4337,7 @@
   /// The user link to update.
   ///
   /// Required.
-  GoogleAnalyticsAdminV1alphaUserLink userLink;
+  GoogleAnalyticsAdminV1alphaUserLink? userLink;
 
   GoogleAnalyticsAdminV1alphaUpdateUserLinkRequest();
 
@@ -4534,8 +4348,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (userLink != null) 'userLink': userLink.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (userLink != null) 'userLink': userLink!.toJson(),
       };
 }
 
@@ -4549,13 +4363,13 @@
   /// inherited from a higher-level entity, group, or organization admin role. A
   /// UserLink that is updated to have an empty list of direct_roles will be
   /// deleted.
-  core.List<core.String> directRoles;
+  core.List<core.String>? directRoles;
 
   /// Email address of the user to link
-  core.String emailAddress;
+  core.String? emailAddress;
 
   /// Example format: properties/1234/userLinks/5678
-  core.String name;
+  core.String? name;
 
   GoogleAnalyticsAdminV1alphaUserLink();
 
@@ -4573,10 +4387,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (directRoles != null) 'directRoles': directRoles,
-        if (emailAddress != null) 'emailAddress': emailAddress,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (directRoles != null) 'directRoles': directRoles!,
+        if (emailAddress != null) 'emailAddress': emailAddress!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4585,35 +4399,35 @@
   /// Time when this stream was originally created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Domain name of the web app being measured, or empty.
   ///
   /// Example: "http://www.google.com", "https://www.google.com"
   ///
   /// Immutable.
-  core.String defaultUri;
+  core.String? defaultUri;
 
   /// Human-readable display name for the Data Stream.
   ///
   /// The max allowed display name length is 100 UTF-16 code units.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// ID of the corresponding web app in Firebase, if any.
   ///
   /// This ID can change if the web app is deleted and recreated.
   ///
   /// Output only.
-  core.String firebaseAppId;
+  core.String? firebaseAppId;
 
   /// Analytics "Measurement ID", without the "G-" prefix.
   ///
   /// Example: "G-1A2BCD345E" would just be "1A2BCD345E"
   ///
   /// Output only.
-  core.String measurementId;
+  core.String? measurementId;
 
   /// Resource name of this Data Stream.
   ///
@@ -4621,12 +4435,12 @@
   /// "properties/1000/webDataStreams/2000"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Time when stream payload fields were last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleAnalyticsAdminV1alphaWebDataStream();
 
@@ -4654,14 +4468,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (defaultUri != null) 'defaultUri': defaultUri,
-        if (displayName != null) 'displayName': displayName,
-        if (firebaseAppId != null) 'firebaseAppId': firebaseAppId,
-        if (measurementId != null) 'measurementId': measurementId,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (defaultUri != null) 'defaultUri': defaultUri!,
+        if (displayName != null) 'displayName': displayName!,
+        if (firebaseAppId != null) 'firebaseAppId': firebaseAppId!,
+        if (measurementId != null) 'measurementId': measurementId!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -4679,5 +4493,5 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
diff --git a/generated/googleapis_beta/lib/analyticsdata/v1alpha.dart b/generated/googleapis_beta/lib/analyticsdata/v1alpha.dart
index 908341d..a1faaa1 100644
--- a/generated/googleapis_beta/lib/analyticsdata/v1alpha.dart
+++ b/generated/googleapis_beta/lib/analyticsdata/v1alpha.dart
@@ -99,11 +99,8 @@
   /// this method will complete with the same error.
   async.Future<Metadata> getMetadata(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -146,13 +143,9 @@
   async.Future<RunRealtimeReportResponse> runRealtimeReport(
     RunRealtimeReportRequest request,
     core.String property, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (property == null) {
-      throw core.ArgumentError('Parameter property is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -197,10 +190,9 @@
   /// this method will complete with the same error.
   async.Future<BatchRunPivotReportsResponse> batchRunPivotReports(
     BatchRunPivotReportsRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -237,10 +229,9 @@
   /// this method will complete with the same error.
   async.Future<BatchRunReportsResponse> batchRunReports(
     BatchRunReportsRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -280,10 +271,9 @@
   /// this method will complete with the same error.
   async.Future<RunPivotReportResponse> runPivotReport(
     RunPivotReportRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -325,10 +315,9 @@
   /// this method will complete with the same error.
   async.Future<RunReportResponse> runReport(
     RunReportRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -353,13 +342,13 @@
   /// This entity must be specified for the batch. The entity within
   /// RunPivotReportRequest may either be unspecified or consistent with this
   /// entity.
-  Entity entity;
+  Entity? entity;
 
   /// Individual requests.
   ///
   /// Each request has a separate pivot report response. Each batch request is
   /// allowed up to 5 requests.
-  core.List<RunPivotReportRequest> requests;
+  core.List<RunPivotReportRequest>? requests;
 
   BatchRunPivotReportsRequest();
 
@@ -376,10 +365,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (entity != null) 'entity': entity.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (entity != null) 'entity': entity!.toJson(),
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -388,7 +377,7 @@
   /// Individual responses.
   ///
   /// Each response has a separate pivot report request.
-  core.List<RunPivotReportResponse> pivotReports;
+  core.List<RunPivotReportResponse>? pivotReports;
 
   BatchRunPivotReportsResponse();
 
@@ -402,9 +391,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (pivotReports != null)
-          'pivotReports': pivotReports.map((value) => value.toJson()).toList(),
+          'pivotReports': pivotReports!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -414,13 +403,13 @@
   ///
   /// This entity must be specified for the batch. The entity within
   /// RunReportRequest may either be unspecified or consistent with this entity.
-  Entity entity;
+  Entity? entity;
 
   /// Individual requests.
   ///
   /// Each request has a separate report response. Each batch request is allowed
   /// up to 5 requests.
-  core.List<RunReportRequest> requests;
+  core.List<RunReportRequest>? requests;
 
   BatchRunReportsRequest();
 
@@ -437,10 +426,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (entity != null) 'entity': entity.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (entity != null) 'entity': entity!.toJson(),
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -449,7 +438,7 @@
   /// Individual responses.
   ///
   /// Each response has a separate report request.
-  core.List<RunReportResponse> reports;
+  core.List<RunReportResponse>? reports;
 
   BatchRunReportsResponse();
 
@@ -462,19 +451,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (reports != null)
-          'reports': reports.map((value) => value.toJson()).toList(),
+          'reports': reports!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// To express that the result needs to be between two numbers (inclusive).
 class BetweenFilter {
   /// Begins with this number.
-  NumericValue fromValue;
+  NumericValue? fromValue;
 
   /// Ends with this number.
-  NumericValue toValue;
+  NumericValue? toValue;
 
   BetweenFilter();
 
@@ -489,9 +478,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fromValue != null) 'fromValue': fromValue.toJson(),
-        if (toValue != null) 'toValue': toValue.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fromValue != null) 'fromValue': fromValue!.toJson(),
+        if (toValue != null) 'toValue': toValue!.toJson(),
       };
 }
 
@@ -500,7 +489,7 @@
   /// Name of a dimension.
   ///
   /// The name must refer back to a name in dimensions field of the request.
-  core.String dimensionName;
+  core.String? dimensionName;
 
   CaseExpression();
 
@@ -510,8 +499,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dimensionName != null) 'dimensionName': dimensionName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dimensionName != null) 'dimensionName': dimensionName!,
       };
 }
 
@@ -536,19 +525,19 @@
   /// at Sunday and ending Saturday. If `CohortsRange` uses monthly granularity,
   /// this `dateRange` can be aligned to a month, starting at the first and
   /// ending on the last day of the month.
-  DateRange dateRange;
+  DateRange? dateRange;
 
   /// Dimension used by the cohort.
   ///
   /// Required and only supports `firstSessionDate`.
-  core.String dimension;
+  core.String? dimension;
 
   /// Assigns a name to this cohort.
   ///
   /// The dimension `cohort` is valued to this name in a report response. If
   /// set, cannot begin with `cohort_` or `RESERVED_`. If not set, cohorts are
   /// named by their zero based index `cohort_0`, `cohort_1`, etc.
-  core.String name;
+  core.String? name;
 
   Cohort();
 
@@ -565,10 +554,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dateRange != null) 'dateRange': dateRange.toJson(),
-        if (dimension != null) 'dimension': dimension,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dateRange != null) 'dateRange': dateRange!.toJson(),
+        if (dimension != null) 'dimension': dimension!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -577,7 +566,7 @@
   /// If true, accumulates the result from first touch day to the end day.
   ///
   /// Not supported in `RunReportRequest`.
-  core.bool accumulate;
+  core.bool? accumulate;
 
   CohortReportSettings();
 
@@ -587,8 +576,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accumulate != null) 'accumulate': accumulate,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accumulate != null) 'accumulate': accumulate!,
       };
 }
 
@@ -608,18 +597,18 @@
 /// report.
 class CohortSpec {
   /// Optional settings for a cohort report.
-  CohortReportSettings cohortReportSettings;
+  CohortReportSettings? cohortReportSettings;
 
   /// Defines the selection criteria to group users into cohorts.
   ///
   /// Most cohort reports define only a single cohort. If multiple cohorts are
   /// specified, each cohort can be recognized in the report by their name.
-  core.List<Cohort> cohorts;
+  core.List<Cohort>? cohorts;
 
   /// Cohort reports follow cohorts over an extended reporting date range.
   ///
   /// This range specifies an offset duration to follow the cohorts over.
-  CohortsRange cohortsRange;
+  CohortsRange? cohortsRange;
 
   CohortSpec();
 
@@ -640,12 +629,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (cohortReportSettings != null)
-          'cohortReportSettings': cohortReportSettings.toJson(),
+          'cohortReportSettings': cohortReportSettings!.toJson(),
         if (cohorts != null)
-          'cohorts': cohorts.map((value) => value.toJson()).toList(),
-        if (cohortsRange != null) 'cohortsRange': cohortsRange.toJson(),
+          'cohorts': cohorts!.map((value) => value.toJson()).toList(),
+        if (cohortsRange != null) 'cohortsRange': cohortsRange!.toJson(),
       };
 }
 
@@ -666,7 +655,7 @@
   /// range is `endDate` of the cohort plus `endOffset * 30` days.
   ///
   /// Required.
-  core.int endOffset;
+  core.int? endOffset;
 
   /// The granularity used to interpret the `startOffset` and `endOffset` for
   /// the extended reporting date range for a cohort report.
@@ -682,7 +671,7 @@
   /// - "MONTHLY" : Monthly granularity. Commonly used if the cohort's
   /// `dateRange` is a month in duration and the request contains
   /// `cohortNthMonth`.
-  core.String granularity;
+  core.String? granularity;
 
   /// `startOffset` specifies the start date of the extended reporting date
   /// range for a cohort report.
@@ -695,7 +684,7 @@
   /// cohort plus `startOffset * 7` days. If `granularity` is `MONTHLY`, the
   /// `startDate` of the extended reporting date range is `startDate` of the
   /// cohort plus `startOffset * 30` days.
-  core.int startOffset;
+  core.int? startOffset;
 
   CohortsRange();
 
@@ -711,10 +700,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endOffset != null) 'endOffset': endOffset,
-        if (granularity != null) 'granularity': granularity,
-        if (startOffset != null) 'startOffset': startOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endOffset != null) 'endOffset': endOffset!,
+        if (granularity != null) 'granularity': granularity!,
+        if (startOffset != null) 'startOffset': startOffset!,
       };
 }
 
@@ -727,12 +716,12 @@
   /// present in response with no distinction. For example if dimension 1 value
   /// = "US,FR", dimension 2 value = "JP", and delimiter = ",", then the
   /// response will contain "US,FR,JP".
-  core.String delimiter;
+  core.String? delimiter;
 
   /// Names of dimensions.
   ///
   /// The names must refer back to names in the dimensions field of the request.
-  core.List<core.String> dimensionNames;
+  core.List<core.String>? dimensionNames;
 
   ConcatenateExpression();
 
@@ -747,9 +736,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (delimiter != null) 'delimiter': delimiter,
-        if (dimensionNames != null) 'dimensionNames': dimensionNames,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (delimiter != null) 'delimiter': delimiter!,
+        if (dimensionNames != null) 'dimensionNames': dimensionNames!,
       };
 }
 
@@ -762,7 +751,7 @@
   /// Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or
   /// `today` is also accepted, and in that case, the date is inferred based on
   /// the property's reporting time zone.
-  core.String endDate;
+  core.String? endDate;
 
   /// Assigns a name to this date range.
   ///
@@ -770,14 +759,14 @@
   /// set, cannot begin with `date_range_` or `RESERVED_`. If not set, date
   /// ranges are named by their zero based index in the request: `date_range_0`,
   /// `date_range_1`, etc.
-  core.String name;
+  core.String? name;
 
   /// The inclusive start date for the query in the format `YYYY-MM-DD`.
   ///
   /// Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today`
   /// is also accepted, and in that case, the date is inferred based on the
   /// property's reporting time zone.
-  core.String startDate;
+  core.String? startDate;
 
   DateRange();
 
@@ -793,10 +782,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endDate != null) 'endDate': endDate,
-        if (name != null) 'name': name,
-        if (startDate != null) 'startDate': startDate,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endDate != null) 'endDate': endDate!,
+        if (name != null) 'name': name!,
+        if (startDate != null) 'startDate': startDate!,
       };
 }
 
@@ -810,7 +799,7 @@
   /// One dimension can be the result of an expression of multiple dimensions.
   ///
   /// For example, dimension "country, city": concatenate(country, ", ", city).
-  DimensionExpression dimensionExpression;
+  DimensionExpression? dimensionExpression;
 
   /// The name of the dimension.
   ///
@@ -821,7 +810,7 @@
   /// `dimensionExpression` concatenates `country` and `city`, you could call
   /// that dimension `countryAndCity`. Dimensions are referenced by `name` in
   /// `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.
-  core.String name;
+  core.String? name;
 
   Dimension();
 
@@ -835,10 +824,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensionExpression != null)
-          'dimensionExpression': dimensionExpression.toJson(),
-        if (name != null) 'name': name,
+          'dimensionExpression': dimensionExpression!.toJson(),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -851,13 +840,13 @@
   /// Used to combine dimension values to a single dimension.
   ///
   /// For example, dimension "country, city": concatenate(country, ", ", city).
-  ConcatenateExpression concatenate;
+  ConcatenateExpression? concatenate;
 
   /// Used to convert a dimension value to lower case.
-  CaseExpression lowerCase;
+  CaseExpression? lowerCase;
 
   /// Used to convert a dimension value to upper case.
-  CaseExpression upperCase;
+  CaseExpression? upperCase;
 
   DimensionExpression();
 
@@ -876,10 +865,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (concatenate != null) 'concatenate': concatenate.toJson(),
-        if (lowerCase != null) 'lowerCase': lowerCase.toJson(),
-        if (upperCase != null) 'upperCase': upperCase.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (concatenate != null) 'concatenate': concatenate!.toJson(),
+        if (lowerCase != null) 'lowerCase': lowerCase!.toJson(),
+        if (upperCase != null) 'upperCase': upperCase!.toJson(),
       };
 }
 
@@ -891,7 +880,7 @@
 /// dimensions do not produce headers.
 class DimensionHeader {
   /// The dimension's name.
-  core.String name;
+  core.String? name;
 
   DimensionHeader();
 
@@ -901,8 +890,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
       };
 }
 
@@ -911,25 +900,25 @@
   /// This dimension's name.
   ///
   /// Useable in \[Dimension\](#Dimension)'s `name`. For example, `eventName`.
-  core.String apiName;
+  core.String? apiName;
 
   /// True if the dimension is a custom dimension for this property.
-  core.bool customDefinition;
+  core.bool? customDefinition;
 
   /// Still usable but deprecated names for this dimension.
   ///
   /// If populated, this dimension is available by either `apiName` or one of
   /// `deprecatedApiNames` for a period of time. After the deprecation period,
   /// the dimension will be available only by `apiName`.
-  core.List<core.String> deprecatedApiNames;
+  core.List<core.String>? deprecatedApiNames;
 
   /// Description of how this dimension is used and calculated.
-  core.String description;
+  core.String? description;
 
   /// This dimension's name within the Google Analytics user interface.
   ///
   /// For example, `Event name`.
-  core.String uiName;
+  core.String? uiName;
 
   DimensionMetadata();
 
@@ -953,20 +942,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiName != null) 'apiName': apiName,
-        if (customDefinition != null) 'customDefinition': customDefinition,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiName != null) 'apiName': apiName!,
+        if (customDefinition != null) 'customDefinition': customDefinition!,
         if (deprecatedApiNames != null)
-          'deprecatedApiNames': deprecatedApiNames,
-        if (description != null) 'description': description,
-        if (uiName != null) 'uiName': uiName,
+          'deprecatedApiNames': deprecatedApiNames!,
+        if (description != null) 'description': description!,
+        if (uiName != null) 'uiName': uiName!,
       };
 }
 
 /// Sorts by dimension values.
 class DimensionOrderBy {
   /// A dimension name in the request to order by.
-  core.String dimensionName;
+  core.String? dimensionName;
 
   /// Controls the rule for dimension value ordering.
   /// Possible string values are:
@@ -979,7 +968,7 @@
   /// For example in NUMERIC sort, "25" < "100", and in `ALPHANUMERIC` sort,
   /// "100" < "25". Non-numeric dimension values all have equal ordering value
   /// below all numeric values.
-  core.String orderType;
+  core.String? orderType;
 
   DimensionOrderBy();
 
@@ -992,16 +981,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dimensionName != null) 'dimensionName': dimensionName,
-        if (orderType != null) 'orderType': orderType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dimensionName != null) 'dimensionName': dimensionName!,
+        if (orderType != null) 'orderType': orderType!,
       };
 }
 
 /// The value of a dimension.
 class DimensionValue {
   /// Value as a string if the dimension type is a string.
-  core.String value;
+  core.String? value;
 
   DimensionValue();
 
@@ -1011,8 +1000,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (value != null) 'value': value!,
       };
 }
 
@@ -1022,7 +1011,7 @@
   ///
   /// To learn more, see
   /// [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id).
-  core.String propertyId;
+  core.String? propertyId;
 
   Entity();
 
@@ -1032,29 +1021,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (propertyId != null) 'propertyId': propertyId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (propertyId != null) 'propertyId': propertyId!,
       };
 }
 
 /// An expression to filter dimension or metric values.
 class Filter {
   /// A filter for two values.
-  BetweenFilter betweenFilter;
+  BetweenFilter? betweenFilter;
 
   /// The dimension name or metric name.
   ///
   /// Must be a name defined in dimensions or metrics.
-  core.String fieldName;
+  core.String? fieldName;
 
   /// A filter for in list values.
-  InListFilter inListFilter;
+  InListFilter? inListFilter;
 
   /// A filter for numeric or date values.
-  NumericFilter numericFilter;
+  NumericFilter? numericFilter;
 
   /// Strings related filter.
-  StringFilter stringFilter;
+  StringFilter? stringFilter;
 
   Filter();
 
@@ -1080,12 +1069,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (betweenFilter != null) 'betweenFilter': betweenFilter.toJson(),
-        if (fieldName != null) 'fieldName': fieldName,
-        if (inListFilter != null) 'inListFilter': inListFilter.toJson(),
-        if (numericFilter != null) 'numericFilter': numericFilter.toJson(),
-        if (stringFilter != null) 'stringFilter': stringFilter.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (betweenFilter != null) 'betweenFilter': betweenFilter!.toJson(),
+        if (fieldName != null) 'fieldName': fieldName!,
+        if (inListFilter != null) 'inListFilter': inListFilter!.toJson(),
+        if (numericFilter != null) 'numericFilter': numericFilter!.toJson(),
+        if (stringFilter != null) 'stringFilter': stringFilter!.toJson(),
       };
 }
 
@@ -1095,19 +1084,19 @@
 /// all metrics.
 class FilterExpression {
   /// The FilterExpressions in and_group have an AND relationship.
-  FilterExpressionList andGroup;
+  FilterExpressionList? andGroup;
 
   /// A primitive filter.
   ///
   /// All fields in filter in same FilterExpression needs to be either all
   /// dimensions or metrics.
-  Filter filter;
+  Filter? filter;
 
   /// The FilterExpression is NOT of not_expression.
-  FilterExpression notExpression;
+  FilterExpression? notExpression;
 
   /// The FilterExpressions in or_group have an OR relationship.
-  FilterExpressionList orGroup;
+  FilterExpressionList? orGroup;
 
   FilterExpression();
 
@@ -1130,18 +1119,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (andGroup != null) 'andGroup': andGroup.toJson(),
-        if (filter != null) 'filter': filter.toJson(),
-        if (notExpression != null) 'notExpression': notExpression.toJson(),
-        if (orGroup != null) 'orGroup': orGroup.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (andGroup != null) 'andGroup': andGroup!.toJson(),
+        if (filter != null) 'filter': filter!.toJson(),
+        if (notExpression != null) 'notExpression': notExpression!.toJson(),
+        if (orGroup != null) 'orGroup': orGroup!.toJson(),
       };
 }
 
 /// A list of filter expressions.
 class FilterExpressionList {
   /// A list of filter expressions.
-  core.List<FilterExpression> expressions;
+  core.List<FilterExpression>? expressions;
 
   FilterExpressionList();
 
@@ -1154,21 +1143,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (expressions != null)
-          'expressions': expressions.map((value) => value.toJson()).toList(),
+          'expressions': expressions!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// The result needs to be in a list of string values.
 class InListFilter {
   /// If true, the string value is case sensitive.
-  core.bool caseSensitive;
+  core.bool? caseSensitive;
 
   /// The list of string values.
   ///
   /// Must be non-empty.
-  core.List<core.String> values;
+  core.List<core.String>? values;
 
   InListFilter();
 
@@ -1183,22 +1172,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (caseSensitive != null) 'caseSensitive': caseSensitive,
-        if (values != null) 'values': values,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (caseSensitive != null) 'caseSensitive': caseSensitive!,
+        if (values != null) 'values': values!,
       };
 }
 
 /// The dimensions and metrics currently accepted in reporting methods.
 class Metadata {
   /// The dimension descriptions.
-  core.List<DimensionMetadata> dimensions;
+  core.List<DimensionMetadata>? dimensions;
 
   /// The metric descriptions.
-  core.List<MetricMetadata> metrics;
+  core.List<MetricMetadata>? metrics;
 
   /// Resource name of this metadata.
-  core.String name;
+  core.String? name;
 
   Metadata();
 
@@ -1220,12 +1209,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensions != null)
-          'dimensions': dimensions.map((value) => value.toJson()).toList(),
+          'dimensions': dimensions!.map((value) => value.toJson()).toList(),
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1237,14 +1226,14 @@
   /// A mathematical expression for derived metrics.
   ///
   /// For example, the metric Event count per user is `eventCount/totalUsers`.
-  core.String expression;
+  core.String? expression;
 
   /// Indicates if a metric is invisible in the report response.
   ///
   /// If a metric is invisible, the metric will not produce a column in the
   /// response, but can be used in `metricFilter`, `orderBys`, or a metric
   /// `expression`.
-  core.bool invisible;
+  core.bool? invisible;
 
   /// The name of the metric.
   ///
@@ -1255,7 +1244,7 @@
   /// `screenPageViews/sessions`, you could call that metric's name =
   /// `viewsPerSession`. Metrics are referenced by `name` in `metricFilter`,
   /// `orderBys`, and metric `expression`.
-  core.String name;
+  core.String? name;
 
   Metric();
 
@@ -1271,10 +1260,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (expression != null) 'expression': expression,
-        if (invisible != null) 'invisible': invisible,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (expression != null) 'expression': expression!,
+        if (invisible != null) 'invisible': invisible!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1286,7 +1275,7 @@
 /// metrics do not produce headers.
 class MetricHeader {
   /// The metric's name.
-  core.String name;
+  core.String? name;
 
   /// The metric's data type.
   /// Possible string values are:
@@ -1306,7 +1295,7 @@
   /// - "TYPE_METERS" : A length in meters; a special floating point type.
   /// - "TYPE_KILOMETERS" : A length in kilometers; a special floating point
   /// type.
-  core.String type;
+  core.String? type;
 
   MetricHeader();
 
@@ -1319,9 +1308,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -1330,27 +1319,27 @@
   /// A metric name.
   ///
   /// Useable in \[Metric\](#Metric)'s `name`. For example, `eventCount`.
-  core.String apiName;
+  core.String? apiName;
 
   /// True if the metric is a custom metric for this property.
-  core.bool customDefinition;
+  core.bool? customDefinition;
 
   /// Still usable but deprecated names for this metric.
   ///
   /// If populated, this metric is available by either `apiName` or one of
   /// `deprecatedApiNames` for a period of time. After the deprecation period,
   /// the metric will be available only by `apiName`.
-  core.List<core.String> deprecatedApiNames;
+  core.List<core.String>? deprecatedApiNames;
 
   /// Description of how this metric is used and calculated.
-  core.String description;
+  core.String? description;
 
   /// The mathematical expression for this derived metric.
   ///
   /// Can be used in \[Metric\](#Metric)'s `expression` field for equivalent
   /// reports. Most metrics are not expressions, and for non-expressions, this
   /// field is empty.
-  core.String expression;
+  core.String? expression;
 
   /// The type of this metric.
   /// Possible string values are:
@@ -1370,12 +1359,12 @@
   /// - "TYPE_METERS" : A length in meters; a special floating point type.
   /// - "TYPE_KILOMETERS" : A length in kilometers; a special floating point
   /// type.
-  core.String type;
+  core.String? type;
 
   /// This metric's name within the Google Analytics user interface.
   ///
   /// For example, `Event count`.
-  core.String uiName;
+  core.String? uiName;
 
   MetricMetadata();
 
@@ -1405,22 +1394,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiName != null) 'apiName': apiName,
-        if (customDefinition != null) 'customDefinition': customDefinition,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiName != null) 'apiName': apiName!,
+        if (customDefinition != null) 'customDefinition': customDefinition!,
         if (deprecatedApiNames != null)
-          'deprecatedApiNames': deprecatedApiNames,
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (type != null) 'type': type,
-        if (uiName != null) 'uiName': uiName,
+          'deprecatedApiNames': deprecatedApiNames!,
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (type != null) 'type': type!,
+        if (uiName != null) 'uiName': uiName!,
       };
 }
 
 /// Sorts by metric values.
 class MetricOrderBy {
   /// A metric name in the request to order by.
-  core.String metricName;
+  core.String? metricName;
 
   MetricOrderBy();
 
@@ -1430,8 +1419,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metricName != null) 'metricName': metricName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metricName != null) 'metricName': metricName!,
       };
 }
 
@@ -1440,7 +1429,7 @@
   /// Measurement value.
   ///
   /// See MetricHeader for type.
-  core.String value;
+  core.String? value;
 
   MetricValue();
 
@@ -1450,8 +1439,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (value != null) 'value': value!,
       };
 }
 
@@ -1465,10 +1454,10 @@
   /// - "LESS_THAN_OR_EQUAL" : Less than or equal
   /// - "GREATER_THAN" : Greater than
   /// - "GREATER_THAN_OR_EQUAL" : Greater than or equal
-  core.String operation;
+  core.String? operation;
 
   /// A numeric value or a date value.
-  NumericValue value;
+  NumericValue? value;
 
   NumericFilter();
 
@@ -1482,19 +1471,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (operation != null) 'operation': operation,
-        if (value != null) 'value': value.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (operation != null) 'operation': operation!,
+        if (value != null) 'value': value!.toJson(),
       };
 }
 
 /// To represent a number.
 class NumericValue {
   /// Double value
-  core.double doubleValue;
+  core.double? doubleValue;
 
   /// Integer value
-  core.String int64Value;
+  core.String? int64Value;
 
   NumericValue();
 
@@ -1507,25 +1496,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (doubleValue != null) 'doubleValue': doubleValue,
-        if (int64Value != null) 'int64Value': int64Value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (doubleValue != null) 'doubleValue': doubleValue!,
+        if (int64Value != null) 'int64Value': int64Value!,
       };
 }
 
 /// The sort options.
 class OrderBy {
   /// If true, sorts by descending order.
-  core.bool desc;
+  core.bool? desc;
 
   /// Sorts results by a dimension's values.
-  DimensionOrderBy dimension;
+  DimensionOrderBy? dimension;
 
   /// Sorts results by a metric's values.
-  MetricOrderBy metric;
+  MetricOrderBy? metric;
 
   /// Sorts results by a metric's values within a pivot column group.
-  PivotOrderBy pivot;
+  PivotOrderBy? pivot;
 
   OrderBy();
 
@@ -1547,11 +1536,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (desc != null) 'desc': desc,
-        if (dimension != null) 'dimension': dimension.toJson(),
-        if (metric != null) 'metric': metric.toJson(),
-        if (pivot != null) 'pivot': pivot.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (desc != null) 'desc': desc!,
+        if (dimension != null) 'dimension': dimension!.toJson(),
+        if (metric != null) 'metric': metric!.toJson(),
+        if (pivot != null) 'pivot': pivot!.toJson(),
       };
 }
 
@@ -1562,7 +1551,7 @@
   /// Including "dateRange" produces a date range column; for each row in the
   /// response, dimension values in the date range column will indicate the
   /// corresponding date range from the request.
-  core.List<core.String> fieldNames;
+  core.List<core.String>? fieldNames;
 
   /// The number of rows to return in this pivot.
   ///
@@ -1570,16 +1559,16 @@
   /// The product of the `limit` for each `pivot` in a `RunPivotReportRequest`
   /// must not exceed 100,000. For example, a two pivot request with `limit:
   /// 1000` in each pivot will fail because the product is `1,000,000`.
-  core.String limit;
+  core.String? limit;
 
   /// Aggregate the metrics by dimensions in this pivot using the specified
   /// metric_aggregations.
-  core.List<core.String> metricAggregations;
+  core.List<core.String>? metricAggregations;
 
   /// The row count of the start row.
   ///
   /// The first row is counted as row 0.
-  core.String offset;
+  core.String? offset;
 
   /// Specifies how dimensions are ordered in the pivot.
   ///
@@ -1587,7 +1576,7 @@
   /// ordering; in subsequent Pivots, the OrderBys determine only
   /// PivotDimensionHeader ordering. Dimensions specified in these OrderBys must
   /// be a subset of Pivot.field_names.
-  core.List<OrderBy> orderBys;
+  core.List<OrderBy>? orderBys;
 
   Pivot();
 
@@ -1616,21 +1605,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fieldNames != null) 'fieldNames': fieldNames,
-        if (limit != null) 'limit': limit,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fieldNames != null) 'fieldNames': fieldNames!,
+        if (limit != null) 'limit': limit!,
         if (metricAggregations != null)
-          'metricAggregations': metricAggregations,
-        if (offset != null) 'offset': offset,
+          'metricAggregations': metricAggregations!,
+        if (offset != null) 'offset': offset!,
         if (orderBys != null)
-          'orderBys': orderBys.map((value) => value.toJson()).toList(),
+          'orderBys': orderBys!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Summarizes dimension values from a row for this pivot.
 class PivotDimensionHeader {
   /// Values of multiple dimensions in a pivot.
-  core.List<DimensionValue> dimensionValues;
+  core.List<DimensionValue>? dimensionValues;
 
   PivotDimensionHeader();
 
@@ -1643,10 +1632,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensionValues != null)
           'dimensionValues':
-              dimensionValues.map((value) => value.toJson()).toList(),
+              dimensionValues!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1654,13 +1643,13 @@
 class PivotHeader {
   /// The size is the same as the cardinality of the corresponding dimension
   /// combinations.
-  core.List<PivotDimensionHeader> pivotDimensionHeaders;
+  core.List<PivotDimensionHeader>? pivotDimensionHeaders;
 
   /// The cardinality of the pivot.
   ///
   /// The total number of rows for this pivot's fields regardless of how the
   /// parameters `offset` and `limit` are specified in the request.
-  core.int rowCount;
+  core.int? rowCount;
 
   PivotHeader();
 
@@ -1676,11 +1665,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (pivotDimensionHeaders != null)
           'pivotDimensionHeaders':
-              pivotDimensionHeaders.map((value) => value.toJson()).toList(),
-        if (rowCount != null) 'rowCount': rowCount,
+              pivotDimensionHeaders!.map((value) => value.toJson()).toList(),
+        if (rowCount != null) 'rowCount': rowCount!,
       };
 }
 
@@ -1689,14 +1678,14 @@
   /// In the response to order by, order rows by this column.
   ///
   /// Must be a metric name from the request.
-  core.String metricName;
+  core.String? metricName;
 
   /// Used to select a dimension name and value pivot.
   ///
   /// If multiple pivot selections are given, the sort occurs on rows where all
   /// pivot selection dimension name and value pairs match the row's dimension
   /// name and value pair.
-  core.List<PivotSelection> pivotSelections;
+  core.List<PivotSelection>? pivotSelections;
 
   PivotOrderBy();
 
@@ -1712,11 +1701,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metricName != null) 'metricName': metricName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metricName != null) 'metricName': metricName!,
         if (pivotSelections != null)
           'pivotSelections':
-              pivotSelections.map((value) => value.toJson()).toList(),
+              pivotSelections!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1735,10 +1724,10 @@
 /// ---------|----------|----------------|----------|----------------
 class PivotSelection {
   /// Must be a dimension name from the request.
-  core.String dimensionName;
+  core.String? dimensionName;
 
   /// Order by only when the named dimension is this value.
-  core.String dimensionValue;
+  core.String? dimensionValue;
 
   PivotSelection();
 
@@ -1751,9 +1740,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dimensionName != null) 'dimensionName': dimensionName,
-        if (dimensionValue != null) 'dimensionValue': dimensionValue,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dimensionName != null) 'dimensionName': dimensionName!,
+        if (dimensionValue != null) 'dimensionValue': dimensionValue!,
       };
 }
 
@@ -1764,25 +1753,25 @@
 class PropertyQuota {
   /// Standard Analytics Properties can send up to 10 concurrent requests;
   /// Analytics 360 Properties can use up to 50 concurrent requests.
-  QuotaStatus concurrentRequests;
+  QuotaStatus? concurrentRequests;
 
   /// Standard Analytics Properties and cloud project pairs can have up to 10
   /// server errors per hour; Analytics 360 Properties and cloud project pairs
   /// can have up to 50 server errors per hour.
-  QuotaStatus serverErrorsPerProjectPerHour;
+  QuotaStatus? serverErrorsPerProjectPerHour;
 
   /// Standard Analytics Properties can use up to 25,000 tokens per day;
   /// Analytics 360 Properties can use 250,000 tokens per day.
   ///
   /// Most requests consume fewer than 10 tokens.
-  QuotaStatus tokensPerDay;
+  QuotaStatus? tokensPerDay;
 
   /// Standard Analytics Properties can use up to 5,000 tokens per hour;
   /// Analytics 360 Properties can use 50,000 tokens per hour.
   ///
   /// An API request consumes a single number of tokens, and that number is
   /// deducted from both the hourly and daily quotas.
-  QuotaStatus tokensPerHour;
+  QuotaStatus? tokensPerHour;
 
   PropertyQuota();
 
@@ -1806,24 +1795,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (concurrentRequests != null)
-          'concurrentRequests': concurrentRequests.toJson(),
+          'concurrentRequests': concurrentRequests!.toJson(),
         if (serverErrorsPerProjectPerHour != null)
           'serverErrorsPerProjectPerHour':
-              serverErrorsPerProjectPerHour.toJson(),
-        if (tokensPerDay != null) 'tokensPerDay': tokensPerDay.toJson(),
-        if (tokensPerHour != null) 'tokensPerHour': tokensPerHour.toJson(),
+              serverErrorsPerProjectPerHour!.toJson(),
+        if (tokensPerDay != null) 'tokensPerDay': tokensPerDay!.toJson(),
+        if (tokensPerHour != null) 'tokensPerHour': tokensPerHour!.toJson(),
       };
 }
 
 /// Current state for a particular quota group.
 class QuotaStatus {
   /// Quota consumed by this request.
-  core.int consumed;
+  core.int? consumed;
 
   /// Quota remaining after this request.
-  core.int remaining;
+  core.int? remaining;
 
   QuotaStatus();
 
@@ -1836,9 +1825,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (consumed != null) 'consumed': consumed,
-        if (remaining != null) 'remaining': remaining,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (consumed != null) 'consumed': consumed!,
+        if (remaining != null) 'remaining': remaining!,
       };
 }
 
@@ -1849,7 +1838,7 @@
   /// "(other)" row.
   ///
   /// This can happen for high cardinality reports.
-  core.bool dataLossFromOtherRow;
+  core.bool? dataLossFromOtherRow;
 
   ResponseMetaData();
 
@@ -1859,9 +1848,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dataLossFromOtherRow != null)
-          'dataLossFromOtherRow': dataLossFromOtherRow,
+          'dataLossFromOtherRow': dataLossFromOtherRow!,
       };
 }
 
@@ -1878,10 +1867,10 @@
   ///
   /// In a PivotReport, dimension_values are only listed for dimensions included
   /// in a pivot.
-  core.List<DimensionValue> dimensionValues;
+  core.List<DimensionValue>? dimensionValues;
 
   /// List of requested visible metric values.
-  core.List<MetricValue> metricValues;
+  core.List<MetricValue>? metricValues;
 
   Row();
 
@@ -1900,12 +1889,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensionValues != null)
           'dimensionValues':
-              dimensionValues.map((value) => value.toJson()).toList(),
+              dimensionValues!.map((value) => value.toJson()).toList(),
         if (metricValues != null)
-          'metricValues': metricValues.map((value) => value.toJson()).toList(),
+          'metricValues': metricValues!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1915,12 +1904,12 @@
   ///
   /// If there is a cohort group in the request the 'cohort' dimension must be
   /// present.
-  CohortSpec cohortSpec;
+  CohortSpec? cohortSpec;
 
   /// A currency code in ISO4217 format, such as "AED", "USD", "JPY".
   ///
   /// If the field is empty, the report uses the entity's default currency.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// The date range to retrieve event data for the report.
   ///
@@ -1929,58 +1918,58 @@
   /// included in a Pivot's field names; if included, the report compares
   /// between date ranges. In a cohort request, this `dateRanges` must be
   /// unspecified.
-  core.List<DateRange> dateRanges;
+  core.List<DateRange>? dateRanges;
 
   /// The filter clause of dimensions.
   ///
   /// Dimensions must be requested to be used in this filter. Metrics cannot be
   /// used in this filter.
-  FilterExpression dimensionFilter;
+  FilterExpression? dimensionFilter;
 
   /// The dimensions requested.
   ///
   /// All defined dimensions must be used by one of the following:
   /// dimension_expression, dimension_filter, pivots, order_bys.
-  core.List<Dimension> dimensions;
+  core.List<Dimension>? dimensions;
 
   /// A property whose events are tracked.
   ///
   /// Within a batch request, this entity should either be unspecified or
   /// consistent with the batch-level entity.
-  Entity entity;
+  Entity? entity;
 
   /// If false or unspecified, each row with all metrics equal to 0 will not be
   /// returned.
   ///
   /// If true, these rows will be returned if they are not separately removed by
   /// a filter.
-  core.bool keepEmptyRows;
+  core.bool? keepEmptyRows;
 
   /// The filter clause of metrics.
   ///
   /// Applied at post aggregation phase, similar to SQL having-clause. Metrics
   /// must be requested to be used in this filter. Dimensions cannot be used in
   /// this filter.
-  FilterExpression metricFilter;
+  FilterExpression? metricFilter;
 
   /// The metrics requested, at least one metric needs to be specified.
   ///
   /// All defined metrics must be used by one of the following:
   /// metric_expression, metric_filter, order_bys.
-  core.List<Metric> metrics;
+  core.List<Metric>? metrics;
 
   /// Describes the visual format of the report's dimensions in columns or rows.
   ///
   /// The union of the fieldNames (dimension names) in all pivots must be a
   /// subset of dimension names defined in Dimensions. No two pivots can share a
   /// dimension. A dimension is only visible if it appears in a pivot.
-  core.List<Pivot> pivots;
+  core.List<Pivot>? pivots;
 
   /// Toggles whether to return the current state of this Analytics Property's
   /// quota.
   ///
   /// Quota is returned in \[PropertyQuota\](#PropertyQuota).
-  core.bool returnPropertyQuota;
+  core.bool? returnPropertyQuota;
 
   RunPivotReportRequest();
 
@@ -2036,24 +2025,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cohortSpec != null) 'cohortSpec': cohortSpec.toJson(),
-        if (currencyCode != null) 'currencyCode': currencyCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cohortSpec != null) 'cohortSpec': cohortSpec!.toJson(),
+        if (currencyCode != null) 'currencyCode': currencyCode!,
         if (dateRanges != null)
-          'dateRanges': dateRanges.map((value) => value.toJson()).toList(),
+          'dateRanges': dateRanges!.map((value) => value.toJson()).toList(),
         if (dimensionFilter != null)
-          'dimensionFilter': dimensionFilter.toJson(),
+          'dimensionFilter': dimensionFilter!.toJson(),
         if (dimensions != null)
-          'dimensions': dimensions.map((value) => value.toJson()).toList(),
-        if (entity != null) 'entity': entity.toJson(),
-        if (keepEmptyRows != null) 'keepEmptyRows': keepEmptyRows,
-        if (metricFilter != null) 'metricFilter': metricFilter.toJson(),
+          'dimensions': dimensions!.map((value) => value.toJson()).toList(),
+        if (entity != null) 'entity': entity!.toJson(),
+        if (keepEmptyRows != null) 'keepEmptyRows': keepEmptyRows!,
+        if (metricFilter != null) 'metricFilter': metricFilter!.toJson(),
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
         if (pivots != null)
-          'pivots': pivots.map((value) => value.toJson()).toList(),
+          'pivots': pivots!.map((value) => value.toJson()).toList(),
         if (returnPropertyQuota != null)
-          'returnPropertyQuota': returnPropertyQuota,
+          'returnPropertyQuota': returnPropertyQuota!,
       };
 }
 
@@ -2065,22 +2054,22 @@
   /// controlled by the metric_aggregations in the pivot. The type of
   /// aggregation returned in each row is shown by the dimension_values which
   /// are set to "RESERVED_".
-  core.List<Row> aggregates;
+  core.List<Row>? aggregates;
 
   /// Describes dimension columns.
   ///
   /// The number of DimensionHeaders and ordering of DimensionHeaders matches
   /// the dimensions present in rows.
-  core.List<DimensionHeader> dimensionHeaders;
+  core.List<DimensionHeader>? dimensionHeaders;
 
   /// Metadata for the report.
-  ResponseMetaData metadata;
+  ResponseMetaData? metadata;
 
   /// Describes metric columns.
   ///
   /// The number of MetricHeaders and ordering of MetricHeaders matches the
   /// metrics present in rows.
-  core.List<MetricHeader> metricHeaders;
+  core.List<MetricHeader>? metricHeaders;
 
   /// Summarizes the columns and rows created by a pivot.
   ///
@@ -2093,13 +2082,13 @@
   /// \] }\] }, { "dimensionHeaders": \[{ "dimensionValues": \[{ "value":
   /// "session_start" }\] }, { "dimensionValues": \[{ "value": "scroll" }\] }\]
   /// }\]
-  core.List<PivotHeader> pivotHeaders;
+  core.List<PivotHeader>? pivotHeaders;
 
   /// This Analytics Property's quota state including this request.
-  PropertyQuota propertyQuota;
+  PropertyQuota? propertyQuota;
 
   /// Rows of dimension value combinations and metric values in the report.
-  core.List<Row> rows;
+  core.List<Row>? rows;
 
   RunPivotReportResponse();
 
@@ -2144,20 +2133,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (aggregates != null)
-          'aggregates': aggregates.map((value) => value.toJson()).toList(),
+          'aggregates': aggregates!.map((value) => value.toJson()).toList(),
         if (dimensionHeaders != null)
           'dimensionHeaders':
-              dimensionHeaders.map((value) => value.toJson()).toList(),
-        if (metadata != null) 'metadata': metadata.toJson(),
+              dimensionHeaders!.map((value) => value.toJson()).toList(),
+        if (metadata != null) 'metadata': metadata!.toJson(),
         if (metricHeaders != null)
           'metricHeaders':
-              metricHeaders.map((value) => value.toJson()).toList(),
+              metricHeaders!.map((value) => value.toJson()).toList(),
         if (pivotHeaders != null)
-          'pivotHeaders': pivotHeaders.map((value) => value.toJson()).toList(),
-        if (propertyQuota != null) 'propertyQuota': propertyQuota.toJson(),
-        if (rows != null) 'rows': rows.map((value) => value.toJson()).toList(),
+          'pivotHeaders': pivotHeaders!.map((value) => value.toJson()).toList(),
+        if (propertyQuota != null) 'propertyQuota': propertyQuota!.toJson(),
+        if (rows != null) 'rows': rows!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2167,42 +2156,42 @@
   ///
   /// Dimensions must be requested to be used in this filter. Metrics cannot be
   /// used in this filter.
-  FilterExpression dimensionFilter;
+  FilterExpression? dimensionFilter;
 
   /// The dimensions requested and displayed.
-  core.List<Dimension> dimensions;
+  core.List<Dimension>? dimensions;
 
   /// The number of rows to return.
   ///
   /// If the `limit` parameter is unspecified, 10,000 rows are returned. The API
   /// returns a maximum of 100,000 rows per request, no matter how many you ask
   /// for.
-  core.String limit;
+  core.String? limit;
 
   /// Aggregation of metrics.
   ///
   /// Aggregated metric values will be shown in rows where the dimension_values
   /// are set to "RESERVED_(MetricAggregation)".
-  core.List<core.String> metricAggregations;
+  core.List<core.String>? metricAggregations;
 
   /// The filter clause of metrics.
   ///
   /// Applied at post aggregation phase, similar to SQL having-clause. Metrics
   /// must be requested to be used in this filter. Dimensions cannot be used in
   /// this filter.
-  FilterExpression metricFilter;
+  FilterExpression? metricFilter;
 
   /// The metrics requested and displayed.
-  core.List<Metric> metrics;
+  core.List<Metric>? metrics;
 
   /// Specifies how rows are ordered in the response.
-  core.List<OrderBy> orderBys;
+  core.List<OrderBy>? orderBys;
 
   /// Toggles whether to return the current state of this Analytics Property's
   /// Realtime quota.
   ///
   /// Quota is returned in \[PropertyQuota\](#PropertyQuota).
-  core.bool returnPropertyQuota;
+  core.bool? returnPropertyQuota;
 
   RunRealtimeReportRequest();
 
@@ -2246,21 +2235,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensionFilter != null)
-          'dimensionFilter': dimensionFilter.toJson(),
+          'dimensionFilter': dimensionFilter!.toJson(),
         if (dimensions != null)
-          'dimensions': dimensions.map((value) => value.toJson()).toList(),
-        if (limit != null) 'limit': limit,
+          'dimensions': dimensions!.map((value) => value.toJson()).toList(),
+        if (limit != null) 'limit': limit!,
         if (metricAggregations != null)
-          'metricAggregations': metricAggregations,
-        if (metricFilter != null) 'metricFilter': metricFilter.toJson(),
+          'metricAggregations': metricAggregations!,
+        if (metricFilter != null) 'metricFilter': metricFilter!.toJson(),
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
         if (orderBys != null)
-          'orderBys': orderBys.map((value) => value.toJson()).toList(),
+          'orderBys': orderBys!.map((value) => value.toJson()).toList(),
         if (returnPropertyQuota != null)
-          'returnPropertyQuota': returnPropertyQuota,
+          'returnPropertyQuota': returnPropertyQuota!,
       };
 }
 
@@ -2270,35 +2259,35 @@
   ///
   /// The number of DimensionHeaders and ordering of DimensionHeaders matches
   /// the dimensions present in rows.
-  core.List<DimensionHeader> dimensionHeaders;
+  core.List<DimensionHeader>? dimensionHeaders;
 
   /// If requested, the maximum values of metrics.
-  core.List<Row> maximums;
+  core.List<Row>? maximums;
 
   /// Describes metric columns.
   ///
   /// The number of MetricHeaders and ordering of MetricHeaders matches the
   /// metrics present in rows.
-  core.List<MetricHeader> metricHeaders;
+  core.List<MetricHeader>? metricHeaders;
 
   /// If requested, the minimum values of metrics.
-  core.List<Row> minimums;
+  core.List<Row>? minimums;
 
   /// This Analytics Property's Realtime quota state including this request.
-  PropertyQuota propertyQuota;
+  PropertyQuota? propertyQuota;
 
   /// The total number of rows in the query result, regardless of the number of
   /// rows returned in the response.
   ///
   /// For example if a query returns 175 rows and includes limit = 50 in the API
   /// request, the response will contain row_count = 175 but only 50 rows.
-  core.int rowCount;
+  core.int? rowCount;
 
   /// Rows of dimension value combinations and metric values in the report.
-  core.List<Row> rows;
+  core.List<Row>? rows;
 
   /// If requested, the totaled values of metrics.
-  core.List<Row> totals;
+  core.List<Row>? totals;
 
   RunRealtimeReportResponse();
 
@@ -2348,22 +2337,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensionHeaders != null)
           'dimensionHeaders':
-              dimensionHeaders.map((value) => value.toJson()).toList(),
+              dimensionHeaders!.map((value) => value.toJson()).toList(),
         if (maximums != null)
-          'maximums': maximums.map((value) => value.toJson()).toList(),
+          'maximums': maximums!.map((value) => value.toJson()).toList(),
         if (metricHeaders != null)
           'metricHeaders':
-              metricHeaders.map((value) => value.toJson()).toList(),
+              metricHeaders!.map((value) => value.toJson()).toList(),
         if (minimums != null)
-          'minimums': minimums.map((value) => value.toJson()).toList(),
-        if (propertyQuota != null) 'propertyQuota': propertyQuota.toJson(),
-        if (rowCount != null) 'rowCount': rowCount,
-        if (rows != null) 'rows': rows.map((value) => value.toJson()).toList(),
+          'minimums': minimums!.map((value) => value.toJson()).toList(),
+        if (propertyQuota != null) 'propertyQuota': propertyQuota!.toJson(),
+        if (rowCount != null) 'rowCount': rowCount!,
+        if (rows != null) 'rows': rows!.map((value) => value.toJson()).toList(),
         if (totals != null)
-          'totals': totals.map((value) => value.toJson()).toList(),
+          'totals': totals!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2373,12 +2362,12 @@
   ///
   /// If there is a cohort group in the request the 'cohort' dimension must be
   /// present.
-  CohortSpec cohortSpec;
+  CohortSpec? cohortSpec;
 
   /// A currency code in ISO4217 format, such as "AED", "USD", "JPY".
   ///
   /// If the field is empty, the report uses the entity's default currency.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Date ranges of data to read.
   ///
@@ -2386,66 +2375,66 @@
   /// zero based date range index. If two date ranges overlap, the event data
   /// for the overlapping days is included in the response rows for both date
   /// ranges. In a cohort request, this `dateRanges` must be unspecified.
-  core.List<DateRange> dateRanges;
+  core.List<DateRange>? dateRanges;
 
   /// The filter clause of dimensions.
   ///
   /// Dimensions must be requested to be used in this filter. Metrics cannot be
   /// used in this filter.
-  FilterExpression dimensionFilter;
+  FilterExpression? dimensionFilter;
 
   /// The dimensions requested and displayed.
-  core.List<Dimension> dimensions;
+  core.List<Dimension>? dimensions;
 
   /// A property whose events are tracked.
   ///
   /// Within a batch request, this entity should either be unspecified or
   /// consistent with the batch-level entity.
-  Entity entity;
+  Entity? entity;
 
   /// If false or unspecified, each row with all metrics equal to 0 will not be
   /// returned.
   ///
   /// If true, these rows will be returned if they are not separately removed by
   /// a filter.
-  core.bool keepEmptyRows;
+  core.bool? keepEmptyRows;
 
   /// The number of rows to return.
   ///
   /// If the `limit` parameter is unspecified, 10,000 rows are returned. The API
   /// returns a maximum of 100,000 rows per request, no matter how many you ask
   /// for.
-  core.String limit;
+  core.String? limit;
 
   /// Aggregation of metrics.
   ///
   /// Aggregated metric values will be shown in rows where the dimension_values
   /// are set to "RESERVED_(MetricAggregation)".
-  core.List<core.String> metricAggregations;
+  core.List<core.String>? metricAggregations;
 
   /// The filter clause of metrics.
   ///
   /// Applied at post aggregation phase, similar to SQL having-clause. Metrics
   /// must be requested to be used in this filter. Dimensions cannot be used in
   /// this filter.
-  FilterExpression metricFilter;
+  FilterExpression? metricFilter;
 
   /// The metrics requested and displayed.
-  core.List<Metric> metrics;
+  core.List<Metric>? metrics;
 
   /// The row count of the start row.
   ///
   /// The first row is counted as row 0.
-  core.String offset;
+  core.String? offset;
 
   /// Specifies how rows are ordered in the response.
-  core.List<OrderBy> orderBys;
+  core.List<OrderBy>? orderBys;
 
   /// Toggles whether to return the current state of this Analytics Property's
   /// quota.
   ///
   /// Quota is returned in \[PropertyQuota\](#PropertyQuota).
-  core.bool returnPropertyQuota;
+  core.bool? returnPropertyQuota;
 
   RunReportRequest();
 
@@ -2512,28 +2501,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cohortSpec != null) 'cohortSpec': cohortSpec.toJson(),
-        if (currencyCode != null) 'currencyCode': currencyCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cohortSpec != null) 'cohortSpec': cohortSpec!.toJson(),
+        if (currencyCode != null) 'currencyCode': currencyCode!,
         if (dateRanges != null)
-          'dateRanges': dateRanges.map((value) => value.toJson()).toList(),
+          'dateRanges': dateRanges!.map((value) => value.toJson()).toList(),
         if (dimensionFilter != null)
-          'dimensionFilter': dimensionFilter.toJson(),
+          'dimensionFilter': dimensionFilter!.toJson(),
         if (dimensions != null)
-          'dimensions': dimensions.map((value) => value.toJson()).toList(),
-        if (entity != null) 'entity': entity.toJson(),
-        if (keepEmptyRows != null) 'keepEmptyRows': keepEmptyRows,
-        if (limit != null) 'limit': limit,
+          'dimensions': dimensions!.map((value) => value.toJson()).toList(),
+        if (entity != null) 'entity': entity!.toJson(),
+        if (keepEmptyRows != null) 'keepEmptyRows': keepEmptyRows!,
+        if (limit != null) 'limit': limit!,
         if (metricAggregations != null)
-          'metricAggregations': metricAggregations,
-        if (metricFilter != null) 'metricFilter': metricFilter.toJson(),
+          'metricAggregations': metricAggregations!,
+        if (metricFilter != null) 'metricFilter': metricFilter!.toJson(),
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
-        if (offset != null) 'offset': offset,
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
+        if (offset != null) 'offset': offset!,
         if (orderBys != null)
-          'orderBys': orderBys.map((value) => value.toJson()).toList(),
+          'orderBys': orderBys!.map((value) => value.toJson()).toList(),
         if (returnPropertyQuota != null)
-          'returnPropertyQuota': returnPropertyQuota,
+          'returnPropertyQuota': returnPropertyQuota!,
       };
 }
 
@@ -2543,25 +2532,25 @@
   ///
   /// The number of DimensionHeaders and ordering of DimensionHeaders matches
   /// the dimensions present in rows.
-  core.List<DimensionHeader> dimensionHeaders;
+  core.List<DimensionHeader>? dimensionHeaders;
 
   /// If requested, the maximum values of metrics.
-  core.List<Row> maximums;
+  core.List<Row>? maximums;
 
   /// Metadata for the report.
-  ResponseMetaData metadata;
+  ResponseMetaData? metadata;
 
   /// Describes metric columns.
   ///
   /// The number of MetricHeaders and ordering of MetricHeaders matches the
   /// metrics present in rows.
-  core.List<MetricHeader> metricHeaders;
+  core.List<MetricHeader>? metricHeaders;
 
   /// If requested, the minimum values of metrics.
-  core.List<Row> minimums;
+  core.List<Row>? minimums;
 
   /// This Analytics Property's quota state including this request.
-  PropertyQuota propertyQuota;
+  PropertyQuota? propertyQuota;
 
   /// The total number of rows in the query result, regardless of the number of
   /// rows returned in the response.
@@ -2570,13 +2559,13 @@
   /// request, the response will contain row_count = 175 but only 50 rows. To
   /// learn more about this pagination parameter, see
   /// [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
-  core.int rowCount;
+  core.int? rowCount;
 
   /// Rows of dimension value combinations and metric values in the report.
-  core.List<Row> rows;
+  core.List<Row>? rows;
 
   /// If requested, the totaled values of metrics.
-  core.List<Row> totals;
+  core.List<Row>? totals;
 
   RunReportResponse();
 
@@ -2630,30 +2619,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dimensionHeaders != null)
           'dimensionHeaders':
-              dimensionHeaders.map((value) => value.toJson()).toList(),
+              dimensionHeaders!.map((value) => value.toJson()).toList(),
         if (maximums != null)
-          'maximums': maximums.map((value) => value.toJson()).toList(),
-        if (metadata != null) 'metadata': metadata.toJson(),
+          'maximums': maximums!.map((value) => value.toJson()).toList(),
+        if (metadata != null) 'metadata': metadata!.toJson(),
         if (metricHeaders != null)
           'metricHeaders':
-              metricHeaders.map((value) => value.toJson()).toList(),
+              metricHeaders!.map((value) => value.toJson()).toList(),
         if (minimums != null)
-          'minimums': minimums.map((value) => value.toJson()).toList(),
-        if (propertyQuota != null) 'propertyQuota': propertyQuota.toJson(),
-        if (rowCount != null) 'rowCount': rowCount,
-        if (rows != null) 'rows': rows.map((value) => value.toJson()).toList(),
+          'minimums': minimums!.map((value) => value.toJson()).toList(),
+        if (propertyQuota != null) 'propertyQuota': propertyQuota!.toJson(),
+        if (rowCount != null) 'rowCount': rowCount!,
+        if (rows != null) 'rows': rows!.map((value) => value.toJson()).toList(),
         if (totals != null)
-          'totals': totals.map((value) => value.toJson()).toList(),
+          'totals': totals!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// The filter for string
 class StringFilter {
   /// If true, the string value is case sensitive.
-  core.bool caseSensitive;
+  core.bool? caseSensitive;
 
   /// The match type for this filter.
   /// Possible string values are:
@@ -2665,10 +2654,10 @@
   /// - "FULL_REGEXP" : Full regular expression match with the string value.
   /// - "PARTIAL_REGEXP" : Partial regular expression match with the string
   /// value.
-  core.String matchType;
+  core.String? matchType;
 
   /// The string value used for the matching.
-  core.String value;
+  core.String? value;
 
   StringFilter();
 
@@ -2684,9 +2673,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (caseSensitive != null) 'caseSensitive': caseSensitive,
-        if (matchType != null) 'matchType': matchType,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (caseSensitive != null) 'caseSensitive': caseSensitive!,
+        if (matchType != null) 'matchType': matchType!,
+        if (value != null) 'value': value!,
       };
 }
diff --git a/generated/googleapis_beta/lib/area120tables/v1alpha1.dart b/generated/googleapis_beta/lib/area120tables/v1alpha1.dart
index a08bdf6..3365806 100644
--- a/generated/googleapis_beta/lib/area120tables/v1alpha1.dart
+++ b/generated/googleapis_beta/lib/area120tables/v1alpha1.dart
@@ -102,11 +102,8 @@
   /// this method will complete with the same error.
   async.Future<Table> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -145,9 +142,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<ListTablesResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -195,13 +192,9 @@
   async.Future<BatchCreateRowsResponse> batchCreate(
     BatchCreateRowsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -243,13 +236,9 @@
   async.Future<Empty> batchDelete(
     BatchDeleteRowsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -290,13 +279,9 @@
   async.Future<BatchUpdateRowsResponse> batchUpdate(
     BatchUpdateRowsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -345,14 +330,10 @@
   async.Future<Row> create(
     Row request,
     core.String parent, {
-    core.String view,
-    core.String $fields,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (view != null) 'view': [view],
       if ($fields != null) 'fields': [$fields],
@@ -391,11 +372,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -439,12 +417,9 @@
   /// this method will complete with the same error.
   async.Future<Row> get(
     core.String name, {
-    core.String view,
-    core.String $fields,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (view != null) 'view': [view],
       if ($fields != null) 'fields': [$fields],
@@ -501,15 +476,12 @@
   /// this method will complete with the same error.
   async.Future<ListRowsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String view,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -563,15 +535,11 @@
   async.Future<Row> patch(
     Row request,
     core.String name, {
-    core.String updateMask,
-    core.String view,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if (view != null) 'view': [view],
@@ -617,11 +585,8 @@
   /// this method will complete with the same error.
   async.Future<Workspace> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -660,9 +625,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<ListWorkspacesResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -689,7 +654,7 @@
   /// A maximum of 500 rows can be created in a single batch.
   ///
   /// Required.
-  core.List<CreateRowRequest> requests;
+  core.List<CreateRowRequest>? requests;
 
   BatchCreateRowsRequest();
 
@@ -702,16 +667,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for TablesService.BatchCreateRows.
 class BatchCreateRowsResponse {
   /// The created rows.
-  core.List<Row> rows;
+  core.List<Row>? rows;
 
   BatchCreateRowsResponse();
 
@@ -724,8 +689,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (rows != null) 'rows': rows.map((value) => value.toJson()).toList(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (rows != null) 'rows': rows!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -738,7 +703,7 @@
   /// tables/{table}/rows/{row}
   ///
   /// Required.
-  core.List<core.String> names;
+  core.List<core.String>? names;
 
   BatchDeleteRowsRequest();
 
@@ -750,8 +715,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (names != null) 'names': names,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (names != null) 'names': names!,
       };
 }
 
@@ -762,7 +727,7 @@
   /// A maximum of 500 rows can be modified in a single batch.
   ///
   /// Required.
-  core.List<UpdateRowRequest> requests;
+  core.List<UpdateRowRequest>? requests;
 
   BatchUpdateRowsRequest();
 
@@ -775,16 +740,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requests != null)
-          'requests': requests.map((value) => value.toJson()).toList(),
+          'requests': requests!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for TablesService.BatchUpdateRows.
 class BatchUpdateRowsResponse {
   /// The updated rows.
-  core.List<Row> rows;
+  core.List<Row>? rows;
 
   BatchUpdateRowsResponse();
 
@@ -797,8 +762,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (rows != null) 'rows': rows.map((value) => value.toJson()).toList(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (rows != null) 'rows': rows!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -811,10 +776,10 @@
   /// file_attachment_list.
   ///
   /// These types directly map to the column types supported on Tables website.
-  core.String dataType;
+  core.String? dataType;
 
   /// Internal id for a column.
-  core.String id;
+  core.String? id;
 
   /// Range of labeled values for the column.
   ///
@@ -823,7 +788,7 @@
   /// clients implement better user data validation.
   ///
   /// Optional.
-  core.List<LabeledItem> labels;
+  core.List<LabeledItem>? labels;
 
   /// Indicates that this is a lookup column whose value is derived from the
   /// relationship column specified in the details.
@@ -832,17 +797,17 @@
   /// update the associated relationship column.
   ///
   /// Optional.
-  LookupDetails lookupDetails;
+  LookupDetails? lookupDetails;
 
   /// column name
-  core.String name;
+  core.String? name;
 
   /// Additional details about a relationship column.
   ///
   /// Specified when data_type is relationship.
   ///
   /// Optional.
-  RelationshipDetails relationshipDetails;
+  RelationshipDetails? relationshipDetails;
 
   ColumnDescription();
 
@@ -872,15 +837,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataType != null) 'dataType': dataType,
-        if (id != null) 'id': id,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataType != null) 'dataType': dataType!,
+        if (id != null) 'id': id!,
         if (labels != null)
-          'labels': labels.map((value) => value.toJson()).toList(),
-        if (lookupDetails != null) 'lookupDetails': lookupDetails.toJson(),
-        if (name != null) 'name': name,
+          'labels': labels!.map((value) => value.toJson()).toList(),
+        if (lookupDetails != null) 'lookupDetails': lookupDetails!.toJson(),
+        if (name != null) 'name': name!,
         if (relationshipDetails != null)
-          'relationshipDetails': relationshipDetails.toJson(),
+          'relationshipDetails': relationshipDetails!.toJson(),
       };
 }
 
@@ -891,12 +856,12 @@
   /// Format: tables/{table}
   ///
   /// Required.
-  core.String parent;
+  core.String? parent;
 
   /// The row to create.
   ///
   /// Required.
-  Row row;
+  Row? row;
 
   /// Column key to use for values in the row.
   ///
@@ -907,7 +872,7 @@
   /// - "VIEW_UNSPECIFIED" : Defaults to user entered text.
   /// - "COLUMN_ID_VIEW" : Uses internally generated column id to identify
   /// values.
-  core.String view;
+  core.String? view;
 
   CreateRowRequest();
 
@@ -923,10 +888,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (parent != null) 'parent': parent,
-        if (row != null) 'row': row.toJson(),
-        if (view != null) 'view': view,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (parent != null) 'parent': parent!,
+        if (row != null) 'row': row!.toJson(),
+        if (view != null) 'view': view!,
       };
 }
 
@@ -944,16 +909,16 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A single item in a labeled column.
 class LabeledItem {
   /// Internal id associated with the item.
-  core.String id;
+  core.String? id;
 
   /// Display string as entered by user.
-  core.String name;
+  core.String? name;
 
   LabeledItem();
 
@@ -966,9 +931,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -977,10 +942,10 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is empty, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The rows from the specified table.
-  core.List<Row> rows;
+  core.List<Row>? rows;
 
   ListRowsResponse();
 
@@ -996,9 +961,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (rows != null) 'rows': rows.map((value) => value.toJson()).toList(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (rows != null) 'rows': rows!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1007,10 +972,10 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is empty, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of tables.
-  core.List<Table> tables;
+  core.List<Table>? tables;
 
   ListTablesResponse();
 
@@ -1026,10 +991,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (tables != null)
-          'tables': tables.map((value) => value.toJson()).toList(),
+          'tables': tables!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1038,10 +1003,10 @@
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is empty, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of workspaces.
-  core.List<Workspace> workspaces;
+  core.List<Workspace>? workspaces;
 
   ListWorkspacesResponse();
 
@@ -1057,10 +1022,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (workspaces != null)
-          'workspaces': workspaces.map((value) => value.toJson()).toList(),
+          'workspaces': workspaces!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1068,10 +1033,10 @@
 /// relationship.
 class LookupDetails {
   /// The name of the relationship column associated with the lookup.
-  core.String relationshipColumn;
+  core.String? relationshipColumn;
 
   /// The id of the relationship column.
-  core.String relationshipColumnId;
+  core.String? relationshipColumnId;
 
   LookupDetails();
 
@@ -1084,18 +1049,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (relationshipColumn != null)
-          'relationshipColumn': relationshipColumn,
+          'relationshipColumn': relationshipColumn!,
         if (relationshipColumnId != null)
-          'relationshipColumnId': relationshipColumnId,
+          'relationshipColumnId': relationshipColumnId!,
       };
 }
 
 /// Details about a relationship column.
 class RelationshipDetails {
   /// The name of the table this relationship is linked to.
-  core.String linkedTable;
+  core.String? linkedTable;
 
   RelationshipDetails();
 
@@ -1105,24 +1070,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (linkedTable != null) 'linkedTable': linkedTable,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (linkedTable != null) 'linkedTable': linkedTable!,
       };
 }
 
 /// A single row in a table.
 class Row {
   /// Time when the row was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The resource name of the row.
   ///
   /// Row names have the form `tables/{table}/rows/{row}`. The name is ignored
   /// when creating a row.
-  core.String name;
+  core.String? name;
 
   /// Time when the row was last updated.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The values of the row.
   ///
@@ -1131,7 +1096,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> values;
+  core.Map<core.String, core.Object>? values;
 
   Row();
 
@@ -1156,11 +1121,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (values != null) 'values': values,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (values != null) 'values': values!,
       };
 }
 
@@ -1169,21 +1134,21 @@
   /// List of columns in this table.
   ///
   /// Order of columns matches the display order.
-  core.List<ColumnDescription> columns;
+  core.List<ColumnDescription>? columns;
 
   /// Time when the table was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The human readable title of the table.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the table.
   ///
   /// Table names have the form `tables/{table}`.
-  core.String name;
+  core.String? name;
 
   /// Time when the table was last updated excluding updates to individual rows
-  core.String updateTime;
+  core.String? updateTime;
 
   Table();
 
@@ -1208,13 +1173,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (columns != null)
-          'columns': columns.map((value) => value.toJson()).toList(),
-        if (createTime != null) 'createTime': createTime,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
+          'columns': columns!.map((value) => value.toJson()).toList(),
+        if (createTime != null) 'createTime': createTime!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -1223,10 +1188,10 @@
   /// The row to update.
   ///
   /// Required.
-  Row row;
+  Row? row;
 
   /// The list of fields to update.
-  core.String updateMask;
+  core.String? updateMask;
 
   /// Column key to use for values in the row.
   ///
@@ -1237,7 +1202,7 @@
   /// - "VIEW_UNSPECIFIED" : Defaults to user entered text.
   /// - "COLUMN_ID_VIEW" : Uses internally generated column id to identify
   /// values.
-  core.String view;
+  core.String? view;
 
   UpdateRowRequest();
 
@@ -1253,31 +1218,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (row != null) 'row': row.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
-        if (view != null) 'view': view,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (row != null) 'row': row!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
+        if (view != null) 'view': view!,
       };
 }
 
 /// A single workspace.
 class Workspace {
   /// Time when the workspace was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The human readable title of the workspace.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the workspace.
   ///
   /// Workspace names have the form `workspaces/{workspace}`.
-  core.String name;
+  core.String? name;
 
   /// The list of tables in the workspace.
-  core.List<Table> tables;
+  core.List<Table>? tables;
 
   /// Time when the workspace was last updated.
-  core.String updateTime;
+  core.String? updateTime;
 
   Workspace();
 
@@ -1302,12 +1267,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
         if (tables != null)
-          'tables': tables.map((value) => value.toJson()).toList(),
-        if (updateTime != null) 'updateTime': updateTime,
+          'tables': tables!.map((value) => value.toJson()).toList(),
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
diff --git a/generated/googleapis_beta/lib/bigqueryconnection/v1beta1.dart b/generated/googleapis_beta/lib/bigqueryconnection/v1beta1.dart
index c649cbc..eb012c5 100644
--- a/generated/googleapis_beta/lib/bigqueryconnection/v1beta1.dart
+++ b/generated/googleapis_beta/lib/bigqueryconnection/v1beta1.dart
@@ -110,14 +110,10 @@
   async.Future<Connection> create(
     Connection request,
     core.String parent, {
-    core.String connectionId,
-    core.String $fields,
+    core.String? connectionId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (connectionId != null) 'connectionId': [connectionId],
       if ($fields != null) 'fields': [$fields],
@@ -158,11 +154,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -198,11 +191,8 @@
   /// this method will complete with the same error.
   async.Future<Connection> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -246,13 +236,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -294,13 +280,10 @@
   /// this method will complete with the same error.
   async.Future<ListConnectionsResponse> list(
     core.String parent, {
-    core.int maxResults,
-    core.String pageToken,
-    core.String $fields,
+    core.int? maxResults,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (maxResults != null) 'maxResults': ['${maxResults}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -350,14 +333,10 @@
   async.Future<Connection> patch(
     Connection request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -403,13 +382,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -457,13 +432,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -506,13 +477,9 @@
   async.Future<Empty> updateCredential(
     ConnectionCredential request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -548,13 +515,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<AuditLogConfig> auditLogConfigs;
+  core.List<AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   /// `allServices` is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   AuditConfig();
 
@@ -570,11 +537,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -589,7 +556,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -597,7 +564,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   AuditLogConfig();
 
@@ -612,9 +579,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -628,7 +595,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -660,12 +627,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -684,20 +651,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
 /// Credential info for the Cloud SQL.
 class CloudSqlCredential {
   /// The password for the credential.
-  core.String password;
+  core.String? password;
 
   /// The username for the credential.
-  core.String username;
+  core.String? username;
 
   CloudSqlCredential();
 
@@ -710,9 +677,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (password != null) 'password': password,
-        if (username != null) 'username': username,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (password != null) 'password': password!,
+        if (username != null) 'username': username!,
       };
 }
 
@@ -721,20 +688,20 @@
   /// Input only.
   ///
   /// Cloud SQL credential.
-  CloudSqlCredential credential;
+  CloudSqlCredential? credential;
 
   /// Database name.
-  core.String database;
+  core.String? database;
 
   /// Cloud SQL instance ID in the form `project:location:instance`.
-  core.String instanceId;
+  core.String? instanceId;
 
   /// Type of the Cloud SQL database.
   /// Possible string values are:
   /// - "DATABASE_TYPE_UNSPECIFIED" : Unspecified database type.
   /// - "POSTGRES" : Cloud SQL for PostgreSQL.
   /// - "MYSQL" : Cloud SQL for MySQL.
-  core.String type;
+  core.String? type;
 
   CloudSqlProperties();
 
@@ -754,11 +721,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (credential != null) 'credential': credential.toJson(),
-        if (database != null) 'database': database,
-        if (instanceId != null) 'instanceId': instanceId,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (credential != null) 'credential': credential!.toJson(),
+        if (database != null) 'database': database!,
+        if (instanceId != null) 'instanceId': instanceId!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -766,32 +733,32 @@
 /// source, except the credential attributes.
 class Connection {
   /// Cloud SQL properties.
-  CloudSqlProperties cloudSql;
+  CloudSqlProperties? cloudSql;
 
   /// The creation timestamp of the connection.
   ///
   /// Output only.
-  core.String creationTime;
+  core.String? creationTime;
 
   /// User provided description.
-  core.String description;
+  core.String? description;
 
   /// User provided display name for the connection.
-  core.String friendlyName;
+  core.String? friendlyName;
 
   /// True, if credential is configured for this connection.
   ///
   /// Output only.
-  core.bool hasCredential;
+  core.bool? hasCredential;
 
   /// The last update timestamp of the connection.
   ///
   /// Output only.
-  core.String lastModifiedTime;
+  core.String? lastModifiedTime;
 
   /// The resource name of the connection in the form of:
   /// `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
-  core.String name;
+  core.String? name;
 
   Connection();
 
@@ -820,21 +787,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudSql != null) 'cloudSql': cloudSql.toJson(),
-        if (creationTime != null) 'creationTime': creationTime,
-        if (description != null) 'description': description,
-        if (friendlyName != null) 'friendlyName': friendlyName,
-        if (hasCredential != null) 'hasCredential': hasCredential,
-        if (lastModifiedTime != null) 'lastModifiedTime': lastModifiedTime,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudSql != null) 'cloudSql': cloudSql!.toJson(),
+        if (creationTime != null) 'creationTime': creationTime!,
+        if (description != null) 'description': description!,
+        if (friendlyName != null) 'friendlyName': friendlyName!,
+        if (hasCredential != null) 'hasCredential': hasCredential!,
+        if (lastModifiedTime != null) 'lastModifiedTime': lastModifiedTime!,
+        if (name != null) 'name': name!,
       };
 }
 
 /// Credential to use with a connection.
 class ConnectionCredential {
   /// Credential for Cloud SQL database.
-  CloudSqlCredential cloudSql;
+  CloudSqlCredential? cloudSql;
 
   ConnectionCredential();
 
@@ -845,8 +812,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudSql != null) 'cloudSql': cloudSql.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudSql != null) 'cloudSql': cloudSql!.toJson(),
       };
 }
 
@@ -864,7 +831,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Represents a textual expression in the Common Expression Language (CEL)
@@ -892,24 +859,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -928,11 +895,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -940,7 +907,7 @@
 class GetIamPolicyRequest {
   /// OPTIONAL: A `GetPolicyOptions` object for specifying options to
   /// `GetIamPolicy`.
-  GetPolicyOptions options;
+  GetPolicyOptions? options;
 
   GetIamPolicyRequest();
 
@@ -951,8 +918,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (options != null) 'options': options.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (options != null) 'options': options!.toJson(),
       };
 }
 
@@ -968,7 +935,7 @@
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
   ///
   /// Optional.
-  core.int requestedPolicyVersion;
+  core.int? requestedPolicyVersion;
 
   GetPolicyOptions();
 
@@ -978,19 +945,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requestedPolicyVersion != null)
-          'requestedPolicyVersion': requestedPolicyVersion,
+          'requestedPolicyVersion': requestedPolicyVersion!,
       };
 }
 
 /// The response for ConnectionService.ListConnections.
 class ListConnectionsResponse {
   /// List of connections.
-  core.List<Connection> connections;
+  core.List<Connection>? connections;
 
   /// Next page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListConnectionsResponse();
 
@@ -1006,10 +973,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (connections != null)
-          'connections': connections.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'connections': connections!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -1046,14 +1013,14 @@
 /// [IAM documentation](https://cloud.google.com/iam/docs/).
 class Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<AuditConfig> auditConfigs;
+  core.List<AuditConfig>? auditConfigs;
 
   /// Associates a list of `members` to a `role`.
   ///
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -1067,8 +1034,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -1092,7 +1059,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -1117,13 +1084,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -1134,13 +1101,13 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   /// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
   ///
   /// Only the fields in the mask will be modified. If no mask is provided, the
   /// following default mask is used: `paths: "bindings, etag"`
-  core.String updateMask;
+  core.String? updateMask;
 
   SetIamPolicyRequest();
 
@@ -1154,9 +1121,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -1167,7 +1134,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -1179,8 +1146,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -1188,7 +1155,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -1200,7 +1167,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
diff --git a/generated/googleapis_beta/lib/clouderrorreporting/v1beta1.dart b/generated/googleapis_beta/lib/clouderrorreporting/v1beta1.dart
index 938e61d..83339f6 100644
--- a/generated/googleapis_beta/lib/clouderrorreporting/v1beta1.dart
+++ b/generated/googleapis_beta/lib/clouderrorreporting/v1beta1.dart
@@ -93,11 +93,8 @@
   /// this method will complete with the same error.
   async.Future<DeleteEventsResponse> deleteEvents(
     core.String projectName, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectName == null) {
-      throw core.ArgumentError('Parameter projectName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -174,18 +171,15 @@
   /// this method will complete with the same error.
   async.Future<ListEventsResponse> list(
     core.String projectName, {
-    core.String groupId,
-    core.int pageSize,
-    core.String pageToken,
-    core.String serviceFilter_resourceType,
-    core.String serviceFilter_service,
-    core.String serviceFilter_version,
-    core.String timeRange_period,
-    core.String $fields,
+    core.String? groupId,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? serviceFilter_resourceType,
+    core.String? serviceFilter_service,
+    core.String? serviceFilter_version,
+    core.String? timeRange_period,
+    core.String? $fields,
   }) async {
-    if (projectName == null) {
-      throw core.ArgumentError('Parameter projectName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (groupId != null) 'groupId': [groupId],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -249,13 +243,9 @@
   async.Future<ReportErrorEventResponse> report(
     ReportedErrorEvent request,
     core.String projectName, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectName == null) {
-      throw core.ArgumentError('Parameter projectName is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -370,22 +360,19 @@
   /// this method will complete with the same error.
   async.Future<ListGroupStatsResponse> list(
     core.String projectName, {
-    core.String alignment,
-    core.String alignmentTime,
-    core.List<core.String> groupId,
-    core.String order,
-    core.int pageSize,
-    core.String pageToken,
-    core.String serviceFilter_resourceType,
-    core.String serviceFilter_service,
-    core.String serviceFilter_version,
-    core.String timeRange_period,
-    core.String timedCountDuration,
-    core.String $fields,
+    core.String? alignment,
+    core.String? alignmentTime,
+    core.List<core.String>? groupId,
+    core.String? order,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? serviceFilter_resourceType,
+    core.String? serviceFilter_service,
+    core.String? serviceFilter_version,
+    core.String? timeRange_period,
+    core.String? timedCountDuration,
+    core.String? $fields,
   }) async {
-    if (projectName == null) {
-      throw core.ArgumentError('Parameter projectName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (alignment != null) 'alignment': [alignment],
       if (alignmentTime != null) 'alignmentTime': [alignmentTime],
@@ -447,11 +434,8 @@
   /// this method will complete with the same error.
   async.Future<ErrorGroup> get(
     core.String groupName, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (groupName == null) {
-      throw core.ArgumentError('Parameter groupName is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -493,13 +477,9 @@
   async.Future<ErrorGroup> update(
     ErrorGroup request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -525,7 +505,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A description of the context in which an error occurred.
@@ -535,18 +515,18 @@
 /// Engine logs.
 class ErrorContext {
   /// The HTTP request which was processed when the error was triggered.
-  HttpRequestContext httpRequest;
+  HttpRequestContext? httpRequest;
 
   /// The location in the source code where the decision was made to report the
   /// error, usually the place where it was logged.
   ///
   /// For a logged exception this would be the source line where the exception
   /// is logged, usually close to the place where it was caught.
-  SourceLocation reportLocation;
+  SourceLocation? reportLocation;
 
   /// Source code that was used to build the executable which has caused the
   /// given error message.
-  core.List<SourceReference> sourceReferences;
+  core.List<SourceReference>? sourceReferences;
 
   /// The user who caused or was affected by the crash.
   ///
@@ -556,7 +536,7 @@
   /// Reporting system will use other data, such as remote IP address, to
   /// distinguish affected users. See `affected_users_count` in
   /// `ErrorGroupStats`.
-  core.String user;
+  core.String? user;
 
   ErrorContext();
 
@@ -580,32 +560,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (httpRequest != null) 'httpRequest': httpRequest.toJson(),
-        if (reportLocation != null) 'reportLocation': reportLocation.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (httpRequest != null) 'httpRequest': httpRequest!.toJson(),
+        if (reportLocation != null) 'reportLocation': reportLocation!.toJson(),
         if (sourceReferences != null)
           'sourceReferences':
-              sourceReferences.map((value) => value.toJson()).toList(),
-        if (user != null) 'user': user,
+              sourceReferences!.map((value) => value.toJson()).toList(),
+        if (user != null) 'user': user!,
       };
 }
 
 /// An error event which is returned by the Error Reporting system.
 class ErrorEvent {
   /// Data about the context in which the error occurred.
-  ErrorContext context;
+  ErrorContext? context;
 
   /// Time when the event occurred as provided in the error report.
   ///
   /// If the report did not contain a timestamp, the time the error was received
   /// by the Error Reporting system is used.
-  core.String eventTime;
+  core.String? eventTime;
 
   /// The stack trace that was reported or logged by the service.
-  core.String message;
+  core.String? message;
 
   /// The `ServiceContext` for which this error was reported.
-  ServiceContext serviceContext;
+  ServiceContext? serviceContext;
 
   ErrorEvent();
 
@@ -626,11 +606,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (context != null) 'context': context.toJson(),
-        if (eventTime != null) 'eventTime': eventTime,
-        if (message != null) 'message': message,
-        if (serviceContext != null) 'serviceContext': serviceContext.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (context != null) 'context': context!.toJson(),
+        if (eventTime != null) 'eventTime': eventTime!,
+        if (message != null) 'message': message!,
+        if (serviceContext != null) 'serviceContext': serviceContext!.toJson(),
       };
 }
 
@@ -640,12 +620,12 @@
   ///
   /// If the same kind of error occurs in different service contexts, it will
   /// receive the same group ID.
-  core.String groupId;
+  core.String? groupId;
 
   /// The group resource name.
   ///
   /// Example: projects/my-project-123/groups/CNSgkpnppqKCUw
-  core.String name;
+  core.String? name;
 
   /// Error group's resolution status.
   ///
@@ -661,10 +641,10 @@
   /// are not expected to occur.
   /// - "MUTED" : The error group is muted and excluded by default on group
   /// stats requests.
-  core.String resolutionStatus;
+  core.String? resolutionStatus;
 
   /// Associated tracking issues.
-  core.List<TrackingIssue> trackingIssues;
+  core.List<TrackingIssue>? trackingIssues;
 
   ErrorGroup();
 
@@ -686,13 +666,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (groupId != null) 'groupId': groupId,
-        if (name != null) 'name': name,
-        if (resolutionStatus != null) 'resolutionStatus': resolutionStatus,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (groupId != null) 'groupId': groupId!,
+        if (name != null) 'name': name!,
+        if (resolutionStatus != null) 'resolutionStatus': resolutionStatus!,
         if (trackingIssues != null)
           'trackingIssues':
-              trackingIssues.map((value) => value.toJson()).toList(),
+              trackingIssues!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -704,7 +684,7 @@
   ///
   /// This list can be truncated if multiple services are affected. Refer to
   /// `num_affected_services` for the total count.
-  core.List<ServiceContext> affectedServices;
+  core.List<ServiceContext>? affectedServices;
 
   /// Approximate number of affected users in the given group that match the
   /// filter criteria.
@@ -717,28 +697,28 @@
   /// request context that was provided in the error report. If more users are
   /// implicitly affected, such as due to a crash of the whole service, this is
   /// not reflected here.
-  core.String affectedUsersCount;
+  core.String? affectedUsersCount;
 
   /// Approximate total number of events in the given group that match the
   /// filter criteria.
-  core.String count;
+  core.String? count;
 
   /// Approximate first occurrence that was ever seen for this group and which
   /// matches the given filter criteria, ignoring the time_range that was
   /// specified in the request.
-  core.String firstSeenTime;
+  core.String? firstSeenTime;
 
   /// Group data that is independent of the filter criteria.
-  ErrorGroup group;
+  ErrorGroup? group;
 
   /// Approximate last occurrence that was ever seen for this group and which
   /// matches the given filter criteria, ignoring the time_range that was
   /// specified in the request.
-  core.String lastSeenTime;
+  core.String? lastSeenTime;
 
   /// The total number of services with a non-zero error count for the given
   /// filter criteria.
-  core.int numAffectedServices;
+  core.int? numAffectedServices;
 
   /// An arbitrary event that is chosen as representative for the whole group.
   ///
@@ -746,14 +726,14 @@
   /// whole group. Events in the group are usually sufficiently similar to each
   /// other such that showing an arbitrary representative provides insight into
   /// the characteristics of the group as a whole.
-  ErrorEvent representative;
+  ErrorEvent? representative;
 
   /// Approximate number of occurrences over time.
   ///
   /// Timed counts returned by ListGroups are guaranteed to be: - Inside the
   /// requested time interval - Non-overlapping, and - Ordered by ascending
   /// time.
-  core.List<TimedCount> timedCounts;
+  core.List<TimedCount>? timedCounts;
 
   ErrorGroupStats();
 
@@ -795,21 +775,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (affectedServices != null)
           'affectedServices':
-              affectedServices.map((value) => value.toJson()).toList(),
+              affectedServices!.map((value) => value.toJson()).toList(),
         if (affectedUsersCount != null)
-          'affectedUsersCount': affectedUsersCount,
-        if (count != null) 'count': count,
-        if (firstSeenTime != null) 'firstSeenTime': firstSeenTime,
-        if (group != null) 'group': group.toJson(),
-        if (lastSeenTime != null) 'lastSeenTime': lastSeenTime,
+          'affectedUsersCount': affectedUsersCount!,
+        if (count != null) 'count': count!,
+        if (firstSeenTime != null) 'firstSeenTime': firstSeenTime!,
+        if (group != null) 'group': group!.toJson(),
+        if (lastSeenTime != null) 'lastSeenTime': lastSeenTime!,
         if (numAffectedServices != null)
-          'numAffectedServices': numAffectedServices,
-        if (representative != null) 'representative': representative.toJson(),
+          'numAffectedServices': numAffectedServices!,
+        if (representative != null) 'representative': representative!.toJson(),
         if (timedCounts != null)
-          'timedCounts': timedCounts.map((value) => value.toJson()).toList(),
+          'timedCounts': timedCounts!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -820,25 +800,25 @@
 /// Engine logs.
 class HttpRequestContext {
   /// The type of HTTP request, such as `GET`, `POST`, etc.
-  core.String method;
+  core.String? method;
 
   /// The referrer information that is provided with the request.
-  core.String referrer;
+  core.String? referrer;
 
   /// The IP address from which the request originated.
   ///
   /// This can be IPv4, IPv6, or a token which is derived from the IP address,
   /// depending on the data that has been provided in the error report.
-  core.String remoteIp;
+  core.String? remoteIp;
 
   /// The HTTP response status code for the request.
-  core.int responseStatusCode;
+  core.int? responseStatusCode;
 
   /// The URL of the request.
-  core.String url;
+  core.String? url;
 
   /// The user agent information that is provided with the request.
-  core.String userAgent;
+  core.String? userAgent;
 
   HttpRequestContext();
 
@@ -863,31 +843,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (method != null) 'method': method,
-        if (referrer != null) 'referrer': referrer,
-        if (remoteIp != null) 'remoteIp': remoteIp,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (method != null) 'method': method!,
+        if (referrer != null) 'referrer': referrer!,
+        if (remoteIp != null) 'remoteIp': remoteIp!,
         if (responseStatusCode != null)
-          'responseStatusCode': responseStatusCode,
-        if (url != null) 'url': url,
-        if (userAgent != null) 'userAgent': userAgent,
+          'responseStatusCode': responseStatusCode!,
+        if (url != null) 'url': url!,
+        if (userAgent != null) 'userAgent': userAgent!,
       };
 }
 
 /// Contains a set of requested error events.
 class ListEventsResponse {
   /// The error events which match the given request.
-  core.List<ErrorEvent> errorEvents;
+  core.List<ErrorEvent>? errorEvents;
 
   /// If non-empty, more results are available.
   ///
   /// Pass this token, along with the same query parameters as the first
   /// request, to view the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The timestamp specifies the start time to which the request was
   /// restricted.
-  core.String timeRangeBegin;
+  core.String? timeRangeBegin;
 
   ListEventsResponse();
 
@@ -906,24 +886,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (errorEvents != null)
-          'errorEvents': errorEvents.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (timeRangeBegin != null) 'timeRangeBegin': timeRangeBegin,
+          'errorEvents': errorEvents!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (timeRangeBegin != null) 'timeRangeBegin': timeRangeBegin!,
       };
 }
 
 /// Contains a set of requested error group stats.
 class ListGroupStatsResponse {
   /// The error group stats which match the given request.
-  core.List<ErrorGroupStats> errorGroupStats;
+  core.List<ErrorGroupStats>? errorGroupStats;
 
   /// If non-empty, more results are available.
   ///
   /// Pass this token, along with the same query parameters as the first
   /// request, to view the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The timestamp specifies the start time to which the request was
   /// restricted.
@@ -931,7 +911,7 @@
   /// The start time is set based on the requested time range. It may be
   /// adjusted to a later time if a project has exceeded the storage quota and
   /// older data has been deleted.
-  core.String timeRangeBegin;
+  core.String? timeRangeBegin;
 
   ListGroupStatsResponse();
 
@@ -950,12 +930,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (errorGroupStats != null)
           'errorGroupStats':
-              errorGroupStats.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (timeRangeBegin != null) 'timeRangeBegin': timeRangeBegin,
+              errorGroupStats!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (timeRangeBegin != null) 'timeRangeBegin': timeRangeBegin!,
       };
 }
 
@@ -969,7 +949,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// An error event which is reported to the Error Reporting system.
@@ -977,7 +957,7 @@
   /// A description of the context in which the error occurred.
   ///
   /// Optional.
-  ErrorContext context;
+  ErrorContext? context;
 
   /// Time when the event occurred.
   ///
@@ -985,7 +965,7 @@
   /// Reporting system will be used.
   ///
   /// Optional.
-  core.String eventTime;
+  core.String? eventTime;
 
   /// The error message.
   ///
@@ -1011,12 +991,12 @@
   /// \[`runtime.Stack()`\](https://golang.org/pkg/runtime/debug/#Stack).
   ///
   /// Required.
-  core.String message;
+  core.String? message;
 
   /// The service context in which this error has occurred.
   ///
   /// Required.
-  ServiceContext serviceContext;
+  ServiceContext? serviceContext;
 
   ReportedErrorEvent();
 
@@ -1037,11 +1017,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (context != null) 'context': context.toJson(),
-        if (eventTime != null) 'eventTime': eventTime,
-        if (message != null) 'message': message,
-        if (serviceContext != null) 'serviceContext': serviceContext.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (context != null) 'context': context!.toJson(),
+        if (eventTime != null) 'eventTime': eventTime!,
+        if (message != null) 'message': message!,
+        if (serviceContext != null) 'serviceContext': serviceContext!.toJson(),
       };
 }
 
@@ -1054,7 +1034,7 @@
   /// List of possible values: https://cloud.google.com/monitoring/api/resources
   /// Value is set automatically for incoming errors and must not be set when
   /// reporting errors.
-  core.String resourceType;
+  core.String? resourceType;
 
   /// An identifier of the service, such as the name of the executable, job, or
   /// Google App Engine service name.
@@ -1064,14 +1044,14 @@
   /// new code is deployed. Contains the service name for error reports
   /// extracted from Google App Engine logs or `default` if the App Engine
   /// default service is used.
-  core.String service;
+  core.String? service;
 
   /// Represents the source code version that the developer provided, which
   /// could represent a version label or a Git SHA-1 hash, for example.
   ///
   /// For App Engine standard environment, the version is set to the version of
   /// the app.
-  core.String version;
+  core.String? version;
 
   ServiceContext();
 
@@ -1087,10 +1067,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceType != null) 'resourceType': resourceType,
-        if (service != null) 'service': service,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceType != null) 'resourceType': resourceType!,
+        if (service != null) 'service': service!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -1103,18 +1083,18 @@
 class SourceLocation {
   /// The source code filename, which can include a truncated relative path, or
   /// a full path from a production machine.
-  core.String filePath;
+  core.String? filePath;
 
   /// Human-readable name of a function or method.
   ///
   /// The value can include optional context like the class or package name. For
   /// example, `my.package.MyClass.method` in case of Java.
-  core.String functionName;
+  core.String? functionName;
 
   /// 1-based.
   ///
   /// 0 indicates that the line number is unknown.
-  core.int lineNumber;
+  core.int? lineNumber;
 
   SourceLocation();
 
@@ -1130,10 +1110,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (filePath != null) 'filePath': filePath,
-        if (functionName != null) 'functionName': functionName,
-        if (lineNumber != null) 'lineNumber': lineNumber,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (filePath != null) 'filePath': filePath!,
+        if (functionName != null) 'functionName': functionName!,
+        if (lineNumber != null) 'lineNumber': lineNumber!,
       };
 }
 
@@ -1145,12 +1125,12 @@
   /// Example: "https://github.com/GoogleCloudPlatform/kubernetes.git"
   ///
   /// Optional.
-  core.String repository;
+  core.String? repository;
 
   /// The canonical and persistent identifier of the deployed revision.
   ///
   /// Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
-  core.String revisionId;
+  core.String? revisionId;
 
   SourceReference();
 
@@ -1163,9 +1143,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (repository != null) 'repository': repository,
-        if (revisionId != null) 'revisionId': revisionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (repository != null) 'repository': repository!,
+        if (revisionId != null) 'revisionId': revisionId!,
       };
 }
 
@@ -1175,13 +1155,13 @@
 /// counting them.
 class TimedCount {
   /// Approximate number of occurrences in the given time period.
-  core.String count;
+  core.String? count;
 
   /// End of the time period to which `count` refers (excluded).
-  core.String endTime;
+  core.String? endTime;
 
   /// Start of the time period to which `count` refers (included).
-  core.String startTime;
+  core.String? startTime;
 
   TimedCount();
 
@@ -1197,10 +1177,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (count != null) 'count': count,
-        if (endTime != null) 'endTime': endTime,
-        if (startTime != null) 'startTime': startTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (count != null) 'count': count!,
+        if (endTime != null) 'endTime': endTime!,
+        if (startTime != null) 'startTime': startTime!,
       };
 }
 
@@ -1209,7 +1189,7 @@
   /// A URL pointing to a related entry in an issue tracking system.
   ///
   /// Example: `https://github.com/user/project/issues/4`
-  core.String url;
+  core.String? url;
 
   TrackingIssue();
 
@@ -1219,7 +1199,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (url != null) 'url': url!,
       };
 }
diff --git a/generated/googleapis_beta/lib/containeranalysis/v1beta1.dart b/generated/googleapis_beta/lib/containeranalysis/v1beta1.dart
index fe3a645..7031225 100644
--- a/generated/googleapis_beta/lib/containeranalysis/v1beta1.dart
+++ b/generated/googleapis_beta/lib/containeranalysis/v1beta1.dart
@@ -104,13 +104,9 @@
   async.Future<BatchCreateNotesResponse> batchCreate(
     BatchCreateNotesRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -154,14 +150,10 @@
   async.Future<Note> create(
     Note request,
     core.String parent, {
-    core.String noteId,
-    core.String $fields,
+    core.String? noteId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (noteId != null) 'noteId': [noteId],
       if ($fields != null) 'fields': [$fields],
@@ -200,11 +192,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -239,11 +228,8 @@
   /// this method will complete with the same error.
   async.Future<Note> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -288,13 +274,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -339,14 +321,11 @@
   /// this method will complete with the same error.
   async.Future<ListNotesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -392,14 +371,10 @@
   async.Future<Note> patch(
     Note request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -446,13 +421,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -500,13 +471,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -561,14 +528,11 @@
   /// this method will complete with the same error.
   async.Future<ListNoteOccurrencesResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -619,13 +583,9 @@
   async.Future<BatchCreateOccurrencesResponse> batchCreate(
     BatchCreateOccurrencesRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -667,13 +627,9 @@
   async.Future<Occurrence> create(
     Occurrence request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -715,11 +671,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -754,11 +707,8 @@
   /// this method will complete with the same error.
   async.Future<Occurrence> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -804,13 +754,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -851,11 +797,8 @@
   /// this method will complete with the same error.
   async.Future<Note> getNotes(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -893,12 +836,9 @@
   /// this method will complete with the same error.
   async.Future<VulnerabilityOccurrencesSummary> getVulnerabilitySummary(
     core.String parent, {
-    core.String filter,
-    core.String $fields,
+    core.String? filter,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if ($fields != null) 'fields': [$fields],
@@ -945,14 +885,11 @@
   /// this method will complete with the same error.
   async.Future<ListOccurrencesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -998,14 +935,10 @@
   async.Future<Occurrence> patch(
     Occurrence request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1053,13 +986,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1107,13 +1036,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1159,11 +1084,8 @@
   /// this method will complete with the same error.
   async.Future<ScanConfig> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1205,14 +1127,11 @@
   /// this method will complete with the same error.
   async.Future<ListScanConfigsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1256,13 +1175,9 @@
   async.Future<ScanConfig> update(
     ScanConfig request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1289,10 +1204,10 @@
   /// - "MOVABLE" : Git branch.
   /// - "OTHER" : Used to specify non-standard aliases. For example, if a Git
   /// repo has a ref named "refs/foo/bar".
-  core.String kind;
+  core.String? kind;
 
   /// The alias name.
-  core.String name;
+  core.String? name;
 
   AliasContext();
 
@@ -1305,9 +1220,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1315,11 +1230,11 @@
 class Artifact {
   /// Hash or checksum value of a binary, or Docker Registry 2.0 digest of a
   /// container.
-  core.String checksum;
+  core.String? checksum;
 
   /// Artifact ID, if any; for container images, this will be a URL by digest
   /// like `gcr.io/projectID/imagename@sha256:123456`.
-  core.String id;
+  core.String? id;
 
   /// Related artifact names.
   ///
@@ -1328,7 +1243,7 @@
   /// Container Registry, as presented to `docker push`. Note that a single
   /// Artifact ID can have multiple names, for example if two tags are applied
   /// to one image.
-  core.List<core.String> names;
+  core.List<core.String>? names;
 
   Artifact();
 
@@ -1346,16 +1261,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (checksum != null) 'checksum': checksum,
-        if (id != null) 'id': id,
-        if (names != null) 'names': names,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (checksum != null) 'checksum': checksum!,
+        if (id != null) 'id': id!,
+        if (names != null) 'names': names!,
       };
 }
 
 /// Defines a hash object for use in Materials and Products.
 class ArtifactHashes {
-  core.String sha256;
+  core.String? sha256;
 
   ArtifactHashes();
 
@@ -1365,14 +1280,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (sha256 != null) 'sha256': sha256,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (sha256 != null) 'sha256': sha256!,
       };
 }
 
 /// Defines an object to declare an in-toto artifact rule
 class ArtifactRule {
-  core.List<core.String> artifactRule;
+  core.List<core.String>? artifactRule;
 
   ArtifactRule();
 
@@ -1384,8 +1299,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (artifactRule != null) 'artifactRule': artifactRule,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (artifactRule != null) 'artifactRule': artifactRule!,
       };
 }
 
@@ -1399,10 +1314,10 @@
 /// know the authority and artifact to be verified) and intent (which authority
 /// was this attestation intended to sign for).
 class Attestation {
-  GenericSignedAttestation genericSignedAttestation;
+  GenericSignedAttestation? genericSignedAttestation;
 
   /// A PGP signed attestation.
-  PgpSignedAttestation pgpSignedAttestation;
+  PgpSignedAttestation? pgpSignedAttestation;
 
   Attestation();
 
@@ -1418,11 +1333,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (genericSignedAttestation != null)
-          'genericSignedAttestation': genericSignedAttestation.toJson(),
+          'genericSignedAttestation': genericSignedAttestation!.toJson(),
         if (pgpSignedAttestation != null)
-          'pgpSignedAttestation': pgpSignedAttestation.toJson(),
+          'pgpSignedAttestation': pgpSignedAttestation!.toJson(),
       };
 }
 
@@ -1437,7 +1352,7 @@
 /// don't all live in the same project.
 class Authority {
   /// Hint hints at the purpose of the attestation authority.
-  Hint hint;
+  Hint? hint;
 
   Authority();
 
@@ -1448,8 +1363,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hint != null) 'hint': hint.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hint != null) 'hint': hint!.toJson(),
       };
 }
 
@@ -1462,13 +1377,13 @@
   /// The fingerprint of the base image.
   ///
   /// Required. Immutable.
-  Fingerprint fingerprint;
+  Fingerprint? fingerprint;
 
   /// The resource_url for the resource representing the basis of associated
   /// occurrence images.
   ///
   /// Required. Immutable.
-  core.String resourceUrl;
+  core.String? resourceUrl;
 
   Basis();
 
@@ -1482,9 +1397,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fingerprint != null) 'fingerprint': fingerprint.toJson(),
-        if (resourceUrl != null) 'resourceUrl': resourceUrl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fingerprint != null) 'fingerprint': fingerprint!.toJson(),
+        if (resourceUrl != null) 'resourceUrl': resourceUrl!,
       };
 }
 
@@ -1495,13 +1410,15 @@
   /// Max allowed length is 1000.
   ///
   /// Required.
-  core.Map<core.String, Note> notes;
+  core.Map<core.String, Note>? notes;
 
   BatchCreateNotesRequest();
 
   BatchCreateNotesRequest.fromJson(core.Map _json) {
     if (_json.containsKey('notes')) {
-      notes = (_json['notes'] as core.Map).cast<core.String, core.Map>().map(
+      notes = (_json['notes'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
             (key, item) => core.MapEntry(
               key,
               Note.fromJson(item as core.Map<core.String, core.dynamic>),
@@ -1510,16 +1427,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (notes != null)
-          'notes': notes.map((key, item) => core.MapEntry(key, item.toJson())),
+          'notes': notes!.map((key, item) => core.MapEntry(key, item.toJson())),
       };
 }
 
 /// Response for creating notes in batch.
 class BatchCreateNotesResponse {
   /// The notes that were created.
-  core.List<Note> notes;
+  core.List<Note>? notes;
 
   BatchCreateNotesResponse();
 
@@ -1532,9 +1449,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (notes != null)
-          'notes': notes.map((value) => value.toJson()).toList(),
+          'notes': notes!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1545,7 +1462,7 @@
   /// Max allowed length is 1000.
   ///
   /// Required.
-  core.List<Occurrence> occurrences;
+  core.List<Occurrence>? occurrences;
 
   BatchCreateOccurrencesRequest();
 
@@ -1558,16 +1475,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (occurrences != null)
-          'occurrences': occurrences.map((value) => value.toJson()).toList(),
+          'occurrences': occurrences!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response for creating occurrences in batch.
 class BatchCreateOccurrencesResponse {
   /// The occurrences that were created.
-  core.List<Occurrence> occurrences;
+  core.List<Occurrence>? occurrences;
 
   BatchCreateOccurrencesResponse();
 
@@ -1580,9 +1497,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (occurrences != null)
-          'occurrences': occurrences.map((value) => value.toJson()).toList(),
+          'occurrences': occurrences!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1596,7 +1513,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -1628,12 +1545,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -1652,10 +1569,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -1665,11 +1582,11 @@
   /// Version of the builder which produced this build.
   ///
   /// Required. Immutable.
-  core.String builderVersion;
+  core.String? builderVersion;
 
   /// Signature of the build in occurrences pointing to this build note
   /// containing build details.
-  BuildSignature signature;
+  BuildSignature? signature;
 
   Build();
 
@@ -1683,9 +1600,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (builderVersion != null) 'builderVersion': builderVersion,
-        if (signature != null) 'signature': signature.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (builderVersion != null) 'builderVersion': builderVersion!,
+        if (signature != null) 'signature': signature!.toJson(),
       };
 }
 
@@ -1698,48 +1615,48 @@
   ///
   /// This is a catch-all field where build providers can enter any desired
   /// additional details.
-  core.Map<core.String, core.String> buildOptions;
+  core.Map<core.String, core.String>? buildOptions;
 
   /// Version string of the builder at the time this build was executed.
-  core.String builderVersion;
+  core.String? builderVersion;
 
   /// Output of the build.
-  core.List<Artifact> builtArtifacts;
+  core.List<Artifact>? builtArtifacts;
 
   /// Commands requested by the build.
-  core.List<Command> commands;
+  core.List<Command>? commands;
 
   /// Time at which the build was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// E-mail address of the user who initiated this build.
   ///
   /// Note that this was the user's e-mail address at the time the build was
   /// initiated; this address may not represent the same end-user for all time.
-  core.String creator;
+  core.String? creator;
 
   /// Time at which execution of the build was finished.
-  core.String endTime;
+  core.String? endTime;
 
   /// Unique identifier of the build.
   ///
   /// Required.
-  core.String id;
+  core.String? id;
 
   /// URI where any logs for this provenance were written.
-  core.String logsUri;
+  core.String? logsUri;
 
   /// ID of the project.
-  core.String projectId;
+  core.String? projectId;
 
   /// Details of the Source input to the build.
-  Source sourceProvenance;
+  Source? sourceProvenance;
 
   /// Time at which execution of the build was started.
-  core.String startTime;
+  core.String? startTime;
 
   /// Trigger identifier if the build was triggered automatically; empty if not.
-  core.String triggerId;
+  core.String? triggerId;
 
   BuildProvenance();
 
@@ -1799,24 +1716,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (buildOptions != null) 'buildOptions': buildOptions,
-        if (builderVersion != null) 'builderVersion': builderVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (buildOptions != null) 'buildOptions': buildOptions!,
+        if (builderVersion != null) 'builderVersion': builderVersion!,
         if (builtArtifacts != null)
           'builtArtifacts':
-              builtArtifacts.map((value) => value.toJson()).toList(),
+              builtArtifacts!.map((value) => value.toJson()).toList(),
         if (commands != null)
-          'commands': commands.map((value) => value.toJson()).toList(),
-        if (createTime != null) 'createTime': createTime,
-        if (creator != null) 'creator': creator,
-        if (endTime != null) 'endTime': endTime,
-        if (id != null) 'id': id,
-        if (logsUri != null) 'logsUri': logsUri,
-        if (projectId != null) 'projectId': projectId,
+          'commands': commands!.map((value) => value.toJson()).toList(),
+        if (createTime != null) 'createTime': createTime!,
+        if (creator != null) 'creator': creator!,
+        if (endTime != null) 'endTime': endTime!,
+        if (id != null) 'id': id!,
+        if (logsUri != null) 'logsUri': logsUri!,
+        if (projectId != null) 'projectId': projectId!,
         if (sourceProvenance != null)
-          'sourceProvenance': sourceProvenance.toJson(),
-        if (startTime != null) 'startTime': startTime,
-        if (triggerId != null) 'triggerId': triggerId,
+          'sourceProvenance': sourceProvenance!.toJson(),
+        if (startTime != null) 'startTime': startTime!,
+        if (triggerId != null) 'triggerId': triggerId!,
       };
 }
 
@@ -1828,7 +1745,7 @@
   /// ID or fingerprint for a PGP key, or the CN for a cert), or a reference to
   /// an external key (such as a reference to a key in Cloud Key Management
   /// Service).
-  core.String keyId;
+  core.String? keyId;
 
   /// The type of the key, either stored in `public_key` or referenced in
   /// `key_id`.
@@ -1836,7 +1753,7 @@
   /// - "KEY_TYPE_UNSPECIFIED" : `KeyType` is not set.
   /// - "PGP_ASCII_ARMORED" : `PGP ASCII Armored` public key.
   /// - "PKIX_PEM" : `PKIX PEM` public key.
-  core.String keyType;
+  core.String? keyType;
 
   /// Public key of the builder which can be used to verify that the related
   /// findings are valid and unchanged.
@@ -1850,15 +1767,15 @@
   /// `BuildDetails` are base64-decoded into a binary representation in
   /// signed.bin. OpenSSL can then verify the signature: `openssl sha256 -verify
   /// public.pem -signature signature.bin signed.bin`
-  core.String publicKey;
+  core.String? publicKey;
 
   /// Signature of the related `BuildProvenance`.
   ///
   /// In JSON, this is base-64 encoded.
   ///
   /// Required.
-  core.String signature;
-  core.List<core.int> get signatureAsBytes => convert.base64.decode(signature);
+  core.String? signature;
+  core.List<core.int> get signatureAsBytes => convert.base64.decode(signature!);
 
   set signatureAsBytes(core.List<core.int> _bytes) {
     signature =
@@ -1882,11 +1799,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyId != null) 'keyId': keyId,
-        if (keyType != null) 'keyType': keyType,
-        if (publicKey != null) 'publicKey': publicKey,
-        if (signature != null) 'signature': signature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyId != null) 'keyId': keyId!,
+        if (keyType != null) 'keyType': keyType!,
+        if (publicKey != null) 'publicKey': publicKey!,
+        if (signature != null) 'signature': signature!,
       };
 }
 
@@ -1894,7 +1811,7 @@
 ///
 /// The suggested fields are "stderr", "stdout", and "return-value".
 class ByProducts {
-  core.Map<core.String, core.String> customValues;
+  core.Map<core.String, core.String>? customValues;
 
   ByProducts();
 
@@ -1911,8 +1828,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (customValues != null) 'customValues': customValues,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (customValues != null) 'customValues': customValues!,
       };
 }
 
@@ -1925,7 +1842,7 @@
   /// - "ATTACK_COMPLEXITY_UNSPECIFIED"
   /// - "ATTACK_COMPLEXITY_LOW"
   /// - "ATTACK_COMPLEXITY_HIGH"
-  core.String attackComplexity;
+  core.String? attackComplexity;
 
   /// Base Metrics Represents the intrinsic characteristics of a vulnerability
   /// that are constant over time and across user environments.
@@ -1935,7 +1852,7 @@
   /// - "ATTACK_VECTOR_ADJACENT"
   /// - "ATTACK_VECTOR_LOCAL"
   /// - "ATTACK_VECTOR_PHYSICAL"
-  core.String attackVector;
+  core.String? attackVector;
 
   ///
   /// Possible string values are:
@@ -1943,10 +1860,10 @@
   /// - "IMPACT_HIGH"
   /// - "IMPACT_LOW"
   /// - "IMPACT_NONE"
-  core.String availabilityImpact;
+  core.String? availabilityImpact;
 
   /// The base score is a function of the base metric scores.
-  core.double baseScore;
+  core.double? baseScore;
 
   ///
   /// Possible string values are:
@@ -1954,9 +1871,9 @@
   /// - "IMPACT_HIGH"
   /// - "IMPACT_LOW"
   /// - "IMPACT_NONE"
-  core.String confidentialityImpact;
-  core.double exploitabilityScore;
-  core.double impactScore;
+  core.String? confidentialityImpact;
+  core.double? exploitabilityScore;
+  core.double? impactScore;
 
   ///
   /// Possible string values are:
@@ -1964,7 +1881,7 @@
   /// - "IMPACT_HIGH"
   /// - "IMPACT_LOW"
   /// - "IMPACT_NONE"
-  core.String integrityImpact;
+  core.String? integrityImpact;
 
   ///
   /// Possible string values are:
@@ -1972,21 +1889,21 @@
   /// - "PRIVILEGES_REQUIRED_NONE"
   /// - "PRIVILEGES_REQUIRED_LOW"
   /// - "PRIVILEGES_REQUIRED_HIGH"
-  core.String privilegesRequired;
+  core.String? privilegesRequired;
 
   ///
   /// Possible string values are:
   /// - "SCOPE_UNSPECIFIED"
   /// - "SCOPE_UNCHANGED"
   /// - "SCOPE_CHANGED"
-  core.String scope;
+  core.String? scope;
 
   ///
   /// Possible string values are:
   /// - "USER_INTERACTION_UNSPECIFIED"
   /// - "USER_INTERACTION_NONE"
   /// - "USER_INTERACTION_REQUIRED"
-  core.String userInteraction;
+  core.String? userInteraction;
 
   CVSSv3();
 
@@ -2027,22 +1944,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attackComplexity != null) 'attackComplexity': attackComplexity,
-        if (attackVector != null) 'attackVector': attackVector,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attackComplexity != null) 'attackComplexity': attackComplexity!,
+        if (attackVector != null) 'attackVector': attackVector!,
         if (availabilityImpact != null)
-          'availabilityImpact': availabilityImpact,
-        if (baseScore != null) 'baseScore': baseScore,
+          'availabilityImpact': availabilityImpact!,
+        if (baseScore != null) 'baseScore': baseScore!,
         if (confidentialityImpact != null)
-          'confidentialityImpact': confidentialityImpact,
+          'confidentialityImpact': confidentialityImpact!,
         if (exploitabilityScore != null)
-          'exploitabilityScore': exploitabilityScore,
-        if (impactScore != null) 'impactScore': impactScore,
-        if (integrityImpact != null) 'integrityImpact': integrityImpact,
+          'exploitabilityScore': exploitabilityScore!,
+        if (impactScore != null) 'impactScore': impactScore!,
+        if (integrityImpact != null) 'integrityImpact': integrityImpact!,
         if (privilegesRequired != null)
-          'privilegesRequired': privilegesRequired,
-        if (scope != null) 'scope': scope,
-        if (userInteraction != null) 'userInteraction': userInteraction,
+          'privilegesRequired': privilegesRequired!,
+        if (scope != null) 'scope': scope!,
+        if (userInteraction != null) 'userInteraction': userInteraction!,
       };
 }
 
@@ -2050,13 +1967,13 @@
 /// Source Repo.
 class CloudRepoSourceContext {
   /// An alias, which may be a branch or tag.
-  AliasContext aliasContext;
+  AliasContext? aliasContext;
 
   /// The ID of the repo.
-  RepoId repoId;
+  RepoId? repoId;
 
   /// A revision ID.
-  core.String revisionId;
+  core.String? revisionId;
 
   CloudRepoSourceContext();
 
@@ -2074,37 +1991,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (aliasContext != null) 'aliasContext': aliasContext.toJson(),
-        if (repoId != null) 'repoId': repoId.toJson(),
-        if (revisionId != null) 'revisionId': revisionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (aliasContext != null) 'aliasContext': aliasContext!.toJson(),
+        if (repoId != null) 'repoId': repoId!.toJson(),
+        if (revisionId != null) 'revisionId': revisionId!,
       };
 }
 
 /// Command describes a step performed as part of the build pipeline.
 class Command {
   /// Command-line arguments used when executing this command.
-  core.List<core.String> args;
+  core.List<core.String>? args;
 
   /// Working directory (relative to project source root) used when running this
   /// command.
-  core.String dir;
+  core.String? dir;
 
   /// Environment variables set before running this command.
-  core.List<core.String> env;
+  core.List<core.String>? env;
 
   /// Optional unique identifier for this command, used in wait_for to reference
   /// this command as a dependency.
-  core.String id;
+  core.String? id;
 
   /// Name of the command, as presented on the command line, or if the command
   /// is packaged as a Docker container, as presented to `docker pull`.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// The ID(s) of the command(s) that this command depends on.
-  core.List<core.String> waitFor;
+  core.List<core.String>? waitFor;
 
   Command();
 
@@ -2135,13 +2052,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (args != null) 'args': args,
-        if (dir != null) 'dir': dir,
-        if (env != null) 'env': env,
-        if (id != null) 'id': id,
-        if (name != null) 'name': name,
-        if (waitFor != null) 'waitFor': waitFor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (args != null) 'args': args!,
+        if (dir != null) 'dir': dir!,
+        if (env != null) 'env': env!,
+        if (id != null) 'id': id!,
+        if (name != null) 'name': name!,
+        if (waitFor != null) 'waitFor': waitFor!,
       };
 }
 
@@ -2150,7 +2067,7 @@
   /// Resource URI for the artifact being deployed.
   ///
   /// Required.
-  core.List<core.String> resourceUri;
+  core.List<core.String>? resourceUri;
 
   Deployable();
 
@@ -2162,23 +2079,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceUri != null) 'resourceUri': resourceUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceUri != null) 'resourceUri': resourceUri!,
       };
 }
 
 /// The period during which some deployable was active in a runtime.
 class Deployment {
   /// Address of the runtime element hosting this deployment.
-  core.String address;
+  core.String? address;
 
   /// Configuration used to create this deployment.
-  core.String config;
+  core.String? config;
 
   /// Beginning of the lifetime of this deployment.
   ///
   /// Required.
-  core.String deployTime;
+  core.String? deployTime;
 
   /// Platform hosting this deployment.
   /// Possible string values are:
@@ -2186,19 +2103,19 @@
   /// - "GKE" : Google Container Engine.
   /// - "FLEX" : Google App Engine: Flexible Environment.
   /// - "CUSTOM" : Custom user-defined platform.
-  core.String platform;
+  core.String? platform;
 
   /// Resource URI for the artifact being deployed taken from the deployable
   /// field with the same name.
   ///
   /// Output only.
-  core.List<core.String> resourceUri;
+  core.List<core.String>? resourceUri;
 
   /// End of the lifetime of this deployment.
-  core.String undeployTime;
+  core.String? undeployTime;
 
   /// Identity of the user that triggered this deployment.
-  core.String userEmail;
+  core.String? userEmail;
 
   Deployment();
 
@@ -2228,14 +2145,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (address != null) 'address': address,
-        if (config != null) 'config': config,
-        if (deployTime != null) 'deployTime': deployTime,
-        if (platform != null) 'platform': platform,
-        if (resourceUri != null) 'resourceUri': resourceUri,
-        if (undeployTime != null) 'undeployTime': undeployTime,
-        if (userEmail != null) 'userEmail': userEmail,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (address != null) 'address': address!,
+        if (config != null) 'config': config!,
+        if (deployTime != null) 'deployTime': deployTime!,
+        if (platform != null) 'platform': platform!,
+        if (resourceUri != null) 'resourceUri': resourceUri!,
+        if (undeployTime != null) 'undeployTime': undeployTime!,
+        if (userEmail != null) 'userEmail': userEmail!,
       };
 }
 
@@ -2247,23 +2164,23 @@
   /// This contains the base image URL for the derived image occurrence.
   ///
   /// Output only.
-  core.String baseResourceUrl;
+  core.String? baseResourceUrl;
 
   /// The number of layers by which this image differs from the associated image
   /// basis.
   ///
   /// Output only.
-  core.int distance;
+  core.int? distance;
 
   /// The fingerprint of the derived image.
   ///
   /// Required.
-  Fingerprint fingerprint;
+  Fingerprint? fingerprint;
 
   /// This contains layer-specific metadata, if populated it has length
   /// "distance" and is ordered with \[distance\] being the layer immediately
   /// following the base image and \[1\] being the final layer.
-  core.List<Layer> layerInfo;
+  core.List<Layer>? layerInfo;
 
   Derived();
 
@@ -2286,12 +2203,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (baseResourceUrl != null) 'baseResourceUrl': baseResourceUrl,
-        if (distance != null) 'distance': distance,
-        if (fingerprint != null) 'fingerprint': fingerprint.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (baseResourceUrl != null) 'baseResourceUrl': baseResourceUrl!,
+        if (distance != null) 'distance': distance!,
+        if (fingerprint != null) 'fingerprint': fingerprint!.toJson(),
         if (layerInfo != null)
-          'layerInfo': layerInfo.map((value) => value.toJson()).toList(),
+          'layerInfo': layerInfo!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2306,45 +2223,45 @@
   /// Examples include distro or storage location for vulnerable jar.
   ///
   /// Required.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// A vendor-specific description of this note.
-  core.String description;
+  core.String? description;
 
   /// The fix for this specific package version.
-  VulnerabilityLocation fixedLocation;
+  VulnerabilityLocation? fixedLocation;
 
   /// Whether this detail is obsolete.
   ///
   /// Occurrences are expected not to point to obsolete details.
-  core.bool isObsolete;
+  core.bool? isObsolete;
 
   /// The max version of the package in which the vulnerability exists.
-  Version maxAffectedVersion;
+  Version? maxAffectedVersion;
 
   /// The min version of the package in which the vulnerability exists.
-  Version minAffectedVersion;
+  Version? minAffectedVersion;
 
   /// The name of the package where the vulnerability was found.
   ///
   /// Required.
-  core.String package;
+  core.String? package;
 
   /// The type of package; whether native or non native(ruby gems, node.js
   /// packages etc).
-  core.String packageType;
+  core.String? packageType;
 
   /// The severity (eg: distro assigned severity) for this vulnerability.
-  core.String severityName;
+  core.String? severityName;
 
   /// The source from which the information in this Detail was obtained.
-  core.String source;
+  core.String? source;
 
   /// The time this information was last changed at the source.
   ///
   /// This is an upstream timestamp from the underlying information source -
   /// e.g. Ubuntu security tracker.
-  core.String sourceUpdateTime;
+  core.String? sourceUpdateTime;
 
   Detail();
 
@@ -2387,20 +2304,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (description != null) 'description': description,
-        if (fixedLocation != null) 'fixedLocation': fixedLocation.toJson(),
-        if (isObsolete != null) 'isObsolete': isObsolete,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (description != null) 'description': description!,
+        if (fixedLocation != null) 'fixedLocation': fixedLocation!.toJson(),
+        if (isObsolete != null) 'isObsolete': isObsolete!,
         if (maxAffectedVersion != null)
-          'maxAffectedVersion': maxAffectedVersion.toJson(),
+          'maxAffectedVersion': maxAffectedVersion!.toJson(),
         if (minAffectedVersion != null)
-          'minAffectedVersion': minAffectedVersion.toJson(),
-        if (package != null) 'package': package,
-        if (packageType != null) 'packageType': packageType,
-        if (severityName != null) 'severityName': severityName,
-        if (source != null) 'source': source,
-        if (sourceUpdateTime != null) 'sourceUpdateTime': sourceUpdateTime,
+          'minAffectedVersion': minAffectedVersion!.toJson(),
+        if (package != null) 'package': package!,
+        if (packageType != null) 'packageType': packageType!,
+        if (severityName != null) 'severityName': severityName!,
+        if (source != null) 'source': source!,
+        if (sourceUpdateTime != null) 'sourceUpdateTime': sourceUpdateTime!,
       };
 }
 
@@ -2409,7 +2326,7 @@
   /// Attestation for the resource.
   ///
   /// Required.
-  Attestation attestation;
+  Attestation? attestation;
 
   Details();
 
@@ -2420,8 +2337,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attestation != null) 'attestation': attestation.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attestation != null) 'attestation': attestation!.toJson(),
       };
 }
 
@@ -2436,25 +2353,25 @@
   /// - "FINISHED_FAILED" : Analysis has finished unsuccessfully, the analysis
   /// itself is in a bad state.
   /// - "FINISHED_UNSUPPORTED" : The resource is known not to be supported
-  core.String analysisStatus;
+  core.String? analysisStatus;
 
   /// When an error is encountered this will contain a LocalizedMessage under
   /// details to show to the user.
   ///
   /// The LocalizedMessage is output only and populated by the API.
-  Status analysisStatusError;
+  Status? analysisStatusError;
 
   /// Whether the resource is continuously analyzed.
   /// Possible string values are:
   /// - "CONTINUOUS_ANALYSIS_UNSPECIFIED" : Unknown.
   /// - "ACTIVE" : The resource is continuously analyzed.
   /// - "INACTIVE" : The resource is ignored for continuous analysis.
-  core.String continuousAnalysis;
+  core.String? continuousAnalysis;
 
   /// The last time continuous analysis was done for this resource.
   ///
   /// Deprecated, do not use.
-  core.String lastAnalysisTime;
+  core.String? lastAnalysisTime;
 
   Discovered();
 
@@ -2474,13 +2391,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (analysisStatus != null) 'analysisStatus': analysisStatus,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (analysisStatus != null) 'analysisStatus': analysisStatus!,
         if (analysisStatusError != null)
-          'analysisStatusError': analysisStatusError.toJson(),
+          'analysisStatusError': analysisStatusError!.toJson(),
         if (continuousAnalysis != null)
-          'continuousAnalysis': continuousAnalysis,
-        if (lastAnalysisTime != null) 'lastAnalysisTime': lastAnalysisTime,
+          'continuousAnalysis': continuousAnalysis!,
+        if (lastAnalysisTime != null) 'lastAnalysisTime': lastAnalysisTime!,
       };
 }
 
@@ -2505,7 +2422,7 @@
   /// - "ATTESTATION" : This represents a logical "role" that can attest to
   /// artifacts.
   /// - "INTOTO" : This represents an in-toto link.
-  core.String analysisKind;
+  core.String? analysisKind;
 
   Discovery();
 
@@ -2515,8 +2432,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (analysisKind != null) 'analysisKind': analysisKind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (analysisKind != null) 'analysisKind': analysisKind!,
       };
 }
 
@@ -2530,25 +2447,25 @@
   /// - "ARCHITECTURE_UNSPECIFIED" : Unknown architecture.
   /// - "X86" : X86 architecture.
   /// - "X64" : X64 architecture.
-  core.String architecture;
+  core.String? architecture;
 
   /// The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting
   /// the package manager version distributing a package.
   ///
   /// Required.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The distribution channel-specific description of this package.
-  core.String description;
+  core.String? description;
 
   /// The latest available version of this package in this distribution channel.
-  Version latestVersion;
+  Version? latestVersion;
 
   /// A freeform string denoting the maintainer of this package.
-  core.String maintainer;
+  core.String? maintainer;
 
   /// The distribution channel-specific homepage for this package.
-  core.String url;
+  core.String? url;
 
   Distribution();
 
@@ -2574,13 +2491,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (architecture != null) 'architecture': architecture,
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (description != null) 'description': description,
-        if (latestVersion != null) 'latestVersion': latestVersion.toJson(),
-        if (maintainer != null) 'maintainer': maintainer,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (architecture != null) 'architecture': architecture!,
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (description != null) 'description': description!,
+        if (latestVersion != null) 'latestVersion': latestVersion!.toJson(),
+        if (maintainer != null) 'maintainer': maintainer!,
+        if (url != null) 'url': url!,
       };
 }
 
@@ -2598,14 +2515,14 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Defines an object for the environment field in in-toto links.
 ///
 /// The suggested fields are "variables", "filesystem", and "workdir".
 class Environment {
-  core.Map<core.String, core.String> customValues;
+  core.Map<core.String, core.String>? customValues;
 
   Environment();
 
@@ -2622,8 +2539,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (customValues != null) 'customValues': customValues,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (customValues != null) 'customValues': customValues!,
       };
 }
 
@@ -2652,24 +2569,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -2688,11 +2605,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -2702,7 +2619,7 @@
   /// Collection of file hashes.
   ///
   /// Required.
-  core.List<Hash> fileHash;
+  core.List<Hash>? fileHash;
 
   FileHashes();
 
@@ -2715,9 +2632,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (fileHash != null)
-          'fileHash': fileHash.map((value) => value.toJson()).toList(),
+          'fileHash': fileHash!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2726,19 +2643,19 @@
   /// The layer ID of the final layer in the Docker image's v1 representation.
   ///
   /// Required.
-  core.String v1Name;
+  core.String? v1Name;
 
   /// The ordered list of v2 blobs that represent a given image.
   ///
   /// Required.
-  core.List<core.String> v2Blob;
+  core.List<core.String>? v2Blob;
 
   /// The name of the image's v2 blobs computed via: \[bottom\] := v2_blobbottom
   /// := sha256(v2_blob\[N\] + " " + v2_name\[N+1\]) Only the name of the final
   /// blob is kept.
   ///
   /// Output only.
-  core.String v2Name;
+  core.String? v2Name;
 
   Fingerprint();
 
@@ -2756,20 +2673,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (v1Name != null) 'v1Name': v1Name,
-        if (v2Blob != null) 'v2Blob': v2Blob,
-        if (v2Name != null) 'v2Name': v2Name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (v1Name != null) 'v1Name': v1Name!,
+        if (v2Blob != null) 'v2Blob': v2Blob!,
+        if (v2Name != null) 'v2Name': v2Name!,
       };
 }
 
 /// Per resource and severity counts of fixable and total vulnerabilities.
 class FixableTotalByDigest {
   /// The number of fixable vulnerabilities associated with this resource.
-  core.String fixableCount;
+  core.String? fixableCount;
 
   /// The affected resource.
-  Resource resource;
+  Resource? resource;
 
   /// The severity for this count.
   ///
@@ -2781,10 +2698,10 @@
   /// - "MEDIUM" : Medium severity.
   /// - "HIGH" : High severity.
   /// - "CRITICAL" : Critical severity.
-  core.String severity;
+  core.String? severity;
 
   /// The total number of vulnerabilities associated with this resource.
-  core.String totalCount;
+  core.String? totalCount;
 
   FixableTotalByDigest();
 
@@ -2804,11 +2721,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fixableCount != null) 'fixableCount': fixableCount,
-        if (resource != null) 'resource': resource.toJson(),
-        if (severity != null) 'severity': severity,
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fixableCount != null) 'fixableCount': fixableCount!,
+        if (resource != null) 'resource': resource!.toJson(),
+        if (severity != null) 'severity': severity!,
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -2829,15 +2746,15 @@
   /// https://github.com/containers/image/blob/8a5d2f82a6e3263290c8e0276c3e0f64e77723e7/docs/atomic-signature.md
   /// The payload extracted in `plaintext` is a JSON blob conforming to the
   /// linked schema.
-  core.String contentType;
+  core.String? contentType;
 
   /// The serialized payload that is verified by one or more `signatures`.
   ///
   /// The encoding and semantic meaning of this payload must match what is set
   /// in `content_type`.
-  core.String serializedPayload;
+  core.String? serializedPayload;
   core.List<core.int> get serializedPayloadAsBytes =>
-      convert.base64.decode(serializedPayload);
+      convert.base64.decode(serializedPayload!);
 
   set serializedPayloadAsBytes(core.List<core.int> _bytes) {
     serializedPayload =
@@ -2849,7 +2766,7 @@
   /// Verifier implementations should consider this attestation message verified
   /// if at least one `signature` verifies `serialized_payload`. See `Signature`
   /// in common.proto for more details on signature structure and verification.
-  core.List<Signature> signatures;
+  core.List<Signature>? signatures;
 
   GenericSignedAttestation();
 
@@ -2868,30 +2785,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contentType != null) 'contentType': contentType,
-        if (serializedPayload != null) 'serializedPayload': serializedPayload,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contentType != null) 'contentType': contentType!,
+        if (serializedPayload != null) 'serializedPayload': serializedPayload!,
         if (signatures != null)
-          'signatures': signatures.map((value) => value.toJson()).toList(),
+          'signatures': signatures!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A SourceContext referring to a Gerrit project.
 class GerritSourceContext {
   /// An alias, which may be a branch or tag.
-  AliasContext aliasContext;
+  AliasContext? aliasContext;
 
   /// The full project name within the host.
   ///
   /// Projects may be nested, so "project/subproject" is a valid project name.
   /// The "repo name" is the hostURI/project.
-  core.String gerritProject;
+  core.String? gerritProject;
 
   /// The URI of a running Gerrit instance.
-  core.String hostUri;
+  core.String? hostUri;
 
   /// A revision (commit) ID.
-  core.String revisionId;
+  core.String? revisionId;
 
   GerritSourceContext();
 
@@ -2911,11 +2828,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (aliasContext != null) 'aliasContext': aliasContext.toJson(),
-        if (gerritProject != null) 'gerritProject': gerritProject,
-        if (hostUri != null) 'hostUri': hostUri,
-        if (revisionId != null) 'revisionId': revisionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (aliasContext != null) 'aliasContext': aliasContext!.toJson(),
+        if (gerritProject != null) 'gerritProject': gerritProject!,
+        if (hostUri != null) 'hostUri': hostUri!,
+        if (revisionId != null) 'revisionId': revisionId!,
       };
 }
 
@@ -2923,7 +2840,7 @@
 class GetIamPolicyRequest {
   /// OPTIONAL: A `GetPolicyOptions` object for specifying options to
   /// `GetIamPolicy`.
-  GetPolicyOptions options;
+  GetPolicyOptions? options;
 
   GetIamPolicyRequest();
 
@@ -2934,8 +2851,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (options != null) 'options': options.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (options != null) 'options': options!.toJson(),
       };
 }
 
@@ -2951,7 +2868,7 @@
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
   ///
   /// Optional.
-  core.int requestedPolicyVersion;
+  core.int? requestedPolicyVersion;
 
   GetPolicyOptions();
 
@@ -2961,9 +2878,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requestedPolicyVersion != null)
-          'requestedPolicyVersion': requestedPolicyVersion,
+          'requestedPolicyVersion': requestedPolicyVersion!,
       };
 }
 
@@ -2971,10 +2888,10 @@
 /// repository (e.g., GitHub).
 class GitSourceContext {
   /// Git commit hash.
-  core.String revisionId;
+  core.String? revisionId;
 
   /// Git repository URL.
-  core.String url;
+  core.String? url;
 
   GitSourceContext();
 
@@ -2987,9 +2904,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (revisionId != null) 'revisionId': revisionId,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (revisionId != null) 'revisionId': revisionId!,
+        if (url != null) 'url': url!,
       };
 }
 
@@ -2999,12 +2916,12 @@
   /// The time this operation was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time that this operation was marked completed or failed.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata();
 
@@ -3018,9 +2935,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
       };
 }
 
@@ -3029,7 +2946,7 @@
   /// The actual provenance for the build.
   ///
   /// Required.
-  BuildProvenance provenance;
+  BuildProvenance? provenance;
 
   /// Serialized JSON representation of the provenance, used in generating the
   /// build signature in the corresponding build note.
@@ -3041,7 +2958,7 @@
   /// format for signature verification. The serialized form is captured both to
   /// avoid ambiguity in how the provenance is marshalled to json as well to
   /// prevent incompatibilities with future changes.
-  core.String provenanceBytes;
+  core.String? provenanceBytes;
 
   GrafeasV1beta1BuildDetails();
 
@@ -3055,9 +2972,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (provenance != null) 'provenance': provenance.toJson(),
-        if (provenanceBytes != null) 'provenanceBytes': provenanceBytes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (provenance != null) 'provenance': provenance!.toJson(),
+        if (provenanceBytes != null) 'provenanceBytes': provenanceBytes!,
       };
 }
 
@@ -3066,7 +2983,7 @@
   /// Deployment history for the resource.
   ///
   /// Required.
-  Deployment deployment;
+  Deployment? deployment;
 
   GrafeasV1beta1DeploymentDetails();
 
@@ -3077,8 +2994,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (deployment != null) 'deployment': deployment.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (deployment != null) 'deployment': deployment!.toJson(),
       };
 }
 
@@ -3087,7 +3004,7 @@
   /// Analysis status for the discovered resource.
   ///
   /// Required.
-  Discovered discovered;
+  Discovered? discovered;
 
   GrafeasV1beta1DiscoveryDetails();
 
@@ -3098,8 +3015,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (discovered != null) 'discovered': discovered.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (discovered != null) 'discovered': discovered!.toJson(),
       };
 }
 
@@ -3108,7 +3025,7 @@
   /// The child image derived from the base image.
   ///
   /// Required. Immutable.
-  Derived derivedImage;
+  Derived? derivedImage;
 
   GrafeasV1beta1ImageDetails();
 
@@ -3119,14 +3036,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (derivedImage != null) 'derivedImage': derivedImage.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (derivedImage != null) 'derivedImage': derivedImage!.toJson(),
       };
 }
 
 class GrafeasV1beta1IntotoArtifact {
-  ArtifactHashes hashes;
-  core.String resourceUri;
+  ArtifactHashes? hashes;
+  core.String? resourceUri;
 
   GrafeasV1beta1IntotoArtifact();
 
@@ -3140,9 +3057,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hashes != null) 'hashes': hashes.toJson(),
-        if (resourceUri != null) 'resourceUri': resourceUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hashes != null) 'hashes': hashes!.toJson(),
+        if (resourceUri != null) 'resourceUri': resourceUri!,
       };
 }
 
@@ -3151,8 +3068,8 @@
 ///
 /// This is used for occurrences of a Grafeas in-toto note.
 class GrafeasV1beta1IntotoDetails {
-  core.List<GrafeasV1beta1IntotoSignature> signatures;
-  Link signed;
+  core.List<GrafeasV1beta1IntotoSignature>? signatures;
+  Link? signed;
 
   GrafeasV1beta1IntotoDetails();
 
@@ -3170,17 +3087,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (signatures != null)
-          'signatures': signatures.map((value) => value.toJson()).toList(),
-        if (signed != null) 'signed': signed.toJson(),
+          'signatures': signatures!.map((value) => value.toJson()).toList(),
+        if (signed != null) 'signed': signed!.toJson(),
       };
 }
 
 /// A signature object consists of the KeyID used and the signature itself.
 class GrafeasV1beta1IntotoSignature {
-  core.String keyid;
-  core.String sig;
+  core.String? keyid;
+  core.String? sig;
 
   GrafeasV1beta1IntotoSignature();
 
@@ -3193,9 +3110,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyid != null) 'keyid': keyid,
-        if (sig != null) 'sig': sig,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyid != null) 'keyid': keyid!,
+        if (sig != null) 'sig': sig!,
       };
 }
 
@@ -3204,7 +3121,7 @@
   /// Where the package was installed.
   ///
   /// Required.
-  Installation installation;
+  Installation? installation;
 
   GrafeasV1beta1PackageDetails();
 
@@ -3215,8 +3132,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (installation != null) 'installation': installation.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (installation != null) 'installation': installation!.toJson(),
       };
 }
 
@@ -3228,7 +3145,7 @@
   /// indicates high severity.
   ///
   /// Output only.
-  core.double cvssScore;
+  core.double? cvssScore;
 
   /// The distro assigned severity for this vulnerability when it is available,
   /// and note provider assigned severity when distro has not yet assigned a
@@ -3240,23 +3157,23 @@
   /// - "MEDIUM" : Medium severity.
   /// - "HIGH" : High severity.
   /// - "CRITICAL" : Critical severity.
-  core.String effectiveSeverity;
+  core.String? effectiveSeverity;
 
   /// A detailed description of this vulnerability.
   ///
   /// Output only.
-  core.String longDescription;
+  core.String? longDescription;
 
   /// The set of affected locations and their fixes (if available) within the
   /// associated resource.
   ///
   /// Required.
-  core.List<PackageIssue> packageIssue;
+  core.List<PackageIssue>? packageIssue;
 
   /// URLs related to this vulnerability.
   ///
   /// Output only.
-  core.List<RelatedUrl> relatedUrls;
+  core.List<RelatedUrl>? relatedUrls;
 
   /// The note provider assigned Severity of the vulnerability.
   ///
@@ -3268,16 +3185,16 @@
   /// - "MEDIUM" : Medium severity.
   /// - "HIGH" : High severity.
   /// - "CRITICAL" : Critical severity.
-  core.String severity;
+  core.String? severity;
 
   /// A one sentence description of this vulnerability.
   ///
   /// Output only.
-  core.String shortDescription;
+  core.String? shortDescription;
 
   /// The type of package; whether native or non native(ruby gems, node.js
   /// packages etc)
-  core.String type;
+  core.String? type;
 
   GrafeasV1beta1VulnerabilityDetails();
 
@@ -3314,17 +3231,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cvssScore != null) 'cvssScore': cvssScore,
-        if (effectiveSeverity != null) 'effectiveSeverity': effectiveSeverity,
-        if (longDescription != null) 'longDescription': longDescription,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cvssScore != null) 'cvssScore': cvssScore!,
+        if (effectiveSeverity != null) 'effectiveSeverity': effectiveSeverity!,
+        if (longDescription != null) 'longDescription': longDescription!,
         if (packageIssue != null)
-          'packageIssue': packageIssue.map((value) => value.toJson()).toList(),
+          'packageIssue': packageIssue!.map((value) => value.toJson()).toList(),
         if (relatedUrls != null)
-          'relatedUrls': relatedUrls.map((value) => value.toJson()).toList(),
-        if (severity != null) 'severity': severity,
-        if (shortDescription != null) 'shortDescription': shortDescription,
-        if (type != null) 'type': type,
+          'relatedUrls': relatedUrls!.map((value) => value.toJson()).toList(),
+        if (severity != null) 'severity': severity!,
+        if (shortDescription != null) 'shortDescription': shortDescription!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -3336,13 +3253,13 @@
   /// Possible string values are:
   /// - "HASH_TYPE_UNSPECIFIED" : Unknown.
   /// - "SHA256" : A SHA-256 hash.
-  core.String type;
+  core.String? type;
 
   /// The hash value.
   ///
   /// Required.
-  core.String value;
-  core.List<core.int> get valueAsBytes => convert.base64.decode(value);
+  core.String? value;
+  core.List<core.int> get valueAsBytes => convert.base64.decode(value!);
 
   set valueAsBytes(core.List<core.int> _bytes) {
     value =
@@ -3360,9 +3277,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (type != null) 'type': type,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (type != null) 'type': type!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -3378,7 +3295,7 @@
   /// The human readable name of this attestation authority, for example "qa".
   ///
   /// Required.
-  core.String humanReadableName;
+  core.String? humanReadableName;
 
   Hint();
 
@@ -3388,8 +3305,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (humanReadableName != null) 'humanReadableName': humanReadableName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (humanReadableName != null) 'humanReadableName': humanReadableName!,
       };
 }
 
@@ -3399,24 +3316,24 @@
 /// This information goes into a Grafeas note.
 class InToto {
   /// This field contains the expected command used to perform the step.
-  core.List<core.String> expectedCommand;
+  core.List<core.String>? expectedCommand;
 
   /// The following fields contain in-toto artifact rules identifying the
   /// artifacts that enter this supply chain step, and exit the supply chain
   /// step, i.e. materials and products of the step.
-  core.List<ArtifactRule> expectedMaterials;
-  core.List<ArtifactRule> expectedProducts;
+  core.List<ArtifactRule>? expectedMaterials;
+  core.List<ArtifactRule>? expectedProducts;
 
   /// This field contains the public keys that can be used to verify the
   /// signatures on the step metadata.
-  core.List<SigningKey> signingKeys;
+  core.List<SigningKey>? signingKeys;
 
   /// This field identifies the name of the step in the supply chain.
-  core.String stepName;
+  core.String? stepName;
 
   /// This field contains a value that indicates the minimum number of keys that
   /// need to be used to sign the step's in-toto link.
-  core.String threshold;
+  core.String? threshold;
 
   InToto();
 
@@ -3452,18 +3369,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (expectedCommand != null) 'expectedCommand': expectedCommand,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (expectedCommand != null) 'expectedCommand': expectedCommand!,
         if (expectedMaterials != null)
           'expectedMaterials':
-              expectedMaterials.map((value) => value.toJson()).toList(),
+              expectedMaterials!.map((value) => value.toJson()).toList(),
         if (expectedProducts != null)
           'expectedProducts':
-              expectedProducts.map((value) => value.toJson()).toList(),
+              expectedProducts!.map((value) => value.toJson()).toList(),
         if (signingKeys != null)
-          'signingKeys': signingKeys.map((value) => value.toJson()).toList(),
-        if (stepName != null) 'stepName': stepName,
-        if (threshold != null) 'threshold': threshold,
+          'signingKeys': signingKeys!.map((value) => value.toJson()).toList(),
+        if (stepName != null) 'stepName': stepName!,
+        if (threshold != null) 'threshold': threshold!,
       };
 }
 
@@ -3474,12 +3391,12 @@
   /// found.
   ///
   /// Required.
-  core.List<Location> location;
+  core.List<Location>? location;
 
   /// The name of the installed package.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   Installation();
 
@@ -3495,20 +3412,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (location != null)
-          'location': location.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'location': location!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
       };
 }
 
 class KnowledgeBase {
   /// The KB name (generally of the form KB\[0-9\]+ i.e. KB123456).
-  core.String name;
+  core.String? name;
 
   /// A link to the KB in the Windows update catalog -
   /// https://www.catalog.update.microsoft.com/
-  core.String url;
+  core.String? url;
 
   KnowledgeBase();
 
@@ -3521,16 +3438,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (url != null) 'url': url!,
       };
 }
 
 /// Layer holds metadata specific to a layer of a Docker image.
 class Layer {
   /// The recovered arguments to the Dockerfile directive.
-  core.String arguments;
+  core.String? arguments;
 
   /// The recovered Dockerfile directive used to construct this layer.
   ///
@@ -3555,7 +3472,7 @@
   /// - "STOPSIGNAL" : https://docs.docker.com/engine/reference/builder/
   /// - "HEALTHCHECK" : https://docs.docker.com/engine/reference/builder/
   /// - "SHELL" : https://docs.docker.com/engine/reference/builder/
-  core.String directive;
+  core.String? directive;
 
   Layer();
 
@@ -3568,9 +3485,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (arguments != null) 'arguments': arguments,
-        if (directive != null) 'directive': directive,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (arguments != null) 'arguments': arguments!,
+        if (directive != null) 'directive': directive!,
       };
 }
 
@@ -3578,7 +3495,7 @@
 class Link {
   /// ByProducts are data generated as part of a software supply chain step, but
   /// are not the actual result of the step.
-  ByProducts byproducts;
+  ByProducts? byproducts;
 
   /// This field contains the full command executed for the step.
   ///
@@ -3587,7 +3504,7 @@
   /// independent string in the list. An example of a command in the in-toto
   /// metadata field is: "command": \["git", "clone",
   /// "https://github.com/in-toto/demo-project.git"\]
-  core.List<core.String> command;
+  core.List<core.String>? command;
 
   /// This is a field that can be used to capture information about the
   /// environment.
@@ -3597,7 +3514,7 @@
   /// directory. The recommended structure of this field is: "environment": {
   /// "custom_values": { "variables": "", "filesystem": "", "workdir": "", "":
   /// "..." } }
-  Environment environment;
+  Environment? environment;
 
   /// Materials are the supply chain artifacts that go into the step and are
   /// used for the operation performed.
@@ -3605,12 +3522,12 @@
   /// The key of the map is the path of the artifact and the structure contains
   /// the recorded hash information. An example is: "materials": \[ {
   /// "resource_uri": "foo/bar", "hashes": { "sha256": "ebebf...", : } } \]
-  core.List<GrafeasV1beta1IntotoArtifact> materials;
+  core.List<GrafeasV1beta1IntotoArtifact>? materials;
 
   /// Products are the supply chain artifacts generated as a result of the step.
   ///
   /// The structure is identical to that of materials.
-  core.List<GrafeasV1beta1IntotoArtifact> products;
+  core.List<GrafeasV1beta1IntotoArtifact>? products;
 
   Link();
 
@@ -3644,24 +3561,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (byproducts != null) 'byproducts': byproducts.toJson(),
-        if (command != null) 'command': command,
-        if (environment != null) 'environment': environment.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (byproducts != null) 'byproducts': byproducts!.toJson(),
+        if (command != null) 'command': command!,
+        if (environment != null) 'environment': environment!.toJson(),
         if (materials != null)
-          'materials': materials.map((value) => value.toJson()).toList(),
+          'materials': materials!.map((value) => value.toJson()).toList(),
         if (products != null)
-          'products': products.map((value) => value.toJson()).toList(),
+          'products': products!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response for listing occurrences for a note.
 class ListNoteOccurrencesResponse {
   /// Token to provide to skip to a particular spot in the list.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The occurrences attached to the specified note.
-  core.List<Occurrence> occurrences;
+  core.List<Occurrence>? occurrences;
 
   ListNoteOccurrencesResponse();
 
@@ -3677,10 +3594,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (occurrences != null)
-          'occurrences': occurrences.map((value) => value.toJson()).toList(),
+          'occurrences': occurrences!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3690,10 +3607,10 @@
   ///
   /// It should be used as `page_token` for the following request. An empty
   /// value means no more results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The notes requested.
-  core.List<Note> notes;
+  core.List<Note>? notes;
 
   ListNotesResponse();
 
@@ -3709,10 +3626,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (notes != null)
-          'notes': notes.map((value) => value.toJson()).toList(),
+          'notes': notes!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3722,10 +3639,10 @@
   ///
   /// It should be used as `page_token` for the following request. An empty
   /// value means no more results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The occurrences requested.
-  core.List<Occurrence> occurrences;
+  core.List<Occurrence>? occurrences;
 
   ListOccurrencesResponse();
 
@@ -3741,10 +3658,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (occurrences != null)
-          'occurrences': occurrences.map((value) => value.toJson()).toList(),
+          'occurrences': occurrences!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3754,10 +3671,10 @@
   ///
   /// It should be used as `page_token` for the following request. An empty
   /// value means no more results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The scan configurations requested.
-  core.List<ScanConfig> scanConfigs;
+  core.List<ScanConfig>? scanConfigs;
 
   ListScanConfigsResponse();
 
@@ -3773,10 +3690,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (scanConfigs != null)
-          'scanConfigs': scanConfigs.map((value) => value.toJson()).toList(),
+          'scanConfigs': scanConfigs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3789,13 +3706,13 @@
   /// the package manager version distributing a package.
   ///
   /// Required.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The path from which we gathered that this package/version is installed.
-  core.String path;
+  core.String? path;
 
   /// The version installed at this location.
-  Version version;
+  Version? version;
 
   Location();
 
@@ -3812,44 +3729,44 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (path != null) 'path': path,
-        if (version != null) 'version': version.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (path != null) 'path': path!,
+        if (version != null) 'version': version!.toJson(),
       };
 }
 
 /// A type of analysis that can be done for a resource.
 class Note {
   /// A note describing an attestation role.
-  Authority attestationAuthority;
+  Authority? attestationAuthority;
 
   /// A note describing a base image.
-  Basis baseImage;
+  Basis? baseImage;
 
   /// A note describing build provenance for a verifiable build.
-  Build build;
+  Build? build;
 
   /// The time this note was created.
   ///
   /// This field can be used as a filter in list requests.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// A note describing something that can be deployed.
-  Deployable deployable;
+  Deployable? deployable;
 
   /// A note describing the initial analysis of a resource.
-  Discovery discovery;
+  Discovery? discovery;
 
   /// Time of expiration for this note.
   ///
   /// Empty if note does not expire.
-  core.String expirationTime;
+  core.String? expirationTime;
 
   /// A note describing an in-toto link.
-  InToto intoto;
+  InToto? intoto;
 
   /// The type of analysis.
   ///
@@ -3869,38 +3786,38 @@
   /// - "ATTESTATION" : This represents a logical "role" that can attest to
   /// artifacts.
   /// - "INTOTO" : This represents an in-toto link.
-  core.String kind;
+  core.String? kind;
 
   /// A detailed description of this note.
-  core.String longDescription;
+  core.String? longDescription;
 
   /// The name of the note in the form of
   /// `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// A note describing a package hosted by various package managers.
-  Package package;
+  Package? package;
 
   /// Other notes related to this note.
-  core.List<core.String> relatedNoteNames;
+  core.List<core.String>? relatedNoteNames;
 
   /// URLs associated with this note.
-  core.List<RelatedUrl> relatedUrl;
+  core.List<RelatedUrl>? relatedUrl;
 
   /// A one sentence description of this note.
-  core.String shortDescription;
+  core.String? shortDescription;
 
   /// The time this note was last updated.
   ///
   /// This field can be used as a filter in list requests.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// A note describing a package vulnerability.
-  Vulnerability vulnerability;
+  Vulnerability? vulnerability;
 
   Note();
 
@@ -3971,56 +3888,56 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (attestationAuthority != null)
-          'attestationAuthority': attestationAuthority.toJson(),
-        if (baseImage != null) 'baseImage': baseImage.toJson(),
-        if (build != null) 'build': build.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (deployable != null) 'deployable': deployable.toJson(),
-        if (discovery != null) 'discovery': discovery.toJson(),
-        if (expirationTime != null) 'expirationTime': expirationTime,
-        if (intoto != null) 'intoto': intoto.toJson(),
-        if (kind != null) 'kind': kind,
-        if (longDescription != null) 'longDescription': longDescription,
-        if (name != null) 'name': name,
-        if (package != null) 'package': package.toJson(),
-        if (relatedNoteNames != null) 'relatedNoteNames': relatedNoteNames,
+          'attestationAuthority': attestationAuthority!.toJson(),
+        if (baseImage != null) 'baseImage': baseImage!.toJson(),
+        if (build != null) 'build': build!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (deployable != null) 'deployable': deployable!.toJson(),
+        if (discovery != null) 'discovery': discovery!.toJson(),
+        if (expirationTime != null) 'expirationTime': expirationTime!,
+        if (intoto != null) 'intoto': intoto!.toJson(),
+        if (kind != null) 'kind': kind!,
+        if (longDescription != null) 'longDescription': longDescription!,
+        if (name != null) 'name': name!,
+        if (package != null) 'package': package!.toJson(),
+        if (relatedNoteNames != null) 'relatedNoteNames': relatedNoteNames!,
         if (relatedUrl != null)
-          'relatedUrl': relatedUrl.map((value) => value.toJson()).toList(),
-        if (shortDescription != null) 'shortDescription': shortDescription,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (vulnerability != null) 'vulnerability': vulnerability.toJson(),
+          'relatedUrl': relatedUrl!.map((value) => value.toJson()).toList(),
+        if (shortDescription != null) 'shortDescription': shortDescription!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (vulnerability != null) 'vulnerability': vulnerability!.toJson(),
       };
 }
 
 /// An instance of an analysis type that has been found on a resource.
 class Occurrence {
   /// Describes an attestation of an artifact.
-  Details attestation;
+  Details? attestation;
 
   /// Describes a verifiable build.
-  GrafeasV1beta1BuildDetails build;
+  GrafeasV1beta1BuildDetails? build;
 
   /// The time this occurrence was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Describes the deployment of an artifact on a runtime.
-  GrafeasV1beta1DeploymentDetails deployment;
+  GrafeasV1beta1DeploymentDetails? deployment;
 
   /// Describes how this resource derives from the basis in the associated note.
-  GrafeasV1beta1ImageDetails derivedImage;
+  GrafeasV1beta1ImageDetails? derivedImage;
 
   /// Describes when a resource was discovered.
-  GrafeasV1beta1DiscoveryDetails discovered;
+  GrafeasV1beta1DiscoveryDetails? discovered;
 
   /// Describes the installation of a package on the linked resource.
-  GrafeasV1beta1PackageDetails installation;
+  GrafeasV1beta1PackageDetails? installation;
 
   /// Describes a specific in-toto link.
-  GrafeasV1beta1IntotoDetails intoto;
+  GrafeasV1beta1IntotoDetails? intoto;
 
   /// This explicitly denotes which of the occurrence details are specified.
   ///
@@ -4040,13 +3957,13 @@
   /// - "ATTESTATION" : This represents a logical "role" that can attest to
   /// artifacts.
   /// - "INTOTO" : This represents an in-toto link.
-  core.String kind;
+  core.String? kind;
 
   /// The name of the occurrence in the form of
   /// `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The analysis note associated with this occurrence, in the form of
   /// `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
@@ -4054,23 +3971,23 @@
   /// This field can be used as a filter in list requests.
   ///
   /// Required. Immutable.
-  core.String noteName;
+  core.String? noteName;
 
   /// A description of actions that can be taken to remedy the note.
-  core.String remediation;
+  core.String? remediation;
 
   /// The resource for which the occurrence applies.
   ///
   /// Required. Immutable.
-  Resource resource;
+  Resource? resource;
 
   /// The time this occurrence was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// Describes a security vulnerability.
-  GrafeasV1beta1VulnerabilityDetails vulnerability;
+  GrafeasV1beta1VulnerabilityDetails? vulnerability;
 
   Occurrence();
 
@@ -4131,22 +4048,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attestation != null) 'attestation': attestation.toJson(),
-        if (build != null) 'build': build.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (deployment != null) 'deployment': deployment.toJson(),
-        if (derivedImage != null) 'derivedImage': derivedImage.toJson(),
-        if (discovered != null) 'discovered': discovered.toJson(),
-        if (installation != null) 'installation': installation.toJson(),
-        if (intoto != null) 'intoto': intoto.toJson(),
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (noteName != null) 'noteName': noteName,
-        if (remediation != null) 'remediation': remediation,
-        if (resource != null) 'resource': resource.toJson(),
-        if (updateTime != null) 'updateTime': updateTime,
-        if (vulnerability != null) 'vulnerability': vulnerability.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attestation != null) 'attestation': attestation!.toJson(),
+        if (build != null) 'build': build!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (deployment != null) 'deployment': deployment!.toJson(),
+        if (derivedImage != null) 'derivedImage': derivedImage!.toJson(),
+        if (discovered != null) 'discovered': discovered!.toJson(),
+        if (installation != null) 'installation': installation!.toJson(),
+        if (intoto != null) 'intoto': intoto!.toJson(),
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (noteName != null) 'noteName': noteName!,
+        if (remediation != null) 'remediation': remediation!,
+        if (resource != null) 'resource': resource!.toJson(),
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (vulnerability != null) 'vulnerability': vulnerability!.toJson(),
       };
 }
 
@@ -4156,12 +4073,12 @@
 /// E.g., glibc (aka libc6) is distributed by many, at various versions.
 class Package {
   /// The various channels by which a package is distributed.
-  core.List<Distribution> distribution;
+  core.List<Distribution>? distribution;
 
   /// The name of the package.
   ///
   /// Required. Immutable.
-  core.String name;
+  core.String? name;
 
   Package();
 
@@ -4177,10 +4094,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (distribution != null)
-          'distribution': distribution.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'distribution': distribution!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4190,14 +4107,14 @@
   /// The location of the vulnerability.
   ///
   /// Required.
-  VulnerabilityLocation affectedLocation;
+  VulnerabilityLocation? affectedLocation;
 
   /// The location of the available fix for vulnerability.
-  VulnerabilityLocation fixedLocation;
+  VulnerabilityLocation? fixedLocation;
 
   /// Deprecated, use Details.effective_severity instead The severity (e.g.,
   /// distro assigned severity) for this vulnerability.
-  core.String severityName;
+  core.String? severityName;
 
   PackageIssue();
 
@@ -4215,11 +4132,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (affectedLocation != null)
-          'affectedLocation': affectedLocation.toJson(),
-        if (fixedLocation != null) 'fixedLocation': fixedLocation.toJson(),
-        if (severityName != null) 'severityName': severityName,
+          'affectedLocation': affectedLocation!.toJson(),
+        if (fixedLocation != null) 'fixedLocation': fixedLocation!.toJson(),
+        if (severityName != null) 'severityName': severityName!,
       };
 }
 
@@ -4239,7 +4156,7 @@
   /// https://github.com/containers/image/blob/8a5d2f82a6e3263290c8e0276c3e0f64e77723e7/docs/atomic-signature.md
   /// The payload extracted from `signature` is a JSON blob conforming to the
   /// linked schema.
-  core.String contentType;
+  core.String? contentType;
 
   /// The cryptographic fingerprint of the key used to generate the signature,
   /// as output by, e.g. `gpg --list-keys`.
@@ -4255,7 +4172,7 @@
   /// attester@example.com tru::1:1513631572:0:3:1:5 pub:......
   /// fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: ``` Above, the
   /// fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`.
-  core.String pgpKeyId;
+  core.String? pgpKeyId;
 
   /// The raw content of the signature, as output by GNU Privacy Guard (GPG) or
   /// equivalent.
@@ -4269,7 +4186,7 @@
   /// `signature.gpg` for the `payload.json` attestation payload.
   ///
   /// Required.
-  core.String signature;
+  core.String? signature;
 
   PgpSignedAttestation();
 
@@ -4285,10 +4202,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contentType != null) 'contentType': contentType,
-        if (pgpKeyId != null) 'pgpKeyId': pgpKeyId,
-        if (signature != null) 'signature': signature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contentType != null) 'contentType': contentType!,
+        if (pgpKeyId != null) 'pgpKeyId': pgpKeyId!,
+        if (signature != null) 'signature': signature!,
       };
 }
 
@@ -4329,7 +4246,7 @@
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -4343,8 +4260,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -4368,7 +4285,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -4387,11 +4304,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -4399,12 +4316,12 @@
 /// winged-cargo-31) and a repo name within that project.
 class ProjectRepoId {
   /// The ID of the project.
-  core.String projectId;
+  core.String? projectId;
 
   /// The name of the repo.
   ///
   /// Leave empty for the default repo.
-  core.String repoName;
+  core.String? repoName;
 
   ProjectRepoId();
 
@@ -4417,19 +4334,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (projectId != null) 'projectId': projectId,
-        if (repoName != null) 'repoName': repoName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (projectId != null) 'projectId': projectId!,
+        if (repoName != null) 'repoName': repoName!,
       };
 }
 
 /// Metadata for any related URL information.
 class RelatedUrl {
   /// Label to describe usage of the URL.
-  core.String label;
+  core.String? label;
 
   /// Specific URL associated with the resource.
-  core.String url;
+  core.String? url;
 
   RelatedUrl();
 
@@ -4442,19 +4359,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (label != null) 'label': label,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (label != null) 'label': label!,
+        if (url != null) 'url': url!,
       };
 }
 
 /// A unique identifier for a Cloud Repo.
 class RepoId {
   /// A combination of a project ID and a repo name.
-  ProjectRepoId projectRepoId;
+  ProjectRepoId? projectRepoId;
 
   /// A server-assigned, globally unique identifier.
-  core.String uid;
+  core.String? uid;
 
   RepoId();
 
@@ -4468,9 +4385,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (projectRepoId != null) 'projectRepoId': projectRepoId.toJson(),
-        if (uid != null) 'uid': uid,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (projectRepoId != null) 'projectRepoId': projectRepoId!.toJson(),
+        if (uid != null) 'uid': uid!,
       };
 }
 
@@ -4482,20 +4399,20 @@
   ///
   /// Use uri instead. The hash of the resource content. For example, the Docker
   /// digest.
-  Hash contentHash;
+  Hash? contentHash;
 
   /// Deprecated, do not use.
   ///
   /// Use uri instead. The name of the resource. For example, the name of a
   /// Docker image - "Debian".
-  core.String name;
+  core.String? name;
 
   /// The unique URI of the resource.
   ///
   /// For example, `https://gcr.io/project/image@sha256:foo` for a Docker image.
   ///
   /// Required.
-  core.String uri;
+  core.String? uri;
 
   Resource();
 
@@ -4512,10 +4429,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contentHash != null) 'contentHash': contentHash.toJson(),
-        if (name != null) 'name': name,
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contentHash != null) 'contentHash': contentHash!.toJson(),
+        if (name != null) 'name': name!,
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -4528,26 +4445,26 @@
   /// The time this scan config was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// A human-readable description of what the scan configuration does.
   ///
   /// Output only.
-  core.String description;
+  core.String? description;
 
   /// Whether the scan is enabled.
-  core.bool enabled;
+  core.bool? enabled;
 
   /// The name of the scan configuration in the form of
   /// `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The time this scan config was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   ScanConfig();
 
@@ -4569,12 +4486,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (enabled != null) 'enabled': enabled,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (enabled != null) 'enabled': enabled!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -4585,7 +4502,7 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   SetIamPolicyRequest();
 
@@ -4596,8 +4513,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
       };
 }
 
@@ -4633,7 +4550,7 @@
   /// of the DER serialization): *
   /// "ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU" *
   /// "nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5"
-  core.String publicKeyId;
+  core.String? publicKeyId;
 
   /// The content of the signature, an opaque bytestring.
   ///
@@ -4642,8 +4559,8 @@
   /// the payload explicitly. Alternatively, a message might have a canonical
   /// serialization that can always be unambiguously computed to derive the
   /// payload.
-  core.String signature;
-  core.List<core.int> get signatureAsBytes => convert.base64.decode(signature);
+  core.String? signature;
+  core.List<core.int> get signatureAsBytes => convert.base64.decode(signature!);
 
   set signatureAsBytes(core.List<core.int> _bytes) {
     signature =
@@ -4661,9 +4578,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (publicKeyId != null) 'publicKeyId': publicKeyId,
-        if (signature != null) 'signature': signature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (publicKeyId != null) 'publicKeyId': publicKeyId!,
+        if (signature != null) 'signature': signature!,
       };
 }
 
@@ -4679,20 +4596,20 @@
 /// in-toto specification.
 class SigningKey {
   /// key_id is an identifier for the signing key.
-  core.String keyId;
+  core.String? keyId;
 
   /// This field contains the corresponding signature scheme.
   ///
   /// Eg: "rsassa-pss-sha256".
-  core.String keyScheme;
+  core.String? keyScheme;
 
   /// This field identifies the specific signing method.
   ///
   /// Eg: "rsa", "ed25519", and "ecdsa".
-  core.String keyType;
+  core.String? keyType;
 
   /// This field contains the actual public key.
-  core.String publicKeyValue;
+  core.String? publicKeyValue;
 
   SigningKey();
 
@@ -4711,11 +4628,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyId != null) 'keyId': keyId,
-        if (keyScheme != null) 'keyScheme': keyScheme,
-        if (keyType != null) 'keyType': keyType,
-        if (publicKeyValue != null) 'publicKeyValue': publicKeyValue,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyId != null) 'keyId': keyId!,
+        if (keyScheme != null) 'keyScheme': keyScheme!,
+        if (keyType != null) 'keyType': keyType!,
+        if (publicKeyValue != null) 'publicKeyValue': publicKeyValue!,
       };
 }
 
@@ -4726,14 +4643,14 @@
   /// remotes or submodules.
   ///
   /// This list will not include the context specified in the context field.
-  core.List<SourceContext> additionalContexts;
+  core.List<SourceContext>? additionalContexts;
 
   /// If provided, the input binary artifacts for the build came from this
   /// location.
-  core.String artifactStorageSourceUri;
+  core.String? artifactStorageSourceUri;
 
   /// If provided, the source code used for the build came from this location.
-  SourceContext context;
+  SourceContext? context;
 
   /// Hash(es) of the build source, which can be used to verify that the
   /// original source integrity was maintained in the build.
@@ -4742,7 +4659,7 @@
   /// contain the hash values for those files. If the build source came in a
   /// single package such as a gzipped tarfile (.tar.gz), the FileHash will be
   /// for the single path to that file.
-  core.Map<core.String, FileHashes> fileHashes;
+  core.Map<core.String, FileHashes>? fileHashes;
 
   Source();
 
@@ -4763,7 +4680,7 @@
     }
     if (_json.containsKey('fileHashes')) {
       fileHashes = (_json['fileHashes'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -4773,16 +4690,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (additionalContexts != null)
           'additionalContexts':
-              additionalContexts.map((value) => value.toJson()).toList(),
+              additionalContexts!.map((value) => value.toJson()).toList(),
         if (artifactStorageSourceUri != null)
-          'artifactStorageSourceUri': artifactStorageSourceUri,
-        if (context != null) 'context': context.toJson(),
+          'artifactStorageSourceUri': artifactStorageSourceUri!,
+        if (context != null) 'context': context!.toJson(),
         if (fileHashes != null)
           'fileHashes':
-              fileHashes.map((key, item) => core.MapEntry(key, item.toJson())),
+              fileHashes!.map((key, item) => core.MapEntry(key, item.toJson())),
       };
 }
 
@@ -4792,16 +4709,16 @@
 /// file or directory.
 class SourceContext {
   /// A SourceContext referring to a revision in a Google Cloud Source Repo.
-  CloudRepoSourceContext cloudRepo;
+  CloudRepoSourceContext? cloudRepo;
 
   /// A SourceContext referring to a Gerrit project.
-  GerritSourceContext gerrit;
+  GerritSourceContext? gerrit;
 
   /// A SourceContext referring to any third party Git repo (e.g., GitHub).
-  GitSourceContext git;
+  GitSourceContext? git;
 
   /// Labels with user defined metadata.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   SourceContext();
 
@@ -4829,11 +4746,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudRepo != null) 'cloudRepo': cloudRepo.toJson(),
-        if (gerrit != null) 'gerrit': gerrit.toJson(),
-        if (git != null) 'git': git.toJson(),
-        if (labels != null) 'labels': labels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudRepo != null) 'cloudRepo': cloudRepo!.toJson(),
+        if (gerrit != null) 'gerrit': gerrit!.toJson(),
+        if (git != null) 'git': git!.toJson(),
+        if (labels != null) 'labels': labels!,
       };
 }
 
@@ -4846,7 +4763,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -4854,13 +4771,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -4884,10 +4801,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -4898,7 +4815,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -4910,8 +4827,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -4919,7 +4836,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -4931,15 +4848,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
 /// Version contains structured information about the version of a package.
 class Version {
   /// Used to correct mistakes in the version numbering scheme.
-  core.int epoch;
+  core.int? epoch;
 
   /// Whether this version is specifying part of an inclusive range.
   ///
@@ -4948,7 +4865,7 @@
   /// insufficient - we also need to specify whether the version is included in
   /// the range or is excluded from the range. This boolean is expected to be
   /// set to true when the version is included in a range.
-  core.bool inclusive;
+  core.bool? inclusive;
 
   /// Distinguishes between sentinel MIN/MAX versions and normal versions.
   ///
@@ -4958,15 +4875,15 @@
   /// - "NORMAL" : A standard package version.
   /// - "MINIMUM" : A special version representing negative infinity.
   /// - "MAXIMUM" : A special version representing positive infinity.
-  core.String kind;
+  core.String? kind;
 
   /// Required only when version kind is NORMAL.
   ///
   /// The main part of the version name.
-  core.String name;
+  core.String? name;
 
   /// The iteration of the package build from the above version.
-  core.String revision;
+  core.String? revision;
 
   Version();
 
@@ -4988,29 +4905,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (epoch != null) 'epoch': epoch,
-        if (inclusive != null) 'inclusive': inclusive,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (revision != null) 'revision': revision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (epoch != null) 'epoch': epoch!,
+        if (inclusive != null) 'inclusive': inclusive!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (revision != null) 'revision': revision!,
       };
 }
 
 /// Vulnerability provides metadata about a security vulnerability in a Note.
 class Vulnerability {
   /// The CVSS score for this vulnerability.
-  core.double cvssScore;
+  core.double? cvssScore;
 
   /// The full description of the CVSSv3.
-  CVSSv3 cvssV3;
+  CVSSv3? cvssV3;
 
   /// All information about the package to specifically identify this
   /// vulnerability.
   ///
   /// One entry per (version range and cpe_uri) the package vulnerability has
   /// manifested in.
-  core.List<Detail> details;
+  core.List<Detail>? details;
 
   /// Note provider assigned impact of the vulnerability.
   /// Possible string values are:
@@ -5020,13 +4937,13 @@
   /// - "MEDIUM" : Medium severity.
   /// - "HIGH" : High severity.
   /// - "CRITICAL" : Critical severity.
-  core.String severity;
+  core.String? severity;
 
   /// The time this information was last changed at the source.
   ///
   /// This is an upstream timestamp from the underlying information source -
   /// e.g. Ubuntu security tracker.
-  core.String sourceUpdateTime;
+  core.String? sourceUpdateTime;
 
   /// Windows details get their own format because the information format and
   /// model don't match a normal detail.
@@ -5034,7 +4951,7 @@
   /// Specifically Windows updates are done as patches, thus Windows
   /// vulnerabilities really are a missing package, rather than a package being
   /// at an incorrect version.
-  core.List<WindowsDetail> windowsDetails;
+  core.List<WindowsDetail>? windowsDetails;
 
   Vulnerability();
 
@@ -5066,16 +4983,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cvssScore != null) 'cvssScore': cvssScore,
-        if (cvssV3 != null) 'cvssV3': cvssV3.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cvssScore != null) 'cvssScore': cvssScore!,
+        if (cvssV3 != null) 'cvssV3': cvssV3!.toJson(),
         if (details != null)
-          'details': details.map((value) => value.toJson()).toList(),
-        if (severity != null) 'severity': severity,
-        if (sourceUpdateTime != null) 'sourceUpdateTime': sourceUpdateTime,
+          'details': details!.map((value) => value.toJson()).toList(),
+        if (severity != null) 'severity': severity!,
+        if (sourceUpdateTime != null) 'sourceUpdateTime': sourceUpdateTime!,
         if (windowsDetails != null)
           'windowsDetails':
-              windowsDetails.map((value) => value.toJson()).toList(),
+              windowsDetails!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5086,17 +5003,17 @@
   /// Examples include distro or storage location for vulnerable jar.
   ///
   /// Required.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The package being described.
   ///
   /// Required.
-  core.String package;
+  core.String? package;
 
   /// The version of the package being described.
   ///
   /// Required.
-  Version version;
+  Version? version;
 
   VulnerabilityLocation();
 
@@ -5113,10 +5030,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (package != null) 'package': package,
-        if (version != null) 'version': version.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (package != null) 'package': package!,
+        if (version != null) 'version': version!.toJson(),
       };
 }
 
@@ -5124,7 +5041,7 @@
 /// severity type.
 class VulnerabilityOccurrencesSummary {
   /// A listing by resource of the number of fixable and total vulnerabilities.
-  core.List<FixableTotalByDigest> counts;
+  core.List<FixableTotalByDigest>? counts;
 
   VulnerabilityOccurrencesSummary();
 
@@ -5137,9 +5054,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (counts != null)
-          'counts': counts.map((value) => value.toJson()).toList(),
+          'counts': counts!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5150,10 +5067,10 @@
   /// Examples include distro or storage location for vulnerable jar.
   ///
   /// Required.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The description of the vulnerability.
-  core.String description;
+  core.String? description;
 
   /// The names of the KBs which have hotfixes to mitigate this vulnerability.
   ///
@@ -5162,12 +5079,12 @@
   /// considered a fix.
   ///
   /// Required.
-  core.List<KnowledgeBase> fixingKbs;
+  core.List<KnowledgeBase>? fixingKbs;
 
   /// The name of the vulnerability.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   WindowsDetail();
 
@@ -5189,11 +5106,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (description != null) 'description': description,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (description != null) 'description': description!,
         if (fixingKbs != null)
-          'fixingKbs': fixingKbs.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'fixingKbs': fixingKbs!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
       };
 }
diff --git a/generated/googleapis_beta/lib/datacatalog/v1beta1.dart b/generated/googleapis_beta/lib/datacatalog/v1beta1.dart
index ae39295..61debc3 100644
--- a/generated/googleapis_beta/lib/datacatalog/v1beta1.dart
+++ b/generated/googleapis_beta/lib/datacatalog/v1beta1.dart
@@ -105,10 +105,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1SearchCatalogResponse> search(
     GoogleCloudDatacatalogV1beta1SearchCatalogRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -165,9 +164,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1Entry> lookup({
-    core.String linkedResource,
-    core.String sqlResource,
-    core.String $fields,
+    core.String? linkedResource,
+    core.String? sqlResource,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (linkedResource != null) 'linkedResource': [linkedResource],
@@ -255,14 +254,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1EntryGroup> create(
     GoogleCloudDatacatalogV1beta1EntryGroup request,
     core.String parent, {
-    core.String entryGroupId,
-    core.String $fields,
+    core.String? entryGroupId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (entryGroupId != null) 'entryGroupId': [entryGroupId],
       if ($fields != null) 'fields': [$fields],
@@ -311,12 +306,9 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.bool force,
-    core.String $fields,
+    core.bool? force,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (force != null) 'force': ['${force}'],
       if ($fields != null) 'fields': [$fields],
@@ -356,12 +348,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1EntryGroup> get(
     core.String name, {
-    core.String readMask,
-    core.String $fields,
+    core.String? readMask,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (readMask != null) 'readMask': [readMask],
       if ($fields != null) 'fields': [$fields],
@@ -413,13 +402,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -464,13 +449,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ListEntryGroupsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -524,14 +506,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1EntryGroup> patch(
     GoogleCloudDatacatalogV1beta1EntryGroup request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -583,13 +561,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -639,13 +613,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -710,14 +680,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1Entry> create(
     GoogleCloudDatacatalogV1beta1Entry request,
     core.String parent, {
-    core.String entryId,
-    core.String $fields,
+    core.String? entryId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (entryId != null) 'entryId': [entryId],
       if ($fields != null) 'fields': [$fields],
@@ -764,11 +730,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -804,11 +767,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1Entry> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -859,13 +819,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -916,14 +872,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ListEntriesResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String readMask,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? readMask,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -985,14 +938,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1Entry> patch(
     GoogleCloudDatacatalogV1beta1Entry request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1042,13 +991,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1107,13 +1052,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1Tag> create(
     GoogleCloudDatacatalogV1beta1Tag request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1152,11 +1093,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1200,13 +1138,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ListTagsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1255,14 +1190,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1Tag> patch(
     GoogleCloudDatacatalogV1beta1Tag request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1320,13 +1251,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1Tag> create(
     GoogleCloudDatacatalogV1beta1Tag request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1365,11 +1292,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1413,13 +1337,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ListTagsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1468,14 +1389,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1Tag> patch(
     GoogleCloudDatacatalogV1beta1Tag request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1534,14 +1451,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplate> create(
     GoogleCloudDatacatalogV1beta1TagTemplate request,
     core.String parent, {
-    core.String tagTemplateId,
-    core.String $fields,
+    core.String? tagTemplateId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (tagTemplateId != null) 'tagTemplateId': [tagTemplateId],
       if ($fields != null) 'fields': [$fields],
@@ -1591,12 +1504,9 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.bool force,
-    core.String $fields,
+    core.bool? force,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (force != null) 'force': ['${force}'],
       if ($fields != null) 'fields': [$fields],
@@ -1633,11 +1543,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplate> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1688,13 +1595,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1750,14 +1653,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplate> patch(
     GoogleCloudDatacatalogV1beta1TagTemplate request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1809,13 +1708,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1865,13 +1760,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1937,14 +1828,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplateField> create(
     GoogleCloudDatacatalogV1beta1TagTemplateField request,
     core.String parent, {
-    core.String tagTemplateFieldId,
-    core.String $fields,
+    core.String? tagTemplateFieldId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (tagTemplateFieldId != null)
         'tagTemplateFieldId': [tagTemplateFieldId],
@@ -1996,12 +1883,9 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.bool force,
-    core.String $fields,
+    core.bool? force,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (force != null) 'force': ['${force}'],
       if ($fields != null) 'fields': [$fields],
@@ -2056,14 +1940,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplateField> patch(
     GoogleCloudDatacatalogV1beta1TagTemplateField request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2110,13 +1990,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplateField> rename(
     GoogleCloudDatacatalogV1beta1RenameTagTemplateFieldRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2170,13 +2046,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1TagTemplateField> rename(
     GoogleCloudDatacatalogV1beta1RenameTagTemplateFieldEnumValueRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2227,13 +2099,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1Taxonomy> create(
     GoogleCloudDatacatalogV1beta1Taxonomy request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2276,11 +2144,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2322,13 +2187,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ExportTaxonomiesResponse> export(
     core.String parent, {
-    core.bool serializedTaxonomies,
-    core.List<core.String> taxonomies,
-    core.String $fields,
+    core.bool? serializedTaxonomies,
+    core.List<core.String>? taxonomies,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (serializedTaxonomies != null)
         'serializedTaxonomies': ['${serializedTaxonomies}'],
@@ -2369,11 +2231,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1Taxonomy> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2414,13 +2273,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2465,13 +2320,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1ImportTaxonomiesResponse> import(
     GoogleCloudDatacatalogV1beta1ImportTaxonomiesRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2517,13 +2368,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ListTaxonomiesResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2572,14 +2420,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1Taxonomy> patch(
     GoogleCloudDatacatalogV1beta1Taxonomy request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2622,13 +2466,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2672,13 +2512,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2728,13 +2564,9 @@
   async.Future<GoogleCloudDatacatalogV1beta1PolicyTag> create(
     GoogleCloudDatacatalogV1beta1PolicyTag request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2776,11 +2608,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2815,11 +2644,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1PolicyTag> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2860,13 +2686,9 @@
   async.Future<Policy> getIamPolicy(
     GetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2911,13 +2733,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatacatalogV1beta1ListPolicyTagsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2969,14 +2788,10 @@
   async.Future<GoogleCloudDatacatalogV1beta1PolicyTag> patch(
     GoogleCloudDatacatalogV1beta1PolicyTag request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -3019,13 +2834,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3069,13 +2880,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3105,7 +2912,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -3137,12 +2944,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -3161,10 +2968,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -3182,7 +2989,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Represents a textual expression in the Common Expression Language (CEL)
@@ -3210,24 +3017,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -3246,11 +3053,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -3258,7 +3065,7 @@
 class GetIamPolicyRequest {
   /// OPTIONAL: A `GetPolicyOptions` object for specifying options to
   /// `GetIamPolicy`.
-  GetPolicyOptions options;
+  GetPolicyOptions? options;
 
   GetIamPolicyRequest();
 
@@ -3269,8 +3076,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (options != null) 'options': options.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (options != null) 'options': options!.toJson(),
       };
 }
 
@@ -3286,7 +3093,7 @@
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
   ///
   /// Optional.
-  core.int requestedPolicyVersion;
+  core.int? requestedPolicyVersion;
 
   GetPolicyOptions();
 
@@ -3296,9 +3103,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (requestedPolicyVersion != null)
-          'requestedPolicyVersion': requestedPolicyVersion,
+          'requestedPolicyVersion': requestedPolicyVersion!,
       };
 }
 
@@ -3312,12 +3119,12 @@
   /// `projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}`.
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Total number of shards.
   ///
   /// Output only.
-  core.String shardCount;
+  core.String? shardCount;
 
   /// The table name prefix of the shards.
   ///
@@ -3325,7 +3132,7 @@
   /// shard `MyTable20180101`, the `table_prefix` is `MyTable`.
   ///
   /// Output only.
-  core.String tablePrefix;
+  core.String? tablePrefix;
 
   GoogleCloudDatacatalogV1beta1BigQueryDateShardedSpec();
 
@@ -3342,10 +3149,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset,
-        if (shardCount != null) 'shardCount': shardCount,
-        if (tablePrefix != null) 'tablePrefix': tablePrefix,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!,
+        if (shardCount != null) 'shardCount': shardCount!,
+        if (tablePrefix != null) 'tablePrefix': tablePrefix!,
       };
 }
 
@@ -3359,19 +3166,19 @@
   /// - "BIGQUERY_VIEW" : Table view.
   /// - "BIGQUERY_TABLE" : BigQuery native table.
   /// - "BIGQUERY_MATERIALIZED_VIEW" : BigQuery materialized view.
-  core.String tableSourceType;
+  core.String? tableSourceType;
 
   /// Spec of a BigQuery table.
   ///
   /// This field should only be populated if `table_source_type` is
   /// `BIGQUERY_TABLE`.
-  GoogleCloudDatacatalogV1beta1TableSpec tableSpec;
+  GoogleCloudDatacatalogV1beta1TableSpec? tableSpec;
 
   /// Table view specification.
   ///
   /// This field should only be populated if `table_source_type` is
   /// `BIGQUERY_VIEW`.
-  GoogleCloudDatacatalogV1beta1ViewSpec viewSpec;
+  GoogleCloudDatacatalogV1beta1ViewSpec? viewSpec;
 
   GoogleCloudDatacatalogV1beta1BigQueryTableSpec();
 
@@ -3389,10 +3196,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (tableSourceType != null) 'tableSourceType': tableSourceType,
-        if (tableSpec != null) 'tableSpec': tableSpec.toJson(),
-        if (viewSpec != null) 'viewSpec': viewSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (tableSourceType != null) 'tableSourceType': tableSourceType!,
+        if (tableSpec != null) 'tableSpec': tableSpec!.toJson(),
+        if (viewSpec != null) 'viewSpec': viewSpec!.toJson(),
       };
 }
 
@@ -3403,14 +3210,14 @@
   /// Name of the column.
   ///
   /// Required.
-  core.String column;
+  core.String? column;
 
   /// Description of the column.
   ///
   /// Default value is an empty string.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// A column's mode indicates whether the values in this column are required,
   /// nullable, etc.
@@ -3419,19 +3226,19 @@
   /// `NULLABLE`.
   ///
   /// Optional.
-  core.String mode;
+  core.String? mode;
 
   /// Schema of sub-columns.
   ///
   /// A column can have zero or more sub-columns.
   ///
   /// Optional.
-  core.List<GoogleCloudDatacatalogV1beta1ColumnSchema> subcolumns;
+  core.List<GoogleCloudDatacatalogV1beta1ColumnSchema>? subcolumns;
 
   /// Type of the column.
   ///
   /// Required.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDatacatalogV1beta1ColumnSchema();
 
@@ -3457,13 +3264,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (column != null) 'column': column,
-        if (description != null) 'description': description,
-        if (mode != null) 'mode': mode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (column != null) 'column': column!,
+        if (description != null) 'description': description!,
+        if (mode != null) 'mode': mode!,
         if (subcolumns != null)
-          'subcolumns': subcolumns.map((value) => value.toJson()).toList(),
-        if (type != null) 'type': type,
+          'subcolumns': subcolumns!.map((value) => value.toJson()).toList(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -3481,29 +3288,29 @@
   ///
   /// Context:
   /// https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
-  GoogleCloudDatacatalogV1beta1BigQueryDateShardedSpec bigqueryDateShardedSpec;
+  GoogleCloudDatacatalogV1beta1BigQueryDateShardedSpec? bigqueryDateShardedSpec;
 
   /// Specification that applies to a BigQuery table.
   ///
   /// This is only valid on entries of type `TABLE`.
-  GoogleCloudDatacatalogV1beta1BigQueryTableSpec bigqueryTableSpec;
+  GoogleCloudDatacatalogV1beta1BigQueryTableSpec? bigqueryTableSpec;
 
   /// Entry description, which can consist of several sentences or paragraphs
   /// that describe entry contents.
   ///
   /// Default value is an empty string.
-  core.String description;
+  core.String? description;
 
   /// Display information such as title and description.
   ///
   /// A short name to identify the entry, for example, "Analytics Data - Jan
   /// 2011". Default value is an empty string.
-  core.String displayName;
+  core.String? displayName;
 
   /// Specification that applies to a Cloud Storage fileset.
   ///
   /// This is only valid on entries of type FILESET.
-  GoogleCloudDatacatalogV1beta1GcsFilesetSpec gcsFilesetSpec;
+  GoogleCloudDatacatalogV1beta1GcsFilesetSpec? gcsFilesetSpec;
 
   /// This field indicates the entry's source system that Data Catalog
   /// integrates with, such as BigQuery or Pub/Sub.
@@ -3513,7 +3320,7 @@
   /// - "INTEGRATED_SYSTEM_UNSPECIFIED" : Default unknown system.
   /// - "BIGQUERY" : BigQuery.
   /// - "CLOUD_PUBSUB" : Cloud Pub/Sub.
-  core.String integratedSystem;
+  core.String? integratedSystem;
 
   /// The resource this metadata entry refers to.
   ///
@@ -3525,7 +3332,7 @@
   /// Output only when Entry is of type in the EntryType enum. For entries with
   /// user_specified_type, this field is optional and defaults to an empty
   /// string.
-  core.String linkedResource;
+  core.String? linkedResource;
 
   /// The Data Catalog resource name of the entry in URL format.
   ///
@@ -3535,12 +3342,12 @@
   /// the location in this name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Schema of the entry.
   ///
   /// An entry might not have any schema attached to it.
-  GoogleCloudDatacatalogV1beta1Schema schema;
+  GoogleCloudDatacatalogV1beta1Schema? schema;
 
   /// Timestamps about the underlying resource, not about this Data Catalog
   /// entry.
@@ -3550,7 +3357,7 @@
   /// timestamp.
   ///
   /// Output only.
-  GoogleCloudDatacatalogV1beta1SystemTimestamps sourceSystemTimestamps;
+  GoogleCloudDatacatalogV1beta1SystemTimestamps? sourceSystemTimestamps;
 
   /// The type of the entry.
   ///
@@ -3565,7 +3372,7 @@
   /// entries. Example: Pub/Sub topic.
   /// - "FILESET" : An entry type which is a set of files or objects. Example:
   /// Cloud Storage fileset.
-  core.String type;
+  core.String? type;
 
   /// This field indicates the entry's source system that Data Catalog does not
   /// integrate with.
@@ -3573,7 +3380,7 @@
   /// `user_specified_system` strings must begin with a letter or underscore and
   /// can only contain letters, numbers, and underscores; are case insensitive;
   /// must be at least 1 character and at most 64 characters long.
-  core.String userSpecifiedSystem;
+  core.String? userSpecifiedSystem;
 
   /// Entry type if it does not fit any of the input-allowed values listed in
   /// `EntryType` enum above.
@@ -3586,7 +3393,7 @@
   /// most 64 characters long. Currently, only FILESET enum value is allowed.
   /// All other entries created through Data Catalog must use
   /// `user_specified_type`.
-  core.String userSpecifiedType;
+  core.String? userSpecifiedType;
 
   GoogleCloudDatacatalogV1beta1Entry();
 
@@ -3643,24 +3450,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bigqueryDateShardedSpec != null)
-          'bigqueryDateShardedSpec': bigqueryDateShardedSpec.toJson(),
+          'bigqueryDateShardedSpec': bigqueryDateShardedSpec!.toJson(),
         if (bigqueryTableSpec != null)
-          'bigqueryTableSpec': bigqueryTableSpec.toJson(),
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (gcsFilesetSpec != null) 'gcsFilesetSpec': gcsFilesetSpec.toJson(),
-        if (integratedSystem != null) 'integratedSystem': integratedSystem,
-        if (linkedResource != null) 'linkedResource': linkedResource,
-        if (name != null) 'name': name,
-        if (schema != null) 'schema': schema.toJson(),
+          'bigqueryTableSpec': bigqueryTableSpec!.toJson(),
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (gcsFilesetSpec != null) 'gcsFilesetSpec': gcsFilesetSpec!.toJson(),
+        if (integratedSystem != null) 'integratedSystem': integratedSystem!,
+        if (linkedResource != null) 'linkedResource': linkedResource!,
+        if (name != null) 'name': name!,
+        if (schema != null) 'schema': schema!.toJson(),
         if (sourceSystemTimestamps != null)
-          'sourceSystemTimestamps': sourceSystemTimestamps.toJson(),
-        if (type != null) 'type': type,
+          'sourceSystemTimestamps': sourceSystemTimestamps!.toJson(),
+        if (type != null) 'type': type!,
         if (userSpecifiedSystem != null)
-          'userSpecifiedSystem': userSpecifiedSystem,
-        if (userSpecifiedType != null) 'userSpecifiedType': userSpecifiedType,
+          'userSpecifiedSystem': userSpecifiedSystem!,
+        if (userSpecifiedType != null) 'userSpecifiedType': userSpecifiedType!,
       };
 }
 
@@ -3674,19 +3481,19 @@
   /// Default value is empty timestamps.
   ///
   /// Output only.
-  GoogleCloudDatacatalogV1beta1SystemTimestamps dataCatalogTimestamps;
+  GoogleCloudDatacatalogV1beta1SystemTimestamps? dataCatalogTimestamps;
 
   /// Entry group description, which can consist of several sentences or
   /// paragraphs that describe entry group contents.
   ///
   /// Default value is an empty string.
-  core.String description;
+  core.String? description;
 
   /// A short name to identify the entry group, for example, "analytics data -
   /// jan 2011".
   ///
   /// Default value is an empty string.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the entry group in URL format.
   ///
@@ -3694,7 +3501,7 @@
   /// projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
   /// Note that this EntryGroup and its child resources may not actually be
   /// stored in the location in this name.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatacatalogV1beta1EntryGroup();
 
@@ -3716,19 +3523,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dataCatalogTimestamps != null)
-          'dataCatalogTimestamps': dataCatalogTimestamps.toJson(),
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
+          'dataCatalogTimestamps': dataCatalogTimestamps!.toJson(),
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
       };
 }
 
 /// Response message for ExportTaxonomies.
 class GoogleCloudDatacatalogV1beta1ExportTaxonomiesResponse {
   /// List of taxonomies and policy tags in a tree structure.
-  core.List<GoogleCloudDatacatalogV1beta1SerializedTaxonomy> taxonomies;
+  core.List<GoogleCloudDatacatalogV1beta1SerializedTaxonomy>? taxonomies;
 
   GoogleCloudDatacatalogV1beta1ExportTaxonomiesResponse();
 
@@ -3743,15 +3550,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (taxonomies != null)
-          'taxonomies': taxonomies.map((value) => value.toJson()).toList(),
+          'taxonomies': taxonomies!.map((value) => value.toJson()).toList(),
       };
 }
 
 class GoogleCloudDatacatalogV1beta1FieldType {
   /// Represents an enum type.
-  GoogleCloudDatacatalogV1beta1FieldTypeEnumType enumType;
+  GoogleCloudDatacatalogV1beta1FieldTypeEnumType? enumType;
 
   /// Represents primitive types - string, bool etc.
   /// Possible string values are:
@@ -3761,7 +3568,7 @@
   /// - "STRING" : An UTF-8 string.
   /// - "BOOL" : A boolean value.
   /// - "TIMESTAMP" : A timestamp.
-  core.String primitiveType;
+  core.String? primitiveType;
 
   GoogleCloudDatacatalogV1beta1FieldType();
 
@@ -3775,14 +3582,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (enumType != null) 'enumType': enumType.toJson(),
-        if (primitiveType != null) 'primitiveType': primitiveType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (enumType != null) 'enumType': enumType!.toJson(),
+        if (primitiveType != null) 'primitiveType': primitiveType!,
       };
 }
 
 class GoogleCloudDatacatalogV1beta1FieldTypeEnumType {
-  core.List<GoogleCloudDatacatalogV1beta1FieldTypeEnumTypeEnumValue>
+  core.List<GoogleCloudDatacatalogV1beta1FieldTypeEnumTypeEnumValue>?
       allowedValues;
 
   GoogleCloudDatacatalogV1beta1FieldTypeEnumType();
@@ -3797,10 +3604,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (allowedValues != null)
           'allowedValues':
-              allowedValues.map((value) => value.toJson()).toList(),
+              allowedValues!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3810,7 +3617,7 @@
   /// Must not be an empty string.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   GoogleCloudDatacatalogV1beta1FieldTypeEnumTypeEnumValue();
 
@@ -3821,8 +3628,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
       };
 }
 
@@ -3833,17 +3640,17 @@
   /// Example: `gs://bucket_name/a/b.txt`.
   ///
   /// Required.
-  core.String filePath;
+  core.String? filePath;
 
   /// Timestamps about the Cloud Storage file.
   ///
   /// Output only.
-  GoogleCloudDatacatalogV1beta1SystemTimestamps gcsTimestamps;
+  GoogleCloudDatacatalogV1beta1SystemTimestamps? gcsTimestamps;
 
   /// The size of the file, in bytes.
   ///
   /// Output only.
-  core.String sizeBytes;
+  core.String? sizeBytes;
 
   GoogleCloudDatacatalogV1beta1GcsFileSpec();
 
@@ -3860,10 +3667,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (filePath != null) 'filePath': filePath,
-        if (gcsTimestamps != null) 'gcsTimestamps': gcsTimestamps.toJson(),
-        if (sizeBytes != null) 'sizeBytes': sizeBytes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (filePath != null) 'filePath': filePath!,
+        if (gcsTimestamps != null) 'gcsTimestamps': gcsTimestamps!.toJson(),
+        if (sizeBytes != null) 'sizeBytes': sizeBytes!,
       };
 }
 
@@ -3890,13 +3697,13 @@
   /// powerful matches, for example: * `gs://bucket_name/[a-m]??.j*g`
   ///
   /// Required.
-  core.List<core.String> filePatterns;
+  core.List<core.String>? filePatterns;
 
   /// Sample files contained in this fileset, not all files contained in this
   /// fileset are represented here.
   ///
   /// Output only.
-  core.List<GoogleCloudDatacatalogV1beta1GcsFileSpec> sampleGcsFileSpecs;
+  core.List<GoogleCloudDatacatalogV1beta1GcsFileSpec>? sampleGcsFileSpecs;
 
   GoogleCloudDatacatalogV1beta1GcsFilesetSpec();
 
@@ -3915,18 +3722,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (filePatterns != null) 'filePatterns': filePatterns,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (filePatterns != null) 'filePatterns': filePatterns!,
         if (sampleGcsFileSpecs != null)
           'sampleGcsFileSpecs':
-              sampleGcsFileSpecs.map((value) => value.toJson()).toList(),
+              sampleGcsFileSpecs!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Request message for ImportTaxonomies.
 class GoogleCloudDatacatalogV1beta1ImportTaxonomiesRequest {
   /// Inline source used for taxonomies to be imported.
-  GoogleCloudDatacatalogV1beta1InlineSource inlineSource;
+  GoogleCloudDatacatalogV1beta1InlineSource? inlineSource;
 
   GoogleCloudDatacatalogV1beta1ImportTaxonomiesRequest();
 
@@ -3938,15 +3745,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inlineSource != null) 'inlineSource': inlineSource.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inlineSource != null) 'inlineSource': inlineSource!.toJson(),
       };
 }
 
 /// Response message for ImportTaxonomies.
 class GoogleCloudDatacatalogV1beta1ImportTaxonomiesResponse {
   /// Taxonomies that were imported.
-  core.List<GoogleCloudDatacatalogV1beta1Taxonomy> taxonomies;
+  core.List<GoogleCloudDatacatalogV1beta1Taxonomy>? taxonomies;
 
   GoogleCloudDatacatalogV1beta1ImportTaxonomiesResponse();
 
@@ -3961,9 +3768,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (taxonomies != null)
-          'taxonomies': taxonomies.map((value) => value.toJson()).toList(),
+          'taxonomies': taxonomies!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3972,7 +3779,7 @@
   /// Taxonomies to be imported.
   ///
   /// Required.
-  core.List<GoogleCloudDatacatalogV1beta1SerializedTaxonomy> taxonomies;
+  core.List<GoogleCloudDatacatalogV1beta1SerializedTaxonomy>? taxonomies;
 
   GoogleCloudDatacatalogV1beta1InlineSource();
 
@@ -3986,21 +3793,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (taxonomies != null)
-          'taxonomies': taxonomies.map((value) => value.toJson()).toList(),
+          'taxonomies': taxonomies!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for ListEntries.
 class GoogleCloudDatacatalogV1beta1ListEntriesResponse {
   /// Entry details.
-  core.List<GoogleCloudDatacatalogV1beta1Entry> entries;
+  core.List<GoogleCloudDatacatalogV1beta1Entry>? entries;
 
   /// Token to retrieve the next page of results.
   ///
   /// It is set to empty if no items remain in results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatacatalogV1beta1ListEntriesResponse();
 
@@ -4017,22 +3824,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (entries != null)
-          'entries': entries.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'entries': entries!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for ListEntryGroups.
 class GoogleCloudDatacatalogV1beta1ListEntryGroupsResponse {
   /// EntryGroup details.
-  core.List<GoogleCloudDatacatalogV1beta1EntryGroup> entryGroups;
+  core.List<GoogleCloudDatacatalogV1beta1EntryGroup>? entryGroups;
 
   /// Token to retrieve the next page of results.
   ///
   /// It is set to empty if no items remain in results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatacatalogV1beta1ListEntryGroupsResponse();
 
@@ -4050,10 +3857,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (entryGroups != null)
-          'entryGroups': entryGroups.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'entryGroups': entryGroups!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4061,10 +3868,10 @@
 class GoogleCloudDatacatalogV1beta1ListPolicyTagsResponse {
   /// Token used to retrieve the next page of results, or empty if there are no
   /// more results in the list.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The policy tags that are in the requested taxonomy.
-  core.List<GoogleCloudDatacatalogV1beta1PolicyTag> policyTags;
+  core.List<GoogleCloudDatacatalogV1beta1PolicyTag>? policyTags;
 
   GoogleCloudDatacatalogV1beta1ListPolicyTagsResponse();
 
@@ -4081,10 +3888,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (policyTags != null)
-          'policyTags': policyTags.map((value) => value.toJson()).toList(),
+          'policyTags': policyTags!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4093,10 +3900,10 @@
   /// Token to retrieve the next page of results.
   ///
   /// It is set to empty if no items remain in results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Tag details.
-  core.List<GoogleCloudDatacatalogV1beta1Tag> tags;
+  core.List<GoogleCloudDatacatalogV1beta1Tag>? tags;
 
   GoogleCloudDatacatalogV1beta1ListTagsResponse();
 
@@ -4113,9 +3920,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (tags != null) 'tags': tags.map((value) => value.toJson()).toList(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (tags != null) 'tags': tags!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4123,10 +3930,10 @@
 class GoogleCloudDatacatalogV1beta1ListTaxonomiesResponse {
   /// Token used to retrieve the next page of results, or empty if there are no
   /// more results in the list.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Taxonomies that the project contains.
-  core.List<GoogleCloudDatacatalogV1beta1Taxonomy> taxonomies;
+  core.List<GoogleCloudDatacatalogV1beta1Taxonomy>? taxonomies;
 
   GoogleCloudDatacatalogV1beta1ListTaxonomiesResponse();
 
@@ -4143,10 +3950,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (taxonomies != null)
-          'taxonomies': taxonomies.map((value) => value.toJson()).toList(),
+          'taxonomies': taxonomies!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4160,7 +3967,7 @@
   /// Resource names of child policy tags of this policy tag.
   ///
   /// Output only.
-  core.List<core.String> childPolicyTags;
+  core.List<core.String>? childPolicyTags;
 
   /// Description of this policy tag.
   ///
@@ -4168,7 +3975,7 @@
   /// and page breaks; and be at most 2000 bytes long when encoded in UTF-8. If
   /// not set, defaults to an empty description. If not set, defaults to an
   /// empty description.
-  core.String description;
+  core.String? description;
 
   /// User defined name of this policy tag.
   ///
@@ -4177,13 +3984,13 @@
   /// spaces; and be at most 200 bytes long when encoded in UTF-8.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of this policy tag, whose format is:
   /// "projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}".
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Resource name of this policy tag's parent policy tag (e.g. for the
   /// "LatLong" policy tag in the example above, this field contains the
@@ -4192,7 +3999,7 @@
   /// If empty, it means this policy tag is a top level policy tag (e.g. this
   /// field is empty for the "Geolocation" policy tag in the example above). If
   /// not set, defaults to an empty string.
-  core.String parentPolicyTag;
+  core.String? parentPolicyTag;
 
   GoogleCloudDatacatalogV1beta1PolicyTag();
 
@@ -4216,12 +4023,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (childPolicyTags != null) 'childPolicyTags': childPolicyTags,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (parentPolicyTag != null) 'parentPolicyTag': parentPolicyTag,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (childPolicyTags != null) 'childPolicyTags': childPolicyTags!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (parentPolicyTag != null) 'parentPolicyTag': parentPolicyTag!,
       };
 }
 
@@ -4232,7 +4039,7 @@
   /// For example, `my_new_enum_value`.
   ///
   /// Required.
-  core.String newEnumValueDisplayName;
+  core.String? newEnumValueDisplayName;
 
   GoogleCloudDatacatalogV1beta1RenameTagTemplateFieldEnumValueRequest();
 
@@ -4243,9 +4050,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (newEnumValueDisplayName != null)
-          'newEnumValueDisplayName': newEnumValueDisplayName,
+          'newEnumValueDisplayName': newEnumValueDisplayName!,
       };
 }
 
@@ -4256,7 +4063,7 @@
   /// For example, `my_new_field`.
   ///
   /// Required.
-  core.String newTagTemplateFieldId;
+  core.String? newTagTemplateFieldId;
 
   GoogleCloudDatacatalogV1beta1RenameTagTemplateFieldRequest();
 
@@ -4267,9 +4074,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (newTagTemplateFieldId != null)
-          'newTagTemplateFieldId': newTagTemplateFieldId,
+          'newTagTemplateFieldId': newTagTemplateFieldId!,
       };
 }
 
@@ -4280,7 +4087,7 @@
   /// A maximum of 10,000 columns and sub-columns can be specified.
   ///
   /// Required.
-  core.List<GoogleCloudDatacatalogV1beta1ColumnSchema> columns;
+  core.List<GoogleCloudDatacatalogV1beta1ColumnSchema>? columns;
 
   GoogleCloudDatacatalogV1beta1Schema();
 
@@ -4294,9 +4101,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (columns != null)
-          'columns': columns.map((value) => value.toJson()).toList(),
+          'columns': columns!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4306,13 +4113,13 @@
   /// choices are: * `relevance`, only supports descending *
   /// `last_modified_timestamp [asc|desc]`, defaults to descending if not
   /// specified If not specified, defaults to `relevance` descending.
-  core.String orderBy;
+  core.String? orderBy;
 
   /// Number of results in the search page.
   ///
   /// If <=0 then defaults to 10. Max limit for page_size is 1000. Throws an
   /// invalid argument for page_size > 1000.
-  core.int pageSize;
+  core.int? pageSize;
 
   /// Pagination token returned in an earlier
   /// SearchCatalogResponse.next_page_token, which indicates that this is a
@@ -4322,7 +4129,7 @@
   /// If empty, the first page is returned.
   ///
   /// Optional.
-  core.String pageToken;
+  core.String? pageToken;
 
   /// The query string in search query syntax.
   ///
@@ -4335,7 +4142,7 @@
   /// for more information.
   ///
   /// Optional.
-  core.String query;
+  core.String? query;
 
   /// The scope of this search request.
   ///
@@ -4344,7 +4151,7 @@
   /// will return an error in such a case.
   ///
   /// Required.
-  GoogleCloudDatacatalogV1beta1SearchCatalogRequestScope scope;
+  GoogleCloudDatacatalogV1beta1SearchCatalogRequestScope? scope;
 
   GoogleCloudDatacatalogV1beta1SearchCatalogRequest();
 
@@ -4367,12 +4174,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (orderBy != null) 'orderBy': orderBy,
-        if (pageSize != null) 'pageSize': pageSize,
-        if (pageToken != null) 'pageToken': pageToken,
-        if (query != null) 'query': query,
-        if (scope != null) 'scope': scope.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (orderBy != null) 'orderBy': orderBy!,
+        if (pageSize != null) 'pageSize': pageSize!,
+        if (pageToken != null) 'pageToken': pageToken!,
+        if (query != null) 'query': query!,
+        if (scope != null) 'scope': scope!.toJson(),
       };
 }
 
@@ -4384,19 +4191,19 @@
   /// Info on GCP public datasets is available at
   /// https://cloud.google.com/public-datasets/. By default, GCP public datasets
   /// are excluded.
-  core.bool includeGcpPublicDatasets;
+  core.bool? includeGcpPublicDatasets;
 
   /// The list of organization IDs to search within.
   ///
   /// To find your organization ID, follow instructions in
   /// https://cloud.google.com/resource-manager/docs/creating-managing-organization.
-  core.List<core.String> includeOrgIds;
+  core.List<core.String>? includeOrgIds;
 
   /// The list of project IDs to search within.
   ///
   /// To learn more about the distinction between project names/IDs/numbers, go
   /// to https://cloud.google.com/docs/overview/#projects.
-  core.List<core.String> includeProjectIds;
+  core.List<core.String>? includeProjectIds;
 
   /// The list of locations to search within.
   ///
@@ -4414,7 +4221,7 @@
   /// * us-east4 * us-west1 * us-west2
   ///
   /// Optional.
-  core.List<core.String> restrictedLocations;
+  core.List<core.String>? restrictedLocations;
 
   GoogleCloudDatacatalogV1beta1SearchCatalogRequestScope();
 
@@ -4440,23 +4247,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (includeGcpPublicDatasets != null)
-          'includeGcpPublicDatasets': includeGcpPublicDatasets,
-        if (includeOrgIds != null) 'includeOrgIds': includeOrgIds,
-        if (includeProjectIds != null) 'includeProjectIds': includeProjectIds,
+          'includeGcpPublicDatasets': includeGcpPublicDatasets!,
+        if (includeOrgIds != null) 'includeOrgIds': includeOrgIds!,
+        if (includeProjectIds != null) 'includeProjectIds': includeProjectIds!,
         if (restrictedLocations != null)
-          'restrictedLocations': restrictedLocations,
+          'restrictedLocations': restrictedLocations!,
       };
 }
 
 /// Response message for SearchCatalog.
 class GoogleCloudDatacatalogV1beta1SearchCatalogResponse {
   /// The token that can be used to retrieve the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Search results.
-  core.List<GoogleCloudDatacatalogV1beta1SearchCatalogResult> results;
+  core.List<GoogleCloudDatacatalogV1beta1SearchCatalogResult>? results;
 
   /// Unreachable locations.
   ///
@@ -4464,7 +4271,7 @@
   /// additional information on the error by repeating the search request with a
   /// more restrictive parameter -- setting the value for
   /// `SearchDataCatalogRequest.scope.restricted_locations`.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   GoogleCloudDatacatalogV1beta1SearchCatalogResponse();
 
@@ -4486,11 +4293,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (results != null)
-          'results': results.map((value) => value.toJson()).toList(),
-        if (unreachable != null) 'unreachable': unreachable,
+          'results': results!.map((value) => value.toJson()).toList(),
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
@@ -4504,24 +4311,24 @@
   /// https://cloud.google.com/apis/design/resource_names#full_resource_name.
   /// Example: *
   /// `//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`
-  core.String linkedResource;
+  core.String? linkedResource;
 
   /// Last-modified timestamp of the entry from the managing system.
-  core.String modifyTime;
+  core.String? modifyTime;
 
   /// The relative resource name of the resource in URL format.
   ///
   /// Examples: *
   /// `projects/{project_id}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}`
   /// * `projects/{project_id}/tagTemplates/{tag_template_id}`
-  core.String relativeResourceName;
+  core.String? relativeResourceName;
 
   /// Sub-type of the search result.
   ///
   /// This is a dot-delimited description of the resource's full type, and is
   /// the same as the value callers would provide in the "type" search facet.
   /// Examples: `entry.table`, `entry.dataStream`, `tagTemplate`.
-  core.String searchResultSubtype;
+  core.String? searchResultSubtype;
 
   /// Type of the search result.
   ///
@@ -4532,7 +4339,7 @@
   /// - "ENTRY" : An Entry.
   /// - "TAG_TEMPLATE" : A TagTemplate.
   /// - "ENTRY_GROUP" : An EntryGroup.
-  core.String searchResultType;
+  core.String? searchResultType;
 
   GoogleCloudDatacatalogV1beta1SearchCatalogResult();
 
@@ -4554,39 +4361,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (linkedResource != null) 'linkedResource': linkedResource,
-        if (modifyTime != null) 'modifyTime': modifyTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (linkedResource != null) 'linkedResource': linkedResource!,
+        if (modifyTime != null) 'modifyTime': modifyTime!,
         if (relativeResourceName != null)
-          'relativeResourceName': relativeResourceName,
+          'relativeResourceName': relativeResourceName!,
         if (searchResultSubtype != null)
-          'searchResultSubtype': searchResultSubtype,
-        if (searchResultType != null) 'searchResultType': searchResultType,
+          'searchResultSubtype': searchResultSubtype!,
+        if (searchResultType != null) 'searchResultType': searchResultType!,
       };
 }
 
 /// Message representing one policy tag when exported as a nested proto.
 class GoogleCloudDatacatalogV1beta1SerializedPolicyTag {
   /// Children of the policy tag if any.
-  core.List<GoogleCloudDatacatalogV1beta1SerializedPolicyTag> childPolicyTags;
+  core.List<GoogleCloudDatacatalogV1beta1SerializedPolicyTag>? childPolicyTags;
 
   /// Description of the serialized policy tag.
   ///
   /// The length of the description is limited to 2000 bytes when encoded in
   /// UTF-8. If not set, defaults to an empty description.
-  core.String description;
+  core.String? description;
 
   /// Display name of the policy tag.
   ///
   /// Max 200 bytes when encoded in UTF-8.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of the policy tag.
   ///
   /// This field will be ignored when calling ImportTaxonomies.
-  core.String policyTag;
+  core.String? policyTag;
 
   GoogleCloudDatacatalogV1beta1SerializedPolicyTag();
 
@@ -4609,13 +4416,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (childPolicyTags != null)
           'childPolicyTags':
-              childPolicyTags.map((value) => value.toJson()).toList(),
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (policyTag != null) 'policyTag': policyTag,
+              childPolicyTags!.map((value) => value.toJson()).toList(),
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (policyTag != null) 'policyTag': policyTag!,
       };
 }
 
@@ -4624,23 +4431,23 @@
 /// Used for taxonomy import/export and mutation.
 class GoogleCloudDatacatalogV1beta1SerializedTaxonomy {
   /// A list of policy types that are activated for a taxonomy.
-  core.List<core.String> activatedPolicyTypes;
+  core.List<core.String>? activatedPolicyTypes;
 
   /// Description of the serialized taxonomy.
   ///
   /// The length of the description is limited to 2000 bytes when encoded in
   /// UTF-8. If not set, defaults to an empty description.
-  core.String description;
+  core.String? description;
 
   /// Display name of the taxonomy.
   ///
   /// Max 200 bytes when encoded in UTF-8.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Top level policy tags associated with the taxonomy if any.
-  core.List<GoogleCloudDatacatalogV1beta1SerializedPolicyTag> policyTags;
+  core.List<GoogleCloudDatacatalogV1beta1SerializedPolicyTag>? policyTags;
 
   GoogleCloudDatacatalogV1beta1SerializedTaxonomy();
 
@@ -4665,30 +4472,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (activatedPolicyTypes != null)
-          'activatedPolicyTypes': activatedPolicyTypes,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
+          'activatedPolicyTypes': activatedPolicyTypes!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
         if (policyTags != null)
-          'policyTags': policyTags.map((value) => value.toJson()).toList(),
+          'policyTags': policyTags!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Timestamps about this resource according to a particular system.
 class GoogleCloudDatacatalogV1beta1SystemTimestamps {
   /// The creation time of the resource within the given system.
-  core.String createTime;
+  core.String? createTime;
 
   /// The expiration time of the resource within the given system.
   ///
   /// Currently only apllicable to BigQuery resources.
   ///
   /// Output only.
-  core.String expireTime;
+  core.String? expireTime;
 
   /// The last-modified time of the resource within the given system.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDatacatalogV1beta1SystemTimestamps();
 
@@ -4704,10 +4511,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (expireTime != null) 'expireTime': expireTime,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (expireTime != null) 'expireTime': expireTime!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -4721,7 +4528,7 @@
   /// Otherwise, `grouped_entry` is empty.
   ///
   /// Output only.
-  core.String groupedEntry;
+  core.String? groupedEntry;
 
   GoogleCloudDatacatalogV1beta1TableSpec();
 
@@ -4731,8 +4538,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (groupedEntry != null) 'groupedEntry': groupedEntry,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (groupedEntry != null) 'groupedEntry': groupedEntry!,
       };
 }
 
@@ -4747,7 +4554,7 @@
   /// This scope allows users to attach tags to an individual column based on
   /// that schema. For attaching a tag to a nested column, use `.` to separate
   /// the column names. Example: * `outer_column.inner_column`
-  core.String column;
+  core.String? column;
 
   /// This maps the ID of a tag field to the value of and additional information
   /// about that field.
@@ -4756,7 +4563,7 @@
   /// least 1 field and at most 500 fields.
   ///
   /// Required.
-  core.Map<core.String, GoogleCloudDatacatalogV1beta1TagField> fields;
+  core.Map<core.String, GoogleCloudDatacatalogV1beta1TagField>? fields;
 
   /// The resource name of the tag in URL format.
   ///
@@ -4764,7 +4571,7 @@
   /// projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
   /// where `tag_id` is a system-generated identifier. Note that this Tag may
   /// not actually be stored in the location in this name.
-  core.String name;
+  core.String? name;
 
   /// The resource name of the tag template that this tag uses.
   ///
@@ -4773,12 +4580,12 @@
   /// This field cannot be modified after creation.
   ///
   /// Required.
-  core.String template;
+  core.String? template;
 
   /// The display name of the tag template.
   ///
   /// Output only.
-  core.String templateDisplayName;
+  core.String? templateDisplayName;
 
   GoogleCloudDatacatalogV1beta1Tag();
 
@@ -4787,7 +4594,9 @@
       column = _json['column'] as core.String;
     }
     if (_json.containsKey('fields')) {
-      fields = (_json['fields'] as core.Map).cast<core.String, core.Map>().map(
+      fields = (_json['fields'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
             (key, item) => core.MapEntry(
               key,
               GoogleCloudDatacatalogV1beta1TagField.fromJson(
@@ -4806,36 +4615,36 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (column != null) 'column': column,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (column != null) 'column': column!,
         if (fields != null)
           'fields':
-              fields.map((key, item) => core.MapEntry(key, item.toJson())),
-        if (name != null) 'name': name,
-        if (template != null) 'template': template,
+              fields!.map((key, item) => core.MapEntry(key, item.toJson())),
+        if (name != null) 'name': name!,
+        if (template != null) 'template': template!,
         if (templateDisplayName != null)
-          'templateDisplayName': templateDisplayName,
+          'templateDisplayName': templateDisplayName!,
       };
 }
 
 /// Contains the value and supporting information for a field within a Tag.
 class GoogleCloudDatacatalogV1beta1TagField {
   /// Holds the value for a tag field with boolean type.
-  core.bool boolValue;
+  core.bool? boolValue;
 
   /// The display name of this field.
   ///
   /// Output only.
-  core.String displayName;
+  core.String? displayName;
 
   /// Holds the value for a tag field with double type.
-  core.double doubleValue;
+  core.double? doubleValue;
 
   /// Holds the value for a tag field with enum type.
   ///
   /// This value must be one of the allowed values in the definition of this
   /// enum.
-  GoogleCloudDatacatalogV1beta1TagFieldEnumValue enumValue;
+  GoogleCloudDatacatalogV1beta1TagFieldEnumValue? enumValue;
 
   /// The order of this field with respect to other fields in this tag.
   ///
@@ -4844,13 +4653,13 @@
   /// same order, and field orders within a tag do not have to be sequential.
   ///
   /// Output only.
-  core.int order;
+  core.int? order;
 
   /// Holds the value for a tag field with string type.
-  core.String stringValue;
+  core.String? stringValue;
 
   /// Holds the value for a tag field with timestamp type.
-  core.String timestampValue;
+  core.String? timestampValue;
 
   GoogleCloudDatacatalogV1beta1TagField();
 
@@ -4879,21 +4688,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolValue != null) 'boolValue': boolValue,
-        if (displayName != null) 'displayName': displayName,
-        if (doubleValue != null) 'doubleValue': doubleValue,
-        if (enumValue != null) 'enumValue': enumValue.toJson(),
-        if (order != null) 'order': order,
-        if (stringValue != null) 'stringValue': stringValue,
-        if (timestampValue != null) 'timestampValue': timestampValue,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolValue != null) 'boolValue': boolValue!,
+        if (displayName != null) 'displayName': displayName!,
+        if (doubleValue != null) 'doubleValue': doubleValue!,
+        if (enumValue != null) 'enumValue': enumValue!.toJson(),
+        if (order != null) 'order': order!,
+        if (stringValue != null) 'stringValue': stringValue!,
+        if (timestampValue != null) 'timestampValue': timestampValue!,
       };
 }
 
 /// Holds an enum value.
 class GoogleCloudDatacatalogV1beta1TagFieldEnumValue {
   /// The display name of the enum value.
-  core.String displayName;
+  core.String? displayName;
 
   GoogleCloudDatacatalogV1beta1TagFieldEnumValue();
 
@@ -4903,8 +4712,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
       };
 }
 
@@ -4920,7 +4729,7 @@
   /// The display name for this template.
   ///
   /// Defaults to an empty string.
-  core.String displayName;
+  core.String? displayName;
 
   /// Map of tag template field IDs to the settings for the field.
   ///
@@ -4932,7 +4741,7 @@
   /// start with a letter or underscore.
   ///
   /// Required.
-  core.Map<core.String, GoogleCloudDatacatalogV1beta1TagTemplateField> fields;
+  core.Map<core.String, GoogleCloudDatacatalogV1beta1TagTemplateField>? fields;
 
   /// The resource name of the tag template in URL format.
   ///
@@ -4940,7 +4749,7 @@
   /// projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
   /// Note that this TagTemplate and its child resources may not actually be
   /// stored in the location in this name.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatacatalogV1beta1TagTemplate();
 
@@ -4949,7 +4758,9 @@
       displayName = _json['displayName'] as core.String;
     }
     if (_json.containsKey('fields')) {
-      fields = (_json['fields'] as core.Map).cast<core.String, core.Map>().map(
+      fields = (_json['fields'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
             (key, item) => core.MapEntry(
               key,
               GoogleCloudDatacatalogV1beta1TagTemplateField.fromJson(
@@ -4962,12 +4773,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
         if (fields != null)
           'fields':
-              fields.map((key, item) => core.MapEntry(key, item.toJson())),
-        if (name != null) 'name': name,
+              fields!.map((key, item) => core.MapEntry(key, item.toJson())),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4976,17 +4787,17 @@
   /// The description for this field.
   ///
   /// Defaults to an empty string.
-  core.String description;
+  core.String? description;
 
   /// The display name for this field.
   ///
   /// Defaults to an empty string.
-  core.String displayName;
+  core.String? displayName;
 
   /// Whether this is a required field.
   ///
   /// Defaults to false.
-  core.bool isRequired;
+  core.bool? isRequired;
 
   /// The resource name of the tag template field in URL format.
   ///
@@ -4996,19 +4807,19 @@
   /// in this name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The order of this field with respect to other fields in this tag template.
   ///
   /// A higher value indicates a more important field. The value can be
   /// negative. Multiple fields can have the same order, and field orders within
   /// a tag do not have to be sequential.
-  core.int order;
+  core.int? order;
 
   /// The type of value this tag field can contain.
   ///
   /// Required.
-  GoogleCloudDatacatalogV1beta1FieldType type;
+  GoogleCloudDatacatalogV1beta1FieldType? type;
 
   GoogleCloudDatacatalogV1beta1TagTemplateField();
 
@@ -5034,13 +4845,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (isRequired != null) 'isRequired': isRequired,
-        if (name != null) 'name': name,
-        if (order != null) 'order': order,
-        if (type != null) 'type': type.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (isRequired != null) 'isRequired': isRequired!,
+        if (name != null) 'name': name!,
+        if (order != null) 'order': order!,
+        if (type != null) 'type': type!.toJson(),
       };
 }
 
@@ -5057,7 +4868,7 @@
   /// If not set, defaults to an empty list.
   ///
   /// Optional.
-  core.List<core.String> activatedPolicyTypes;
+  core.List<core.String>? activatedPolicyTypes;
 
   /// Description of this taxonomy.
   ///
@@ -5066,7 +4877,7 @@
   /// not set, defaults to an empty description.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// User defined name of this taxonomy.
   ///
@@ -5075,25 +4886,25 @@
   /// encoded in UTF-8.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of this taxonomy, whose format is:
   /// "projects/{project_number}/locations/{location_id}/taxonomies/{id}".
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Number of policy tags contained in this taxonomy.
   ///
   /// Output only.
-  core.int policyTagCount;
+  core.int? policyTagCount;
 
   /// Timestamps about this taxonomy.
   ///
   /// Only create_time and update_time are used.
   ///
   /// Output only.
-  GoogleCloudDatacatalogV1beta1SystemTimestamps taxonomyTimestamps;
+  GoogleCloudDatacatalogV1beta1SystemTimestamps? taxonomyTimestamps;
 
   GoogleCloudDatacatalogV1beta1Taxonomy();
 
@@ -5123,15 +4934,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (activatedPolicyTypes != null)
-          'activatedPolicyTypes': activatedPolicyTypes,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (policyTagCount != null) 'policyTagCount': policyTagCount,
+          'activatedPolicyTypes': activatedPolicyTypes!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (policyTagCount != null) 'policyTagCount': policyTagCount!,
         if (taxonomyTimestamps != null)
-          'taxonomyTimestamps': taxonomyTimestamps.toJson(),
+          'taxonomyTimestamps': taxonomyTimestamps!.toJson(),
       };
 }
 
@@ -5140,7 +4951,7 @@
   /// The query that defines the table view.
   ///
   /// Output only.
-  core.String viewQuery;
+  core.String? viewQuery;
 
   GoogleCloudDatacatalogV1beta1ViewSpec();
 
@@ -5150,8 +4961,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (viewQuery != null) 'viewQuery': viewQuery,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (viewQuery != null) 'viewQuery': viewQuery!,
       };
 }
 
@@ -5192,7 +5003,7 @@
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -5206,8 +5017,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -5231,7 +5042,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -5250,11 +5061,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -5265,7 +5076,7 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   SetIamPolicyRequest();
 
@@ -5276,8 +5087,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
       };
 }
 
@@ -5288,7 +5099,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -5300,8 +5111,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -5309,7 +5120,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -5321,7 +5132,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
diff --git a/generated/googleapis_beta/lib/dataflow/v1b3.dart b/generated/googleapis_beta/lib/dataflow/v1b3.dart
index c677a70..606fbc0 100644
--- a/generated/googleapis_beta/lib/dataflow/v1b3.dart
+++ b/generated/googleapis_beta/lib/dataflow/v1b3.dart
@@ -125,13 +125,10 @@
   /// this method will complete with the same error.
   async.Future<DeleteSnapshotResponse> deleteSnapshots(
     core.String projectId, {
-    core.String location,
-    core.String snapshotId,
-    core.String $fields,
+    core.String? location,
+    core.String? snapshotId,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (location != null) 'location': [location],
       if (snapshotId != null) 'snapshotId': [snapshotId],
@@ -172,13 +169,9 @@
   async.Future<SendWorkerMessagesResponse> workerMessages(
     SendWorkerMessagesRequest request,
     core.String projectId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -234,13 +227,9 @@
   async.Future<TemplateVersion> commit(
     CommitTemplateVersionRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -281,11 +270,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -327,11 +313,8 @@
   /// this method will complete with the same error.
   async.Future<TemplateVersion> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -374,13 +357,9 @@
   async.Future<ModifyTemplateVersionLabelResponse> label(
     ModifyTemplateVersionLabelRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -427,13 +406,9 @@
   async.Future<ModifyTemplateVersionTagResponse> tag(
     ModifyTemplateVersionTagRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -485,13 +460,9 @@
   async.Future<TemplateVersion> create(
     CreateTemplateVersionRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -576,16 +547,13 @@
   /// this method will complete with the same error.
   async.Future<ListJobsResponse> aggregated(
     core.String projectId, {
-    core.String filter,
-    core.String location,
-    core.int pageSize,
-    core.String pageToken,
-    core.String view,
-    core.String $fields,
+    core.String? filter,
+    core.String? location,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (location != null) 'location': [location],
@@ -654,16 +622,12 @@
   async.Future<Job> create(
     Job request,
     core.String projectId, {
-    core.String location,
-    core.String replaceJobId,
-    core.String view,
-    core.String $fields,
+    core.String? location,
+    core.String? replaceJobId,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (location != null) 'location': [location],
       if (replaceJobId != null) 'replaceJobId': [replaceJobId],
@@ -728,16 +692,10 @@
   async.Future<Job> get(
     core.String projectId,
     core.String jobId, {
-    core.String location,
-    core.String view,
-    core.String $fields,
+    core.String? location,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (location != null) 'location': [location],
       if (view != null) 'view': [view],
@@ -791,16 +749,10 @@
   async.Future<JobMetrics> getMetrics(
     core.String projectId,
     core.String jobId, {
-    core.String location,
-    core.String startTime,
-    core.String $fields,
+    core.String? location,
+    core.String? startTime,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (location != null) 'location': [location],
       if (startTime != null) 'startTime': [startTime],
@@ -883,16 +835,13 @@
   /// this method will complete with the same error.
   async.Future<ListJobsResponse> list(
     core.String projectId, {
-    core.String filter,
-    core.String location,
-    core.int pageSize,
-    core.String pageToken,
-    core.String view,
-    core.String $fields,
+    core.String? filter,
+    core.String? location,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (location != null) 'location': [location],
@@ -939,16 +888,9 @@
     SnapshotJobRequest request,
     core.String projectId,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1003,17 +945,10 @@
     Job request,
     core.String projectId,
     core.String jobId, {
-    core.String location,
-    core.String $fields,
+    core.String? location,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (location != null) 'location': [location],
       if ($fields != null) 'fields': [$fields],
@@ -1065,16 +1000,9 @@
     GetDebugConfigRequest request,
     core.String projectId,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1119,16 +1047,9 @@
     SendDebugCaptureRequest request,
     core.String projectId,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1228,20 +1149,14 @@
   async.Future<ListJobMessagesResponse> list(
     core.String projectId,
     core.String jobId, {
-    core.String endTime,
-    core.String location,
-    core.String minimumImportance,
-    core.int pageSize,
-    core.String pageToken,
-    core.String startTime,
-    core.String $fields,
+    core.String? endTime,
+    core.String? location,
+    core.String? minimumImportance,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? startTime,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (endTime != null) 'endTime': [endTime],
       if (location != null) 'location': [location],
@@ -1298,16 +1213,9 @@
     LeaseWorkItemRequest request,
     core.String projectId,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1352,16 +1260,9 @@
     ReportWorkItemStatusRequest request,
     core.String projectId,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1425,16 +1326,9 @@
     SendWorkerMessagesRequest request,
     core.String projectId,
     core.String location, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1489,16 +1383,9 @@
     LaunchFlexTemplateRequest request,
     core.String projectId,
     core.String location, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1584,18 +1471,11 @@
     Job request,
     core.String projectId,
     core.String location, {
-    core.String replaceJobId,
-    core.String view,
-    core.String $fields,
+    core.String? replaceJobId,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (replaceJobId != null) 'replaceJobId': [replaceJobId],
       if (view != null) 'view': [view],
@@ -1662,18 +1542,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String view,
-    core.String $fields,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (view != null) 'view': [view],
       if ($fields != null) 'fields': [$fields],
@@ -1730,19 +1601,10 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1801,18 +1663,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String startTime,
-    core.String $fields,
+    core.String? startTime,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (startTime != null) 'startTime': [startTime],
       if ($fields != null) 'fields': [$fields],
@@ -1897,18 +1750,12 @@
   async.Future<ListJobsResponse> list(
     core.String projectId,
     core.String location, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String view,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1959,19 +1806,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2029,19 +1866,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2100,19 +1927,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2164,19 +1981,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2279,22 +2086,13 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String endTime,
-    core.String minimumImportance,
-    core.int pageSize,
-    core.String pageToken,
-    core.String startTime,
-    core.String $fields,
+    core.String? endTime,
+    core.String? minimumImportance,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? startTime,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (endTime != null) 'endTime': [endTime],
       if (minimumImportance != null) 'minimumImportance': [minimumImportance],
@@ -2352,17 +2150,8 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2435,24 +2224,12 @@
     core.String location,
     core.String jobId,
     core.String stageId, {
-    core.String endTime,
-    core.int pageSize,
-    core.String pageToken,
-    core.String startTime,
-    core.String $fields,
+    core.String? endTime,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? startTime,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
-    if (stageId == null) {
-      throw core.ArgumentError('Parameter stageId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (endTime != null) 'endTime': [endTime],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2516,19 +2293,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2580,19 +2347,9 @@
     core.String projectId,
     core.String location,
     core.String jobId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (jobId == null) {
-      throw core.ArgumentError('Parameter jobId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2647,17 +2404,8 @@
     core.String projectId,
     core.String location,
     core.String snapshotId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (snapshotId == null) {
-      throw core.ArgumentError('Parameter snapshotId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2703,17 +2451,8 @@
     core.String projectId,
     core.String location,
     core.String snapshotId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
-    if (snapshotId == null) {
-      throw core.ArgumentError('Parameter snapshotId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2756,15 +2495,9 @@
   async.Future<ListSnapshotsResponse> list(
     core.String projectId,
     core.String location, {
-    core.String jobId,
-    core.String $fields,
+    core.String? jobId,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (jobId != null) 'jobId': [jobId],
       if ($fields != null) 'fields': [$fields],
@@ -2822,15 +2555,9 @@
   async.Future<ValidateResponse> validate(
     core.String projectId,
     core.String location, {
-    core.String query,
-    core.String $fields,
+    core.String? query,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (query != null) 'query': [query],
       if ($fields != null) 'fields': [$fields],
@@ -2885,16 +2612,9 @@
     CreateJobFromTemplateRequest request,
     core.String projectId,
     core.String location, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2946,16 +2666,10 @@
   async.Future<GetTemplateResponse> get(
     core.String projectId,
     core.String location, {
-    core.String gcsPath,
-    core.String view,
-    core.String $fields,
+    core.String? gcsPath,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (gcsPath != null) 'gcsPath': [gcsPath],
       if (view != null) 'view': [view],
@@ -3016,20 +2730,13 @@
     LaunchTemplateParameters request,
     core.String projectId,
     core.String location, {
-    core.String dynamicTemplate_gcsPath,
-    core.String dynamicTemplate_stagingLocation,
-    core.String gcsPath,
-    core.bool validateOnly,
-    core.String $fields,
+    core.String? dynamicTemplate_gcsPath,
+    core.String? dynamicTemplate_stagingLocation,
+    core.String? gcsPath,
+    core.bool? validateOnly,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (dynamicTemplate_gcsPath != null)
         'dynamicTemplate.gcsPath': [dynamicTemplate_gcsPath],
@@ -3086,15 +2793,9 @@
   async.Future<Snapshot> get(
     core.String projectId,
     core.String snapshotId, {
-    core.String location,
-    core.String $fields,
+    core.String? location,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (snapshotId == null) {
-      throw core.ArgumentError('Parameter snapshotId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (location != null) 'location': [location],
       if ($fields != null) 'fields': [$fields],
@@ -3135,13 +2836,10 @@
   /// this method will complete with the same error.
   async.Future<ListSnapshotsResponse> list(
     core.String projectId, {
-    core.String jobId,
-    core.String location,
-    core.String $fields,
+    core.String? jobId,
+    core.String? location,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (jobId != null) 'jobId': [jobId],
       if (location != null) 'location': [location],
@@ -3198,13 +2896,10 @@
   /// this method will complete with the same error.
   async.Future<ListTemplateVersionsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -3252,13 +2947,9 @@
   async.Future<Job> create(
     CreateJobFromTemplateRequest request,
     core.String projectId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3307,14 +2998,11 @@
   /// this method will complete with the same error.
   async.Future<GetTemplateResponse> get(
     core.String projectId, {
-    core.String gcsPath,
-    core.String location,
-    core.String view,
-    core.String $fields,
+    core.String? gcsPath,
+    core.String? location,
+    core.String? view,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (gcsPath != null) 'gcsPath': [gcsPath],
       if (location != null) 'location': [location],
@@ -3373,18 +3061,14 @@
   async.Future<LaunchTemplateResponse> launch(
     LaunchTemplateParameters request,
     core.String projectId, {
-    core.String dynamicTemplate_gcsPath,
-    core.String dynamicTemplate_stagingLocation,
-    core.String gcsPath,
-    core.String location,
-    core.bool validateOnly,
-    core.String $fields,
+    core.String? dynamicTemplate_gcsPath,
+    core.String? dynamicTemplate_stagingLocation,
+    core.String? gcsPath,
+    core.String? location,
+    core.bool? validateOnly,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (dynamicTemplate_gcsPath != null)
         'dynamicTemplate.gcsPath': [dynamicTemplate_gcsPath],
@@ -3415,13 +3099,13 @@
 /// ApproximateSplitRequest.
 class ApproximateProgress {
   /// Obsolete.
-  core.double percentComplete;
+  core.double? percentComplete;
 
   /// Obsolete.
-  Position position;
+  Position? position;
 
   /// Obsolete.
-  core.String remainingTime;
+  core.String? remainingTime;
 
   ApproximateProgress();
 
@@ -3438,10 +3122,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (percentComplete != null) 'percentComplete': percentComplete,
-        if (position != null) 'position': position.toJson(),
-        if (remainingTime != null) 'remainingTime': remainingTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (percentComplete != null) 'percentComplete': percentComplete!,
+        if (position != null) 'position': position!.toJson(),
+        if (remainingTime != null) 'remainingTime': remainingTime!,
       };
 }
 
@@ -3454,14 +3138,14 @@
   /// should be 29 or 2 respectively. The sum of remaining_parallelism and
   /// consumed_parallelism should equal the total amount of parallelism in this
   /// work item. If specified, must be finite.
-  ReportedParallelism consumedParallelism;
+  ReportedParallelism? consumedParallelism;
 
   /// Completion as fraction of the input consumed, from 0.0 (beginning, nothing
   /// consumed), to 1.0 (end of the input, entire input consumed).
-  core.double fractionConsumed;
+  core.double? fractionConsumed;
 
   /// A Position within the work to represent a progress.
-  Position position;
+  Position? position;
 
   /// Total amount of parallelism in the input of this task that remains, (i.e.
   /// can be delegated to this task and any new tasks via dynamic splitting).
@@ -3482,7 +3166,7 @@
   /// last block in a block-compressed file, or reading or processing the last
   /// record in a perfectly splittable input, this value should be 1, because
   /// apart from the current task, no additional remainder can be split off.
-  ReportedParallelism remainingParallelism;
+  ReportedParallelism? remainingParallelism;
 
   ApproximateReportedProgress();
 
@@ -3504,13 +3188,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (consumedParallelism != null)
-          'consumedParallelism': consumedParallelism.toJson(),
-        if (fractionConsumed != null) 'fractionConsumed': fractionConsumed,
-        if (position != null) 'position': position.toJson(),
+          'consumedParallelism': consumedParallelism!.toJson(),
+        if (fractionConsumed != null) 'fractionConsumed': fractionConsumed!,
+        if (position != null) 'position': position!.toJson(),
         if (remainingParallelism != null)
-          'remainingParallelism': remainingParallelism.toJson(),
+          'remainingParallelism': remainingParallelism!.toJson(),
       };
 }
 
@@ -3518,14 +3202,14 @@
 class ApproximateSplitRequest {
   /// A fraction at which to split the work item, from 0.0 (beginning of the
   /// input) to 1.0 (end of the input).
-  core.double fractionConsumed;
+  core.double? fractionConsumed;
 
   /// The fraction of the remainder of work to split the work item at, from 0.0
   /// (split at the current position) to 1.0 (end of the input).
-  core.double fractionOfRemainder;
+  core.double? fractionOfRemainder;
 
   /// A Position at which to split the work item.
-  Position position;
+  Position? position;
 
   ApproximateSplitRequest();
 
@@ -3543,24 +3227,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fractionConsumed != null) 'fractionConsumed': fractionConsumed,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fractionConsumed != null) 'fractionConsumed': fractionConsumed!,
         if (fractionOfRemainder != null)
-          'fractionOfRemainder': fractionOfRemainder,
-        if (position != null) 'position': position.toJson(),
+          'fractionOfRemainder': fractionOfRemainder!,
+        if (position != null) 'position': position!.toJson(),
       };
 }
 
 /// Job information for templates.
 class Artifact {
   /// Container image path set for flex Template.
-  ContainerSpec containerSpec;
+  ContainerSpec? containerSpec;
 
   /// job_graph_gcs_path set for legacy Template.
-  core.String jobGraphGcsPath;
+  core.String? jobGraphGcsPath;
 
   /// Metadata set for legacy Template.
-  TemplateMetadata metadata;
+  TemplateMetadata? metadata;
 
   Artifact();
 
@@ -3578,10 +3262,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (containerSpec != null) 'containerSpec': containerSpec.toJson(),
-        if (jobGraphGcsPath != null) 'jobGraphGcsPath': jobGraphGcsPath,
-        if (metadata != null) 'metadata': metadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (containerSpec != null) 'containerSpec': containerSpec!.toJson(),
+        if (jobGraphGcsPath != null) 'jobGraphGcsPath': jobGraphGcsPath!,
+        if (metadata != null) 'metadata': metadata!.toJson(),
       };
 }
 
@@ -3589,12 +3273,12 @@
 /// service.
 class AutoscalingEvent {
   /// The current number of workers the job has.
-  core.String currentNumWorkers;
+  core.String? currentNumWorkers;
 
   /// A message describing why the system decided to adjust the current number
   /// of workers, why it failed, or why the system decided to not make any
   /// changes to the number of workers.
-  StructuredMessage description;
+  StructuredMessage? description;
 
   /// The type of autoscaling event to report.
   /// Possible string values are:
@@ -3615,18 +3299,18 @@
   /// - "NO_CHANGE" : Used when we want to report to the user a reason why we
   /// are not currently adjusting the number of workers. Should specify both
   /// target_num_workers, current_num_workers and a decision_message.
-  core.String eventType;
+  core.String? eventType;
 
   /// The target number of workers the worker pool wants to resize to use.
-  core.String targetNumWorkers;
+  core.String? targetNumWorkers;
 
   /// The time this event was emitted to indicate a new target or current
   /// num_workers value.
-  core.String time;
+  core.String? time;
 
   /// A short and friendly name for the worker pool this event refers to,
   /// populated from the value of PoolStageRelation::user_pool_name.
-  core.String workerPool;
+  core.String? workerPool;
 
   AutoscalingEvent();
 
@@ -3652,13 +3336,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currentNumWorkers != null) 'currentNumWorkers': currentNumWorkers,
-        if (description != null) 'description': description.toJson(),
-        if (eventType != null) 'eventType': eventType,
-        if (targetNumWorkers != null) 'targetNumWorkers': targetNumWorkers,
-        if (time != null) 'time': time,
-        if (workerPool != null) 'workerPool': workerPool,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currentNumWorkers != null) 'currentNumWorkers': currentNumWorkers!,
+        if (description != null) 'description': description!.toJson(),
+        if (eventType != null) 'eventType': eventType!,
+        if (targetNumWorkers != null) 'targetNumWorkers': targetNumWorkers!,
+        if (time != null) 'time': time!,
+        if (workerPool != null) 'workerPool': workerPool!,
       };
 }
 
@@ -3671,10 +3355,10 @@
   /// - "AUTOSCALING_ALGORITHM_NONE" : Disable autoscaling.
   /// - "AUTOSCALING_ALGORITHM_BASIC" : Increase worker count over time to
   /// reduce job execution time.
-  core.String algorithm;
+  core.String? algorithm;
 
   /// The maximum number of workers to cap scaling at.
-  core.int maxNumWorkers;
+  core.int? maxNumWorkers;
 
   AutoscalingSettings();
 
@@ -3687,25 +3371,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (algorithm != null) 'algorithm': algorithm,
-        if (maxNumWorkers != null) 'maxNumWorkers': maxNumWorkers,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (algorithm != null) 'algorithm': algorithm!,
+        if (maxNumWorkers != null) 'maxNumWorkers': maxNumWorkers!,
       };
 }
 
 /// Metadata for a BigQuery connector used by the job.
 class BigQueryIODetails {
   /// Dataset accessed in the connection.
-  core.String dataset;
+  core.String? dataset;
 
   /// Project accessed in the connection.
-  core.String projectId;
+  core.String? projectId;
 
   /// Query used to access data in the connection.
-  core.String query;
+  core.String? query;
 
   /// Table accessed in the connection.
-  core.String table;
+  core.String? table;
 
   BigQueryIODetails();
 
@@ -3724,24 +3408,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset,
-        if (projectId != null) 'projectId': projectId,
-        if (query != null) 'query': query,
-        if (table != null) 'table': table,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!,
+        if (projectId != null) 'projectId': projectId!,
+        if (query != null) 'query': query!,
+        if (table != null) 'table': table!,
       };
 }
 
 /// Metadata for a BigTable connector used by the job.
 class BigTableIODetails {
   /// InstanceId accessed in the connection.
-  core.String instanceId;
+  core.String? instanceId;
 
   /// ProjectId accessed in the connection.
-  core.String projectId;
+  core.String? projectId;
 
   /// TableId accessed in the connection.
-  core.String tableId;
+  core.String? tableId;
 
   BigTableIODetails();
 
@@ -3757,10 +3441,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (instanceId != null) 'instanceId': instanceId,
-        if (projectId != null) 'projectId': projectId,
-        if (tableId != null) 'tableId': tableId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (instanceId != null) 'instanceId': instanceId!,
+        if (projectId != null) 'projectId': projectId!,
+        if (tableId != null) 'tableId': tableId!,
       };
 }
 
@@ -3768,14 +3452,14 @@
 class CPUTime {
   /// Average CPU utilization rate (% non-idle cpu / second) since previous
   /// sample.
-  core.double rate;
+  core.double? rate;
 
   /// Timestamp of the measurement.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// Total active CPU time across all cores (ie., non-idle) in milliseconds
   /// since start-up.
-  core.String totalMs;
+  core.String? totalMs;
 
   CPUTime();
 
@@ -3791,17 +3475,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (rate != null) 'rate': rate,
-        if (timestamp != null) 'timestamp': timestamp,
-        if (totalMs != null) 'totalMs': totalMs,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (rate != null) 'rate': rate!,
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (totalMs != null) 'totalMs': totalMs!,
       };
 }
 
 /// Commit will add a new TemplateVersion to an existing template.
 class CommitTemplateVersionRequest {
   /// TemplateVersion obejct to create.
-  TemplateVersion templateVersion;
+  TemplateVersion? templateVersion;
 
   CommitTemplateVersionRequest();
 
@@ -3812,9 +3496,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (templateVersion != null)
-          'templateVersion': templateVersion.toJson(),
+          'templateVersion': templateVersion!.toJson(),
       };
 }
 
@@ -3822,14 +3506,14 @@
 /// stage.
 class ComponentSource {
   /// Dataflow service generated name for this source.
-  core.String name;
+  core.String? name;
 
   /// User name for the original user transform or collection with which this
   /// source is most closely associated.
-  core.String originalTransformOrCollection;
+  core.String? originalTransformOrCollection;
 
   /// Human-readable name for this transform; may be user or system generated.
-  core.String userName;
+  core.String? userName;
 
   ComponentSource();
 
@@ -3846,25 +3530,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
         if (originalTransformOrCollection != null)
-          'originalTransformOrCollection': originalTransformOrCollection,
-        if (userName != null) 'userName': userName,
+          'originalTransformOrCollection': originalTransformOrCollection!,
+        if (userName != null) 'userName': userName!,
       };
 }
 
 /// Description of a transform executed as part of an execution stage.
 class ComponentTransform {
   /// Dataflow service generated name for this source.
-  core.String name;
+  core.String? name;
 
   /// User name for the original user transform with which this transform is
   /// most closely associated.
-  core.String originalTransform;
+  core.String? originalTransform;
 
   /// Human-readable name for this transform; may be user or system generated.
-  core.String userName;
+  core.String? userName;
 
   ComponentTransform();
 
@@ -3880,32 +3564,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (originalTransform != null) 'originalTransform': originalTransform,
-        if (userName != null) 'userName': userName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (originalTransform != null) 'originalTransform': originalTransform!,
+        if (userName != null) 'userName': userName!,
       };
 }
 
 /// All configuration data for a particular Computation.
 class ComputationTopology {
   /// The ID of the computation.
-  core.String computationId;
+  core.String? computationId;
 
   /// The inputs to the computation.
-  core.List<StreamLocation> inputs;
+  core.List<StreamLocation>? inputs;
 
   /// The key ranges processed by the computation.
-  core.List<KeyRangeLocation> keyRanges;
+  core.List<KeyRangeLocation>? keyRanges;
 
   /// The outputs from the computation.
-  core.List<StreamLocation> outputs;
+  core.List<StreamLocation>? outputs;
 
   /// The state family values.
-  core.List<StateFamilyConfig> stateFamilies;
+  core.List<StateFamilyConfig>? stateFamilies;
 
   /// The system stage name.
-  core.String systemStageName;
+  core.String? systemStageName;
 
   ComputationTopology();
 
@@ -3942,18 +3626,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (computationId != null) 'computationId': computationId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (computationId != null) 'computationId': computationId!,
         if (inputs != null)
-          'inputs': inputs.map((value) => value.toJson()).toList(),
+          'inputs': inputs!.map((value) => value.toJson()).toList(),
         if (keyRanges != null)
-          'keyRanges': keyRanges.map((value) => value.toJson()).toList(),
+          'keyRanges': keyRanges!.map((value) => value.toJson()).toList(),
         if (outputs != null)
-          'outputs': outputs.map((value) => value.toJson()).toList(),
+          'outputs': outputs!.map((value) => value.toJson()).toList(),
         if (stateFamilies != null)
           'stateFamilies':
-              stateFamilies.map((value) => value.toJson()).toList(),
-        if (systemStageName != null) 'systemStageName': systemStageName,
+              stateFamilies!.map((value) => value.toJson()).toList(),
+        if (systemStageName != null) 'systemStageName': systemStageName!,
       };
 }
 
@@ -3964,10 +3648,10 @@
 /// of other sources.
 class ConcatPosition {
   /// Index of the inner source.
-  core.int index;
+  core.int? index;
 
   /// Position within the inner source.
-  Position position;
+  Position? position;
 
   ConcatPosition();
 
@@ -3981,29 +3665,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (index != null) 'index': index,
-        if (position != null) 'position': position.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (index != null) 'index': index!,
+        if (position != null) 'position': position!.toJson(),
       };
 }
 
 /// Container Spec.
 class ContainerSpec {
   /// Default runtime environment for the job.
-  FlexTemplateRuntimeEnvironment defaultEnvironment;
+  FlexTemplateRuntimeEnvironment? defaultEnvironment;
 
   /// Name of the docker container image.
   ///
   /// E.g., gcr.io/project/some-image
-  core.String image;
+  core.String? image;
 
   /// Metadata describing a template including description and validation rules.
-  TemplateMetadata metadata;
+  TemplateMetadata? metadata;
 
   /// SDK info of the Flex Template.
   ///
   /// Required.
-  SDKInfo sdkInfo;
+  SDKInfo? sdkInfo;
 
   ContainerSpec();
 
@@ -4025,19 +3709,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (defaultEnvironment != null)
-          'defaultEnvironment': defaultEnvironment.toJson(),
-        if (image != null) 'image': image,
-        if (metadata != null) 'metadata': metadata.toJson(),
-        if (sdkInfo != null) 'sdkInfo': sdkInfo.toJson(),
+          'defaultEnvironment': defaultEnvironment!.toJson(),
+        if (image != null) 'image': image!,
+        if (metadata != null) 'metadata': metadata!.toJson(),
+        if (sdkInfo != null) 'sdkInfo': sdkInfo!.toJson(),
       };
 }
 
 /// CounterMetadata includes all static non-name non-value counter attributes.
 class CounterMetadata {
   /// Human-readable description of the counter semantics.
-  core.String description;
+  core.String? description;
 
   /// Counter aggregation kind.
   /// Possible string values are:
@@ -4054,10 +3738,10 @@
   /// - "DISTRIBUTION" : Aggregated value captures statistics about a
   /// distribution.
   /// - "LATEST_VALUE" : Aggregated value tracks the latest value of a variable.
-  core.String kind;
+  core.String? kind;
 
   /// A string referring to the unit type.
-  core.String otherUnits;
+  core.String? otherUnits;
 
   /// System defined Units, see above enum.
   /// Possible string values are:
@@ -4069,7 +3753,7 @@
   /// - "TIMESTAMP_MSEC" : Counter returns a timestamp in milliseconds.
   /// - "TIMESTAMP_USEC" : Counter returns a timestamp in microseconds.
   /// - "TIMESTAMP_NSEC" : Counter returns a timestamp in nanoseconds.
-  core.String standardUnits;
+  core.String? standardUnits;
 
   CounterMetadata();
 
@@ -4088,11 +3772,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (kind != null) 'kind': kind,
-        if (otherUnits != null) 'otherUnits': otherUnits,
-        if (standardUnits != null) 'standardUnits': standardUnits,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (kind != null) 'kind': kind!,
+        if (otherUnits != null) 'otherUnits': otherUnits!,
+        if (standardUnits != null) 'standardUnits': standardUnits!,
       };
 }
 
@@ -4102,12 +3786,12 @@
 /// for the job.
 class CounterStructuredName {
   /// Name of the optimized step being executed by the workers.
-  core.String componentStepName;
+  core.String? componentStepName;
 
   /// Name of the stage.
   ///
   /// An execution step contains multiple component steps.
-  core.String executionStepName;
+  core.String? executionStepName;
 
   /// Index of an input collection that's being read from/written to as a side
   /// input.
@@ -4116,42 +3800,42 @@
   /// side input has input_index 1, the third has input_index 3). Side inputs
   /// are identified by a pair of (original_step_name, input_index). This field
   /// helps uniquely identify them.
-  core.int inputIndex;
+  core.int? inputIndex;
 
   /// Counter name.
   ///
   /// Not necessarily globally-unique, but unique within the context of the
   /// other fields. Required.
-  core.String name;
+  core.String? name;
 
   /// One of the standard Origins defined above.
   /// Possible string values are:
   /// - "SYSTEM" : Counter was created by the Dataflow system.
   /// - "USER" : Counter was created by the user.
-  core.String origin;
+  core.String? origin;
 
   /// A string containing a more specific namespace of the counter's origin.
-  core.String originNamespace;
+  core.String? originNamespace;
 
   /// The step name requesting an operation, such as GBK.
   ///
   /// I.e. the ParDo causing a read/write from shuffle to occur, or a read from
   /// side inputs.
-  core.String originalRequestingStepName;
+  core.String? originalRequestingStepName;
 
   /// System generated name of the original step in the user's graph, before
   /// optimization.
-  core.String originalStepName;
+  core.String? originalStepName;
 
   /// Portion of this counter, either key or value.
   /// Possible string values are:
   /// - "ALL" : Counter portion has not been set.
   /// - "KEY" : Counter reports a key.
   /// - "VALUE" : Counter reports a value.
-  core.String portion;
+  core.String? portion;
 
   /// ID of a particular worker.
-  core.String workerId;
+  core.String? workerId;
 
   CounterStructuredName();
 
@@ -4189,18 +3873,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (componentStepName != null) 'componentStepName': componentStepName,
-        if (executionStepName != null) 'executionStepName': executionStepName,
-        if (inputIndex != null) 'inputIndex': inputIndex,
-        if (name != null) 'name': name,
-        if (origin != null) 'origin': origin,
-        if (originNamespace != null) 'originNamespace': originNamespace,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (componentStepName != null) 'componentStepName': componentStepName!,
+        if (executionStepName != null) 'executionStepName': executionStepName!,
+        if (inputIndex != null) 'inputIndex': inputIndex!,
+        if (name != null) 'name': name!,
+        if (origin != null) 'origin': origin!,
+        if (originNamespace != null) 'originNamespace': originNamespace!,
         if (originalRequestingStepName != null)
-          'originalRequestingStepName': originalRequestingStepName,
-        if (originalStepName != null) 'originalStepName': originalStepName,
-        if (portion != null) 'portion': portion,
-        if (workerId != null) 'workerId': workerId,
+          'originalRequestingStepName': originalRequestingStepName!,
+        if (originalStepName != null) 'originalStepName': originalStepName!,
+        if (portion != null) 'portion': portion!,
+        if (workerId != null) 'workerId': workerId!,
       };
 }
 
@@ -4208,10 +3892,10 @@
 /// counter.
 class CounterStructuredNameAndMetadata {
   /// Metadata associated with a counter
-  CounterMetadata metadata;
+  CounterMetadata? metadata;
 
   /// Structured name of the counter.
-  CounterStructuredName name;
+  CounterStructuredName? name;
 
   CounterStructuredNameAndMetadata();
 
@@ -4226,68 +3910,68 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metadata != null) 'metadata': metadata.toJson(),
-        if (name != null) 'name': name.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metadata != null) 'metadata': metadata!.toJson(),
+        if (name != null) 'name': name!.toJson(),
       };
 }
 
 /// An update to a Counter sent from a worker.
 class CounterUpdate {
   /// Boolean value for And, Or.
-  core.bool boolean;
+  core.bool? boolean;
 
   /// True if this counter is reported as the total cumulative aggregate value
   /// accumulated since the worker started working on this WorkItem.
   ///
   /// By default this is false, indicating that this counter is reported as a
   /// delta.
-  core.bool cumulative;
+  core.bool? cumulative;
 
   /// Distribution data
-  DistributionUpdate distribution;
+  DistributionUpdate? distribution;
 
   /// Floating point value for Sum, Max, Min.
-  core.double floatingPoint;
+  core.double? floatingPoint;
 
   /// List of floating point numbers, for Set.
-  FloatingPointList floatingPointList;
+  FloatingPointList? floatingPointList;
 
   /// Floating point mean aggregation value for Mean.
-  FloatingPointMean floatingPointMean;
+  FloatingPointMean? floatingPointMean;
 
   /// Integer value for Sum, Max, Min.
-  SplitInt64 integer;
+  SplitInt64? integer;
 
   /// Gauge data
-  IntegerGauge integerGauge;
+  IntegerGauge? integerGauge;
 
   /// List of integers, for Set.
-  IntegerList integerList;
+  IntegerList? integerList;
 
   /// Integer mean aggregation value for Mean.
-  IntegerMean integerMean;
+  IntegerMean? integerMean;
 
   /// Value for internally-defined counters used by the Dataflow service.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object internal;
+  core.Object? internal;
 
   /// Counter name and aggregation type.
-  NameAndKind nameAndKind;
+  NameAndKind? nameAndKind;
 
   /// The service-generated short identifier for this counter.
   ///
   /// The short_id -> (name, metadata) mapping is constant for the lifetime of a
   /// job.
-  core.String shortId;
+  core.String? shortId;
 
   /// List of strings, for Set.
-  StringList stringList;
+  StringList? stringList;
 
   /// Counter structured name and metadata.
-  CounterStructuredNameAndMetadata structuredNameAndMetadata;
+  CounterStructuredNameAndMetadata? structuredNameAndMetadata;
 
   CounterUpdate();
 
@@ -4350,52 +4034,52 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolean != null) 'boolean': boolean,
-        if (cumulative != null) 'cumulative': cumulative,
-        if (distribution != null) 'distribution': distribution.toJson(),
-        if (floatingPoint != null) 'floatingPoint': floatingPoint,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolean != null) 'boolean': boolean!,
+        if (cumulative != null) 'cumulative': cumulative!,
+        if (distribution != null) 'distribution': distribution!.toJson(),
+        if (floatingPoint != null) 'floatingPoint': floatingPoint!,
         if (floatingPointList != null)
-          'floatingPointList': floatingPointList.toJson(),
+          'floatingPointList': floatingPointList!.toJson(),
         if (floatingPointMean != null)
-          'floatingPointMean': floatingPointMean.toJson(),
-        if (integer != null) 'integer': integer.toJson(),
-        if (integerGauge != null) 'integerGauge': integerGauge.toJson(),
-        if (integerList != null) 'integerList': integerList.toJson(),
-        if (integerMean != null) 'integerMean': integerMean.toJson(),
-        if (internal != null) 'internal': internal,
-        if (nameAndKind != null) 'nameAndKind': nameAndKind.toJson(),
-        if (shortId != null) 'shortId': shortId,
-        if (stringList != null) 'stringList': stringList.toJson(),
+          'floatingPointMean': floatingPointMean!.toJson(),
+        if (integer != null) 'integer': integer!.toJson(),
+        if (integerGauge != null) 'integerGauge': integerGauge!.toJson(),
+        if (integerList != null) 'integerList': integerList!.toJson(),
+        if (integerMean != null) 'integerMean': integerMean!.toJson(),
+        if (internal != null) 'internal': internal!,
+        if (nameAndKind != null) 'nameAndKind': nameAndKind!.toJson(),
+        if (shortId != null) 'shortId': shortId!,
+        if (stringList != null) 'stringList': stringList!.toJson(),
         if (structuredNameAndMetadata != null)
-          'structuredNameAndMetadata': structuredNameAndMetadata.toJson(),
+          'structuredNameAndMetadata': structuredNameAndMetadata!.toJson(),
       };
 }
 
 /// A request to create a Cloud Dataflow job from a template.
 class CreateJobFromTemplateRequest {
   /// The runtime environment for the job.
-  RuntimeEnvironment environment;
+  RuntimeEnvironment? environment;
 
   /// A Cloud Storage path to the template from which to create the job.
   ///
   /// Must be a valid Cloud Storage URL, beginning with `gs://`.
   ///
   /// Required.
-  core.String gcsPath;
+  core.String? gcsPath;
 
   /// The job name to use for the created job.
   ///
   /// Required.
-  core.String jobName;
+  core.String? jobName;
 
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// to which to direct the request.
-  core.String location;
+  core.String? location;
 
   /// The runtime parameters to pass to the job.
-  core.Map<core.String, core.String> parameters;
+  core.Map<core.String, core.String>? parameters;
 
   CreateJobFromTemplateRequest();
 
@@ -4425,19 +4109,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (environment != null) 'environment': environment.toJson(),
-        if (gcsPath != null) 'gcsPath': gcsPath,
-        if (jobName != null) 'jobName': jobName,
-        if (location != null) 'location': location,
-        if (parameters != null) 'parameters': parameters,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (environment != null) 'environment': environment!.toJson(),
+        if (gcsPath != null) 'gcsPath': gcsPath!,
+        if (jobName != null) 'jobName': jobName!,
+        if (location != null) 'location': location!,
+        if (parameters != null) 'parameters': parameters!,
       };
 }
 
 /// Creates a new Template with TemplateVersions.
 class CreateTemplateVersionRequest {
   /// The TemplateVersion object to create.
-  TemplateVersion templateVersion;
+  TemplateVersion? templateVersion;
 
   CreateTemplateVersionRequest();
 
@@ -4448,16 +4132,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (templateVersion != null)
-          'templateVersion': templateVersion.toJson(),
+          'templateVersion': templateVersion!.toJson(),
       };
 }
 
 /// Identifies the location of a custom souce.
 class CustomSourceLocation {
   /// Whether this source is stateful.
-  core.bool stateful;
+  core.bool? stateful;
 
   CustomSourceLocation();
 
@@ -4467,8 +4151,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stateful != null) 'stateful': stateful,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stateful != null) 'stateful': stateful!,
       };
 }
 
@@ -4480,11 +4164,11 @@
   /// which persistent directory the disk is mounted to, for example the list of
   /// { "myproject-1014-104817-4c2-harness-0-disk-0" }, {
   /// "myproject-1014-104817-4c2-harness-0-disk-1" }.
-  core.List<core.String> dataDisks;
+  core.List<core.String>? dataDisks;
 
   /// VM instance name the data disks mounted to, for example
   /// "myproject-1014-104817-4c2-harness-0".
-  core.String vmInstance;
+  core.String? vmInstance;
 
   DataDiskAssignment();
 
@@ -4499,19 +4183,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataDisks != null) 'dataDisks': dataDisks,
-        if (vmInstance != null) 'vmInstance': vmInstance,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataDisks != null) 'dataDisks': dataDisks!,
+        if (vmInstance != null) 'vmInstance': vmInstance!,
       };
 }
 
 /// Metadata for a Datastore connector used by the job.
 class DatastoreIODetails {
   /// Namespace used in the connection.
-  core.String namespace;
+  core.String? namespace;
 
   /// ProjectId accessed in the connection.
-  core.String projectId;
+  core.String? projectId;
 
   DatastoreIODetails();
 
@@ -4524,9 +4208,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (namespace != null) 'namespace': namespace,
-        if (projectId != null) 'projectId': projectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (namespace != null) 'namespace': namespace!,
+        if (projectId != null) 'projectId': projectId!,
       };
 }
 
@@ -4538,7 +4222,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Specification of one of the bundles produced as a result of splitting a
@@ -4556,10 +4240,10 @@
   /// the Source being split.
   /// - "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" : Produce a Source based on
   /// the base of the Source being split.
-  core.String derivationMode;
+  core.String? derivationMode;
 
   /// Specification of the source.
-  Source source;
+  Source? source;
 
   DerivedSource();
 
@@ -4573,9 +4257,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (derivationMode != null) 'derivationMode': derivationMode,
-        if (source != null) 'source': source.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (derivationMode != null) 'derivationMode': derivationMode!,
+        if (source != null) 'source': source!.toJson(),
       };
 }
 
@@ -4595,16 +4279,16 @@
   /// types are local to a particular project in a particular zone, and so the
   /// resource name will typically look something like this:
   /// compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
-  core.String diskType;
+  core.String? diskType;
 
   /// Directory in a VM where disk is mounted.
-  core.String mountPoint;
+  core.String? mountPoint;
 
   /// Size of disk in GB.
   ///
   /// If zero or unspecified, the service will attempt to choose a reasonable
   /// default.
-  core.int sizeGb;
+  core.int? sizeGb;
 
   Disk();
 
@@ -4620,38 +4304,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (diskType != null) 'diskType': diskType,
-        if (mountPoint != null) 'mountPoint': mountPoint,
-        if (sizeGb != null) 'sizeGb': sizeGb,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (diskType != null) 'diskType': diskType!,
+        if (mountPoint != null) 'mountPoint': mountPoint!,
+        if (sizeGb != null) 'sizeGb': sizeGb!,
       };
 }
 
 /// Data provided with a pipeline or transform to provide descriptive info.
 class DisplayData {
   /// Contains value if the data is of a boolean type.
-  core.bool boolValue;
+  core.bool? boolValue;
 
   /// Contains value if the data is of duration type.
-  core.String durationValue;
+  core.String? durationValue;
 
   /// Contains value if the data is of float type.
-  core.double floatValue;
+  core.double? floatValue;
 
   /// Contains value if the data is of int64 type.
-  core.String int64Value;
+  core.String? int64Value;
 
   /// Contains value if the data is of java class type.
-  core.String javaClassValue;
+  core.String? javaClassValue;
 
   /// The key identifying the display data.
   ///
   /// This is intended to be used as a label for the display data when viewed in
   /// a dax monitoring system.
-  core.String key;
+  core.String? key;
 
   /// An optional label to display in a dax UI for the element.
-  core.String label;
+  core.String? label;
 
   /// The namespace for the key.
   ///
@@ -4659,7 +4343,7 @@
   /// python module) which defines the display data. This allows a dax
   /// monitoring system to specially handle the data and perform custom
   /// rendering.
-  core.String namespace;
+  core.String? namespace;
 
   /// A possible additional shorter value to display.
   ///
@@ -4667,16 +4351,16 @@
   /// with MyDoFn as the short_str_value and com.mypackage.MyDoFn as the
   /// java_class_name value. short_str_value can be displayed and
   /// java_class_name_value will be displayed as a tooltip.
-  core.String shortStrValue;
+  core.String? shortStrValue;
 
   /// Contains value if the data is of string type.
-  core.String strValue;
+  core.String? strValue;
 
   /// Contains value if the data is of timestamp type.
-  core.String timestampValue;
+  core.String? timestampValue;
 
   /// An optional full URL.
-  core.String url;
+  core.String? url;
 
   DisplayData();
 
@@ -4719,44 +4403,44 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolValue != null) 'boolValue': boolValue,
-        if (durationValue != null) 'durationValue': durationValue,
-        if (floatValue != null) 'floatValue': floatValue,
-        if (int64Value != null) 'int64Value': int64Value,
-        if (javaClassValue != null) 'javaClassValue': javaClassValue,
-        if (key != null) 'key': key,
-        if (label != null) 'label': label,
-        if (namespace != null) 'namespace': namespace,
-        if (shortStrValue != null) 'shortStrValue': shortStrValue,
-        if (strValue != null) 'strValue': strValue,
-        if (timestampValue != null) 'timestampValue': timestampValue,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolValue != null) 'boolValue': boolValue!,
+        if (durationValue != null) 'durationValue': durationValue!,
+        if (floatValue != null) 'floatValue': floatValue!,
+        if (int64Value != null) 'int64Value': int64Value!,
+        if (javaClassValue != null) 'javaClassValue': javaClassValue!,
+        if (key != null) 'key': key!,
+        if (label != null) 'label': label!,
+        if (namespace != null) 'namespace': namespace!,
+        if (shortStrValue != null) 'shortStrValue': shortStrValue!,
+        if (strValue != null) 'strValue': strValue!,
+        if (timestampValue != null) 'timestampValue': timestampValue!,
+        if (url != null) 'url': url!,
       };
 }
 
 /// A metric value representing a distribution.
 class DistributionUpdate {
   /// The count of the number of elements present in the distribution.
-  SplitInt64 count;
+  SplitInt64? count;
 
   /// (Optional) Histogram of value counts for the distribution.
-  Histogram histogram;
+  Histogram? histogram;
 
   /// The maximum value present in the distribution.
-  SplitInt64 max;
+  SplitInt64? max;
 
   /// The minimum value present in the distribution.
-  SplitInt64 min;
+  SplitInt64? min;
 
   /// Use an int64 since we'd prefer the added precision.
   ///
   /// If overflow is a common problem we can detect it and use an additional
   /// int64 or a double.
-  SplitInt64 sum;
+  SplitInt64? sum;
 
   /// Use a double since the sum of squares is likely to overflow int64.
-  core.double sumOfSquares;
+  core.double? sumOfSquares;
 
   DistributionUpdate();
 
@@ -4786,13 +4470,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (count != null) 'count': count.toJson(),
-        if (histogram != null) 'histogram': histogram.toJson(),
-        if (max != null) 'max': max.toJson(),
-        if (min != null) 'min': min.toJson(),
-        if (sum != null) 'sum': sum.toJson(),
-        if (sumOfSquares != null) 'sumOfSquares': sumOfSquares,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (count != null) 'count': count!.toJson(),
+        if (histogram != null) 'histogram': histogram!.toJson(),
+        if (max != null) 'max': max!.toJson(),
+        if (min != null) 'min': min!.toJson(),
+        if (sum != null) 'sum': sum!.toJson(),
+        if (sumOfSquares != null) 'sumOfSquares': sumOfSquares!,
       };
 }
 
@@ -4803,12 +4487,12 @@
   /// Primary part (continued to be processed by worker).
   ///
   /// Specified relative to the previously-current source. Becomes current.
-  DerivedSource primary;
+  DerivedSource? primary;
 
   /// Residual part (returned to the pool of work).
   ///
   /// Specified relative to the previously-current source.
-  DerivedSource residual;
+  DerivedSource? residual;
 
   DynamicSourceSplit();
 
@@ -4823,9 +4507,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (primary != null) 'primary': primary.toJson(),
-        if (residual != null) 'residual': residual.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (primary != null) 'primary': primary!.toJson(),
+        if (residual != null) 'residual': residual!.toJson(),
       };
 }
 
@@ -4843,7 +4527,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Describes the environment in which a Dataflow Job runs.
@@ -4853,30 +4537,30 @@
   /// If unknown or unspecified, the service will attempt to choose a reasonable
   /// default. This should be in the form of the API service name, e.g.
   /// "compute.googleapis.com".
-  core.String clusterManagerApiService;
+  core.String? clusterManagerApiService;
 
   /// The dataset for the current project where various workflow related tables
   /// are stored.
   ///
   /// The supported resource type is: Google BigQuery:
   /// bigquery.googleapis.com/{dataset}
-  core.String dataset;
+  core.String? dataset;
 
   /// The list of experiments to enable.
-  core.List<core.String> experiments;
+  core.List<core.String>? experiments;
 
   /// Which Flexible Resource Scheduling mode to run in.
   /// Possible string values are:
   /// - "FLEXRS_UNSPECIFIED" : Run in the default mode.
   /// - "FLEXRS_SPEED_OPTIMIZED" : Optimize for lower execution time.
   /// - "FLEXRS_COST_OPTIMIZED" : Optimize for lower cost.
-  core.String flexResourceSchedulingGoal;
+  core.String? flexResourceSchedulingGoal;
 
   /// Experimental settings.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> internalExperiments;
+  core.Map<core.String, core.Object>? internalExperiments;
 
   /// The Cloud Dataflow SDK pipeline options specified by the user.
   ///
@@ -4886,19 +4570,19 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> sdkPipelineOptions;
+  core.Map<core.String, core.Object>? sdkPipelineOptions;
 
   /// Identity to run virtual machines as.
   ///
   /// Defaults to the default account.
-  core.String serviceAccountEmail;
+  core.String? serviceAccountEmail;
 
   /// If set, contains the Cloud KMS key identifier used to encrypt data at
   /// rest, AKA a Customer Managed Encryption Key (CMEK).
   ///
   /// Format:
   /// projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY
-  core.String serviceKmsKeyName;
+  core.String? serviceKmsKeyName;
 
   /// The shuffle mode used for the job.
   ///
@@ -4907,7 +4591,7 @@
   /// - "SHUFFLE_MODE_UNSPECIFIED" : Shuffle mode information is not available.
   /// - "VM_BASED" : Shuffle is done on the worker VMs.
   /// - "SERVICE_BASED" : Shuffle is done on the service side.
-  core.String shuffleMode;
+  core.String? shuffleMode;
 
   /// The prefix of the resources the system should use for temporary storage.
   ///
@@ -4918,26 +4602,26 @@
   /// override the value in taskrunner_settings. The supported resource type is:
   /// Google Cloud Storage: storage.googleapis.com/{bucket}/{object}
   /// bucket.storage.googleapis.com/{object}
-  core.String tempStoragePrefix;
+  core.String? tempStoragePrefix;
 
   /// A description of the process that generated the request.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> userAgent;
+  core.Map<core.String, core.Object>? userAgent;
 
   /// A structure describing which components and their versions of the service
   /// are required in order to run the job.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> version;
+  core.Map<core.String, core.Object>? version;
 
   /// The worker pools.
   ///
   /// At least one "harness" worker pool must be specified in order for the job
   /// to have workers.
-  core.List<WorkerPool> workerPools;
+  core.List<WorkerPool>? workerPools;
 
   /// The Compute Engine region
   /// (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
@@ -4945,7 +4629,7 @@
   ///
   /// Mutually exclusive with worker_zone. If neither worker_region nor
   /// worker_zone is specified, default to the control plane's region.
-  core.String workerRegion;
+  core.String? workerRegion;
 
   /// The Compute Engine zone
   /// (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
@@ -4954,7 +4638,7 @@
   /// Mutually exclusive with worker_region. If neither worker_region nor
   /// worker_zone is specified, a zone in the control plane's region is chosen
   /// based on available capacity.
-  core.String workerZone;
+  core.String? workerZone;
 
   Environment();
 
@@ -5039,38 +4723,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (clusterManagerApiService != null)
-          'clusterManagerApiService': clusterManagerApiService,
-        if (dataset != null) 'dataset': dataset,
-        if (experiments != null) 'experiments': experiments,
+          'clusterManagerApiService': clusterManagerApiService!,
+        if (dataset != null) 'dataset': dataset!,
+        if (experiments != null) 'experiments': experiments!,
         if (flexResourceSchedulingGoal != null)
-          'flexResourceSchedulingGoal': flexResourceSchedulingGoal,
+          'flexResourceSchedulingGoal': flexResourceSchedulingGoal!,
         if (internalExperiments != null)
-          'internalExperiments': internalExperiments,
+          'internalExperiments': internalExperiments!,
         if (sdkPipelineOptions != null)
-          'sdkPipelineOptions': sdkPipelineOptions,
+          'sdkPipelineOptions': sdkPipelineOptions!,
         if (serviceAccountEmail != null)
-          'serviceAccountEmail': serviceAccountEmail,
-        if (serviceKmsKeyName != null) 'serviceKmsKeyName': serviceKmsKeyName,
-        if (shuffleMode != null) 'shuffleMode': shuffleMode,
-        if (tempStoragePrefix != null) 'tempStoragePrefix': tempStoragePrefix,
-        if (userAgent != null) 'userAgent': userAgent,
-        if (version != null) 'version': version,
+          'serviceAccountEmail': serviceAccountEmail!,
+        if (serviceKmsKeyName != null) 'serviceKmsKeyName': serviceKmsKeyName!,
+        if (shuffleMode != null) 'shuffleMode': shuffleMode!,
+        if (tempStoragePrefix != null) 'tempStoragePrefix': tempStoragePrefix!,
+        if (userAgent != null) 'userAgent': userAgent!,
+        if (version != null) 'version': version!,
         if (workerPools != null)
-          'workerPools': workerPools.map((value) => value.toJson()).toList(),
-        if (workerRegion != null) 'workerRegion': workerRegion,
-        if (workerZone != null) 'workerZone': workerZone,
+          'workerPools': workerPools!.map((value) => value.toJson()).toList(),
+        if (workerRegion != null) 'workerRegion': workerRegion!,
+        if (workerZone != null) 'workerZone': workerZone!,
       };
 }
 
 /// A message describing the state of a particular execution stage.
 class ExecutionStageState {
   /// The time at which the stage transitioned to this state.
-  core.String currentStateTime;
+  core.String? currentStateTime;
 
   /// The name of the execution stage.
-  core.String executionStageName;
+  core.String? executionStageName;
 
   /// Executions stage states allow the same set of values as JobState.
   /// Possible string values are:
@@ -5121,7 +4805,7 @@
   /// indicates that the batch job's associated resources are currently being
   /// cleaned up after a successful run. Currently, this is an opt-in feature,
   /// please reach out to Cloud support team if you are intersted.
-  core.String executionStageState;
+  core.String? executionStageState;
 
   ExecutionStageState();
 
@@ -5137,12 +4821,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currentStateTime != null) 'currentStateTime': currentStateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currentStateTime != null) 'currentStateTime': currentStateTime!,
         if (executionStageName != null)
-          'executionStageName': executionStageName,
+          'executionStageName': executionStageName!,
         if (executionStageState != null)
-          'executionStageState': executionStageState,
+          'executionStageState': executionStageState!,
       };
 }
 
@@ -5153,16 +4837,16 @@
 /// Dataflow service during execution planning.
 class ExecutionStageSummary {
   /// Collections produced and consumed by component transforms of this stage.
-  core.List<ComponentSource> componentSource;
+  core.List<ComponentSource>? componentSource;
 
   /// Transforms that comprise this execution stage.
-  core.List<ComponentTransform> componentTransform;
+  core.List<ComponentTransform>? componentTransform;
 
   /// Dataflow service generated id for this stage.
-  core.String id;
+  core.String? id;
 
   /// Input sources for this stage.
-  core.List<StageSource> inputSource;
+  core.List<StageSource>? inputSource;
 
   /// Type of tranform this stage is executing.
   /// Possible string values are:
@@ -5177,16 +4861,16 @@
   /// - "SINGLETON_KIND" : Creates a Singleton view of a collection.
   /// - "SHUFFLE_KIND" : Opening or closing a shuffle session, often as part of
   /// a GroupByKey.
-  core.String kind;
+  core.String? kind;
 
   /// Dataflow service generated name for this stage.
-  core.String name;
+  core.String? name;
 
   /// Output sources for this stage.
-  core.List<StageSource> outputSource;
+  core.List<StageSource>? outputSource;
 
   /// Other stages that must complete before this stage can run.
-  core.List<core.String> prerequisiteStage;
+  core.List<core.String>? prerequisiteStage;
 
   ExecutionStageSummary();
 
@@ -5231,21 +4915,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (componentSource != null)
           'componentSource':
-              componentSource.map((value) => value.toJson()).toList(),
+              componentSource!.map((value) => value.toJson()).toList(),
         if (componentTransform != null)
           'componentTransform':
-              componentTransform.map((value) => value.toJson()).toList(),
-        if (id != null) 'id': id,
+              componentTransform!.map((value) => value.toJson()).toList(),
+        if (id != null) 'id': id!,
         if (inputSource != null)
-          'inputSource': inputSource.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
+          'inputSource': inputSource!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
         if (outputSource != null)
-          'outputSource': outputSource.map((value) => value.toJson()).toList(),
-        if (prerequisiteStage != null) 'prerequisiteStage': prerequisiteStage,
+          'outputSource': outputSource!.map((value) => value.toJson()).toList(),
+        if (prerequisiteStage != null) 'prerequisiteStage': prerequisiteStage!,
       };
 }
 
@@ -5256,7 +4940,7 @@
   /// The name of the
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that failed to respond.
-  core.String name;
+  core.String? name;
 
   FailedLocation();
 
@@ -5266,15 +4950,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
       };
 }
 
 /// Metadata for a File connector used by the job.
 class FileIODetails {
   /// File Pattern used to access files by the connector.
-  core.String filePattern;
+  core.String? filePattern;
 
   FileIODetails();
 
@@ -5284,15 +4968,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (filePattern != null) 'filePattern': filePattern,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (filePattern != null) 'filePattern': filePattern!,
       };
 }
 
 /// An instruction that copies its inputs (zero or more) to its (single) output.
 class FlattenInstruction {
   /// Describes the inputs to the flatten instruction.
-  core.List<InstructionInput> inputs;
+  core.List<InstructionInput>? inputs;
 
   FlattenInstruction();
 
@@ -5305,16 +4989,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (inputs != null)
-          'inputs': inputs.map((value) => value.toJson()).toList(),
+          'inputs': inputs!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// The environment values to be set at runtime for flex template.
 class FlexTemplateRuntimeEnvironment {
   /// Additional experiment flags for the job.
-  core.List<core.String> additionalExperiments;
+  core.List<core.String>? additionalExperiments;
 
   /// Additional user labels to be specified for the job.
   ///
@@ -5322,10 +5006,10 @@
   /// [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions)
   /// page. An object containing a list of "key": value pairs. Example: {
   /// "name": "wrench", "mass": "1kg", "count": "3" }.
-  core.Map<core.String, core.String> additionalUserLabels;
+  core.Map<core.String, core.String>? additionalUserLabels;
 
   /// Whether to enable Streaming Engine for the job.
-  core.bool enableStreamingEngine;
+  core.bool? enableStreamingEngine;
 
   /// Set FlexRS goal for the job.
   ///
@@ -5334,39 +5018,39 @@
   /// - "FLEXRS_UNSPECIFIED" : Run in the default mode.
   /// - "FLEXRS_SPEED_OPTIMIZED" : Optimize for lower execution time.
   /// - "FLEXRS_COST_OPTIMIZED" : Optimize for lower cost.
-  core.String flexrsGoal;
+  core.String? flexrsGoal;
 
   /// Configuration for VM IPs.
   /// Possible string values are:
   /// - "WORKER_IP_UNSPECIFIED" : The configuration is unknown, or unspecified.
   /// - "WORKER_IP_PUBLIC" : Workers should have public IP addresses.
   /// - "WORKER_IP_PRIVATE" : Workers should have private IP addresses.
-  core.String ipConfiguration;
+  core.String? ipConfiguration;
 
   /// Name for the Cloud KMS key for the job.
   ///
   /// Key format is: projects//locations//keyRings//cryptoKeys/
-  core.String kmsKeyName;
+  core.String? kmsKeyName;
 
   /// The machine type to use for the job.
   ///
   /// Defaults to the value from the template if not specified.
-  core.String machineType;
+  core.String? machineType;
 
   /// The maximum number of Google Compute Engine instances to be made available
   /// to your pipeline during execution, from 1 to 1000.
-  core.int maxWorkers;
+  core.int? maxWorkers;
 
   /// Network to which VMs will be assigned.
   ///
   /// If empty or unspecified, the service will use the network "default".
-  core.String network;
+  core.String? network;
 
   /// The initial number of Google Compute Engine instances for the job.
-  core.int numWorkers;
+  core.int? numWorkers;
 
   /// The email address of the service account to run the job as.
-  core.String serviceAccountEmail;
+  core.String? serviceAccountEmail;
 
   /// Subnetwork to which VMs will be assigned, if desired.
   ///
@@ -5375,12 +5059,12 @@
   /// "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
   /// or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located
   /// in a Shared VPC network, you must use the complete URL.
-  core.String subnetwork;
+  core.String? subnetwork;
 
   /// The Cloud Storage path to use for temporary files.
   ///
   /// Must be a valid Cloud Storage URL, beginning with `gs://`.
-  core.String tempLocation;
+  core.String? tempLocation;
 
   /// The Compute Engine region
   /// (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
@@ -5388,7 +5072,7 @@
   ///
   /// Mutually exclusive with worker_zone. If neither worker_region nor
   /// worker_zone is specified, default to the control plane's region.
-  core.String workerRegion;
+  core.String? workerRegion;
 
   /// The Compute Engine zone
   /// (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
@@ -5398,14 +5082,14 @@
   /// worker_zone is specified, a zone in the control plane's region is chosen
   /// based on available capacity. If both `worker_zone` and `zone` are set,
   /// `worker_zone` takes precedence.
-  core.String workerZone;
+  core.String? workerZone;
 
   /// The Compute Engine
   /// [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
   /// for launching worker instances to run your pipeline.
   ///
   /// In the future, worker_zone will take precedence.
-  core.String zone;
+  core.String? zone;
 
   FlexTemplateRuntimeEnvironment();
 
@@ -5469,34 +5153,34 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (additionalExperiments != null)
-          'additionalExperiments': additionalExperiments,
+          'additionalExperiments': additionalExperiments!,
         if (additionalUserLabels != null)
-          'additionalUserLabels': additionalUserLabels,
+          'additionalUserLabels': additionalUserLabels!,
         if (enableStreamingEngine != null)
-          'enableStreamingEngine': enableStreamingEngine,
-        if (flexrsGoal != null) 'flexrsGoal': flexrsGoal,
-        if (ipConfiguration != null) 'ipConfiguration': ipConfiguration,
-        if (kmsKeyName != null) 'kmsKeyName': kmsKeyName,
-        if (machineType != null) 'machineType': machineType,
-        if (maxWorkers != null) 'maxWorkers': maxWorkers,
-        if (network != null) 'network': network,
-        if (numWorkers != null) 'numWorkers': numWorkers,
+          'enableStreamingEngine': enableStreamingEngine!,
+        if (flexrsGoal != null) 'flexrsGoal': flexrsGoal!,
+        if (ipConfiguration != null) 'ipConfiguration': ipConfiguration!,
+        if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!,
+        if (machineType != null) 'machineType': machineType!,
+        if (maxWorkers != null) 'maxWorkers': maxWorkers!,
+        if (network != null) 'network': network!,
+        if (numWorkers != null) 'numWorkers': numWorkers!,
         if (serviceAccountEmail != null)
-          'serviceAccountEmail': serviceAccountEmail,
-        if (subnetwork != null) 'subnetwork': subnetwork,
-        if (tempLocation != null) 'tempLocation': tempLocation,
-        if (workerRegion != null) 'workerRegion': workerRegion,
-        if (workerZone != null) 'workerZone': workerZone,
-        if (zone != null) 'zone': zone,
+          'serviceAccountEmail': serviceAccountEmail!,
+        if (subnetwork != null) 'subnetwork': subnetwork!,
+        if (tempLocation != null) 'tempLocation': tempLocation!,
+        if (workerRegion != null) 'workerRegion': workerRegion!,
+        if (workerZone != null) 'workerZone': workerZone!,
+        if (zone != null) 'zone': zone!,
       };
 }
 
 /// A metric value representing a list of floating point numbers.
 class FloatingPointList {
   /// Elements of the list.
-  core.List<core.double> elements;
+  core.List<core.double>? elements;
 
   FloatingPointList();
 
@@ -5508,18 +5192,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (elements != null) 'elements': elements,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (elements != null) 'elements': elements!,
       };
 }
 
 /// A representation of a floating point mean metric contribution.
 class FloatingPointMean {
   /// The number of values being aggregated.
-  SplitInt64 count;
+  SplitInt64? count;
 
   /// The sum of all values being aggregated.
-  core.double sum;
+  core.double? sum;
 
   FloatingPointMean();
 
@@ -5533,24 +5217,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (count != null) 'count': count.toJson(),
-        if (sum != null) 'sum': sum,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (count != null) 'count': count!.toJson(),
+        if (sum != null) 'sum': sum!,
       };
 }
 
 /// Request to get updated debug configuration for component.
 class GetDebugConfigRequest {
   /// The internal component id for which debug configuration is requested.
-  core.String componentId;
+  core.String? componentId;
 
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that contains the job specified by job_id.
-  core.String location;
+  core.String? location;
 
   /// The worker id, i.e., VM hostname.
-  core.String workerId;
+  core.String? workerId;
 
   GetDebugConfigRequest();
 
@@ -5566,17 +5250,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (componentId != null) 'componentId': componentId,
-        if (location != null) 'location': location,
-        if (workerId != null) 'workerId': workerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (componentId != null) 'componentId': componentId!,
+        if (location != null) 'location': location!,
+        if (workerId != null) 'workerId': workerId!,
       };
 }
 
 /// Response to a get debug configuration request.
 class GetDebugConfigResponse {
   /// The encoded debug configuration for the requested component.
-  core.String config;
+  core.String? config;
 
   GetDebugConfigResponse();
 
@@ -5586,8 +5270,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (config != null) 'config': config,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (config != null) 'config': config!,
       };
 }
 
@@ -5595,22 +5279,22 @@
 class GetTemplateResponse {
   /// The template metadata describing the template name, available parameters,
   /// etc.
-  TemplateMetadata metadata;
+  TemplateMetadata? metadata;
 
   /// Describes the runtime metadata with SDKInfo and available parameters.
-  RuntimeMetadata runtimeMetadata;
+  RuntimeMetadata? runtimeMetadata;
 
   /// The status of the get template request.
   ///
   /// Any problems with the request will be indicated in the error_details.
-  Status status;
+  Status? status;
 
   /// Template Type.
   /// Possible string values are:
   /// - "UNKNOWN" : Unknown Template Type.
   /// - "LEGACY" : Legacy Template.
   /// - "FLEX" : Flex Template.
-  core.String templateType;
+  core.String? templateType;
 
   GetTemplateResponse();
 
@@ -5632,12 +5316,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metadata != null) 'metadata': metadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metadata != null) 'metadata': metadata!.toJson(),
         if (runtimeMetadata != null)
-          'runtimeMetadata': runtimeMetadata.toJson(),
-        if (status != null) 'status': status.toJson(),
-        if (templateType != null) 'templateType': templateType,
+          'runtimeMetadata': runtimeMetadata!.toJson(),
+        if (status != null) 'status': status!.toJson(),
+        if (templateType != null) 'templateType': templateType!,
       };
 }
 
@@ -5654,13 +5338,13 @@
   /// For efficiency, prefix and trailing buckets with count = 0 are elided.
   /// Buckets can store the full range of values of an unsigned long, with
   /// ULLONG_MAX falling into the 59th bucket with range \[1e19, 2e19).
-  core.List<core.String> bucketCounts;
+  core.List<core.String>? bucketCounts;
 
   /// Starting index of first stored bucket.
   ///
   /// The non-inclusive upper-bound of the ith bucket is given by:
   /// pow(10,(i-first_bucket_offset)/3) * (1,2,5)\[(i-first_bucket_offset)%3\]
-  core.int firstBucketOffset;
+  core.int? firstBucketOffset;
 
   Histogram();
 
@@ -5675,24 +5359,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bucketCounts != null) 'bucketCounts': bucketCounts,
-        if (firstBucketOffset != null) 'firstBucketOffset': firstBucketOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bucketCounts != null) 'bucketCounts': bucketCounts!,
+        if (firstBucketOffset != null) 'firstBucketOffset': firstBucketOffset!,
       };
 }
 
 /// Proto describing a hot key detected on a given WorkItem.
 class HotKeyDetection {
   /// The age of the hot key measured from when it was first detected.
-  core.String hotKeyAge;
+  core.String? hotKeyAge;
 
   /// System-defined name of the step containing this hot key.
   ///
   /// Unique across the workflow.
-  core.String systemName;
+  core.String? systemName;
 
   /// User-provided name of the step that contains this hot key.
-  core.String userStepName;
+  core.String? userStepName;
 
   HotKeyDetection();
 
@@ -5708,10 +5392,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hotKeyAge != null) 'hotKeyAge': hotKeyAge,
-        if (systemName != null) 'systemName': systemName,
-        if (userStepName != null) 'userStepName': userStepName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hotKeyAge != null) 'hotKeyAge': hotKeyAge!,
+        if (systemName != null) 'systemName': systemName!,
+        if (userStepName != null) 'userStepName': userStepName!,
       };
 }
 
@@ -5719,14 +5403,14 @@
 /// instruction.
 class InstructionInput {
   /// The output index (origin zero) within the producer.
-  core.int outputNum;
+  core.int? outputNum;
 
   /// The index (origin zero) of the parallel instruction that produces the
   /// output to be consumed by this input.
   ///
   /// This index is relative to the list of instructions in this input's
   /// instruction's containing MapTask.
-  core.int producerInstructionIndex;
+  core.int? producerInstructionIndex;
 
   InstructionInput();
 
@@ -5739,10 +5423,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (outputNum != null) 'outputNum': outputNum,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (outputNum != null) 'outputNum': outputNum!,
         if (producerInstructionIndex != null)
-          'producerInstructionIndex': producerInstructionIndex,
+          'producerInstructionIndex': producerInstructionIndex!,
       };
 }
 
@@ -5752,28 +5436,28 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> codec;
+  core.Map<core.String, core.Object>? codec;
 
   /// The user-provided name of this output.
-  core.String name;
+  core.String? name;
 
   /// For system-generated byte and mean byte metrics, certain instructions
   /// should only report the key size.
-  core.bool onlyCountKeyBytes;
+  core.bool? onlyCountKeyBytes;
 
   /// For system-generated byte and mean byte metrics, certain instructions
   /// should only report the value size.
-  core.bool onlyCountValueBytes;
+  core.bool? onlyCountValueBytes;
 
   /// System-defined name for this output in the original workflow graph.
   ///
   /// Outputs that do not contribute to an original instruction do not set this.
-  core.String originalName;
+  core.String? originalName;
 
   /// System-defined name of this output.
   ///
   /// Unique across the workflow.
-  core.String systemName;
+  core.String? systemName;
 
   InstructionOutput();
 
@@ -5803,14 +5487,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (codec != null) 'codec': codec,
-        if (name != null) 'name': name,
-        if (onlyCountKeyBytes != null) 'onlyCountKeyBytes': onlyCountKeyBytes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (codec != null) 'codec': codec!,
+        if (name != null) 'name': name!,
+        if (onlyCountKeyBytes != null) 'onlyCountKeyBytes': onlyCountKeyBytes!,
         if (onlyCountValueBytes != null)
-          'onlyCountValueBytes': onlyCountValueBytes,
-        if (originalName != null) 'originalName': originalName,
-        if (systemName != null) 'systemName': systemName,
+          'onlyCountValueBytes': onlyCountValueBytes!,
+        if (originalName != null) 'originalName': originalName!,
+        if (systemName != null) 'systemName': systemName!,
       };
 }
 
@@ -5819,10 +5503,10 @@
   /// The time at which this value was measured.
   ///
   /// Measured as msecs from epoch.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// The value of the variable represented by this gauge.
-  SplitInt64 value;
+  SplitInt64? value;
 
   IntegerGauge();
 
@@ -5836,16 +5520,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (timestamp != null) 'timestamp': timestamp,
-        if (value != null) 'value': value.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (value != null) 'value': value!.toJson(),
       };
 }
 
 /// A metric value representing a list of integers.
 class IntegerList {
   /// Elements of the list.
-  core.List<SplitInt64> elements;
+  core.List<SplitInt64>? elements;
 
   IntegerList();
 
@@ -5858,19 +5542,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (elements != null)
-          'elements': elements.map((value) => value.toJson()).toList(),
+          'elements': elements!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A representation of an integer mean metric contribution.
 class IntegerMean {
   /// The number of values being aggregated.
-  SplitInt64 count;
+  SplitInt64? count;
 
   /// The sum of all values being aggregated.
-  SplitInt64 sum;
+  SplitInt64? sum;
 
   IntegerMean();
 
@@ -5885,9 +5569,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (count != null) 'count': count.toJson(),
-        if (sum != null) 'sum': sum.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (count != null) 'count': count!.toJson(),
+        if (sum != null) 'sum': sum!.toJson(),
       };
 }
 
@@ -5904,16 +5588,16 @@
   /// this field to ensure idempotence of job creation across retried attempts
   /// to create a job. By default, the field is empty and, in that case, the
   /// service ignores it.
-  core.String clientRequestId;
+  core.String? clientRequestId;
 
   /// The timestamp when the job was initially created.
   ///
   /// Immutable and set by the Cloud Dataflow service.
-  core.String createTime;
+  core.String? createTime;
 
   /// If this is specified, the job's initial state is populated from the given
   /// snapshot.
-  core.String createdFromSnapshotId;
+  core.String? createdFromSnapshotId;
 
   /// The current state of the job.
   ///
@@ -5970,28 +5654,28 @@
   /// indicates that the batch job's associated resources are currently being
   /// cleaned up after a successful run. Currently, this is an opt-in feature,
   /// please reach out to Cloud support team if you are intersted.
-  core.String currentState;
+  core.String? currentState;
 
   /// The timestamp associated with the current state.
-  core.String currentStateTime;
+  core.String? currentStateTime;
 
   /// The environment for the job.
-  Environment environment;
+  Environment? environment;
 
   /// Deprecated.
-  JobExecutionInfo executionInfo;
+  JobExecutionInfo? executionInfo;
 
   /// The unique ID of this job.
   ///
   /// This field is set by the Cloud Dataflow service when the Job is created,
   /// and is immutable for the life of the job.
-  core.String id;
+  core.String? id;
 
   /// This field is populated by the Dataflow service to support filtering jobs
   /// by the metadata values provided here.
   ///
   /// Populated for ListJobs and all GetJob views SUMMARY and higher.
-  JobMetadata jobMetadata;
+  JobMetadata? jobMetadata;
 
   /// User-defined labels for this job.
   ///
@@ -6000,12 +5684,12 @@
   /// must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to
   /// regexp: \[\p{Ll}\p{Lo}\p{N}_-\]{0,63} * Both keys and values are
   /// additionally constrained to be <= 128 bytes in size.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that contains this job.
-  core.String location;
+  core.String? location;
 
   /// The user-specified Cloud Dataflow job name.
   ///
@@ -6013,17 +5697,17 @@
   /// If a caller attempts to create a Job with the same name as an
   /// already-existing Job, the attempt returns the existing Job. The name must
   /// match the regular expression `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-  core.String name;
+  core.String? name;
 
   /// Preliminary field: The format of this data may change at any time.
   ///
   /// A description of the user pipeline and stages through which it is
   /// executed. Created by Cloud Dataflow service. Only retrieved with
   /// JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
-  PipelineDescription pipelineDescription;
+  PipelineDescription? pipelineDescription;
 
   /// The ID of the Cloud Platform project that the job belongs to.
-  core.String projectId;
+  core.String? projectId;
 
   /// If this job is an update of an existing job, this field is the job ID of
   /// the job it replaced.
@@ -6031,11 +5715,11 @@
   /// When sending a `CreateJobRequest`, you can update a job by specifying it
   /// here. The job named here is stopped, and its intermediate state is
   /// transferred to this job.
-  core.String replaceJobId;
+  core.String? replaceJobId;
 
   /// If another job is an update of this job (and thus, this job is in
   /// `JOB_STATE_UPDATED`), this field contains the ID of that job.
-  core.String replacedByJobId;
+  core.String? replacedByJobId;
 
   /// The job's requested state.
   ///
@@ -6092,17 +5776,17 @@
   /// indicates that the batch job's associated resources are currently being
   /// cleaned up after a successful run. Currently, this is an opt-in feature,
   /// please reach out to Cloud support team if you are intersted.
-  core.String requestedState;
+  core.String? requestedState;
 
   /// Reserved for future use.
   ///
   /// This field is set only in responses from the server; it is ignored if it
   /// is set in any requests.
-  core.bool satisfiesPzs;
+  core.bool? satisfiesPzs;
 
   /// This field may be mutated by the Cloud Dataflow service; callers cannot
   /// mutate it.
-  core.List<ExecutionStageState> stageStates;
+  core.List<ExecutionStageState>? stageStates;
 
   /// The timestamp when the job was started (transitioned to
   /// JOB_STATE_PENDING).
@@ -6112,16 +5796,16 @@
   /// is started by the Cloud Dataflow service. For other jobs, start_time
   /// always equals to create_time and is immutable and set by the Cloud
   /// Dataflow service.
-  core.String startTime;
+  core.String? startTime;
 
   /// Exactly one of step or steps_location should be specified.
   ///
   /// The top-level steps that constitute the entire job. Only retrieved with
   /// JOB_VIEW_ALL.
-  core.List<Step> steps;
+  core.List<Step>? steps;
 
   /// The GCS location where the steps are stored.
-  core.String stepsLocation;
+  core.String? stepsLocation;
 
   /// A set of files the system should be aware of that are used for temporary
   /// storage.
@@ -6130,11 +5814,11 @@
   /// allowed. No file patterns are supported. The supported files are: Google
   /// Cloud Storage: storage.googleapis.com/{bucket}/{object}
   /// bucket.storage.googleapis.com/{object}
-  core.List<core.String> tempFiles;
+  core.List<core.String>? tempFiles;
 
   /// The map of transform name prefixes of the job to be replaced to the
   /// corresponding name prefixes of the new job.
-  core.Map<core.String, core.String> transformNameMapping;
+  core.Map<core.String, core.String>? transformNameMapping;
 
   /// The type of Cloud Dataflow job.
   /// Possible string values are:
@@ -6143,7 +5827,7 @@
   /// read, data is processed, data is written, and the job is done.
   /// - "JOB_TYPE_STREAMING" : A continuously streaming job with no end: data is
   /// read, processed, and written continuously.
-  core.String type;
+  core.String? type;
 
   Job();
 
@@ -6250,37 +5934,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (clientRequestId != null) 'clientRequestId': clientRequestId,
-        if (createTime != null) 'createTime': createTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (clientRequestId != null) 'clientRequestId': clientRequestId!,
+        if (createTime != null) 'createTime': createTime!,
         if (createdFromSnapshotId != null)
-          'createdFromSnapshotId': createdFromSnapshotId,
-        if (currentState != null) 'currentState': currentState,
-        if (currentStateTime != null) 'currentStateTime': currentStateTime,
-        if (environment != null) 'environment': environment.toJson(),
-        if (executionInfo != null) 'executionInfo': executionInfo.toJson(),
-        if (id != null) 'id': id,
-        if (jobMetadata != null) 'jobMetadata': jobMetadata.toJson(),
-        if (labels != null) 'labels': labels,
-        if (location != null) 'location': location,
-        if (name != null) 'name': name,
+          'createdFromSnapshotId': createdFromSnapshotId!,
+        if (currentState != null) 'currentState': currentState!,
+        if (currentStateTime != null) 'currentStateTime': currentStateTime!,
+        if (environment != null) 'environment': environment!.toJson(),
+        if (executionInfo != null) 'executionInfo': executionInfo!.toJson(),
+        if (id != null) 'id': id!,
+        if (jobMetadata != null) 'jobMetadata': jobMetadata!.toJson(),
+        if (labels != null) 'labels': labels!,
+        if (location != null) 'location': location!,
+        if (name != null) 'name': name!,
         if (pipelineDescription != null)
-          'pipelineDescription': pipelineDescription.toJson(),
-        if (projectId != null) 'projectId': projectId,
-        if (replaceJobId != null) 'replaceJobId': replaceJobId,
-        if (replacedByJobId != null) 'replacedByJobId': replacedByJobId,
-        if (requestedState != null) 'requestedState': requestedState,
-        if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs,
+          'pipelineDescription': pipelineDescription!.toJson(),
+        if (projectId != null) 'projectId': projectId!,
+        if (replaceJobId != null) 'replaceJobId': replaceJobId!,
+        if (replacedByJobId != null) 'replacedByJobId': replacedByJobId!,
+        if (requestedState != null) 'requestedState': requestedState!,
+        if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!,
         if (stageStates != null)
-          'stageStates': stageStates.map((value) => value.toJson()).toList(),
-        if (startTime != null) 'startTime': startTime,
+          'stageStates': stageStates!.map((value) => value.toJson()).toList(),
+        if (startTime != null) 'startTime': startTime!,
         if (steps != null)
-          'steps': steps.map((value) => value.toJson()).toList(),
-        if (stepsLocation != null) 'stepsLocation': stepsLocation,
-        if (tempFiles != null) 'tempFiles': tempFiles,
+          'steps': steps!.map((value) => value.toJson()).toList(),
+        if (stepsLocation != null) 'stepsLocation': stepsLocation!,
+        if (tempFiles != null) 'tempFiles': tempFiles!,
         if (transformNameMapping != null)
-          'transformNameMapping': transformNameMapping,
-        if (type != null) 'type': type,
+          'transformNameMapping': transformNameMapping!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -6290,10 +5974,10 @@
   ///
   /// To obtain the next page of results, repeat the request with page_token set
   /// to this value.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The stages of the job execution.
-  core.List<StageSummary> stages;
+  core.List<StageSummary>? stages;
 
   JobExecutionDetails();
 
@@ -6309,10 +5993,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (stages != null)
-          'stages': stages.map((value) => value.toJson()).toList(),
+          'stages': stages!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6320,13 +6004,15 @@
 /// isn't contained in the submitted job.
 class JobExecutionInfo {
   /// A mapping from each stage to the information about that stage.
-  core.Map<core.String, JobExecutionStageInfo> stages;
+  core.Map<core.String, JobExecutionStageInfo>? stages;
 
   JobExecutionInfo();
 
   JobExecutionInfo.fromJson(core.Map _json) {
     if (_json.containsKey('stages')) {
-      stages = (_json['stages'] as core.Map).cast<core.String, core.Map>().map(
+      stages = (_json['stages'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
             (key, item) => core.MapEntry(
               key,
               JobExecutionStageInfo.fromJson(
@@ -6336,10 +6022,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (stages != null)
           'stages':
-              stages.map((key, item) => core.MapEntry(key, item.toJson())),
+              stages!.map((key, item) => core.MapEntry(key, item.toJson())),
       };
 }
 
@@ -6350,7 +6036,7 @@
   ///
   /// Note that stages may have several steps, and that a given step might be
   /// run by more than one stage.
-  core.List<core.String> stepName;
+  core.List<core.String>? stepName;
 
   JobExecutionStageInfo();
 
@@ -6362,15 +6048,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stepName != null) 'stepName': stepName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stepName != null) 'stepName': stepName!,
       };
 }
 
 /// A particular message pertaining to a Dataflow job.
 class JobMessage {
   /// Deprecated.
-  core.String id;
+  core.String? id;
 
   /// Importance level of the message.
   /// Possible string values are:
@@ -6397,13 +6083,13 @@
   /// condition preventing a job from succeeding. Typically, Dataflow pipeline
   /// runners display log messages at this level by default, and these messages
   /// are displayed by default in the Dataflow monitoring UI.
-  core.String messageImportance;
+  core.String? messageImportance;
 
   /// The text of the message.
-  core.String messageText;
+  core.String? messageText;
 
   /// The timestamp of the message.
-  core.String time;
+  core.String? time;
 
   JobMessage();
 
@@ -6422,11 +6108,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (messageImportance != null) 'messageImportance': messageImportance,
-        if (messageText != null) 'messageText': messageText,
-        if (time != null) 'time': time,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (messageImportance != null) 'messageImportance': messageImportance!,
+        if (messageText != null) 'messageText': messageText!,
+        if (time != null) 'time': time!,
       };
 }
 
@@ -6435,25 +6121,25 @@
 /// Will be included in the ListJob response and Job SUMMARY view.
 class JobMetadata {
   /// Identification of a BigTable source used in the Dataflow job.
-  core.List<BigTableIODetails> bigTableDetails;
+  core.List<BigTableIODetails>? bigTableDetails;
 
   /// Identification of a BigQuery source used in the Dataflow job.
-  core.List<BigQueryIODetails> bigqueryDetails;
+  core.List<BigQueryIODetails>? bigqueryDetails;
 
   /// Identification of a Datastore source used in the Dataflow job.
-  core.List<DatastoreIODetails> datastoreDetails;
+  core.List<DatastoreIODetails>? datastoreDetails;
 
   /// Identification of a File source used in the Dataflow job.
-  core.List<FileIODetails> fileDetails;
+  core.List<FileIODetails>? fileDetails;
 
   /// Identification of a PubSub source used in the Dataflow job.
-  core.List<PubSubIODetails> pubsubDetails;
+  core.List<PubSubIODetails>? pubsubDetails;
 
   /// The SDK version used to run the job.
-  SdkVersion sdkVersion;
+  SdkVersion? sdkVersion;
 
   /// Identification of a Spanner source used in the Dataflow job.
-  core.List<SpannerIODetails> spannerDetails;
+  core.List<SpannerIODetails>? spannerDetails;
 
   JobMetadata();
 
@@ -6500,25 +6186,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bigTableDetails != null)
           'bigTableDetails':
-              bigTableDetails.map((value) => value.toJson()).toList(),
+              bigTableDetails!.map((value) => value.toJson()).toList(),
         if (bigqueryDetails != null)
           'bigqueryDetails':
-              bigqueryDetails.map((value) => value.toJson()).toList(),
+              bigqueryDetails!.map((value) => value.toJson()).toList(),
         if (datastoreDetails != null)
           'datastoreDetails':
-              datastoreDetails.map((value) => value.toJson()).toList(),
+              datastoreDetails!.map((value) => value.toJson()).toList(),
         if (fileDetails != null)
-          'fileDetails': fileDetails.map((value) => value.toJson()).toList(),
+          'fileDetails': fileDetails!.map((value) => value.toJson()).toList(),
         if (pubsubDetails != null)
           'pubsubDetails':
-              pubsubDetails.map((value) => value.toJson()).toList(),
-        if (sdkVersion != null) 'sdkVersion': sdkVersion.toJson(),
+              pubsubDetails!.map((value) => value.toJson()).toList(),
+        if (sdkVersion != null) 'sdkVersion': sdkVersion!.toJson(),
         if (spannerDetails != null)
           'spannerDetails':
-              spannerDetails.map((value) => value.toJson()).toList(),
+              spannerDetails!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6531,10 +6217,10 @@
 /// Cloud Monitoring.
 class JobMetrics {
   /// Timestamp as of which metric values are current.
-  core.String metricTime;
+  core.String? metricTime;
 
   /// All metrics for this job.
-  core.List<MetricUpdate> metrics;
+  core.List<MetricUpdate>? metrics;
 
   JobMetrics();
 
@@ -6550,10 +6236,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metricTime != null) 'metricTime': metricTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metricTime != null) 'metricTime': metricTime!,
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6568,13 +6254,13 @@
   /// This name is local to the Google Cloud Platform project and uniquely
   /// identifies the disk within that project, for example
   /// "myproject-1014-104817-4c2-harness-0-disk-1".
-  core.String dataDisk;
+  core.String? dataDisk;
 
   /// The end (exclusive) of the key range.
-  core.String end;
+  core.String? end;
 
   /// The start (inclusive) of the key range.
-  core.String start;
+  core.String? start;
 
   KeyRangeDataDiskAssignment();
 
@@ -6590,10 +6276,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataDisk != null) 'dataDisk': dataDisk,
-        if (end != null) 'end': end,
-        if (start != null) 'start': start,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataDisk != null) 'dataDisk': dataDisk!,
+        if (end != null) 'end': end!,
+        if (start != null) 'start': start!,
       };
 }
 
@@ -6607,23 +6293,23 @@
   /// This name is local to the Google Cloud Platform project and uniquely
   /// identifies the disk within that project, for example
   /// "myproject-1014-104817-4c2-harness-0-disk-1".
-  core.String dataDisk;
+  core.String? dataDisk;
 
   /// The physical location of this range assignment to be used for streaming
   /// computation cross-worker message delivery.
-  core.String deliveryEndpoint;
+  core.String? deliveryEndpoint;
 
   /// The location of the persistent state for this range, as a persistent
   /// directory in the worker local filesystem.
   ///
   /// Deprecated.
-  core.String deprecatedPersistentDirectory;
+  core.String? deprecatedPersistentDirectory;
 
   /// The end (exclusive) of the key range.
-  core.String end;
+  core.String? end;
 
   /// The start (inclusive) of the key range.
-  core.String start;
+  core.String? start;
 
   KeyRangeLocation();
 
@@ -6646,26 +6332,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataDisk != null) 'dataDisk': dataDisk,
-        if (deliveryEndpoint != null) 'deliveryEndpoint': deliveryEndpoint,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataDisk != null) 'dataDisk': dataDisk!,
+        if (deliveryEndpoint != null) 'deliveryEndpoint': deliveryEndpoint!,
         if (deprecatedPersistentDirectory != null)
-          'deprecatedPersistentDirectory': deprecatedPersistentDirectory,
-        if (end != null) 'end': end,
-        if (start != null) 'start': start,
+          'deprecatedPersistentDirectory': deprecatedPersistentDirectory!,
+        if (end != null) 'end': end!,
+        if (start != null) 'start': start!,
       };
 }
 
 /// Launch FlexTemplate Parameter.
 class LaunchFlexTemplateParameter {
   /// Spec about the container image to launch.
-  ContainerSpec containerSpec;
+  ContainerSpec? containerSpec;
 
   /// Gcs path to a file with json serialized ContainerSpec as content.
-  core.String containerSpecGcsPath;
+  core.String? containerSpecGcsPath;
 
   /// The runtime environment for the FlexTemplate job
-  FlexTemplateRuntimeEnvironment environment;
+  FlexTemplateRuntimeEnvironment? environment;
 
   /// The job name to use for the created job.
   ///
@@ -6673,29 +6359,29 @@
   /// job.
   ///
   /// Required.
-  core.String jobName;
+  core.String? jobName;
 
   /// Launch options for this flex template job.
   ///
   /// This is a common set of options across languages and templates. This
   /// should not be used to pass job parameters.
-  core.Map<core.String, core.String> launchOptions;
+  core.Map<core.String, core.String>? launchOptions;
 
   /// The parameters for FlexTemplate.
   ///
   /// Ex. {"num_workers":"5"}
-  core.Map<core.String, core.String> parameters;
+  core.Map<core.String, core.String>? parameters;
 
   /// Use this to pass transform_name_mappings for streaming update jobs.
   ///
   /// Ex:{"oldTransformName":"newTransformName",...}'
-  core.Map<core.String, core.String> transformNameMappings;
+  core.Map<core.String, core.String>? transformNameMappings;
 
   /// Set this to true if you are sending a request to update a running
   /// streaming job.
   ///
   /// When set, the job name should be the same as the running job.
-  core.bool update;
+  core.bool? update;
 
   LaunchFlexTemplateParameter();
 
@@ -6749,17 +6435,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (containerSpec != null) 'containerSpec': containerSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (containerSpec != null) 'containerSpec': containerSpec!.toJson(),
         if (containerSpecGcsPath != null)
-          'containerSpecGcsPath': containerSpecGcsPath,
-        if (environment != null) 'environment': environment.toJson(),
-        if (jobName != null) 'jobName': jobName,
-        if (launchOptions != null) 'launchOptions': launchOptions,
-        if (parameters != null) 'parameters': parameters,
+          'containerSpecGcsPath': containerSpecGcsPath!,
+        if (environment != null) 'environment': environment!.toJson(),
+        if (jobName != null) 'jobName': jobName!,
+        if (launchOptions != null) 'launchOptions': launchOptions!,
+        if (parameters != null) 'parameters': parameters!,
         if (transformNameMappings != null)
-          'transformNameMappings': transformNameMappings,
-        if (update != null) 'update': update,
+          'transformNameMappings': transformNameMappings!,
+        if (update != null) 'update': update!,
       };
 }
 
@@ -6768,12 +6454,12 @@
   /// Parameter to launch a job form Flex Template.
   ///
   /// Required.
-  LaunchFlexTemplateParameter launchParameter;
+  LaunchFlexTemplateParameter? launchParameter;
 
   /// If true, the request is validated but not actually executed.
   ///
   /// Defaults to false.
-  core.bool validateOnly;
+  core.bool? validateOnly;
 
   LaunchFlexTemplateRequest();
 
@@ -6787,10 +6473,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (launchParameter != null)
-          'launchParameter': launchParameter.toJson(),
-        if (validateOnly != null) 'validateOnly': validateOnly,
+          'launchParameter': launchParameter!.toJson(),
+        if (validateOnly != null) 'validateOnly': validateOnly!,
       };
 }
 
@@ -6798,7 +6484,7 @@
 class LaunchFlexTemplateResponse {
   /// The job that was launched, if the request was not a dry run and the job
   /// was successfully launched.
-  Job job;
+  Job? job;
 
   LaunchFlexTemplateResponse();
 
@@ -6808,33 +6494,33 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (job != null) 'job': job.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (job != null) 'job': job!.toJson(),
       };
 }
 
 /// Parameters to provide to the template being launched.
 class LaunchTemplateParameters {
   /// The runtime environment for the job.
-  RuntimeEnvironment environment;
+  RuntimeEnvironment? environment;
 
   /// The job name to use for the created job.
   ///
   /// Required.
-  core.String jobName;
+  core.String? jobName;
 
   /// The runtime parameters to pass to the job.
-  core.Map<core.String, core.String> parameters;
+  core.Map<core.String, core.String>? parameters;
 
   /// Only applicable when updating a pipeline.
   ///
   /// Map of transform name prefixes of the job to be replaced to the
   /// corresponding name prefixes of the new job.
-  core.Map<core.String, core.String> transformNameMapping;
+  core.Map<core.String, core.String>? transformNameMapping;
 
   /// If set, replace the existing pipeline with the name specified by jobName
   /// with this pipeline, preserving state.
-  core.bool update;
+  core.bool? update;
 
   LaunchTemplateParameters();
 
@@ -6871,13 +6557,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (environment != null) 'environment': environment.toJson(),
-        if (jobName != null) 'jobName': jobName,
-        if (parameters != null) 'parameters': parameters,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (environment != null) 'environment': environment!.toJson(),
+        if (jobName != null) 'jobName': jobName!,
+        if (parameters != null) 'parameters': parameters!,
         if (transformNameMapping != null)
-          'transformNameMapping': transformNameMapping,
-        if (update != null) 'update': update,
+          'transformNameMapping': transformNameMapping!,
+        if (update != null) 'update': update!,
       };
 }
 
@@ -6885,7 +6571,7 @@
 class LaunchTemplateResponse {
   /// The job that was launched, if the request was not a dry run and the job
   /// was successfully launched.
-  Job job;
+  Job? job;
 
   LaunchTemplateResponse();
 
@@ -6895,41 +6581,41 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (job != null) 'job': job.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (job != null) 'job': job!.toJson(),
       };
 }
 
 /// Request to lease WorkItems.
 class LeaseWorkItemRequest {
   /// The current timestamp at the worker.
-  core.String currentWorkerTime;
+  core.String? currentWorkerTime;
 
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that contains the WorkItem's job.
-  core.String location;
+  core.String? location;
 
   /// The initial lease period.
-  core.String requestedLeaseDuration;
+  core.String? requestedLeaseDuration;
 
   /// Untranslated bag-of-bytes WorkRequest from UnifiedWorker.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> unifiedWorkerRequest;
+  core.Map<core.String, core.Object>? unifiedWorkerRequest;
 
   /// Filter for WorkItem type.
-  core.List<core.String> workItemTypes;
+  core.List<core.String>? workItemTypes;
 
   /// Worker capabilities.
   ///
   /// WorkItems might be limited to workers with specific capabilities.
-  core.List<core.String> workerCapabilities;
+  core.List<core.String>? workerCapabilities;
 
   /// Identifies the worker leasing work -- typically the ID of the virtual
   /// machine running the worker.
-  core.String workerId;
+  core.String? workerId;
 
   LeaseWorkItemRequest();
 
@@ -6968,17 +6654,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currentWorkerTime != null) 'currentWorkerTime': currentWorkerTime,
-        if (location != null) 'location': location,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currentWorkerTime != null) 'currentWorkerTime': currentWorkerTime!,
+        if (location != null) 'location': location!,
         if (requestedLeaseDuration != null)
-          'requestedLeaseDuration': requestedLeaseDuration,
+          'requestedLeaseDuration': requestedLeaseDuration!,
         if (unifiedWorkerRequest != null)
-          'unifiedWorkerRequest': unifiedWorkerRequest,
-        if (workItemTypes != null) 'workItemTypes': workItemTypes,
+          'unifiedWorkerRequest': unifiedWorkerRequest!,
+        if (workItemTypes != null) 'workItemTypes': workItemTypes!,
         if (workerCapabilities != null)
-          'workerCapabilities': workerCapabilities,
-        if (workerId != null) 'workerId': workerId,
+          'workerCapabilities': workerCapabilities!,
+        if (workerId != null) 'workerId': workerId!,
       };
 }
 
@@ -6988,10 +6674,10 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> unifiedWorkerResponse;
+  core.Map<core.String, core.Object>? unifiedWorkerResponse;
 
   /// A list of the leased WorkItems.
-  core.List<WorkItem> workItems;
+  core.List<WorkItem>? workItems;
 
   LeaseWorkItemResponse();
 
@@ -7014,24 +6700,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (unifiedWorkerResponse != null)
-          'unifiedWorkerResponse': unifiedWorkerResponse,
+          'unifiedWorkerResponse': unifiedWorkerResponse!,
         if (workItems != null)
-          'workItems': workItems.map((value) => value.toJson()).toList(),
+          'workItems': workItems!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response to a request to list job messages.
 class ListJobMessagesResponse {
   /// Autoscaling events in ascending timestamp order.
-  core.List<AutoscalingEvent> autoscalingEvents;
+  core.List<AutoscalingEvent>? autoscalingEvents;
 
   /// Messages in ascending timestamp order.
-  core.List<JobMessage> jobMessages;
+  core.List<JobMessage>? jobMessages;
 
   /// The token to obtain the next page of results if there are more.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListJobMessagesResponse();
 
@@ -7053,13 +6739,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (autoscalingEvents != null)
           'autoscalingEvents':
-              autoscalingEvents.map((value) => value.toJson()).toList(),
+              autoscalingEvents!.map((value) => value.toJson()).toList(),
         if (jobMessages != null)
-          'jobMessages': jobMessages.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'jobMessages': jobMessages!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -7073,13 +6759,13 @@
   /// Zero or more messages describing the
   /// [regional endpoints](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that failed to respond.
-  core.List<FailedLocation> failedLocation;
+  core.List<FailedLocation>? failedLocation;
 
   /// A subset of the requested job information.
-  core.List<Job> jobs;
+  core.List<Job>? jobs;
 
   /// Set if there may be more results than fit in this response.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListJobsResponse();
 
@@ -7101,19 +6787,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (failedLocation != null)
           'failedLocation':
-              failedLocation.map((value) => value.toJson()).toList(),
-        if (jobs != null) 'jobs': jobs.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              failedLocation!.map((value) => value.toJson()).toList(),
+        if (jobs != null) 'jobs': jobs!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// List of snapshots.
 class ListSnapshotsResponse {
   /// Returned snapshots.
-  core.List<Snapshot> snapshots;
+  core.List<Snapshot>? snapshots;
 
   ListSnapshotsResponse();
 
@@ -7126,9 +6812,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (snapshots != null)
-          'snapshots': snapshots.map((value) => value.toJson()).toList(),
+          'snapshots': snapshots!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7137,10 +6823,10 @@
   /// A token that can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of TemplateVersions.
-  core.List<TemplateVersion> templateVersions;
+  core.List<TemplateVersion>? templateVersions;
 
   ListTemplateVersionsResponse();
 
@@ -7156,11 +6842,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (templateVersions != null)
           'templateVersions':
-              templateVersions.map((value) => value.toJson()).toList(),
+              templateVersions!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7174,20 +6860,20 @@
   /// Counter prefix that can be used to prefix counters.
   ///
   /// Not currently used in Dataflow.
-  core.String counterPrefix;
+  core.String? counterPrefix;
 
   /// The instructions in the MapTask.
-  core.List<ParallelInstruction> instructions;
+  core.List<ParallelInstruction>? instructions;
 
   /// System-defined name of the stage containing this MapTask.
   ///
   /// Unique across the workflow.
-  core.String stageName;
+  core.String? stageName;
 
   /// System-defined name of this MapTask.
   ///
   /// Unique across the workflow.
-  core.String systemName;
+  core.String? systemName;
 
   MapTask();
 
@@ -7209,12 +6895,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (counterPrefix != null) 'counterPrefix': counterPrefix,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (counterPrefix != null) 'counterPrefix': counterPrefix!,
         if (instructions != null)
-          'instructions': instructions.map((value) => value.toJson()).toList(),
-        if (stageName != null) 'stageName': stageName,
-        if (systemName != null) 'systemName': systemName,
+          'instructions': instructions!.map((value) => value.toJson()).toList(),
+        if (stageName != null) 'stageName': stageName!,
+        if (systemName != null) 'systemName': systemName!,
       };
 }
 
@@ -7222,16 +6908,16 @@
 /// worker.
 class MemInfo {
   /// Instantenous memory limit in bytes.
-  core.String currentLimitBytes;
+  core.String? currentLimitBytes;
 
   /// Instantenous memory (RSS) size in bytes.
-  core.String currentRssBytes;
+  core.String? currentRssBytes;
 
   /// Timestamp of the measurement.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// Total memory (RSS) usage since start up in GB * ms.
-  core.String totalGbMs;
+  core.String? totalGbMs;
 
   MemInfo();
 
@@ -7250,11 +6936,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currentLimitBytes != null) 'currentLimitBytes': currentLimitBytes,
-        if (currentRssBytes != null) 'currentRssBytes': currentRssBytes,
-        if (timestamp != null) 'timestamp': timestamp,
-        if (totalGbMs != null) 'totalGbMs': totalGbMs,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currentLimitBytes != null) 'currentLimitBytes': currentLimitBytes!,
+        if (currentRssBytes != null) 'currentRssBytes': currentRssBytes!,
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (totalGbMs != null) 'totalGbMs': totalGbMs!,
       };
 }
 
@@ -7264,10 +6950,10 @@
   /// The index of the corresponding metric in the ReportWorkItemStatusRequest.
   ///
   /// Required.
-  core.int metricIndex;
+  core.int? metricIndex;
 
   /// The service-generated short identifier for the metric.
-  core.String shortId;
+  core.String? shortId;
 
   MetricShortId();
 
@@ -7280,9 +6966,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metricIndex != null) 'metricIndex': metricIndex,
-        if (shortId != null) 'shortId': shortId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metricIndex != null) 'metricIndex': metricIndex!,
+        if (shortId != null) 'shortId': shortId!,
       };
 }
 
@@ -7294,16 +6980,16 @@
   /// For example, built-in counters associated with steps will have
   /// context\['step'\] = . Counters associated with PCollections in the SDK
   /// will have context\['pcollection'\] = .
-  core.Map<core.String, core.String> context;
+  core.Map<core.String, core.String>? context;
 
   /// Worker-defined metric name.
-  core.String name;
+  core.String? name;
 
   /// Origin (namespace) of metric name.
   ///
   /// May be blank for user-define metrics; will be "dataflow" for metrics
   /// defined by the Dataflow service or SDK.
-  core.String origin;
+  core.String? origin;
 
   MetricStructuredName();
 
@@ -7325,10 +7011,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (context != null) 'context': context,
-        if (name != null) 'name': name,
-        if (origin != null) 'origin': origin,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (context != null) 'context': context!,
+        if (name != null) 'name': name!,
+        if (origin != null) 'origin': origin!,
       };
 }
 
@@ -7339,13 +7025,13 @@
   ///
   /// By default this is false, indicating that this metric is reported as a
   /// delta that is not associated with any WorkItem.
-  core.bool cumulative;
+  core.bool? cumulative;
 
   /// A struct value describing properties of a distribution of numeric values.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object distribution;
+  core.Object? distribution;
 
   /// A struct value describing properties of a Gauge.
   ///
@@ -7354,13 +7040,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object gauge;
+  core.Object? gauge;
 
   /// Worker-computed aggregate value for internal use by the Dataflow service.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object internal;
+  core.Object? internal;
 
   /// Metric aggregation kind.
   ///
@@ -7368,7 +7054,7 @@
   /// "Set", "And", "Or", and "Distribution". The specified aggregation kind is
   /// case-insensitive. If omitted, this is not an aggregated value but instead
   /// a single metric sample value.
-  core.String kind;
+  core.String? kind;
 
   /// Worker-computed aggregate value for the "Mean" aggregation kind.
   ///
@@ -7378,7 +7064,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object meanCount;
+  core.Object? meanCount;
 
   /// Worker-computed aggregate value for the "Mean" aggregation kind.
   ///
@@ -7388,10 +7074,10 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object meanSum;
+  core.Object? meanSum;
 
   /// Name of the metric.
-  MetricStructuredName name;
+  MetricStructuredName? name;
 
   /// Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
   /// "And", and "Or".
@@ -7400,7 +7086,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object scalar;
+  core.Object? scalar;
 
   /// Worker-computed aggregate value for the "Set" aggregation kind.
   ///
@@ -7410,13 +7096,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object set;
+  core.Object? set;
 
   /// Timestamp associated with the metric value.
   ///
   /// Optional when workers are reporting work progress; it will be filled in
   /// responses from the metrics API.
-  core.String updateTime;
+  core.String? updateTime;
 
   MetricUpdate();
 
@@ -7457,18 +7143,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cumulative != null) 'cumulative': cumulative,
-        if (distribution != null) 'distribution': distribution,
-        if (gauge != null) 'gauge': gauge,
-        if (internal != null) 'internal': internal,
-        if (kind != null) 'kind': kind,
-        if (meanCount != null) 'meanCount': meanCount,
-        if (meanSum != null) 'meanSum': meanSum,
-        if (name != null) 'name': name.toJson(),
-        if (scalar != null) 'scalar': scalar,
-        if (set != null) 'set': set,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cumulative != null) 'cumulative': cumulative!,
+        if (distribution != null) 'distribution': distribution!,
+        if (gauge != null) 'gauge': gauge!,
+        if (internal != null) 'internal': internal!,
+        if (kind != null) 'kind': kind!,
+        if (meanCount != null) 'meanCount': meanCount!,
+        if (meanSum != null) 'meanSum': meanSum!,
+        if (name != null) 'name': name!.toJson(),
+        if (scalar != null) 'scalar': scalar!,
+        if (set != null) 'set': set!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -7476,7 +7162,7 @@
 /// TemplateVersion.
 class ModifyTemplateVersionLabelRequest {
   /// The label key for update.
-  core.String key;
+  core.String? key;
 
   /// Requests for add label to TemplateVersion or remove label from
   /// TemplateVersion.
@@ -7484,10 +7170,10 @@
   /// - "OPERATION_UNSPECIFIED" : Default value.
   /// - "ADD" : Add the label to the TemplateVersion object.
   /// - "REMOVE" : Remove the label from the TemplateVersion object.
-  core.String op;
+  core.String? op;
 
   /// The label value for update.
-  core.String value;
+  core.String? value;
 
   ModifyTemplateVersionLabelRequest();
 
@@ -7503,17 +7189,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (op != null) 'op': op,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (op != null) 'op': op!,
+        if (value != null) 'value': value!,
       };
 }
 
 /// Respond the labels in the TemplateVersion.
 class ModifyTemplateVersionLabelResponse {
   /// All the label in the TemplateVersion.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   ModifyTemplateVersionLabelResponse();
 
@@ -7529,8 +7215,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (labels != null) 'labels': labels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (labels != null) 'labels': labels!,
       };
 }
 
@@ -7542,10 +7228,10 @@
 class ModifyTemplateVersionTagRequest {
   /// The flag that indicates if the request is only for remove tag from
   /// TemplateVersion.
-  core.bool removeOnly;
+  core.bool? removeOnly;
 
   /// The tag for update.
-  core.String tag;
+  core.String? tag;
 
   ModifyTemplateVersionTagRequest();
 
@@ -7558,16 +7244,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (removeOnly != null) 'removeOnly': removeOnly,
-        if (tag != null) 'tag': tag,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (removeOnly != null) 'removeOnly': removeOnly!,
+        if (tag != null) 'tag': tag!,
       };
 }
 
 /// Respond the current tags in the TemplateVersion.
 class ModifyTemplateVersionTagResponse {
   /// All the tags in the TemplateVersion.
-  core.List<core.String> tags;
+  core.List<core.String>? tags;
 
   ModifyTemplateVersionTagResponse();
 
@@ -7579,8 +7265,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (tags != null) 'tags': tags,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (tags != null) 'tags': tags!,
       };
 }
 
@@ -7591,7 +7277,7 @@
   /// This name is local to the Google Cloud Platform project and uniquely
   /// identifies the disk within that project, for example
   /// "myproject-1014-104817-4c2-harness-0-disk-1".
-  core.String dataDisk;
+  core.String? dataDisk;
 
   MountedDataDisk();
 
@@ -7601,8 +7287,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataDisk != null) 'dataDisk': dataDisk,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataDisk != null) 'dataDisk': dataDisk!,
       };
 }
 
@@ -7610,7 +7296,7 @@
 class MultiOutputInfo {
   /// The id of the tag the user code will emit to this output by; this should
   /// correspond to the tag of some SideInputInfo.
-  core.String tag;
+  core.String? tag;
 
   MultiOutputInfo();
 
@@ -7620,8 +7306,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (tag != null) 'tag': tag,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (tag != null) 'tag': tag!,
       };
 }
 
@@ -7642,10 +7328,10 @@
   /// - "DISTRIBUTION" : Aggregated value captures statistics about a
   /// distribution.
   /// - "LATEST_VALUE" : Aggregated value tracks the latest value of a variable.
-  core.String kind;
+  core.String? kind;
 
   /// Name of the counter.
-  core.String name;
+  core.String? name;
 
   NameAndKind();
 
@@ -7658,9 +7344,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -7677,10 +7363,10 @@
   ///
   /// The supported resource type is: Google Cloud Storage:
   /// storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
-  core.String location;
+  core.String? location;
 
   /// The name of the package.
-  core.String name;
+  core.String? name;
 
   Package();
 
@@ -7693,9 +7379,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (location != null) 'location': location,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (location != null) 'location': location!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -7705,22 +7391,22 @@
 /// outputs. Runs user code.
 class ParDoInstruction {
   /// The input.
-  InstructionInput input;
+  InstructionInput? input;
 
   /// Information about each of the outputs, if user_fn is a MultiDoFn.
-  core.List<MultiOutputInfo> multiOutputInfos;
+  core.List<MultiOutputInfo>? multiOutputInfos;
 
   /// The number of outputs.
-  core.int numOutputs;
+  core.int? numOutputs;
 
   /// Zero or more side inputs.
-  core.List<SideInputInfo> sideInputs;
+  core.List<SideInputInfo>? sideInputs;
 
   /// The user function to invoke.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> userFn;
+  core.Map<core.String, core.Object>? userFn;
 
   ParDoInstruction();
 
@@ -7755,48 +7441,48 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (input != null) 'input': input.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (input != null) 'input': input!.toJson(),
         if (multiOutputInfos != null)
           'multiOutputInfos':
-              multiOutputInfos.map((value) => value.toJson()).toList(),
-        if (numOutputs != null) 'numOutputs': numOutputs,
+              multiOutputInfos!.map((value) => value.toJson()).toList(),
+        if (numOutputs != null) 'numOutputs': numOutputs!,
         if (sideInputs != null)
-          'sideInputs': sideInputs.map((value) => value.toJson()).toList(),
-        if (userFn != null) 'userFn': userFn,
+          'sideInputs': sideInputs!.map((value) => value.toJson()).toList(),
+        if (userFn != null) 'userFn': userFn!,
       };
 }
 
 /// Describes a particular operation comprising a MapTask.
 class ParallelInstruction {
   /// Additional information for Flatten instructions.
-  FlattenInstruction flatten;
+  FlattenInstruction? flatten;
 
   /// User-provided name of this operation.
-  core.String name;
+  core.String? name;
 
   /// System-defined name for the operation in the original workflow graph.
-  core.String originalName;
+  core.String? originalName;
 
   /// Describes the outputs of the instruction.
-  core.List<InstructionOutput> outputs;
+  core.List<InstructionOutput>? outputs;
 
   /// Additional information for ParDo instructions.
-  ParDoInstruction parDo;
+  ParDoInstruction? parDo;
 
   /// Additional information for PartialGroupByKey instructions.
-  PartialGroupByKeyInstruction partialGroupByKey;
+  PartialGroupByKeyInstruction? partialGroupByKey;
 
   /// Additional information for Read instructions.
-  ReadInstruction read;
+  ReadInstruction? read;
 
   /// System-defined name of this operation.
   ///
   /// Unique across the workflow.
-  core.String systemName;
+  core.String? systemName;
 
   /// Additional information for Write instructions.
-  WriteInstruction write;
+  WriteInstruction? write;
 
   ParallelInstruction();
 
@@ -7838,31 +7524,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (flatten != null) 'flatten': flatten.toJson(),
-        if (name != null) 'name': name,
-        if (originalName != null) 'originalName': originalName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (flatten != null) 'flatten': flatten!.toJson(),
+        if (name != null) 'name': name!,
+        if (originalName != null) 'originalName': originalName!,
         if (outputs != null)
-          'outputs': outputs.map((value) => value.toJson()).toList(),
-        if (parDo != null) 'parDo': parDo.toJson(),
+          'outputs': outputs!.map((value) => value.toJson()).toList(),
+        if (parDo != null) 'parDo': parDo!.toJson(),
         if (partialGroupByKey != null)
-          'partialGroupByKey': partialGroupByKey.toJson(),
-        if (read != null) 'read': read.toJson(),
-        if (systemName != null) 'systemName': systemName,
-        if (write != null) 'write': write.toJson(),
+          'partialGroupByKey': partialGroupByKey!.toJson(),
+        if (read != null) 'read': read!.toJson(),
+        if (systemName != null) 'systemName': systemName!,
+        if (write != null) 'write': write!.toJson(),
       };
 }
 
 /// Structured data associated with this message.
 class Parameter {
   /// Key or name for this parameter.
-  core.String key;
+  core.String? key;
 
   /// Value for this parameter.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Object value;
+  core.Object? value;
 
   Parameter();
 
@@ -7875,9 +7561,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -7886,24 +7572,24 @@
   /// The help text to display for the parameter.
   ///
   /// Required.
-  core.String helpText;
+  core.String? helpText;
 
   /// Whether the parameter is optional.
   ///
   /// Defaults to false.
   ///
   /// Optional.
-  core.bool isOptional;
+  core.bool? isOptional;
 
   /// The label to display for the parameter.
   ///
   /// Required.
-  core.String label;
+  core.String? label;
 
   /// The name of the parameter.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// The type of the parameter.
   ///
@@ -7922,12 +7608,12 @@
   /// - "GCS_WRITE_FOLDER" : The parameter specifies a GCS folder to write to.
   /// - "PUBSUB_TOPIC" : The parameter specifies a Pub/Sub Topic.
   /// - "PUBSUB_SUBSCRIPTION" : The parameter specifies a Pub/Sub Subscription.
-  core.String paramType;
+  core.String? paramType;
 
   /// Regexes that the parameter must match.
   ///
   /// Optional.
-  core.List<core.String> regexes;
+  core.List<core.String>? regexes;
 
   ParameterMetadata();
 
@@ -7954,13 +7640,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (helpText != null) 'helpText': helpText,
-        if (isOptional != null) 'isOptional': isOptional,
-        if (label != null) 'label': label,
-        if (name != null) 'name': name,
-        if (paramType != null) 'paramType': paramType,
-        if (regexes != null) 'regexes': regexes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (helpText != null) 'helpText': helpText!,
+        if (isOptional != null) 'isOptional': isOptional!,
+        if (label != null) 'label': label!,
+        if (name != null) 'name': name!,
+        if (paramType != null) 'paramType': paramType!,
+        if (regexes != null) 'regexes': regexes!,
       };
 }
 
@@ -7969,30 +7655,30 @@
 /// One input and one output.
 class PartialGroupByKeyInstruction {
   /// Describes the input to the partial group-by-key instruction.
-  InstructionInput input;
+  InstructionInput? input;
 
   /// The codec to use for interpreting an element in the input PTable.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> inputElementCodec;
+  core.Map<core.String, core.Object>? inputElementCodec;
 
   /// If this instruction includes a combining function this is the name of the
   /// intermediate store between the GBK and the CombineValues.
-  core.String originalCombineValuesInputStoreName;
+  core.String? originalCombineValuesInputStoreName;
 
   /// If this instruction includes a combining function, this is the name of the
   /// CombineValues instruction lifted into this instruction.
-  core.String originalCombineValuesStepName;
+  core.String? originalCombineValuesStepName;
 
   /// Zero or more side inputs.
-  core.List<SideInputInfo> sideInputs;
+  core.List<SideInputInfo>? sideInputs;
 
   /// The value combining function to invoke.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> valueCombiningFn;
+  core.Map<core.String, core.Object>? valueCombiningFn;
 
   PartialGroupByKeyInstruction();
 
@@ -8037,17 +7723,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (input != null) 'input': input.toJson(),
-        if (inputElementCodec != null) 'inputElementCodec': inputElementCodec,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (input != null) 'input': input!.toJson(),
+        if (inputElementCodec != null) 'inputElementCodec': inputElementCodec!,
         if (originalCombineValuesInputStoreName != null)
           'originalCombineValuesInputStoreName':
-              originalCombineValuesInputStoreName,
+              originalCombineValuesInputStoreName!,
         if (originalCombineValuesStepName != null)
-          'originalCombineValuesStepName': originalCombineValuesStepName,
+          'originalCombineValuesStepName': originalCombineValuesStepName!,
         if (sideInputs != null)
-          'sideInputs': sideInputs.map((value) => value.toJson()).toList(),
-        if (valueCombiningFn != null) 'valueCombiningFn': valueCombiningFn,
+          'sideInputs': sideInputs!.map((value) => value.toJson()).toList(),
+        if (valueCombiningFn != null) 'valueCombiningFn': valueCombiningFn!,
       };
 }
 
@@ -8058,14 +7744,14 @@
 /// pipeline and interpreting Dataflow provided metrics.
 class PipelineDescription {
   /// Pipeline level display data.
-  core.List<DisplayData> displayData;
+  core.List<DisplayData>? displayData;
 
   /// Description of each stage of execution of the pipeline.
-  core.List<ExecutionStageSummary> executionPipelineStage;
+  core.List<ExecutionStageSummary>? executionPipelineStage;
 
   /// Description of each transform in the pipeline and collections between
   /// them.
-  core.List<TransformSummary> originalPipelineTransform;
+  core.List<TransformSummary>? originalPipelineTransform;
 
   PipelineDescription();
 
@@ -8091,25 +7777,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (displayData != null)
-          'displayData': displayData.map((value) => value.toJson()).toList(),
+          'displayData': displayData!.map((value) => value.toJson()).toList(),
         if (executionPipelineStage != null)
           'executionPipelineStage':
-              executionPipelineStage.map((value) => value.toJson()).toList(),
+              executionPipelineStage!.map((value) => value.toJson()).toList(),
         if (originalPipelineTransform != null)
-          'originalPipelineTransform':
-              originalPipelineTransform.map((value) => value.toJson()).toList(),
+          'originalPipelineTransform': originalPipelineTransform!
+              .map((value) => value.toJson())
+              .toList(),
       };
 }
 
 /// A point in the timeseries.
 class Point {
   /// The timestamp of the point.
-  core.String time;
+  core.String? time;
 
   /// The value of the point.
-  core.double value;
+  core.double? value;
 
   Point();
 
@@ -8122,9 +7809,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (time != null) 'time': time,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (time != null) 'time': time!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -8134,25 +7821,25 @@
 /// collections), a byte offset, or a record index.
 class Position {
   /// Position is a byte offset.
-  core.String byteOffset;
+  core.String? byteOffset;
 
   /// CloudPosition is a concat position.
-  ConcatPosition concatPosition;
+  ConcatPosition? concatPosition;
 
   /// Position is past all other positions.
   ///
   /// Also useful for the end position of an unbounded range.
-  core.bool end;
+  core.bool? end;
 
   /// Position is a string key, ordered lexicographically.
-  core.String key;
+  core.String? key;
 
   /// Position is a record index.
-  core.String recordIndex;
+  core.String? recordIndex;
 
   /// CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
   /// sharding).
-  core.String shufflePosition;
+  core.String? shufflePosition;
 
   Position();
 
@@ -8178,25 +7865,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (byteOffset != null) 'byteOffset': byteOffset,
-        if (concatPosition != null) 'concatPosition': concatPosition.toJson(),
-        if (end != null) 'end': end,
-        if (key != null) 'key': key,
-        if (recordIndex != null) 'recordIndex': recordIndex,
-        if (shufflePosition != null) 'shufflePosition': shufflePosition,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (byteOffset != null) 'byteOffset': byteOffset!,
+        if (concatPosition != null) 'concatPosition': concatPosition!.toJson(),
+        if (end != null) 'end': end!,
+        if (key != null) 'key': key!,
+        if (recordIndex != null) 'recordIndex': recordIndex!,
+        if (shufflePosition != null) 'shufflePosition': shufflePosition!,
       };
 }
 
 /// Information about the progress of some component of job execution.
 class ProgressTimeseries {
   /// The current progress of the component, in the range \[0,1\].
-  core.double currentProgress;
+  core.double? currentProgress;
 
   /// History of progress for the component.
   ///
   /// Points are sorted by time.
-  core.List<Point> dataPoints;
+  core.List<Point>? dataPoints;
 
   ProgressTimeseries();
 
@@ -8212,20 +7899,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currentProgress != null) 'currentProgress': currentProgress,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currentProgress != null) 'currentProgress': currentProgress!,
         if (dataPoints != null)
-          'dataPoints': dataPoints.map((value) => value.toJson()).toList(),
+          'dataPoints': dataPoints!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Metadata for a PubSub connector used by the job.
 class PubSubIODetails {
   /// Subscription used in the connection.
-  core.String subscription;
+  core.String? subscription;
 
   /// Topic accessed in the connection.
-  core.String topic;
+  core.String? topic;
 
   PubSubIODetails();
 
@@ -8238,9 +7925,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (subscription != null) 'subscription': subscription,
-        if (topic != null) 'topic': topic,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (subscription != null) 'subscription': subscription!,
+        if (topic != null) 'topic': topic!,
       };
 }
 
@@ -8248,31 +7935,31 @@
 /// streaming Dataflow job.
 class PubsubLocation {
   /// Indicates whether the pipeline allows late-arriving data.
-  core.bool dropLateData;
+  core.bool? dropLateData;
 
   /// If set, contains a pubsub label from which to extract record ids.
   ///
   /// If left empty, record deduplication will be strictly best effort.
-  core.String idLabel;
+  core.String? idLabel;
 
   /// A pubsub subscription, in the form of
   /// "pubsub.googleapis.com/subscriptions//"
-  core.String subscription;
+  core.String? subscription;
 
   /// If set, contains a pubsub label from which to extract record timestamps.
   ///
   /// If left empty, record timestamps will be generated upon arrival.
-  core.String timestampLabel;
+  core.String? timestampLabel;
 
   /// A pubsub topic, in the form of "pubsub.googleapis.com/topics//"
-  core.String topic;
+  core.String? topic;
 
   /// If set, specifies the pubsub subscription that will be used for tracking
   /// custom time timestamps for watermark estimation.
-  core.String trackingSubscription;
+  core.String? trackingSubscription;
 
   /// If true, then the client has requested to get pubsub attributes.
-  core.bool withAttributes;
+  core.bool? withAttributes;
 
   PubsubLocation();
 
@@ -8300,28 +7987,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dropLateData != null) 'dropLateData': dropLateData,
-        if (idLabel != null) 'idLabel': idLabel,
-        if (subscription != null) 'subscription': subscription,
-        if (timestampLabel != null) 'timestampLabel': timestampLabel,
-        if (topic != null) 'topic': topic,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dropLateData != null) 'dropLateData': dropLateData!,
+        if (idLabel != null) 'idLabel': idLabel!,
+        if (subscription != null) 'subscription': subscription!,
+        if (timestampLabel != null) 'timestampLabel': timestampLabel!,
+        if (topic != null) 'topic': topic!,
         if (trackingSubscription != null)
-          'trackingSubscription': trackingSubscription,
-        if (withAttributes != null) 'withAttributes': withAttributes,
+          'trackingSubscription': trackingSubscription!,
+        if (withAttributes != null) 'withAttributes': withAttributes!,
       };
 }
 
 /// Represents a Pubsub snapshot.
 class PubsubSnapshotMetadata {
   /// The expire time of the Pubsub snapshot.
-  core.String expireTime;
+  core.String? expireTime;
 
   /// The name of the Pubsub snapshot.
-  core.String snapshotName;
+  core.String? snapshotName;
 
   /// The name of the Pubsub topic.
-  core.String topicName;
+  core.String? topicName;
 
   PubsubSnapshotMetadata();
 
@@ -8337,17 +8024,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (expireTime != null) 'expireTime': expireTime,
-        if (snapshotName != null) 'snapshotName': snapshotName,
-        if (topicName != null) 'topicName': topicName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (expireTime != null) 'expireTime': expireTime!,
+        if (snapshotName != null) 'snapshotName': snapshotName!,
+        if (topicName != null) 'topicName': topicName!,
       };
 }
 
 /// Information about a validated query.
 class QueryInfo {
   /// Includes an entry for each satisfied QueryProperty.
-  core.List<core.String> queryProperty;
+  core.List<core.String>? queryProperty;
 
   QueryInfo();
 
@@ -8359,8 +8046,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (queryProperty != null) 'queryProperty': queryProperty,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (queryProperty != null) 'queryProperty': queryProperty!,
       };
 }
 
@@ -8369,7 +8056,7 @@
 /// Takes no inputs, produces one output.
 class ReadInstruction {
   /// The source to read from.
-  Source source;
+  Source? source;
 
   ReadInstruction();
 
@@ -8380,38 +8067,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (source != null) 'source': source.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (source != null) 'source': source!.toJson(),
       };
 }
 
 /// Request to report the status of WorkItems.
 class ReportWorkItemStatusRequest {
   /// The current timestamp at the worker.
-  core.String currentWorkerTime;
+  core.String? currentWorkerTime;
 
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that contains the WorkItem's job.
-  core.String location;
+  core.String? location;
 
   /// Untranslated bag-of-bytes WorkProgressUpdateRequest from UnifiedWorker.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> unifiedWorkerRequest;
+  core.Map<core.String, core.Object>? unifiedWorkerRequest;
 
   /// The order is unimportant, except that the order of the
   /// WorkItemServiceState messages in the ReportWorkItemStatusResponse
   /// corresponds to the order of WorkItemStatus messages here.
-  core.List<WorkItemStatus> workItemStatuses;
+  core.List<WorkItemStatus>? workItemStatuses;
 
   /// The ID of the worker reporting the WorkItem status.
   ///
   /// If this does not match the ID of the worker which the Dataflow service
   /// believes currently has the lease on the WorkItem, the report will be
   /// dropped (with an error response).
-  core.String workerId;
+  core.String? workerId;
 
   ReportWorkItemStatusRequest();
 
@@ -8443,15 +8130,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currentWorkerTime != null) 'currentWorkerTime': currentWorkerTime,
-        if (location != null) 'location': location,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currentWorkerTime != null) 'currentWorkerTime': currentWorkerTime!,
+        if (location != null) 'location': location!,
         if (unifiedWorkerRequest != null)
-          'unifiedWorkerRequest': unifiedWorkerRequest,
+          'unifiedWorkerRequest': unifiedWorkerRequest!,
         if (workItemStatuses != null)
           'workItemStatuses':
-              workItemStatuses.map((value) => value.toJson()).toList(),
-        if (workerId != null) 'workerId': workerId,
+              workItemStatuses!.map((value) => value.toJson()).toList(),
+        if (workerId != null) 'workerId': workerId!,
       };
 }
 
@@ -8461,13 +8148,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> unifiedWorkerResponse;
+  core.Map<core.String, core.Object>? unifiedWorkerResponse;
 
   /// A set of messages indicating the service-side state for each WorkItem
   /// whose status was reported, in the same order as the WorkItemStatus
   /// messages in the ReportWorkItemStatusRequest which resulting in this
   /// response.
-  core.List<WorkItemServiceState> workItemServiceStates;
+  core.List<WorkItemServiceState>? workItemServiceStates;
 
   ReportWorkItemStatusResponse();
 
@@ -8490,12 +8177,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (unifiedWorkerResponse != null)
-          'unifiedWorkerResponse': unifiedWorkerResponse,
+          'unifiedWorkerResponse': unifiedWorkerResponse!,
         if (workItemServiceStates != null)
           'workItemServiceStates':
-              workItemServiceStates.map((value) => value.toJson()).toList(),
+              workItemServiceStates!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -8508,10 +8195,10 @@
   /// assume that the work item can always be split into more non-empty work
   /// items by dynamic splitting. This is a work-around for lack of support for
   /// infinity by the current JSON-based Java RPC stack.
-  core.bool isInfinite;
+  core.bool? isInfinite;
 
   /// Specifies the level of parallelism in case it is finite.
-  core.double value;
+  core.double? value;
 
   ReportedParallelism();
 
@@ -8524,9 +8211,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (isInfinite != null) 'isInfinite': isInfinite,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (isInfinite != null) 'isInfinite': isInfinite!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -8538,26 +8225,27 @@
   /// Per container information.
   ///
   /// Key: container name.
-  core.Map<core.String, ResourceUtilizationReport> containers;
+  core.Map<core.String, ResourceUtilizationReport>? containers;
 
   /// CPU utilization samples.
-  core.List<CPUTime> cpuTime;
+  core.List<CPUTime>? cpuTime;
 
   /// Memory utilization samples.
-  core.List<MemInfo> memoryInfo;
+  core.List<MemInfo>? memoryInfo;
 
   ResourceUtilizationReport();
 
   ResourceUtilizationReport.fromJson(core.Map _json) {
     if (_json.containsKey('containers')) {
-      containers =
-          (_json['containers'] as core.Map).cast<core.String, core.Map>().map(
-                (key, item) => core.MapEntry(
-                  key,
-                  ResourceUtilizationReport.fromJson(
-                      item as core.Map<core.String, core.dynamic>),
-                ),
-              );
+      containers = (_json['containers'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
+            (key, item) => core.MapEntry(
+              key,
+              ResourceUtilizationReport.fromJson(
+                  item as core.Map<core.String, core.dynamic>),
+            ),
+          );
     }
     if (_json.containsKey('cpuTime')) {
       cpuTime = (_json['cpuTime'] as core.List)
@@ -8573,14 +8261,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (containers != null)
           'containers':
-              containers.map((key, item) => core.MapEntry(key, item.toJson())),
+              containers!.map((key, item) => core.MapEntry(key, item.toJson())),
         if (cpuTime != null)
-          'cpuTime': cpuTime.map((value) => value.toJson()).toList(),
+          'cpuTime': cpuTime!.map((value) => value.toJson()).toList(),
         if (memoryInfo != null)
-          'memoryInfo': memoryInfo.map((value) => value.toJson()).toList(),
+          'memoryInfo': memoryInfo!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -8592,13 +8280,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The environment values to set at runtime.
 class RuntimeEnvironment {
   /// Additional experiment flags for the job.
-  core.List<core.String> additionalExperiments;
+  core.List<core.String>? additionalExperiments;
 
   /// Additional user labels to be specified for the job.
   ///
@@ -8606,47 +8294,47 @@
   /// [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions)
   /// page. An object containing a list of "key": value pairs. Example: {
   /// "name": "wrench", "mass": "1kg", "count": "3" }.
-  core.Map<core.String, core.String> additionalUserLabels;
+  core.Map<core.String, core.String>? additionalUserLabels;
 
   /// Whether to bypass the safety checks for the job's temporary directory.
   ///
   /// Use with caution.
-  core.bool bypassTempDirValidation;
+  core.bool? bypassTempDirValidation;
 
   /// Whether to enable Streaming Engine for the job.
-  core.bool enableStreamingEngine;
+  core.bool? enableStreamingEngine;
 
   /// Configuration for VM IPs.
   /// Possible string values are:
   /// - "WORKER_IP_UNSPECIFIED" : The configuration is unknown, or unspecified.
   /// - "WORKER_IP_PUBLIC" : Workers should have public IP addresses.
   /// - "WORKER_IP_PRIVATE" : Workers should have private IP addresses.
-  core.String ipConfiguration;
+  core.String? ipConfiguration;
 
   /// Name for the Cloud KMS key for the job.
   ///
   /// Key format is: projects//locations//keyRings//cryptoKeys/
-  core.String kmsKeyName;
+  core.String? kmsKeyName;
 
   /// The machine type to use for the job.
   ///
   /// Defaults to the value from the template if not specified.
-  core.String machineType;
+  core.String? machineType;
 
   /// The maximum number of Google Compute Engine instances to be made available
   /// to your pipeline during execution, from 1 to 1000.
-  core.int maxWorkers;
+  core.int? maxWorkers;
 
   /// Network to which VMs will be assigned.
   ///
   /// If empty or unspecified, the service will use the network "default".
-  core.String network;
+  core.String? network;
 
   /// The initial number of Google Compute Engine instnaces for the job.
-  core.int numWorkers;
+  core.int? numWorkers;
 
   /// The email address of the service account to run the job as.
-  core.String serviceAccountEmail;
+  core.String? serviceAccountEmail;
 
   /// Subnetwork to which VMs will be assigned, if desired.
   ///
@@ -8655,12 +8343,12 @@
   /// "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
   /// or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located
   /// in a Shared VPC network, you must use the complete URL.
-  core.String subnetwork;
+  core.String? subnetwork;
 
   /// The Cloud Storage path to use for temporary files.
   ///
   /// Must be a valid Cloud Storage URL, beginning with `gs://`.
-  core.String tempLocation;
+  core.String? tempLocation;
 
   /// The Compute Engine region
   /// (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
@@ -8668,7 +8356,7 @@
   ///
   /// Mutually exclusive with worker_zone. If neither worker_region nor
   /// worker_zone is specified, default to the control plane's region.
-  core.String workerRegion;
+  core.String? workerRegion;
 
   /// The Compute Engine zone
   /// (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
@@ -8678,14 +8366,14 @@
   /// worker_zone is specified, a zone in the control plane's region is chosen
   /// based on available capacity. If both `worker_zone` and `zone` are set,
   /// `worker_zone` takes precedence.
-  core.String workerZone;
+  core.String? workerZone;
 
   /// The Compute Engine
   /// [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
   /// for launching worker instances to run your pipeline.
   ///
   /// In the future, worker_zone will take precedence.
-  core.String zone;
+  core.String? zone;
 
   RuntimeEnvironment();
 
@@ -8749,38 +8437,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (additionalExperiments != null)
-          'additionalExperiments': additionalExperiments,
+          'additionalExperiments': additionalExperiments!,
         if (additionalUserLabels != null)
-          'additionalUserLabels': additionalUserLabels,
+          'additionalUserLabels': additionalUserLabels!,
         if (bypassTempDirValidation != null)
-          'bypassTempDirValidation': bypassTempDirValidation,
+          'bypassTempDirValidation': bypassTempDirValidation!,
         if (enableStreamingEngine != null)
-          'enableStreamingEngine': enableStreamingEngine,
-        if (ipConfiguration != null) 'ipConfiguration': ipConfiguration,
-        if (kmsKeyName != null) 'kmsKeyName': kmsKeyName,
-        if (machineType != null) 'machineType': machineType,
-        if (maxWorkers != null) 'maxWorkers': maxWorkers,
-        if (network != null) 'network': network,
-        if (numWorkers != null) 'numWorkers': numWorkers,
+          'enableStreamingEngine': enableStreamingEngine!,
+        if (ipConfiguration != null) 'ipConfiguration': ipConfiguration!,
+        if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!,
+        if (machineType != null) 'machineType': machineType!,
+        if (maxWorkers != null) 'maxWorkers': maxWorkers!,
+        if (network != null) 'network': network!,
+        if (numWorkers != null) 'numWorkers': numWorkers!,
         if (serviceAccountEmail != null)
-          'serviceAccountEmail': serviceAccountEmail,
-        if (subnetwork != null) 'subnetwork': subnetwork,
-        if (tempLocation != null) 'tempLocation': tempLocation,
-        if (workerRegion != null) 'workerRegion': workerRegion,
-        if (workerZone != null) 'workerZone': workerZone,
-        if (zone != null) 'zone': zone,
+          'serviceAccountEmail': serviceAccountEmail!,
+        if (subnetwork != null) 'subnetwork': subnetwork!,
+        if (tempLocation != null) 'tempLocation': tempLocation!,
+        if (workerRegion != null) 'workerRegion': workerRegion!,
+        if (workerZone != null) 'workerZone': workerZone!,
+        if (zone != null) 'zone': zone!,
       };
 }
 
 /// RuntimeMetadata describing a runtime environment.
 class RuntimeMetadata {
   /// The parameters for the template.
-  core.List<ParameterMetadata> parameters;
+  core.List<ParameterMetadata>? parameters;
 
   /// SDK Info for the template.
-  SDKInfo sdkInfo;
+  SDKInfo? sdkInfo;
 
   RuntimeMetadata();
 
@@ -8797,10 +8485,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (parameters != null)
-          'parameters': parameters.map((value) => value.toJson()).toList(),
-        if (sdkInfo != null) 'sdkInfo': sdkInfo.toJson(),
+          'parameters': parameters!.map((value) => value.toJson()).toList(),
+        if (sdkInfo != null) 'sdkInfo': sdkInfo!.toJson(),
       };
 }
 
@@ -8813,12 +8501,12 @@
   /// - "UNKNOWN" : UNKNOWN Language.
   /// - "JAVA" : Java.
   /// - "PYTHON" : Python.
-  core.String language;
+  core.String? language;
 
   /// The SDK version.
   ///
   /// Optional.
-  core.String version;
+  core.String? version;
 
   SDKInfo();
 
@@ -8831,20 +8519,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (language != null) 'language': language,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (language != null) 'language': language!,
+        if (version != null) 'version': version!,
       };
 }
 
 /// Defines a SDK harness container for executing Dataflow pipelines.
 class SdkHarnessContainerImage {
   /// A docker container image that resides in Google Container Registry.
-  core.String containerImage;
+  core.String? containerImage;
 
   /// Environment ID for the Beam runner API proto Environment that corresponds
   /// to the current SDK Harness.
-  core.String environmentId;
+  core.String? environmentId;
 
   /// If true, recommends the Dataflow service to use only one core per SDK
   /// container instance with this image.
@@ -8852,7 +8540,7 @@
   /// If false (or unset) recommends using more than one core per SDK container
   /// instance with this image for efficiency. Note that Dataflow service may
   /// choose to override this property if needed.
-  core.bool useSingleCorePerContainer;
+  core.bool? useSingleCorePerContainer;
 
   SdkHarnessContainerImage();
 
@@ -8869,11 +8557,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (containerImage != null) 'containerImage': containerImage,
-        if (environmentId != null) 'environmentId': environmentId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (containerImage != null) 'containerImage': containerImage!,
+        if (environmentId != null) 'environmentId': environmentId!,
         if (useSingleCorePerContainer != null)
-          'useSingleCorePerContainer': useSingleCorePerContainer,
+          'useSingleCorePerContainer': useSingleCorePerContainer!,
       };
 }
 
@@ -8889,13 +8577,13 @@
   /// be no longer supported.
   /// - "UNSUPPORTED" : Support for this SDK version has ended and it should no
   /// longer be used.
-  core.String sdkSupportStatus;
+  core.String? sdkSupportStatus;
 
   /// The version of the SDK used to run the job.
-  core.String version;
+  core.String? version;
 
   /// A readable string describing the version of the SDK.
-  core.String versionDisplayName;
+  core.String? versionDisplayName;
 
   SdkVersion();
 
@@ -8911,29 +8599,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (sdkSupportStatus != null) 'sdkSupportStatus': sdkSupportStatus,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (sdkSupportStatus != null) 'sdkSupportStatus': sdkSupportStatus!,
+        if (version != null) 'version': version!,
         if (versionDisplayName != null)
-          'versionDisplayName': versionDisplayName,
+          'versionDisplayName': versionDisplayName!,
       };
 }
 
 /// Request to send encoded debug information.
 class SendDebugCaptureRequest {
   /// The internal component id for which debug information is sent.
-  core.String componentId;
+  core.String? componentId;
 
   /// The encoded debug information.
-  core.String data;
+  core.String? data;
 
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that contains the job specified by job_id.
-  core.String location;
+  core.String? location;
 
   /// The worker id, i.e., VM hostname.
-  core.String workerId;
+  core.String? workerId;
 
   SendDebugCaptureRequest();
 
@@ -8952,11 +8640,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (componentId != null) 'componentId': componentId,
-        if (data != null) 'data': data,
-        if (location != null) 'location': location,
-        if (workerId != null) 'workerId': workerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (componentId != null) 'componentId': componentId!,
+        if (data != null) 'data': data!,
+        if (location != null) 'location': location!,
+        if (workerId != null) 'workerId': workerId!,
       };
 }
 
@@ -8970,7 +8658,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A request for sending worker messages to the service.
@@ -8978,10 +8666,10 @@
   /// The
   /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
   /// that contains the job.
-  core.String location;
+  core.String? location;
 
   /// The WorkerMessages to send.
-  core.List<WorkerMessage> workerMessages;
+  core.List<WorkerMessage>? workerMessages;
 
   SendWorkerMessagesRequest();
 
@@ -8997,18 +8685,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (location != null) 'location': location,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (location != null) 'location': location!,
         if (workerMessages != null)
           'workerMessages':
-              workerMessages.map((value) => value.toJson()).toList(),
+              workerMessages!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// The response to the worker messages.
 class SendWorkerMessagesResponse {
   /// The servers response to the worker messages.
-  core.List<WorkerMessageResponse> workerMessageResponses;
+  core.List<WorkerMessageResponse>? workerMessageResponses;
 
   SendWorkerMessagesResponse();
 
@@ -9021,39 +8709,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (workerMessageResponses != null)
           'workerMessageResponses':
-              workerMessageResponses.map((value) => value.toJson()).toList(),
+              workerMessageResponses!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Describes a particular function to invoke.
 class SeqMapTask {
   /// Information about each of the inputs.
-  core.List<SideInputInfo> inputs;
+  core.List<SideInputInfo>? inputs;
 
   /// The user-provided name of the SeqDo operation.
-  core.String name;
+  core.String? name;
 
   /// Information about each of the outputs.
-  core.List<SeqMapTaskOutputInfo> outputInfos;
+  core.List<SeqMapTaskOutputInfo>? outputInfos;
 
   /// System-defined name of the stage containing the SeqDo operation.
   ///
   /// Unique across the workflow.
-  core.String stageName;
+  core.String? stageName;
 
   /// System-defined name of the SeqDo operation.
   ///
   /// Unique across the workflow.
-  core.String systemName;
+  core.String? systemName;
 
   /// The user function to invoke.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> userFn;
+  core.Map<core.String, core.Object>? userFn;
 
   SeqMapTask();
 
@@ -9090,25 +8778,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (inputs != null)
-          'inputs': inputs.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'inputs': inputs!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
         if (outputInfos != null)
-          'outputInfos': outputInfos.map((value) => value.toJson()).toList(),
-        if (stageName != null) 'stageName': stageName,
-        if (systemName != null) 'systemName': systemName,
-        if (userFn != null) 'userFn': userFn,
+          'outputInfos': outputInfos!.map((value) => value.toJson()).toList(),
+        if (stageName != null) 'stageName': stageName!,
+        if (systemName != null) 'systemName': systemName!,
+        if (userFn != null) 'userFn': userFn!,
       };
 }
 
 /// Information about an output of a SeqMapTask.
 class SeqMapTaskOutputInfo {
   /// The sink to write the output value to.
-  Sink sink;
+  Sink? sink;
 
   /// The id of the TupleTag the user code will tag the output value by.
-  core.String tag;
+  core.String? tag;
 
   SeqMapTaskOutputInfo();
 
@@ -9122,19 +8810,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (sink != null) 'sink': sink.toJson(),
-        if (tag != null) 'tag': tag,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (sink != null) 'sink': sink!.toJson(),
+        if (tag != null) 'tag': tag!,
       };
 }
 
 /// A task which consists of a shell command for the worker to execute.
 class ShellTask {
   /// The shell command to run.
-  core.String command;
+  core.String? command;
 
   /// Exit code for the task.
-  core.int exitCode;
+  core.int? exitCode;
 
   ShellTask();
 
@@ -9147,9 +8835,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (command != null) 'command': command,
-        if (exitCode != null) 'exitCode': exitCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (command != null) 'command': command!,
+        if (exitCode != null) 'exitCode': exitCode!,
       };
 }
 
@@ -9159,17 +8847,17 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> kind;
+  core.Map<core.String, core.Object>? kind;
 
   /// The source(s) to read element(s) from to get the value of this side input.
   ///
   /// If more than one source, then the elements are taken from the sources, in
   /// the specified order if order matters. At least one source is required.
-  core.List<Source> sources;
+  core.List<Source>? sources;
 
   /// The id of the tag the user code will access this side input by; this
   /// should correspond to the tag of some MultiOutputInfo.
-  core.String tag;
+  core.String? tag;
 
   SideInputInfo();
 
@@ -9193,11 +8881,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
         if (sources != null)
-          'sources': sources.map((value) => value.toJson()).toList(),
-        if (tag != null) 'tag': tag,
+          'sources': sources!.map((value) => value.toJson()).toList(),
+        if (tag != null) 'tag': tag!,
       };
 }
 
@@ -9207,13 +8895,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> codec;
+  core.Map<core.String, core.Object>? codec;
 
   /// The sink to write to, plus its parameters.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> spec;
+  core.Map<core.String, core.Object>? spec;
 
   Sink();
 
@@ -9236,38 +8924,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (codec != null) 'codec': codec,
-        if (spec != null) 'spec': spec,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (codec != null) 'codec': codec!,
+        if (spec != null) 'spec': spec!,
       };
 }
 
 /// Represents a snapshot of a job.
 class Snapshot {
   /// The time this snapshot was created.
-  core.String creationTime;
+  core.String? creationTime;
 
   /// User specified description of the snapshot.
   ///
   /// Maybe empty.
-  core.String description;
+  core.String? description;
 
   /// The disk byte size of the snapshot.
   ///
   /// Only available for snapshots in READY state.
-  core.String diskSizeBytes;
+  core.String? diskSizeBytes;
 
   /// The unique ID of this snapshot.
-  core.String id;
+  core.String? id;
 
   /// The project this snapshot belongs to.
-  core.String projectId;
+  core.String? projectId;
 
   /// PubSub snapshot metadata.
-  core.List<PubsubSnapshotMetadata> pubsubMetadata;
+  core.List<PubsubSnapshotMetadata>? pubsubMetadata;
 
   /// The job this snapshot was created from.
-  core.String sourceJobId;
+  core.String? sourceJobId;
 
   /// State of the snapshot.
   /// Possible string values are:
@@ -9278,10 +8966,10 @@
   /// - "READY" : Snapshot has been created and is ready to be used.
   /// - "FAILED" : Snapshot failed to be created.
   /// - "DELETED" : Snapshot has been deleted.
-  core.String state;
+  core.String? state;
 
   /// The time after which this snapshot will be automatically deleted.
-  core.String ttl;
+  core.String? ttl;
 
   Snapshot();
 
@@ -9319,18 +9007,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (creationTime != null) 'creationTime': creationTime,
-        if (description != null) 'description': description,
-        if (diskSizeBytes != null) 'diskSizeBytes': diskSizeBytes,
-        if (id != null) 'id': id,
-        if (projectId != null) 'projectId': projectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (creationTime != null) 'creationTime': creationTime!,
+        if (description != null) 'description': description!,
+        if (diskSizeBytes != null) 'diskSizeBytes': diskSizeBytes!,
+        if (id != null) 'id': id!,
+        if (projectId != null) 'projectId': projectId!,
         if (pubsubMetadata != null)
           'pubsubMetadata':
-              pubsubMetadata.map((value) => value.toJson()).toList(),
-        if (sourceJobId != null) 'sourceJobId': sourceJobId,
-        if (state != null) 'state': state,
-        if (ttl != null) 'ttl': ttl,
+              pubsubMetadata!.map((value) => value.toJson()).toList(),
+        if (sourceJobId != null) 'sourceJobId': sourceJobId!,
+        if (state != null) 'state': state!,
+        if (ttl != null) 'ttl': ttl!,
       };
 }
 
@@ -9339,16 +9027,16 @@
   /// User specified description of the snapshot.
   ///
   /// Maybe empty.
-  core.String description;
+  core.String? description;
 
   /// The location that contains this job.
-  core.String location;
+  core.String? location;
 
   /// If true, perform snapshots for sources which support this.
-  core.bool snapshotSources;
+  core.bool? snapshotSources;
 
   /// TTL for the snapshot.
-  core.String ttl;
+  core.String? ttl;
 
   SnapshotJobRequest();
 
@@ -9367,11 +9055,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (location != null) 'location': location,
-        if (snapshotSources != null) 'snapshotSources': snapshotSources,
-        if (ttl != null) 'ttl': ttl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (location != null) 'location': location!,
+        if (snapshotSources != null) 'snapshotSources': snapshotSources!,
+        if (ttl != null) 'ttl': ttl!,
       };
 }
 
@@ -9388,13 +9076,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> baseSpecs;
+  core.List<core.Map<core.String, core.Object>>? baseSpecs;
 
   /// The codec to use to decode data read from the source.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> codec;
+  core.Map<core.String, core.Object>? codec;
 
   /// Setting this value to true hints to the framework that the source doesn't
   /// need splitting, and using SourceSplitRequest on it would yield
@@ -9409,7 +9097,7 @@
   /// Source objects populated by the user (e.g. when filling in a
   /// DerivedSource). Source objects supplied by the framework to the user don't
   /// have this field populated.
-  core.bool doesNotNeedSplitting;
+  core.bool? doesNotNeedSplitting;
 
   /// Optionally, metadata for this source can be supplied right away, avoiding
   /// a SourceGetMetadataOperation roundtrip (see SourceOperationRequest).
@@ -9417,13 +9105,13 @@
   /// This field is meaningful only in the Source objects populated by the user
   /// (e.g. when filling in a DerivedSource). Source objects supplied by the
   /// framework to the user don't have this field populated.
-  SourceMetadata metadata;
+  SourceMetadata? metadata;
 
   /// The source to read from, plus its parameters.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> spec;
+  core.Map<core.String, core.Object>? spec;
 
   Source();
 
@@ -9464,29 +9152,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (baseSpecs != null) 'baseSpecs': baseSpecs,
-        if (codec != null) 'codec': codec,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (baseSpecs != null) 'baseSpecs': baseSpecs!,
+        if (codec != null) 'codec': codec!,
         if (doesNotNeedSplitting != null)
-          'doesNotNeedSplitting': doesNotNeedSplitting,
-        if (metadata != null) 'metadata': metadata.toJson(),
-        if (spec != null) 'spec': spec,
+          'doesNotNeedSplitting': doesNotNeedSplitting!,
+        if (metadata != null) 'metadata': metadata!.toJson(),
+        if (spec != null) 'spec': spec!,
       };
 }
 
 /// DEPRECATED in favor of DynamicSourceSplit.
 class SourceFork {
   /// DEPRECATED
-  SourceSplitShard primary;
+  SourceSplitShard? primary;
 
   /// DEPRECATED
-  DerivedSource primarySource;
+  DerivedSource? primarySource;
 
   /// DEPRECATED
-  SourceSplitShard residual;
+  SourceSplitShard? residual;
 
   /// DEPRECATED
-  DerivedSource residualSource;
+  DerivedSource? residualSource;
 
   SourceFork();
 
@@ -9509,18 +9197,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (primary != null) 'primary': primary.toJson(),
-        if (primarySource != null) 'primarySource': primarySource.toJson(),
-        if (residual != null) 'residual': residual.toJson(),
-        if (residualSource != null) 'residualSource': residualSource.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (primary != null) 'primary': primary!.toJson(),
+        if (primarySource != null) 'primarySource': primarySource!.toJson(),
+        if (residual != null) 'residual': residual!.toJson(),
+        if (residualSource != null) 'residualSource': residualSource!.toJson(),
       };
 }
 
 /// A request to compute the SourceMetadata of a Source.
 class SourceGetMetadataRequest {
   /// Specification of the source whose metadata should be computed.
-  Source source;
+  Source? source;
 
   SourceGetMetadataRequest();
 
@@ -9531,15 +9219,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (source != null) 'source': source.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (source != null) 'source': source!.toJson(),
       };
 }
 
 /// The result of a SourceGetMetadataOperation.
 class SourceGetMetadataResponse {
   /// The computed metadata.
-  SourceMetadata metadata;
+  SourceMetadata? metadata;
 
   SourceGetMetadataResponse();
 
@@ -9550,8 +9238,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metadata != null) 'metadata': metadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metadata != null) 'metadata': metadata!.toJson(),
       };
 }
 
@@ -9563,15 +9251,15 @@
   ///
   /// This estimate is in terms of external storage size, before any
   /// decompression or other processing done by the reader.
-  core.String estimatedSizeBytes;
+  core.String? estimatedSizeBytes;
 
   /// Specifies that the size of this source is known to be infinite (this is a
   /// streaming source).
-  core.bool infinite;
+  core.bool? infinite;
 
   /// Whether this source is known to produce key/value pairs with the (encoded)
   /// keys in lexicographically sorted order.
-  core.bool producesSortedKeys;
+  core.bool? producesSortedKeys;
 
   SourceMetadata();
 
@@ -9587,12 +9275,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (estimatedSizeBytes != null)
-          'estimatedSizeBytes': estimatedSizeBytes,
-        if (infinite != null) 'infinite': infinite,
+          'estimatedSizeBytes': estimatedSizeBytes!,
+        if (infinite != null) 'infinite': infinite!,
         if (producesSortedKeys != null)
-          'producesSortedKeys': producesSortedKeys,
+          'producesSortedKeys': producesSortedKeys!,
       };
 }
 
@@ -9600,27 +9288,27 @@
 /// on a user-defined Source specification.
 class SourceOperationRequest {
   /// Information about a request to get metadata about a source.
-  SourceGetMetadataRequest getMetadata;
+  SourceGetMetadataRequest? getMetadata;
 
   /// User-provided name of the Read instruction for this source.
-  core.String name;
+  core.String? name;
 
   /// System-defined name for the Read instruction for this source in the
   /// original workflow graph.
-  core.String originalName;
+  core.String? originalName;
 
   /// Information about a request to split a source.
-  SourceSplitRequest split;
+  SourceSplitRequest? split;
 
   /// System-defined name of the stage containing the source operation.
   ///
   /// Unique across the workflow.
-  core.String stageName;
+  core.String? stageName;
 
   /// System-defined name of the Read instruction for this source.
   ///
   /// Unique across the workflow.
-  core.String systemName;
+  core.String? systemName;
 
   SourceOperationRequest();
 
@@ -9647,13 +9335,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (getMetadata != null) 'getMetadata': getMetadata.toJson(),
-        if (name != null) 'name': name,
-        if (originalName != null) 'originalName': originalName,
-        if (split != null) 'split': split.toJson(),
-        if (stageName != null) 'stageName': stageName,
-        if (systemName != null) 'systemName': systemName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (getMetadata != null) 'getMetadata': getMetadata!.toJson(),
+        if (name != null) 'name': name!,
+        if (originalName != null) 'originalName': originalName!,
+        if (split != null) 'split': split!.toJson(),
+        if (stageName != null) 'stageName': stageName!,
+        if (systemName != null) 'systemName': systemName!,
       };
 }
 
@@ -9662,10 +9350,10 @@
 /// completed.
 class SourceOperationResponse {
   /// A response to a request to get metadata about a source.
-  SourceGetMetadataResponse getMetadata;
+  SourceGetMetadataResponse? getMetadata;
 
   /// A response to a request to split a source.
-  SourceSplitResponse split;
+  SourceSplitResponse? split;
 
   SourceOperationResponse();
 
@@ -9680,9 +9368,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (getMetadata != null) 'getMetadata': getMetadata.toJson(),
-        if (split != null) 'split': split.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (getMetadata != null) 'getMetadata': getMetadata!.toJson(),
+        if (split != null) 'split': split!.toJson(),
       };
 }
 
@@ -9691,10 +9379,10 @@
 class SourceSplitOptions {
   /// The source should be split into a set of bundles where the estimated size
   /// of each is approximately this many bytes.
-  core.String desiredBundleSizeBytes;
+  core.String? desiredBundleSizeBytes;
 
   /// DEPRECATED in favor of desired_bundle_size_bytes.
-  core.String desiredShardSizeBytes;
+  core.String? desiredShardSizeBytes;
 
   SourceSplitOptions();
 
@@ -9707,11 +9395,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (desiredBundleSizeBytes != null)
-          'desiredBundleSizeBytes': desiredBundleSizeBytes,
+          'desiredBundleSizeBytes': desiredBundleSizeBytes!,
         if (desiredShardSizeBytes != null)
-          'desiredShardSizeBytes': desiredShardSizeBytes,
+          'desiredShardSizeBytes': desiredShardSizeBytes!,
       };
 }
 
@@ -9729,10 +9417,10 @@
 /// to bundles produced from it.
 class SourceSplitRequest {
   /// Hints for tuning the splitting process.
-  SourceSplitOptions options;
+  SourceSplitOptions? options;
 
   /// Specification of the source to be split.
-  Source source;
+  Source? source;
 
   SourceSplitRequest();
 
@@ -9747,9 +9435,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (options != null) 'options': options.toJson(),
-        if (source != null) 'source': source.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (options != null) 'options': options!.toJson(),
+        if (source != null) 'source': source!.toJson(),
       };
 }
 
@@ -9760,7 +9448,7 @@
   ///
   /// Otherwise this field is ignored. This list can be empty, which means the
   /// source represents an empty input.
-  core.List<DerivedSource> bundles;
+  core.List<DerivedSource>? bundles;
 
   /// Indicates whether splitting happened and produced a list of bundles.
   ///
@@ -9775,10 +9463,10 @@
   /// processed "as is" without splitting.
   /// - "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED" : Splitting produced a list of
   /// bundles.
-  core.String outcome;
+  core.String? outcome;
 
   /// DEPRECATED in favor of bundles.
-  core.List<SourceSplitShard> shards;
+  core.List<SourceSplitShard>? shards;
 
   SourceSplitResponse();
 
@@ -9800,12 +9488,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bundles != null)
-          'bundles': bundles.map((value) => value.toJson()).toList(),
-        if (outcome != null) 'outcome': outcome,
+          'bundles': bundles!.map((value) => value.toJson()).toList(),
+        if (outcome != null) 'outcome': outcome!,
         if (shards != null)
-          'shards': shards.map((value) => value.toJson()).toList(),
+          'shards': shards!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -9821,10 +9509,10 @@
   /// the Source being split.
   /// - "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT" : Produce a Source based on
   /// the base of the Source being split.
-  core.String derivationMode;
+  core.String? derivationMode;
 
   /// DEPRECATED
-  Source source;
+  Source? source;
 
   SourceSplitShard();
 
@@ -9838,22 +9526,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (derivationMode != null) 'derivationMode': derivationMode,
-        if (source != null) 'source': source.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (derivationMode != null) 'derivationMode': derivationMode!,
+        if (source != null) 'source': source!.toJson(),
       };
 }
 
 /// Metadata for a Spanner connector used by the job.
 class SpannerIODetails {
   /// DatabaseId accessed in the connection.
-  core.String databaseId;
+  core.String? databaseId;
 
   /// InstanceId accessed in the connection.
-  core.String instanceId;
+  core.String? instanceId;
 
   /// ProjectId accessed in the connection.
-  core.String projectId;
+  core.String? projectId;
 
   SpannerIODetails();
 
@@ -9869,10 +9557,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (databaseId != null) 'databaseId': databaseId,
-        if (instanceId != null) 'instanceId': instanceId,
-        if (projectId != null) 'projectId': projectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (databaseId != null) 'databaseId': databaseId!,
+        if (instanceId != null) 'instanceId': instanceId!,
+        if (projectId != null) 'projectId': projectId!,
       };
 }
 
@@ -9880,10 +9568,10 @@
 /// encoded in JSON.
 class SplitInt64 {
   /// The high order bits, including the sign: n >> 32.
-  core.int highBits;
+  core.int? highBits;
 
   /// The low order bits: n & 0xffffffff.
-  core.int lowBits;
+  core.int? lowBits;
 
   SplitInt64();
 
@@ -9896,9 +9584,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (highBits != null) 'highBits': highBits,
-        if (lowBits != null) 'lowBits': lowBits,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (highBits != null) 'highBits': highBits!,
+        if (lowBits != null) 'lowBits': lowBits!,
       };
 }
 
@@ -9908,10 +9596,10 @@
   ///
   /// To obtain the next page of results, repeat the request with page_token set
   /// to this value.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Workers that have done work on the stage.
-  core.List<WorkerDetails> workers;
+  core.List<WorkerDetails>? workers;
 
   StageExecutionDetails();
 
@@ -9927,27 +9615,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (workers != null)
-          'workers': workers.map((value) => value.toJson()).toList(),
+          'workers': workers!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Description of an input or output of an execution stage.
 class StageSource {
   /// Dataflow service generated name for this source.
-  core.String name;
+  core.String? name;
 
   /// User name for the original user transform or collection with which this
   /// source is most closely associated.
-  core.String originalTransformOrCollection;
+  core.String? originalTransformOrCollection;
 
   /// Size of the source, if measurable.
-  core.String sizeBytes;
+  core.String? sizeBytes;
 
   /// Human-readable name for this source; may be user or system generated.
-  core.String userName;
+  core.String? userName;
 
   StageSource();
 
@@ -9967,12 +9655,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
         if (originalTransformOrCollection != null)
-          'originalTransformOrCollection': originalTransformOrCollection,
-        if (sizeBytes != null) 'sizeBytes': sizeBytes,
-        if (userName != null) 'userName': userName,
+          'originalTransformOrCollection': originalTransformOrCollection!,
+        if (sizeBytes != null) 'sizeBytes': sizeBytes!,
+        if (userName != null) 'userName': userName!,
       };
 }
 
@@ -9982,21 +9670,21 @@
   ///
   /// If the work item is completed, this is the actual end time of the stage.
   /// Otherwise, it is the predicted end time.
-  core.String endTime;
+  core.String? endTime;
 
   /// Metrics for this stage.
-  core.List<MetricUpdate> metrics;
+  core.List<MetricUpdate>? metrics;
 
   /// Progress for this stage.
   ///
   /// Only applicable to Batch jobs.
-  ProgressTimeseries progress;
+  ProgressTimeseries? progress;
 
   /// ID of this stage
-  core.String stageId;
+  core.String? stageId;
 
   /// Start time of this stage.
-  core.String startTime;
+  core.String? startTime;
 
   /// State of this stage.
   /// Possible string values are:
@@ -10007,7 +9695,7 @@
   /// - "EXECUTION_STATE_SUCCEEDED" : The component succeeded.
   /// - "EXECUTION_STATE_FAILED" : The component failed.
   /// - "EXECUTION_STATE_CANCELLED" : Execution of the component was cancelled.
-  core.String state;
+  core.String? state;
 
   StageSummary();
 
@@ -10036,24 +9724,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endTime != null) 'endTime': endTime!,
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
-        if (progress != null) 'progress': progress.toJson(),
-        if (stageId != null) 'stageId': stageId,
-        if (startTime != null) 'startTime': startTime,
-        if (state != null) 'state': state,
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
+        if (progress != null) 'progress': progress!.toJson(),
+        if (stageId != null) 'stageId': stageId!,
+        if (startTime != null) 'startTime': startTime!,
+        if (state != null) 'state': state!,
       };
 }
 
 /// State family configuration.
 class StateFamilyConfig {
   /// If true, this family corresponds to a read operation.
-  core.bool isRead;
+  core.bool? isRead;
 
   /// The state family value.
-  core.String stateFamily;
+  core.String? stateFamily;
 
   StateFamilyConfig();
 
@@ -10066,9 +9754,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (isRead != null) 'isRead': isRead,
-        if (stateFamily != null) 'stateFamily': stateFamily,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (isRead != null) 'isRead': isRead!,
+        if (stateFamily != null) 'stateFamily': stateFamily!,
       };
 }
 
@@ -10081,7 +9769,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -10089,13 +9777,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -10119,10 +9807,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -10141,13 +9829,13 @@
 /// of jobs, not just Map-Reduce.
 class Step {
   /// The kind of step in the Cloud Dataflow job.
-  core.String kind;
+  core.String? kind;
 
   /// The name that identifies the step.
   ///
   /// This must be unique for each step with respect to all other steps in the
   /// Cloud Dataflow job.
-  core.String name;
+  core.String? name;
 
   /// Named properties associated with the step.
   ///
@@ -10156,7 +9844,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> properties;
+  core.Map<core.String, core.Object>? properties;
 
   Step();
 
@@ -10179,10 +9867,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (properties != null) 'properties': properties,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (properties != null) 'properties': properties!,
       };
 }
 
@@ -10190,17 +9878,17 @@
 /// a streaming Dataflow job.
 class StreamLocation {
   /// The stream is a custom source.
-  CustomSourceLocation customSourceLocation;
+  CustomSourceLocation? customSourceLocation;
 
   /// The stream is a pubsub stream.
-  PubsubLocation pubsubLocation;
+  PubsubLocation? pubsubLocation;
 
   /// The stream is a streaming side input.
-  StreamingSideInputLocation sideInputLocation;
+  StreamingSideInputLocation? sideInputLocation;
 
   /// The stream is part of another computation within the current streaming
   /// Dataflow job.
-  StreamingStageLocation streamingStageLocation;
+  StreamingStageLocation? streamingStageLocation;
 
   StreamLocation();
 
@@ -10224,24 +9912,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (customSourceLocation != null)
-          'customSourceLocation': customSourceLocation.toJson(),
-        if (pubsubLocation != null) 'pubsubLocation': pubsubLocation.toJson(),
+          'customSourceLocation': customSourceLocation!.toJson(),
+        if (pubsubLocation != null) 'pubsubLocation': pubsubLocation!.toJson(),
         if (sideInputLocation != null)
-          'sideInputLocation': sideInputLocation.toJson(),
+          'sideInputLocation': sideInputLocation!.toJson(),
         if (streamingStageLocation != null)
-          'streamingStageLocation': streamingStageLocation.toJson(),
+          'streamingStageLocation': streamingStageLocation!.toJson(),
       };
 }
 
 /// Streaming appliance snapshot configuration.
 class StreamingApplianceSnapshotConfig {
   /// Indicates which endpoint is used to import appliance state.
-  core.String importStateEndpoint;
+  core.String? importStateEndpoint;
 
   /// If set, indicates the snapshot id for the snapshot being performed.
-  core.String snapshotId;
+  core.String? snapshotId;
 
   StreamingApplianceSnapshotConfig();
 
@@ -10254,30 +9942,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (importStateEndpoint != null)
-          'importStateEndpoint': importStateEndpoint,
-        if (snapshotId != null) 'snapshotId': snapshotId,
+          'importStateEndpoint': importStateEndpoint!,
+        if (snapshotId != null) 'snapshotId': snapshotId!,
       };
 }
 
 /// Configuration information for a single streaming computation.
 class StreamingComputationConfig {
   /// Unique identifier for this computation.
-  core.String computationId;
+  core.String? computationId;
 
   /// Instructions that comprise the computation.
-  core.List<ParallelInstruction> instructions;
+  core.List<ParallelInstruction>? instructions;
 
   /// Stage name of this computation.
-  core.String stageName;
+  core.String? stageName;
 
   /// System defined name for this computation.
-  core.String systemName;
+  core.String? systemName;
 
   /// Map from user name of stateful transforms in this stage to their state
   /// family.
-  core.Map<core.String, core.String> transformUserNameToStateFamily;
+  core.Map<core.String, core.String>? transformUserNameToStateFamily;
 
   StreamingComputationConfig();
 
@@ -10310,14 +9998,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (computationId != null) 'computationId': computationId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (computationId != null) 'computationId': computationId!,
         if (instructions != null)
-          'instructions': instructions.map((value) => value.toJson()).toList(),
-        if (stageName != null) 'stageName': stageName,
-        if (systemName != null) 'systemName': systemName,
+          'instructions': instructions!.map((value) => value.toJson()).toList(),
+        if (stageName != null) 'stageName': stageName!,
+        if (systemName != null) 'systemName': systemName!,
         if (transformUserNameToStateFamily != null)
-          'transformUserNameToStateFamily': transformUserNameToStateFamily,
+          'transformUserNameToStateFamily': transformUserNameToStateFamily!,
       };
 }
 
@@ -10325,10 +10013,10 @@
 /// computation ranges.
 class StreamingComputationRanges {
   /// The ID of the computation.
-  core.String computationId;
+  core.String? computationId;
 
   /// Data disk assignments for ranges from this computation.
-  core.List<KeyRangeDataDiskAssignment> rangeAssignments;
+  core.List<KeyRangeDataDiskAssignment>? rangeAssignments;
 
   StreamingComputationRanges();
 
@@ -10345,11 +10033,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (computationId != null) 'computationId': computationId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (computationId != null) 'computationId': computationId!,
         if (rangeAssignments != null)
           'rangeAssignments':
-              rangeAssignments.map((value) => value.toJson()).toList(),
+              rangeAssignments!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -10357,10 +10045,10 @@
 /// streaming computation ranges.
 class StreamingComputationTask {
   /// Contains ranges of a streaming computation this task should apply to.
-  core.List<StreamingComputationRanges> computationRanges;
+  core.List<StreamingComputationRanges>? computationRanges;
 
   /// Describes the set of data disks this task should apply to.
-  core.List<MountedDataDisk> dataDisks;
+  core.List<MountedDataDisk>? dataDisks;
 
   /// A type of streaming computation task.
   /// Possible string values are:
@@ -10370,7 +10058,7 @@
   /// computation range(s).
   /// - "STREAMING_COMPUTATION_TASK_START" : Start processing specified
   /// streaming computation range(s).
-  core.String taskType;
+  core.String? taskType;
 
   StreamingComputationTask();
 
@@ -10393,43 +10081,43 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (computationRanges != null)
           'computationRanges':
-              computationRanges.map((value) => value.toJson()).toList(),
+              computationRanges!.map((value) => value.toJson()).toList(),
         if (dataDisks != null)
-          'dataDisks': dataDisks.map((value) => value.toJson()).toList(),
-        if (taskType != null) 'taskType': taskType,
+          'dataDisks': dataDisks!.map((value) => value.toJson()).toList(),
+        if (taskType != null) 'taskType': taskType!,
       };
 }
 
 /// A task that carries configuration information for streaming computations.
 class StreamingConfigTask {
   /// Chunk size for commit streams from the harness to windmill.
-  core.String commitStreamChunkSizeBytes;
+  core.String? commitStreamChunkSizeBytes;
 
   /// Chunk size for get data streams from the harness to windmill.
-  core.String getDataStreamChunkSizeBytes;
+  core.String? getDataStreamChunkSizeBytes;
 
   /// Maximum size for work item commit supported windmill storage layer.
-  core.String maxWorkItemCommitBytes;
+  core.String? maxWorkItemCommitBytes;
 
   /// Set of computation configuration information.
-  core.List<StreamingComputationConfig> streamingComputationConfigs;
+  core.List<StreamingComputationConfig>? streamingComputationConfigs;
 
   /// Map from user step names to state families.
-  core.Map<core.String, core.String> userStepToStateFamilyNameMap;
+  core.Map<core.String, core.String>? userStepToStateFamilyNameMap;
 
   /// If present, the worker must use this endpoint to communicate with Windmill
   /// Service dispatchers, otherwise the worker must continue to use whatever
   /// endpoint it had been using.
-  core.String windmillServiceEndpoint;
+  core.String? windmillServiceEndpoint;
 
   /// If present, the worker must use this port to communicate with Windmill
   /// Service dispatchers.
   ///
   /// Only applicable when windmill_service_endpoint is specified.
-  core.String windmillServicePort;
+  core.String? windmillServicePort;
 
   StreamingConfigTask();
 
@@ -10472,44 +10160,44 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (commitStreamChunkSizeBytes != null)
-          'commitStreamChunkSizeBytes': commitStreamChunkSizeBytes,
+          'commitStreamChunkSizeBytes': commitStreamChunkSizeBytes!,
         if (getDataStreamChunkSizeBytes != null)
-          'getDataStreamChunkSizeBytes': getDataStreamChunkSizeBytes,
+          'getDataStreamChunkSizeBytes': getDataStreamChunkSizeBytes!,
         if (maxWorkItemCommitBytes != null)
-          'maxWorkItemCommitBytes': maxWorkItemCommitBytes,
+          'maxWorkItemCommitBytes': maxWorkItemCommitBytes!,
         if (streamingComputationConfigs != null)
-          'streamingComputationConfigs': streamingComputationConfigs
+          'streamingComputationConfigs': streamingComputationConfigs!
               .map((value) => value.toJson())
               .toList(),
         if (userStepToStateFamilyNameMap != null)
-          'userStepToStateFamilyNameMap': userStepToStateFamilyNameMap,
+          'userStepToStateFamilyNameMap': userStepToStateFamilyNameMap!,
         if (windmillServiceEndpoint != null)
-          'windmillServiceEndpoint': windmillServiceEndpoint,
+          'windmillServiceEndpoint': windmillServiceEndpoint!,
         if (windmillServicePort != null)
-          'windmillServicePort': windmillServicePort,
+          'windmillServicePort': windmillServicePort!,
       };
 }
 
 /// A task which initializes part of a streaming Dataflow job.
 class StreamingSetupTask {
   /// The user has requested drain.
-  core.bool drain;
+  core.bool? drain;
 
   /// The TCP port on which the worker should listen for messages from other
   /// streaming computation workers.
-  core.int receiveWorkPort;
+  core.int? receiveWorkPort;
 
   /// Configures streaming appliance snapshot.
-  StreamingApplianceSnapshotConfig snapshotConfig;
+  StreamingApplianceSnapshotConfig? snapshotConfig;
 
   /// The global topology of the streaming Dataflow job.
-  TopologyConfig streamingComputationTopology;
+  TopologyConfig? streamingComputationTopology;
 
   /// The TCP port used by the worker to communicate with the Dataflow worker
   /// harness.
-  core.int workerHarnessPort;
+  core.int? workerHarnessPort;
 
   StreamingSetupTask();
 
@@ -10534,23 +10222,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (drain != null) 'drain': drain,
-        if (receiveWorkPort != null) 'receiveWorkPort': receiveWorkPort,
-        if (snapshotConfig != null) 'snapshotConfig': snapshotConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (drain != null) 'drain': drain!,
+        if (receiveWorkPort != null) 'receiveWorkPort': receiveWorkPort!,
+        if (snapshotConfig != null) 'snapshotConfig': snapshotConfig!.toJson(),
         if (streamingComputationTopology != null)
-          'streamingComputationTopology': streamingComputationTopology.toJson(),
-        if (workerHarnessPort != null) 'workerHarnessPort': workerHarnessPort,
+          'streamingComputationTopology':
+              streamingComputationTopology!.toJson(),
+        if (workerHarnessPort != null) 'workerHarnessPort': workerHarnessPort!,
       };
 }
 
 /// Identifies the location of a streaming side input.
 class StreamingSideInputLocation {
   /// Identifies the state family where this side input is stored.
-  core.String stateFamily;
+  core.String? stateFamily;
 
   /// Identifies the particular side input within the streaming Dataflow job.
-  core.String tag;
+  core.String? tag;
 
   StreamingSideInputLocation();
 
@@ -10563,9 +10252,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stateFamily != null) 'stateFamily': stateFamily,
-        if (tag != null) 'tag': tag,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stateFamily != null) 'stateFamily': stateFamily!,
+        if (tag != null) 'tag': tag!,
       };
 }
 
@@ -10573,7 +10262,7 @@
 /// communication.
 class StreamingStageLocation {
   /// Identifies the particular stream within the streaming Dataflow job.
-  core.String streamId;
+  core.String? streamId;
 
   StreamingStageLocation();
 
@@ -10583,15 +10272,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (streamId != null) 'streamId': streamId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (streamId != null) 'streamId': streamId!,
       };
 }
 
 /// A metric value representing a list of strings.
 class StringList {
   /// Elements of the list.
-  core.List<core.String> elements;
+  core.List<core.String>? elements;
 
   StringList();
 
@@ -10603,8 +10292,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (elements != null) 'elements': elements,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (elements != null) 'elements': elements!,
       };
 }
 
@@ -10615,13 +10304,13 @@
   /// Identifier for this message type.
   ///
   /// Used by external systems to internationalize or personalize message.
-  core.String messageKey;
+  core.String? messageKey;
 
   /// Human-readable version of message.
-  core.String messageText;
+  core.String? messageText;
 
   /// The structured data associated with this message.
-  core.List<Parameter> parameters;
+  core.List<Parameter>? parameters;
 
   StructuredMessage();
 
@@ -10640,21 +10329,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (messageKey != null) 'messageKey': messageKey,
-        if (messageText != null) 'messageText': messageText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (messageKey != null) 'messageKey': messageKey!,
+        if (messageText != null) 'messageText': messageText!,
         if (parameters != null)
-          'parameters': parameters.map((value) => value.toJson()).toList(),
+          'parameters': parameters!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Taskrunner configuration settings.
 class TaskRunnerSettings {
   /// Whether to also send taskrunner log info to stderr.
-  core.bool alsologtostderr;
+  core.bool? alsologtostderr;
 
   /// The location on the worker for task-specific subdirectories.
-  core.String baseTaskDir;
+  core.String? baseTaskDir;
 
   /// The base URL for the taskrunner to use when accessing Google Cloud APIs.
   ///
@@ -10663,29 +10352,29 @@
   /// resolving these relative URLs. The normative algorithm used is defined by
   /// RFC 1808, "Relative Uniform Resource Locators". If not specified, the
   /// default value is "http://www.googleapis.com/"
-  core.String baseUrl;
+  core.String? baseUrl;
 
   /// The file to store preprocessing commands in.
-  core.String commandlinesFileName;
+  core.String? commandlinesFileName;
 
   /// Whether to continue taskrunner if an exception is hit.
-  core.bool continueOnException;
+  core.bool? continueOnException;
 
   /// The API version of endpoint, e.g. "v1b3"
-  core.String dataflowApiVersion;
+  core.String? dataflowApiVersion;
 
   /// The command to launch the worker harness.
-  core.String harnessCommand;
+  core.String? harnessCommand;
 
   /// The suggested backend language.
-  core.String languageHint;
+  core.String? languageHint;
 
   /// The directory on the VM to store logs.
-  core.String logDir;
+  core.String? logDir;
 
   /// Whether to send taskrunner log info to Google Compute Engine VM serial
   /// console.
-  core.bool logToSerialconsole;
+  core.bool? logToSerialconsole;
 
   /// Indicates where to put logs.
   ///
@@ -10693,25 +10382,25 @@
   /// resource type is: Google Cloud Storage:
   /// storage.googleapis.com/{bucket}/{object}
   /// bucket.storage.googleapis.com/{object}
-  core.String logUploadLocation;
+  core.String? logUploadLocation;
 
   /// The OAuth2 scopes to be requested by the taskrunner in order to access the
   /// Cloud Dataflow API.
-  core.List<core.String> oauthScopes;
+  core.List<core.String>? oauthScopes;
 
   /// The settings to pass to the parallel worker harness.
-  WorkerSettings parallelWorkerSettings;
+  WorkerSettings? parallelWorkerSettings;
 
   /// The streaming worker main class name.
-  core.String streamingWorkerMainClass;
+  core.String? streamingWorkerMainClass;
 
   /// The UNIX group ID on the worker VM to use for tasks launched by
   /// taskrunner; e.g. "wheel".
-  core.String taskGroup;
+  core.String? taskGroup;
 
   /// The UNIX user ID on the worker VM to use for tasks launched by taskrunner;
   /// e.g. "root".
-  core.String taskUser;
+  core.String? taskUser;
 
   /// The prefix of the resources the taskrunner should use for temporary
   /// storage.
@@ -10719,13 +10408,13 @@
   /// The supported resource type is: Google Cloud Storage:
   /// storage.googleapis.com/{bucket}/{object}
   /// bucket.storage.googleapis.com/{object}
-  core.String tempStoragePrefix;
+  core.String? tempStoragePrefix;
 
   /// The ID string of the VM.
-  core.String vmId;
+  core.String? vmId;
 
   /// The file to store the workflow in.
-  core.String workflowFileName;
+  core.String? workflowFileName;
 
   TaskRunnerSettings();
 
@@ -10794,32 +10483,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alsologtostderr != null) 'alsologtostderr': alsologtostderr,
-        if (baseTaskDir != null) 'baseTaskDir': baseTaskDir,
-        if (baseUrl != null) 'baseUrl': baseUrl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alsologtostderr != null) 'alsologtostderr': alsologtostderr!,
+        if (baseTaskDir != null) 'baseTaskDir': baseTaskDir!,
+        if (baseUrl != null) 'baseUrl': baseUrl!,
         if (commandlinesFileName != null)
-          'commandlinesFileName': commandlinesFileName,
+          'commandlinesFileName': commandlinesFileName!,
         if (continueOnException != null)
-          'continueOnException': continueOnException,
+          'continueOnException': continueOnException!,
         if (dataflowApiVersion != null)
-          'dataflowApiVersion': dataflowApiVersion,
-        if (harnessCommand != null) 'harnessCommand': harnessCommand,
-        if (languageHint != null) 'languageHint': languageHint,
-        if (logDir != null) 'logDir': logDir,
+          'dataflowApiVersion': dataflowApiVersion!,
+        if (harnessCommand != null) 'harnessCommand': harnessCommand!,
+        if (languageHint != null) 'languageHint': languageHint!,
+        if (logDir != null) 'logDir': logDir!,
         if (logToSerialconsole != null)
-          'logToSerialconsole': logToSerialconsole,
-        if (logUploadLocation != null) 'logUploadLocation': logUploadLocation,
-        if (oauthScopes != null) 'oauthScopes': oauthScopes,
+          'logToSerialconsole': logToSerialconsole!,
+        if (logUploadLocation != null) 'logUploadLocation': logUploadLocation!,
+        if (oauthScopes != null) 'oauthScopes': oauthScopes!,
         if (parallelWorkerSettings != null)
-          'parallelWorkerSettings': parallelWorkerSettings.toJson(),
+          'parallelWorkerSettings': parallelWorkerSettings!.toJson(),
         if (streamingWorkerMainClass != null)
-          'streamingWorkerMainClass': streamingWorkerMainClass,
-        if (taskGroup != null) 'taskGroup': taskGroup,
-        if (taskUser != null) 'taskUser': taskUser,
-        if (tempStoragePrefix != null) 'tempStoragePrefix': tempStoragePrefix,
-        if (vmId != null) 'vmId': vmId,
-        if (workflowFileName != null) 'workflowFileName': workflowFileName,
+          'streamingWorkerMainClass': streamingWorkerMainClass!,
+        if (taskGroup != null) 'taskGroup': taskGroup!,
+        if (taskUser != null) 'taskUser': taskUser!,
+        if (tempStoragePrefix != null) 'tempStoragePrefix': tempStoragePrefix!,
+        if (vmId != null) 'vmId': vmId!,
+        if (workflowFileName != null) 'workflowFileName': workflowFileName!,
       };
 }
 
@@ -10828,15 +10517,15 @@
   /// A description of the template.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// The name of the template.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// The parameters for the template.
-  core.List<ParameterMetadata> parameters;
+  core.List<ParameterMetadata>? parameters;
 
   TemplateMetadata();
 
@@ -10855,11 +10544,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (name != null) 'name': name!,
         if (parameters != null)
-          'parameters': parameters.map((value) => value.toJson()).toList(),
+          'parameters': parameters!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -10877,31 +10566,31 @@
   /// Job graph and metadata if it is a legacy Template.
   ///
   /// Container image path and metadata if it is flex Template.
-  Artifact artifact;
+  Artifact? artifact;
 
   /// Creation time of this TemplateVersion.
-  core.String createTime;
+  core.String? createTime;
 
   /// Template description from the user.
-  core.String description;
+  core.String? description;
 
   /// A customized name for Template.
   ///
   /// Multiple TemplateVersions per Template.
-  core.String displayName;
+  core.String? displayName;
 
   /// Labels for the Template Version.
   ///
   /// Labels can be duplicate within Template.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// A unique project_id.
   ///
   /// Multiple Templates per Project.
-  core.String projectId;
+  core.String? projectId;
 
   /// Alias for version_id, helps locate a TemplateVersion.
-  core.List<core.String> tags;
+  core.List<core.String>? tags;
 
   /// Either LEGACY or FLEX.
   ///
@@ -10910,10 +10599,10 @@
   /// - "TEMPLATE_TYPE_UNSPECIFIED" : Default value. Not a useful zero case.
   /// - "LEGACY" : Legacy Template.
   /// - "FLEX" : Flex Template.
-  core.String type;
+  core.String? type;
 
   /// An auto generated version_id for TemplateVersion.
-  core.String versionId;
+  core.String? versionId;
 
   TemplateVersion();
 
@@ -10956,16 +10645,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (artifact != null) 'artifact': artifact.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (projectId != null) 'projectId': projectId,
-        if (tags != null) 'tags': tags,
-        if (type != null) 'type': type,
-        if (versionId != null) 'versionId': versionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (artifact != null) 'artifact': artifact!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (projectId != null) 'projectId': projectId!,
+        if (tags != null) 'tags': tags!,
+        if (type != null) 'type': type!,
+        if (versionId != null) 'versionId': versionId!,
       };
 }
 
@@ -10973,19 +10662,19 @@
 /// and their sharded locations.
 class TopologyConfig {
   /// The computations associated with a streaming Dataflow job.
-  core.List<ComputationTopology> computations;
+  core.List<ComputationTopology>? computations;
 
   /// The disks assigned to a streaming Dataflow job.
-  core.List<DataDiskAssignment> dataDiskAssignments;
+  core.List<DataDiskAssignment>? dataDiskAssignments;
 
   /// The size (in bits) of keys that will be assigned to source messages.
-  core.int forwardingKeyBits;
+  core.int? forwardingKeyBits;
 
   /// Version number for persistent state.
-  core.int persistentStateVersion;
+  core.int? persistentStateVersion;
 
   /// Maps user stage names to stable computation names.
-  core.Map<core.String, core.String> userStageToComputationNameMap;
+  core.Map<core.String, core.String>? userStageToComputationNameMap;
 
   TopologyConfig();
 
@@ -11021,30 +10710,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (computations != null)
-          'computations': computations.map((value) => value.toJson()).toList(),
+          'computations': computations!.map((value) => value.toJson()).toList(),
         if (dataDiskAssignments != null)
           'dataDiskAssignments':
-              dataDiskAssignments.map((value) => value.toJson()).toList(),
-        if (forwardingKeyBits != null) 'forwardingKeyBits': forwardingKeyBits,
+              dataDiskAssignments!.map((value) => value.toJson()).toList(),
+        if (forwardingKeyBits != null) 'forwardingKeyBits': forwardingKeyBits!,
         if (persistentStateVersion != null)
-          'persistentStateVersion': persistentStateVersion,
+          'persistentStateVersion': persistentStateVersion!,
         if (userStageToComputationNameMap != null)
-          'userStageToComputationNameMap': userStageToComputationNameMap,
+          'userStageToComputationNameMap': userStageToComputationNameMap!,
       };
 }
 
 /// Description of the type, names/ids, and input/outputs for a transform.
 class TransformSummary {
   /// Transform-specific display data.
-  core.List<DisplayData> displayData;
+  core.List<DisplayData>? displayData;
 
   /// SDK generated id of this transform instance.
-  core.String id;
+  core.String? id;
 
   /// User names for all collection inputs to this transform.
-  core.List<core.String> inputCollectionName;
+  core.List<core.String>? inputCollectionName;
 
   /// Type of transform.
   /// Possible string values are:
@@ -11059,13 +10748,13 @@
   /// - "SINGLETON_KIND" : Creates a Singleton view of a collection.
   /// - "SHUFFLE_KIND" : Opening or closing a shuffle session, often as part of
   /// a GroupByKey.
-  core.String kind;
+  core.String? kind;
 
   /// User provided name for this transform instance.
-  core.String name;
+  core.String? name;
 
   /// User names for all collection outputs to this transform.
-  core.List<core.String> outputCollectionName;
+  core.List<core.String>? outputCollectionName;
 
   TransformSummary();
 
@@ -11097,28 +10786,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (displayData != null)
-          'displayData': displayData.map((value) => value.toJson()).toList(),
-        if (id != null) 'id': id,
+          'displayData': displayData!.map((value) => value.toJson()).toList(),
+        if (id != null) 'id': id!,
         if (inputCollectionName != null)
-          'inputCollectionName': inputCollectionName,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
+          'inputCollectionName': inputCollectionName!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
         if (outputCollectionName != null)
-          'outputCollectionName': outputCollectionName,
+          'outputCollectionName': outputCollectionName!,
       };
 }
 
 /// Response to the validation request.
 class ValidateResponse {
   /// Will be empty if validation succeeds.
-  core.String errorMessage;
+  core.String? errorMessage;
 
   /// Information about the validated query.
   ///
   /// Not defined if validation fails.
-  QueryInfo queryInfo;
+  QueryInfo? queryInfo;
 
   ValidateResponse();
 
@@ -11132,9 +10821,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (errorMessage != null) 'errorMessage': errorMessage,
-        if (queryInfo != null) 'queryInfo': queryInfo.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (errorMessage != null) 'errorMessage': errorMessage!,
+        if (queryInfo != null) 'queryInfo': queryInfo!.toJson(),
       };
 }
 
@@ -11142,50 +10831,50 @@
 /// cloud.
 class WorkItem {
   /// Work item-specific configuration as an opaque blob.
-  core.String configuration;
+  core.String? configuration;
 
   /// Identifies this WorkItem.
-  core.String id;
+  core.String? id;
 
   /// The initial index to use when reporting the status of the WorkItem.
-  core.String initialReportIndex;
+  core.String? initialReportIndex;
 
   /// Identifies the workflow job this WorkItem belongs to.
-  core.String jobId;
+  core.String? jobId;
 
   /// Time when the lease on this Work will expire.
-  core.String leaseExpireTime;
+  core.String? leaseExpireTime;
 
   /// Additional information for MapTask WorkItems.
-  MapTask mapTask;
+  MapTask? mapTask;
 
   /// Any required packages that need to be fetched in order to execute this
   /// WorkItem.
-  core.List<Package> packages;
+  core.List<Package>? packages;
 
   /// Identifies the cloud project this WorkItem belongs to.
-  core.String projectId;
+  core.String? projectId;
 
   /// Recommended reporting interval.
-  core.String reportStatusInterval;
+  core.String? reportStatusInterval;
 
   /// Additional information for SeqMapTask WorkItems.
-  SeqMapTask seqMapTask;
+  SeqMapTask? seqMapTask;
 
   /// Additional information for ShellTask WorkItems.
-  ShellTask shellTask;
+  ShellTask? shellTask;
 
   /// Additional information for source operation WorkItems.
-  SourceOperationRequest sourceOperationTask;
+  SourceOperationRequest? sourceOperationTask;
 
   /// Additional information for StreamingComputationTask WorkItems.
-  StreamingComputationTask streamingComputationTask;
+  StreamingComputationTask? streamingComputationTask;
 
   /// Additional information for StreamingConfigTask WorkItems.
-  StreamingConfigTask streamingConfigTask;
+  StreamingConfigTask? streamingConfigTask;
 
   /// Additional information for StreamingSetupTask WorkItems.
-  StreamingSetupTask streamingSetupTask;
+  StreamingSetupTask? streamingSetupTask;
 
   WorkItem();
 
@@ -11248,51 +10937,51 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (configuration != null) 'configuration': configuration,
-        if (id != null) 'id': id,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (configuration != null) 'configuration': configuration!,
+        if (id != null) 'id': id!,
         if (initialReportIndex != null)
-          'initialReportIndex': initialReportIndex,
-        if (jobId != null) 'jobId': jobId,
-        if (leaseExpireTime != null) 'leaseExpireTime': leaseExpireTime,
-        if (mapTask != null) 'mapTask': mapTask.toJson(),
+          'initialReportIndex': initialReportIndex!,
+        if (jobId != null) 'jobId': jobId!,
+        if (leaseExpireTime != null) 'leaseExpireTime': leaseExpireTime!,
+        if (mapTask != null) 'mapTask': mapTask!.toJson(),
         if (packages != null)
-          'packages': packages.map((value) => value.toJson()).toList(),
-        if (projectId != null) 'projectId': projectId,
+          'packages': packages!.map((value) => value.toJson()).toList(),
+        if (projectId != null) 'projectId': projectId!,
         if (reportStatusInterval != null)
-          'reportStatusInterval': reportStatusInterval,
-        if (seqMapTask != null) 'seqMapTask': seqMapTask.toJson(),
-        if (shellTask != null) 'shellTask': shellTask.toJson(),
+          'reportStatusInterval': reportStatusInterval!,
+        if (seqMapTask != null) 'seqMapTask': seqMapTask!.toJson(),
+        if (shellTask != null) 'shellTask': shellTask!.toJson(),
         if (sourceOperationTask != null)
-          'sourceOperationTask': sourceOperationTask.toJson(),
+          'sourceOperationTask': sourceOperationTask!.toJson(),
         if (streamingComputationTask != null)
-          'streamingComputationTask': streamingComputationTask.toJson(),
+          'streamingComputationTask': streamingComputationTask!.toJson(),
         if (streamingConfigTask != null)
-          'streamingConfigTask': streamingConfigTask.toJson(),
+          'streamingConfigTask': streamingConfigTask!.toJson(),
         if (streamingSetupTask != null)
-          'streamingSetupTask': streamingSetupTask.toJson(),
+          'streamingSetupTask': streamingSetupTask!.toJson(),
       };
 }
 
 /// Information about an individual work item execution.
 class WorkItemDetails {
   /// Attempt ID of this work item
-  core.String attemptId;
+  core.String? attemptId;
 
   /// End time of this work item attempt.
   ///
   /// If the work item is completed, this is the actual end time of the work
   /// item. Otherwise, it is the predicted end time.
-  core.String endTime;
+  core.String? endTime;
 
   /// Metrics for this work item.
-  core.List<MetricUpdate> metrics;
+  core.List<MetricUpdate>? metrics;
 
   /// Progress of this work item.
-  ProgressTimeseries progress;
+  ProgressTimeseries? progress;
 
   /// Start time of this work item attempt.
-  core.String startTime;
+  core.String? startTime;
 
   /// State of this work item.
   /// Possible string values are:
@@ -11303,10 +10992,10 @@
   /// - "EXECUTION_STATE_SUCCEEDED" : The component succeeded.
   /// - "EXECUTION_STATE_FAILED" : The component failed.
   /// - "EXECUTION_STATE_CANCELLED" : Execution of the component was cancelled.
-  core.String state;
+  core.String? state;
 
   /// Name of this work item.
-  core.String taskId;
+  core.String? taskId;
 
   WorkItemDetails();
 
@@ -11338,15 +11027,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attemptId != null) 'attemptId': attemptId,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attemptId != null) 'attemptId': attemptId!,
+        if (endTime != null) 'endTime': endTime!,
         if (metrics != null)
-          'metrics': metrics.map((value) => value.toJson()).toList(),
-        if (progress != null) 'progress': progress.toJson(),
-        if (startTime != null) 'startTime': startTime,
-        if (state != null) 'state': state,
-        if (taskId != null) 'taskId': taskId,
+          'metrics': metrics!.map((value) => value.toJson()).toList(),
+        if (progress != null) 'progress': progress!.toJson(),
+        if (startTime != null) 'startTime': startTime!,
+        if (state != null) 'state': state!,
+        if (taskId != null) 'taskId': taskId!,
       };
 }
 
@@ -11358,23 +11047,23 @@
   /// This will not be set to OK, unless supported by the specific kind of
   /// WorkItem. It can be used for the backend to indicate a WorkItem must
   /// terminate, e.g., for aborting work.
-  Status completeWorkStatus;
+  Status? completeWorkStatus;
 
   /// Other data returned by the service, specific to the particular worker
   /// harness.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> harnessData;
+  core.Map<core.String, core.Object>? harnessData;
 
   /// A hot key is a symptom of poor data distribution in which there are enough
   /// elements mapped to a single key to impact pipeline performance.
   ///
   /// When present, this field includes metadata associated with any hot key.
-  HotKeyDetection hotKeyDetection;
+  HotKeyDetection? hotKeyDetection;
 
   /// Time at which the current lease will expire.
-  core.String leaseExpireTime;
+  core.String? leaseExpireTime;
 
   /// The short ids that workers should use in subsequent metric updates.
   ///
@@ -11382,26 +11071,26 @@
   /// request the short_id again if a worker lost track of it (e.g. if the
   /// worker is recovering from a crash). NOTE: it is possible that the response
   /// may have short ids for a subset of the metrics.
-  core.List<MetricShortId> metricShortId;
+  core.List<MetricShortId>? metricShortId;
 
   /// The index value to use for the next report sent by the worker.
   ///
   /// Note: If the report call fails for whatever reason, the worker should
   /// reuse this index for subsequent report attempts.
-  core.String nextReportIndex;
+  core.String? nextReportIndex;
 
   /// New recommended reporting interval.
-  core.String reportStatusInterval;
+  core.String? reportStatusInterval;
 
   /// The progress point in the WorkItem where the Dataflow service suggests
   /// that the worker truncate the task.
-  ApproximateSplitRequest splitRequest;
+  ApproximateSplitRequest? splitRequest;
 
   /// DEPRECATED in favor of split_request.
-  ApproximateProgress suggestedStopPoint;
+  ApproximateProgress? suggestedStopPoint;
 
   /// Obsolete, always empty.
-  Position suggestedStopPosition;
+  Position? suggestedStopPosition;
 
   WorkItemServiceState();
 
@@ -11453,49 +11142,49 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (completeWorkStatus != null)
-          'completeWorkStatus': completeWorkStatus.toJson(),
-        if (harnessData != null) 'harnessData': harnessData,
+          'completeWorkStatus': completeWorkStatus!.toJson(),
+        if (harnessData != null) 'harnessData': harnessData!,
         if (hotKeyDetection != null)
-          'hotKeyDetection': hotKeyDetection.toJson(),
-        if (leaseExpireTime != null) 'leaseExpireTime': leaseExpireTime,
+          'hotKeyDetection': hotKeyDetection!.toJson(),
+        if (leaseExpireTime != null) 'leaseExpireTime': leaseExpireTime!,
         if (metricShortId != null)
           'metricShortId':
-              metricShortId.map((value) => value.toJson()).toList(),
-        if (nextReportIndex != null) 'nextReportIndex': nextReportIndex,
+              metricShortId!.map((value) => value.toJson()).toList(),
+        if (nextReportIndex != null) 'nextReportIndex': nextReportIndex!,
         if (reportStatusInterval != null)
-          'reportStatusInterval': reportStatusInterval,
-        if (splitRequest != null) 'splitRequest': splitRequest.toJson(),
+          'reportStatusInterval': reportStatusInterval!,
+        if (splitRequest != null) 'splitRequest': splitRequest!.toJson(),
         if (suggestedStopPoint != null)
-          'suggestedStopPoint': suggestedStopPoint.toJson(),
+          'suggestedStopPoint': suggestedStopPoint!.toJson(),
         if (suggestedStopPosition != null)
-          'suggestedStopPosition': suggestedStopPosition.toJson(),
+          'suggestedStopPosition': suggestedStopPosition!.toJson(),
       };
 }
 
 /// Conveys a worker's progress through the work described by a WorkItem.
 class WorkItemStatus {
   /// True if the WorkItem was completed (successfully or unsuccessfully).
-  core.bool completed;
+  core.bool? completed;
 
   /// Worker output counters for this WorkItem.
-  core.List<CounterUpdate> counterUpdates;
+  core.List<CounterUpdate>? counterUpdates;
 
   /// See documentation of stop_position.
-  DynamicSourceSplit dynamicSourceSplit;
+  DynamicSourceSplit? dynamicSourceSplit;
 
   /// Specifies errors which occurred during processing.
   ///
   /// If errors are provided, and completed = true, then the WorkItem is
   /// considered to have failed.
-  core.List<Status> errors;
+  core.List<Status>? errors;
 
   /// DEPRECATED in favor of counter_updates.
-  core.List<MetricUpdate> metricUpdates;
+  core.List<MetricUpdate>? metricUpdates;
 
   /// DEPRECATED in favor of reported_progress.
-  ApproximateProgress progress;
+  ApproximateProgress? progress;
 
   /// The report index.
   ///
@@ -11508,20 +11197,20 @@
   /// the worker must submit the same report multiple times before getting back
   /// a response. The worker should not submit a subsequent report until the
   /// response for the previous report had been received from the service.
-  core.String reportIndex;
+  core.String? reportIndex;
 
   /// The worker's progress through this WorkItem.
-  ApproximateReportedProgress reportedProgress;
+  ApproximateReportedProgress? reportedProgress;
 
   /// Amount of time the worker requests for its lease.
-  core.String requestedLeaseDuration;
+  core.String? requestedLeaseDuration;
 
   /// DEPRECATED in favor of dynamic_source_split.
-  SourceFork sourceFork;
+  SourceFork? sourceFork;
 
   /// If the work item represented a SourceOperationRequest, and the work is
   /// completed, contains the result of the operation.
-  SourceOperationResponse sourceOperationResponse;
+  SourceOperationResponse? sourceOperationResponse;
 
   /// A worker may split an active map task in two parts, "primary" and
   /// "residual", continuing to process the primary part and returning the
@@ -11548,13 +11237,13 @@
   /// proposed_stop_position should be interpreted relative to P, and in a
   /// potential subsequent dynamic_source_split into {P', R'}, P' and R' must be
   /// together equivalent to P, etc.
-  Position stopPosition;
+  Position? stopPosition;
 
   /// Total time the worker spent being throttled by external systems.
-  core.double totalThrottlerWaitTimeSeconds;
+  core.double? totalThrottlerWaitTimeSeconds;
 
   /// Identifies the WorkItem.
-  core.String workItemId;
+  core.String? workItemId;
 
   WorkItemStatus();
 
@@ -11620,41 +11309,41 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (completed != null) 'completed': completed,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (completed != null) 'completed': completed!,
         if (counterUpdates != null)
           'counterUpdates':
-              counterUpdates.map((value) => value.toJson()).toList(),
+              counterUpdates!.map((value) => value.toJson()).toList(),
         if (dynamicSourceSplit != null)
-          'dynamicSourceSplit': dynamicSourceSplit.toJson(),
+          'dynamicSourceSplit': dynamicSourceSplit!.toJson(),
         if (errors != null)
-          'errors': errors.map((value) => value.toJson()).toList(),
+          'errors': errors!.map((value) => value.toJson()).toList(),
         if (metricUpdates != null)
           'metricUpdates':
-              metricUpdates.map((value) => value.toJson()).toList(),
-        if (progress != null) 'progress': progress.toJson(),
-        if (reportIndex != null) 'reportIndex': reportIndex,
+              metricUpdates!.map((value) => value.toJson()).toList(),
+        if (progress != null) 'progress': progress!.toJson(),
+        if (reportIndex != null) 'reportIndex': reportIndex!,
         if (reportedProgress != null)
-          'reportedProgress': reportedProgress.toJson(),
+          'reportedProgress': reportedProgress!.toJson(),
         if (requestedLeaseDuration != null)
-          'requestedLeaseDuration': requestedLeaseDuration,
-        if (sourceFork != null) 'sourceFork': sourceFork.toJson(),
+          'requestedLeaseDuration': requestedLeaseDuration!,
+        if (sourceFork != null) 'sourceFork': sourceFork!.toJson(),
         if (sourceOperationResponse != null)
-          'sourceOperationResponse': sourceOperationResponse.toJson(),
-        if (stopPosition != null) 'stopPosition': stopPosition.toJson(),
+          'sourceOperationResponse': sourceOperationResponse!.toJson(),
+        if (stopPosition != null) 'stopPosition': stopPosition!.toJson(),
         if (totalThrottlerWaitTimeSeconds != null)
-          'totalThrottlerWaitTimeSeconds': totalThrottlerWaitTimeSeconds,
-        if (workItemId != null) 'workItemId': workItemId,
+          'totalThrottlerWaitTimeSeconds': totalThrottlerWaitTimeSeconds!,
+        if (workItemId != null) 'workItemId': workItemId!,
       };
 }
 
 /// Information about a worker
 class WorkerDetails {
   /// Work items processed by this worker, sorted by time.
-  core.List<WorkItemDetails> workItems;
+  core.List<WorkItemDetails>? workItems;
 
   /// Name of this worker
-  core.String workerName;
+  core.String? workerName;
 
   WorkerDetails();
 
@@ -11670,10 +11359,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (workItems != null)
-          'workItems': workItems.map((value) => value.toJson()).toList(),
-        if (workerName != null) 'workerName': workerName,
+          'workItems': workItems!.map((value) => value.toJson()).toList(),
+        if (workerName != null) 'workerName': workerName!,
       };
 }
 
@@ -11683,7 +11372,7 @@
 /// this health ping belongs to.
 class WorkerHealthReport {
   /// A message describing any unusual health reports.
-  core.String msg;
+  core.String? msg;
 
   /// The pods running on the worker.
   ///
@@ -11694,25 +11383,25 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> pods;
+  core.List<core.Map<core.String, core.Object>>? pods;
 
   /// The interval at which the worker is sending health reports.
   ///
   /// The default value of 0 should be interpreted as the field is not being
   /// explicitly set by the worker.
-  core.String reportInterval;
+  core.String? reportInterval;
 
   /// Whether the VM is in a permanently broken state.
   ///
   /// Broken VMs should be abandoned or deleted ASAP to avoid assigning or
   /// completing any work.
-  core.bool vmIsBroken;
+  core.bool? vmIsBroken;
 
   /// Whether the VM is currently healthy.
-  core.bool vmIsHealthy;
+  core.bool? vmIsHealthy;
 
   /// The time the VM was booted.
-  core.String vmStartupTime;
+  core.String? vmStartupTime;
 
   WorkerHealthReport();
 
@@ -11745,13 +11434,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (msg != null) 'msg': msg,
-        if (pods != null) 'pods': pods,
-        if (reportInterval != null) 'reportInterval': reportInterval,
-        if (vmIsBroken != null) 'vmIsBroken': vmIsBroken,
-        if (vmIsHealthy != null) 'vmIsHealthy': vmIsHealthy,
-        if (vmStartupTime != null) 'vmStartupTime': vmStartupTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (msg != null) 'msg': msg!,
+        if (pods != null) 'pods': pods!,
+        if (reportInterval != null) 'reportInterval': reportInterval!,
+        if (vmIsBroken != null) 'vmIsBroken': vmIsBroken!,
+        if (vmIsHealthy != null) 'vmIsHealthy': vmIsHealthy!,
+        if (vmStartupTime != null) 'vmStartupTime': vmStartupTime!,
       };
 }
 
@@ -11763,7 +11452,7 @@
   ///
   /// The default value of zero means no change in report rate is requested by
   /// the server.
-  core.String reportInterval;
+  core.String? reportInterval;
 
   WorkerHealthReportResponse();
 
@@ -11773,8 +11462,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (reportInterval != null) 'reportInterval': reportInterval,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (reportInterval != null) 'reportInterval': reportInterval!,
       };
 }
 
@@ -11790,7 +11479,7 @@
   ///
   /// All events will report this so that events can be grouped together across
   /// container/VM restarts.
-  core.String containerStartTime;
+  core.String? containerStartTime;
 
   /// The event being reported.
   /// Possible string values are:
@@ -11805,12 +11494,12 @@
   /// - "SDK_INSTALL_START" : For applicable SDKs, started installation of SDK
   /// and worker packages.
   /// - "SDK_INSTALL_FINISH" : Finished installing SDK.
-  core.String event;
+  core.String? event;
 
   /// Other stats that can accompany an event.
   ///
   /// E.g. { "downloaded_bytes" : "123456" }
-  core.Map<core.String, core.String> metadata;
+  core.Map<core.String, core.String>? metadata;
 
   WorkerLifecycleEvent();
 
@@ -11832,11 +11521,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (containerStartTime != null)
-          'containerStartTime': containerStartTime,
-        if (event != null) 'event': event,
-        if (metadata != null) 'metadata': metadata,
+          'containerStartTime': containerStartTime!,
+        if (event != null) 'event': event!,
+        if (metadata != null) 'metadata': metadata!,
       };
 }
 
@@ -11850,25 +11539,25 @@
   /// typically correspond to Label enum values. However, for ease of
   /// development other strings can be used as tags. LABEL_UNSPECIFIED should
   /// not be used here.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The timestamp of the worker_message.
-  core.String time;
+  core.String? time;
 
   /// The health of a worker.
-  WorkerHealthReport workerHealthReport;
+  WorkerHealthReport? workerHealthReport;
 
   /// Record of worker lifecycle events.
-  WorkerLifecycleEvent workerLifecycleEvent;
+  WorkerLifecycleEvent? workerLifecycleEvent;
 
   /// A worker message code.
-  WorkerMessageCode workerMessageCode;
+  WorkerMessageCode? workerMessageCode;
 
   /// Resource metrics reported by workers.
-  ResourceUtilizationReport workerMetrics;
+  ResourceUtilizationReport? workerMetrics;
 
   /// Shutdown notice by workers.
-  WorkerShutdownNotice workerShutdownNotice;
+  WorkerShutdownNotice? workerShutdownNotice;
 
   WorkerMessage();
 
@@ -11907,18 +11596,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (labels != null) 'labels': labels,
-        if (time != null) 'time': time,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (labels != null) 'labels': labels!,
+        if (time != null) 'time': time!,
         if (workerHealthReport != null)
-          'workerHealthReport': workerHealthReport.toJson(),
+          'workerHealthReport': workerHealthReport!.toJson(),
         if (workerLifecycleEvent != null)
-          'workerLifecycleEvent': workerLifecycleEvent.toJson(),
+          'workerLifecycleEvent': workerLifecycleEvent!.toJson(),
         if (workerMessageCode != null)
-          'workerMessageCode': workerMessageCode.toJson(),
-        if (workerMetrics != null) 'workerMetrics': workerMetrics.toJson(),
+          'workerMessageCode': workerMessageCode!.toJson(),
+        if (workerMetrics != null) 'workerMetrics': workerMetrics!.toJson(),
         if (workerShutdownNotice != null)
-          'workerShutdownNotice': workerShutdownNotice.toJson(),
+          'workerShutdownNotice': workerShutdownNotice!.toJson(),
       };
 }
 
@@ -11937,7 +11626,7 @@
   /// error downloading a GCS file as part of the boot process of one of the
   /// worker containers. This is a string and not an enum to make it easy to add
   /// new codes without waiting for an API change.
-  core.String code;
+  core.String? code;
 
   /// Parameters contains specific information about the code.
   ///
@@ -11955,7 +11644,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> parameters;
+  core.Map<core.String, core.Object>? parameters;
 
   WorkerMessageCode();
 
@@ -11975,9 +11664,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (parameters != null) 'parameters': parameters,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (parameters != null) 'parameters': parameters!,
       };
 }
 
@@ -11985,13 +11674,13 @@
 /// sender.
 class WorkerMessageResponse {
   /// The service's response to a worker's health report.
-  WorkerHealthReportResponse workerHealthReportResponse;
+  WorkerHealthReportResponse? workerHealthReportResponse;
 
   /// Service's response to reporting worker metrics (currently empty).
-  ResourceUtilizationReportResponse workerMetricsResponse;
+  ResourceUtilizationReportResponse? workerMetricsResponse;
 
   /// Service's response to shutdown notice (currently empty).
-  WorkerShutdownNoticeResponse workerShutdownNoticeResponse;
+  WorkerShutdownNoticeResponse? workerShutdownNoticeResponse;
 
   WorkerMessageResponse();
 
@@ -12013,13 +11702,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (workerHealthReportResponse != null)
-          'workerHealthReportResponse': workerHealthReportResponse.toJson(),
+          'workerHealthReportResponse': workerHealthReportResponse!.toJson(),
         if (workerMetricsResponse != null)
-          'workerMetricsResponse': workerMetricsResponse.toJson(),
+          'workerMetricsResponse': workerMetricsResponse!.toJson(),
         if (workerShutdownNoticeResponse != null)
-          'workerShutdownNoticeResponse': workerShutdownNoticeResponse.toJson(),
+          'workerShutdownNoticeResponse':
+              workerShutdownNoticeResponse!.toJson(),
       };
 }
 
@@ -12031,10 +11721,10 @@
 /// various computational requirements of the various stages of the job.
 class WorkerPool {
   /// Settings for autoscaling of this WorkerPool.
-  AutoscalingSettings autoscalingSettings;
+  AutoscalingSettings? autoscalingSettings;
 
   /// Data disks that are used by a VM in this workflow.
-  core.List<Disk> dataDisks;
+  core.List<Disk>? dataDisks;
 
   /// The default package set to install.
   ///
@@ -12049,92 +11739,92 @@
   /// written in Java.
   /// - "DEFAULT_PACKAGE_SET_PYTHON" : Stage pacakges typically useful to
   /// workers written in Python.
-  core.String defaultPackageSet;
+  core.String? defaultPackageSet;
 
   /// Size of root disk for VMs, in GB.
   ///
   /// If zero or unspecified, the service will attempt to choose a reasonable
   /// default.
-  core.int diskSizeGb;
+  core.int? diskSizeGb;
 
   /// Fully qualified source image for disks.
-  core.String diskSourceImage;
+  core.String? diskSourceImage;
 
   /// Type of root disk for VMs.
   ///
   /// If empty or unspecified, the service will attempt to choose a reasonable
   /// default.
-  core.String diskType;
+  core.String? diskType;
 
   /// Configuration for VM IPs.
   /// Possible string values are:
   /// - "WORKER_IP_UNSPECIFIED" : The configuration is unknown, or unspecified.
   /// - "WORKER_IP_PUBLIC" : Workers should have public IP addresses.
   /// - "WORKER_IP_PRIVATE" : Workers should have private IP addresses.
-  core.String ipConfiguration;
+  core.String? ipConfiguration;
 
   /// The kind of the worker pool; currently only `harness` and `shuffle` are
   /// supported.
-  core.String kind;
+  core.String? kind;
 
   /// Machine type (e.g. "n1-standard-1").
   ///
   /// If empty or unspecified, the service will attempt to choose a reasonable
   /// default.
-  core.String machineType;
+  core.String? machineType;
 
   /// Metadata to set on the Google Compute Engine VMs.
-  core.Map<core.String, core.String> metadata;
+  core.Map<core.String, core.String>? metadata;
 
   /// Network to which VMs will be assigned.
   ///
   /// If empty or unspecified, the service will use the network "default".
-  core.String network;
+  core.String? network;
 
   /// The number of threads per worker harness.
   ///
   /// If empty or unspecified, the service will choose a number of threads
   /// (according to the number of cores on the selected machine type for batch,
   /// or 1 by convention for streaming).
-  core.int numThreadsPerWorker;
+  core.int? numThreadsPerWorker;
 
   /// Number of Google Compute Engine workers in this pool needed to execute the
   /// job.
   ///
   /// If zero or unspecified, the service will attempt to choose a reasonable
   /// default.
-  core.int numWorkers;
+  core.int? numWorkers;
 
   /// The action to take on host maintenance, as defined by the Google Compute
   /// Engine API.
-  core.String onHostMaintenance;
+  core.String? onHostMaintenance;
 
   /// Packages to be installed on workers.
-  core.List<Package> packages;
+  core.List<Package>? packages;
 
   /// Extra arguments for this worker pool.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> poolArgs;
+  core.Map<core.String, core.Object>? poolArgs;
 
   /// Set of SDK harness containers needed to execute this pipeline.
   ///
   /// This will only be set in the Fn API path. For non-cross-language pipelines
   /// this should have only one entry. Cross-language pipelines will have two or
   /// more entries.
-  core.List<SdkHarnessContainerImage> sdkHarnessContainerImages;
+  core.List<SdkHarnessContainerImage>? sdkHarnessContainerImages;
 
   /// Subnetwork to which VMs will be assigned, if desired.
   ///
   /// Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
-  core.String subnetwork;
+  core.String? subnetwork;
 
   /// Settings passed through to Google Compute Engine workers when using the
   /// standard Dataflow task runner.
   ///
   /// Users should ignore this field.
-  TaskRunnerSettings taskrunnerSettings;
+  TaskRunnerSettings? taskrunnerSettings;
 
   /// Sets the policy for determining when to turndown worker pool.
   ///
@@ -12156,7 +11846,7 @@
   /// for debugging failures.
   /// - "TEARDOWN_NEVER" : Never teardown the resource. This is useful for
   /// debugging and development.
-  core.String teardownPolicy;
+  core.String? teardownPolicy;
 
   /// Docker container image that executes the Cloud Dataflow worker harness,
   /// residing in Google Container Registry.
@@ -12164,13 +11854,13 @@
   /// Deprecated for the Fn API path. Use sdk_harness_container_images instead.
   ///
   /// Required.
-  core.String workerHarnessContainerImage;
+  core.String? workerHarnessContainerImage;
 
   /// Zone to run the worker pools in.
   ///
   /// If empty or unspecified, the service will attempt to choose a reasonable
   /// default.
-  core.String zone;
+  core.String? zone;
 
   WorkerPool();
 
@@ -12269,37 +11959,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (autoscalingSettings != null)
-          'autoscalingSettings': autoscalingSettings.toJson(),
+          'autoscalingSettings': autoscalingSettings!.toJson(),
         if (dataDisks != null)
-          'dataDisks': dataDisks.map((value) => value.toJson()).toList(),
-        if (defaultPackageSet != null) 'defaultPackageSet': defaultPackageSet,
-        if (diskSizeGb != null) 'diskSizeGb': diskSizeGb,
-        if (diskSourceImage != null) 'diskSourceImage': diskSourceImage,
-        if (diskType != null) 'diskType': diskType,
-        if (ipConfiguration != null) 'ipConfiguration': ipConfiguration,
-        if (kind != null) 'kind': kind,
-        if (machineType != null) 'machineType': machineType,
-        if (metadata != null) 'metadata': metadata,
-        if (network != null) 'network': network,
+          'dataDisks': dataDisks!.map((value) => value.toJson()).toList(),
+        if (defaultPackageSet != null) 'defaultPackageSet': defaultPackageSet!,
+        if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!,
+        if (diskSourceImage != null) 'diskSourceImage': diskSourceImage!,
+        if (diskType != null) 'diskType': diskType!,
+        if (ipConfiguration != null) 'ipConfiguration': ipConfiguration!,
+        if (kind != null) 'kind': kind!,
+        if (machineType != null) 'machineType': machineType!,
+        if (metadata != null) 'metadata': metadata!,
+        if (network != null) 'network': network!,
         if (numThreadsPerWorker != null)
-          'numThreadsPerWorker': numThreadsPerWorker,
-        if (numWorkers != null) 'numWorkers': numWorkers,
-        if (onHostMaintenance != null) 'onHostMaintenance': onHostMaintenance,
+          'numThreadsPerWorker': numThreadsPerWorker!,
+        if (numWorkers != null) 'numWorkers': numWorkers!,
+        if (onHostMaintenance != null) 'onHostMaintenance': onHostMaintenance!,
         if (packages != null)
-          'packages': packages.map((value) => value.toJson()).toList(),
-        if (poolArgs != null) 'poolArgs': poolArgs,
+          'packages': packages!.map((value) => value.toJson()).toList(),
+        if (poolArgs != null) 'poolArgs': poolArgs!,
         if (sdkHarnessContainerImages != null)
-          'sdkHarnessContainerImages':
-              sdkHarnessContainerImages.map((value) => value.toJson()).toList(),
-        if (subnetwork != null) 'subnetwork': subnetwork,
+          'sdkHarnessContainerImages': sdkHarnessContainerImages!
+              .map((value) => value.toJson())
+              .toList(),
+        if (subnetwork != null) 'subnetwork': subnetwork!,
         if (taskrunnerSettings != null)
-          'taskrunnerSettings': taskrunnerSettings.toJson(),
-        if (teardownPolicy != null) 'teardownPolicy': teardownPolicy,
+          'taskrunnerSettings': taskrunnerSettings!.toJson(),
+        if (teardownPolicy != null) 'teardownPolicy': teardownPolicy!,
         if (workerHarnessContainerImage != null)
-          'workerHarnessContainerImage': workerHarnessContainerImage,
-        if (zone != null) 'zone': zone,
+          'workerHarnessContainerImage': workerHarnessContainerImage!,
+        if (zone != null) 'zone': zone!,
       };
 }
 
@@ -12312,28 +12003,28 @@
   /// resolving these relative URLs. The normative algorithm used is defined by
   /// RFC 1808, "Relative Uniform Resource Locators". If not specified, the
   /// default value is "http://www.googleapis.com/"
-  core.String baseUrl;
+  core.String? baseUrl;
 
   /// Whether to send work progress updates to the service.
-  core.bool reportingEnabled;
+  core.bool? reportingEnabled;
 
   /// The Cloud Dataflow service path relative to the root URL, for example,
   /// "dataflow/v1b3/projects".
-  core.String servicePath;
+  core.String? servicePath;
 
   /// The Shuffle service path relative to the root URL, for example,
   /// "shuffle/v1beta1".
-  core.String shuffleServicePath;
+  core.String? shuffleServicePath;
 
   /// The prefix of the resources the system should use for temporary storage.
   ///
   /// The supported resource type is: Google Cloud Storage:
   /// storage.googleapis.com/{bucket}/{object}
   /// bucket.storage.googleapis.com/{object}
-  core.String tempStoragePrefix;
+  core.String? tempStoragePrefix;
 
   /// The ID of the worker running this pipeline.
-  core.String workerId;
+  core.String? workerId;
 
   WorkerSettings();
 
@@ -12358,14 +12049,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (baseUrl != null) 'baseUrl': baseUrl,
-        if (reportingEnabled != null) 'reportingEnabled': reportingEnabled,
-        if (servicePath != null) 'servicePath': servicePath,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (baseUrl != null) 'baseUrl': baseUrl!,
+        if (reportingEnabled != null) 'reportingEnabled': reportingEnabled!,
+        if (servicePath != null) 'servicePath': servicePath!,
         if (shuffleServicePath != null)
-          'shuffleServicePath': shuffleServicePath,
-        if (tempStoragePrefix != null) 'tempStoragePrefix': tempStoragePrefix,
-        if (workerId != null) 'workerId': workerId,
+          'shuffleServicePath': shuffleServicePath!,
+        if (tempStoragePrefix != null) 'tempStoragePrefix': tempStoragePrefix!,
+        if (workerId != null) 'workerId': workerId!,
       };
 }
 
@@ -12379,7 +12070,7 @@
   /// Current possible values are: "UNKNOWN": shutdown reason is unknown.
   /// "PREEMPTION": shutdown reason is preemption. Other possible reasons may be
   /// added in the future.
-  core.String reason;
+  core.String? reason;
 
   WorkerShutdownNotice();
 
@@ -12389,8 +12080,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (reason != null) 'reason': reason,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (reason != null) 'reason': reason!,
       };
 }
 
@@ -12402,7 +12093,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// An instruction that writes records.
@@ -12410,10 +12101,10 @@
 /// Takes one input, produces no outputs.
 class WriteInstruction {
   /// The input.
-  InstructionInput input;
+  InstructionInput? input;
 
   /// The sink to write to.
-  Sink sink;
+  Sink? sink;
 
   WriteInstruction();
 
@@ -12428,8 +12119,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (input != null) 'input': input.toJson(),
-        if (sink != null) 'sink': sink.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (input != null) 'input': input!.toJson(),
+        if (sink != null) 'sink': sink!.toJson(),
       };
 }
diff --git a/generated/googleapis_beta/lib/datalabeling/v1beta1.dart b/generated/googleapis_beta/lib/datalabeling/v1beta1.dart
index f6dacde..f478e9c 100644
--- a/generated/googleapis_beta/lib/datalabeling/v1beta1.dart
+++ b/generated/googleapis_beta/lib/datalabeling/v1beta1.dart
@@ -118,13 +118,9 @@
   async.Future<GoogleCloudDatalabelingV1beta1AnnotationSpecSet> create(
     GoogleCloudDatalabelingV1beta1CreateAnnotationSpecSetRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -163,11 +159,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -203,11 +196,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1AnnotationSpecSet> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -258,14 +248,11 @@
   async.Future<GoogleCloudDatalabelingV1beta1ListAnnotationSpecSetsResponse>
       list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -330,13 +317,9 @@
   async.Future<GoogleCloudDatalabelingV1beta1Dataset> create(
     GoogleCloudDatalabelingV1beta1CreateDatasetRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -375,11 +358,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -418,13 +398,9 @@
   async.Future<GoogleLongrunningOperation> exportData(
     GoogleCloudDatalabelingV1beta1ExportDataRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -463,11 +439,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1Dataset> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -511,13 +484,9 @@
   async.Future<GoogleLongrunningOperation> importData(
     GoogleCloudDatalabelingV1beta1ImportDataRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -569,14 +538,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListDatasetsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -634,11 +600,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -676,11 +639,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1AnnotatedDataset> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -731,14 +691,11 @@
   async.Future<GoogleCloudDatalabelingV1beta1ListAnnotatedDatasetsResponse>
       list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -790,11 +747,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1DataItem> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -844,14 +798,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListDataItemsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -905,12 +856,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1Example> get(
     core.String name, {
-    core.String filter,
-    core.String $fields,
+    core.String? filter,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if ($fields != null) 'fields': [$fields],
@@ -962,14 +910,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListExamplesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1025,11 +970,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1066,11 +1008,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1FeedbackThread> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1117,13 +1056,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListFeedbackThreadsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1175,13 +1111,9 @@
   async.Future<GoogleLongrunningOperation> create(
     GoogleCloudDatalabelingV1beta1FeedbackMessage request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1222,11 +1154,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1263,11 +1192,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1FeedbackMessage> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1314,13 +1240,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListFeedbackMessagesResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1370,11 +1293,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1DataItem> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1423,14 +1343,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListDataItemsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1484,11 +1401,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1Evaluation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1543,13 +1457,9 @@
       search(
     GoogleCloudDatalabelingV1beta1SearchExampleComparisonsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1600,13 +1510,9 @@
   async.Future<GoogleLongrunningOperation> label(
     GoogleCloudDatalabelingV1beta1LabelImageRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1657,13 +1563,9 @@
   async.Future<GoogleLongrunningOperation> label(
     GoogleCloudDatalabelingV1beta1LabelTextRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1714,13 +1616,9 @@
   async.Future<GoogleLongrunningOperation> label(
     GoogleCloudDatalabelingV1beta1LabelVideoRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1769,13 +1667,9 @@
   async.Future<GoogleCloudDatalabelingV1beta1EvaluationJob> create(
     GoogleCloudDatalabelingV1beta1CreateEvaluationJobRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1814,11 +1708,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1854,11 +1745,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1EvaluationJob> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1912,14 +1800,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListEvaluationJobsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1976,14 +1861,10 @@
   async.Future<GoogleCloudDatalabelingV1beta1EvaluationJob> patch(
     GoogleCloudDatalabelingV1beta1EvaluationJob request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2026,13 +1907,9 @@
   async.Future<GoogleProtobufEmpty> pause(
     GoogleCloudDatalabelingV1beta1PauseEvaluationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2076,13 +1953,9 @@
   async.Future<GoogleProtobufEmpty> resume(
     GoogleCloudDatalabelingV1beta1ResumeEvaluationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2153,14 +2026,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1SearchEvaluationsResponse> search(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2211,13 +2081,9 @@
   async.Future<GoogleLongrunningOperation> create(
     GoogleCloudDatalabelingV1beta1CreateInstructionRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2256,11 +2122,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2296,11 +2159,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1Instruction> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2348,14 +2208,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudDatalabelingV1beta1ListInstructionsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2410,11 +2267,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> cancel(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2454,11 +2308,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2496,11 +2347,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2550,14 +2398,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2582,18 +2427,18 @@
 /// Metadata of a CreateInstruction operation.
 class GoogleCloudDatalabelingV1alpha1CreateInstructionMetadata {
   /// Timestamp when create instruction request was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of the created Instruction.
   ///
   /// projects/{project_id}/instructions/{instruction_id}
-  core.String instruction;
+  core.String? instruction;
 
   /// Partial failures encountered.
   ///
   /// E.g. single files that couldn't be read. Status details field will contain
   /// standard GCP error details.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1alpha1CreateInstructionMetadata();
 
@@ -2613,12 +2458,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (instruction != null) 'instruction': instruction,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (instruction != null) 'instruction': instruction!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2628,19 +2473,19 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when export dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be exported.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -2648,7 +2493,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1alpha1ExportDataOperationMetadata();
 
@@ -2671,13 +2516,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2687,32 +2532,32 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Ouptut only.
   ///
   /// The name of dataset. "projects / * /datasets / * "
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples exported successfully.
   ///
   /// Output only.
-  core.int exportCount;
+  core.int? exportCount;
 
   /// Statistic infos of labels in the exported dataset.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1alpha1LabelStats labelStats;
+  GoogleCloudDatalabelingV1alpha1LabelStats? labelStats;
 
   /// output_config in the ExportData request.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1alpha1OutputConfig outputConfig;
+  GoogleCloudDatalabelingV1alpha1OutputConfig? outputConfig;
 
   /// Total number of examples requested to export
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1alpha1ExportDataOperationResponse();
 
@@ -2740,13 +2585,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (dataset != null) 'dataset': dataset,
-        if (exportCount != null) 'exportCount': exportCount,
-        if (labelStats != null) 'labelStats': labelStats.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (dataset != null) 'dataset': dataset!,
+        if (exportCount != null) 'exportCount': exportCount!,
+        if (labelStats != null) 'labelStats': labelStats!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -2757,12 +2602,12 @@
   /// Only "text/csv" and "application/json" are supported.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// The output uri of destination file.
   ///
   /// Required.
-  core.String outputUri;
+  core.String? outputUri;
 
   GoogleCloudDatalabelingV1alpha1GcsDestination();
 
@@ -2775,9 +2620,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (mimeType != null) 'mimeType': mimeType,
-        if (outputUri != null) 'outputUri': outputUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (outputUri != null) 'outputUri': outputUri!,
       };
 }
 
@@ -2786,7 +2631,7 @@
   /// Cloud Storage directory to export data to.
   ///
   /// Required.
-  core.String outputFolderUri;
+  core.String? outputFolderUri;
 
   GoogleCloudDatalabelingV1alpha1GcsFolderDestination();
 
@@ -2796,8 +2641,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri!,
       };
 }
 
@@ -2808,14 +2653,14 @@
   /// The description can be up to 10000 characters long.
   ///
   /// Optional.
-  core.String annotatedDatasetDescription;
+  core.String? annotatedDatasetDescription;
 
   /// A human-readable name for AnnotatedDataset defined by users.
   ///
   /// Maximum of 64 characters .
   ///
   /// Required.
-  core.String annotatedDatasetDisplayName;
+  core.String? annotatedDatasetDisplayName;
 
   /// If you want your own labeling contributors to manage and work on this
   /// labeling request, you can set these contributors here.
@@ -2825,19 +2670,19 @@
   /// https://crowd-compute.appspot.com/
   ///
   /// Optional.
-  core.List<core.String> contributorEmails;
+  core.List<core.String>? contributorEmails;
 
   /// Instruction resource name.
   ///
   /// Required.
-  core.String instruction;
+  core.String? instruction;
 
   /// A human-readable label used to logically group labeling tasks.
   ///
   /// This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`.
   ///
   /// Optional.
-  core.String labelGroup;
+  core.String? labelGroup;
 
   /// The Language of this question, as a
   /// \[BCP-47\](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
@@ -2846,14 +2691,14 @@
   /// related. For example, French text classification.
   ///
   /// Optional.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Maximum duration for contributors to answer a question.
   ///
   /// Maximum is 3600 seconds. Default is 3600 seconds.
   ///
   /// Optional.
-  core.String questionDuration;
+  core.String? questionDuration;
 
   /// Replication of questions.
   ///
@@ -2862,13 +2707,13 @@
   /// related labeling, valid values are 1, 3, 5.
   ///
   /// Optional.
-  core.int replicaCount;
+  core.int? replicaCount;
 
   /// Email of the user who started the labeling task and should be notified by
   /// email.
   ///
   /// If empty no notification will be sent.
-  core.String userEmailAddress;
+  core.String? userEmailAddress;
 
   GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig();
 
@@ -2907,18 +2752,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotatedDatasetDescription != null)
-          'annotatedDatasetDescription': annotatedDatasetDescription,
+          'annotatedDatasetDescription': annotatedDatasetDescription!,
         if (annotatedDatasetDisplayName != null)
-          'annotatedDatasetDisplayName': annotatedDatasetDisplayName,
-        if (contributorEmails != null) 'contributorEmails': contributorEmails,
-        if (instruction != null) 'instruction': instruction,
-        if (labelGroup != null) 'labelGroup': labelGroup,
-        if (languageCode != null) 'languageCode': languageCode,
-        if (questionDuration != null) 'questionDuration': questionDuration,
-        if (replicaCount != null) 'replicaCount': replicaCount,
-        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress,
+          'annotatedDatasetDisplayName': annotatedDatasetDisplayName!,
+        if (contributorEmails != null) 'contributorEmails': contributorEmails!,
+        if (instruction != null) 'instruction': instruction!,
+        if (labelGroup != null) 'labelGroup': labelGroup!,
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (questionDuration != null) 'questionDuration': questionDuration!,
+        if (replicaCount != null) 'replicaCount': replicaCount!,
+        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress!,
       };
 }
 
@@ -2927,14 +2772,14 @@
   /// Timestamp when import dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of imported dataset.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -2942,7 +2787,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1alpha1ImportDataOperationMetadata();
 
@@ -2962,12 +2807,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2976,17 +2821,17 @@
   /// Ouptut only.
   ///
   /// The name of imported dataset.
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples imported successfully.
   ///
   /// Output only.
-  core.int importCount;
+  core.int? importCount;
 
   /// Total number of examples requested to import
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1alpha1ImportDataOperationResponse();
 
@@ -3003,17 +2848,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset,
-        if (importCount != null) 'importCount': importCount,
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!,
+        if (importCount != null) 'importCount': importCount!,
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
 /// Details of a LabelImageBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelImageBoundingBoxOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelImageBoundingBoxOperationMetadata();
 
@@ -3026,15 +2871,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImageBoundingPoly operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelImageBoundingPolyOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelImageBoundingPolyOperationMetadata();
 
@@ -3047,15 +2892,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Metadata of a LabelImageClassification operation.
 class GoogleCloudDatalabelingV1alpha1LabelImageClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelImageClassificationOperationMetadata();
 
@@ -3068,15 +2913,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageOrientedBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelImageOrientedBoundingBoxOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelImageOrientedBoundingBoxOperationMetadata();
 
@@ -3089,15 +2934,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImagePolyline operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelImagePolylineOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelImagePolylineOperationMetadata();
 
@@ -3110,15 +2955,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageSegmentation operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelImageSegmentationOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelImageSegmentationOperationMetadata();
 
@@ -3131,8 +2976,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -3144,42 +2989,42 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when labeling request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be labeled.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Details of label image bounding box operation.
-  GoogleCloudDatalabelingV1alpha1LabelImageBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelImageBoundingBoxOperationMetadata?
       imageBoundingBoxDetails;
 
   /// Details of label image bounding poly operation.
-  GoogleCloudDatalabelingV1alpha1LabelImageBoundingPolyOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelImageBoundingPolyOperationMetadata?
       imageBoundingPolyDetails;
 
   /// Details of label image classification operation.
-  GoogleCloudDatalabelingV1alpha1LabelImageClassificationOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelImageClassificationOperationMetadata?
       imageClassificationDetails;
 
   /// Details of label image oriented bounding box operation.
-  GoogleCloudDatalabelingV1alpha1LabelImageOrientedBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelImageOrientedBoundingBoxOperationMetadata?
       imageOrientedBoundingBoxDetails;
 
   /// Details of label image polyline operation.
-  GoogleCloudDatalabelingV1alpha1LabelImagePolylineOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelImagePolylineOperationMetadata?
       imagePolylineDetails;
 
   /// Details of label image segmentation operation.
-  GoogleCloudDatalabelingV1alpha1LabelImageSegmentationOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelImageSegmentationOperationMetadata?
       imageSegmentationDetails;
 
   /// Partial failures encountered.
@@ -3188,37 +3033,37 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   /// Progress of label operation.
   ///
   /// Range: \[0, 100\].
   ///
   /// Output only.
-  core.int progressPercent;
+  core.int? progressPercent;
 
   /// Details of label text classification operation.
-  GoogleCloudDatalabelingV1alpha1LabelTextClassificationOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelTextClassificationOperationMetadata?
       textClassificationDetails;
 
   /// Details of label text entity extraction operation.
-  GoogleCloudDatalabelingV1alpha1LabelTextEntityExtractionOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelTextEntityExtractionOperationMetadata?
       textEntityExtractionDetails;
 
   /// Details of label video classification operation.
-  GoogleCloudDatalabelingV1alpha1LabelVideoClassificationOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelVideoClassificationOperationMetadata?
       videoClassificationDetails;
 
   /// Details of label video event operation.
-  GoogleCloudDatalabelingV1alpha1LabelVideoEventOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelVideoEventOperationMetadata?
       videoEventDetails;
 
   /// Details of label video object detection operation.
-  GoogleCloudDatalabelingV1alpha1LabelVideoObjectDetectionOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelVideoObjectDetectionOperationMetadata?
       videoObjectDetectionDetails;
 
   /// Details of label video object tracking operation.
-  GoogleCloudDatalabelingV1alpha1LabelVideoObjectTrackingOperationMetadata
+  GoogleCloudDatalabelingV1alpha1LabelVideoObjectTrackingOperationMetadata?
       videoObjectTrackingDetails;
 
   GoogleCloudDatalabelingV1alpha1LabelOperationMetadata();
@@ -3317,39 +3162,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (imageBoundingBoxDetails != null)
-          'imageBoundingBoxDetails': imageBoundingBoxDetails.toJson(),
+          'imageBoundingBoxDetails': imageBoundingBoxDetails!.toJson(),
         if (imageBoundingPolyDetails != null)
-          'imageBoundingPolyDetails': imageBoundingPolyDetails.toJson(),
+          'imageBoundingPolyDetails': imageBoundingPolyDetails!.toJson(),
         if (imageClassificationDetails != null)
-          'imageClassificationDetails': imageClassificationDetails.toJson(),
+          'imageClassificationDetails': imageClassificationDetails!.toJson(),
         if (imageOrientedBoundingBoxDetails != null)
           'imageOrientedBoundingBoxDetails':
-              imageOrientedBoundingBoxDetails.toJson(),
+              imageOrientedBoundingBoxDetails!.toJson(),
         if (imagePolylineDetails != null)
-          'imagePolylineDetails': imagePolylineDetails.toJson(),
+          'imagePolylineDetails': imagePolylineDetails!.toJson(),
         if (imageSegmentationDetails != null)
-          'imageSegmentationDetails': imageSegmentationDetails.toJson(),
+          'imageSegmentationDetails': imageSegmentationDetails!.toJson(),
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
-        if (progressPercent != null) 'progressPercent': progressPercent,
+              partialFailures!.map((value) => value.toJson()).toList(),
+        if (progressPercent != null) 'progressPercent': progressPercent!,
         if (textClassificationDetails != null)
-          'textClassificationDetails': textClassificationDetails.toJson(),
+          'textClassificationDetails': textClassificationDetails!.toJson(),
         if (textEntityExtractionDetails != null)
-          'textEntityExtractionDetails': textEntityExtractionDetails.toJson(),
+          'textEntityExtractionDetails': textEntityExtractionDetails!.toJson(),
         if (videoClassificationDetails != null)
-          'videoClassificationDetails': videoClassificationDetails.toJson(),
+          'videoClassificationDetails': videoClassificationDetails!.toJson(),
         if (videoEventDetails != null)
-          'videoEventDetails': videoEventDetails.toJson(),
+          'videoEventDetails': videoEventDetails!.toJson(),
         if (videoObjectDetectionDetails != null)
-          'videoObjectDetectionDetails': videoObjectDetectionDetails.toJson(),
+          'videoObjectDetectionDetails': videoObjectDetectionDetails!.toJson(),
         if (videoObjectTrackingDetails != null)
-          'videoObjectTrackingDetails': videoObjectTrackingDetails.toJson(),
+          'videoObjectTrackingDetails': videoObjectTrackingDetails!.toJson(),
       };
 }
 
@@ -3361,7 +3206,7 @@
   /// that annotation spec. If the annotated dataset does not have annotation
   /// spec, the map will return a pair where the key is empty string and value
   /// is the total number of annotations.
-  core.Map<core.String, core.String> exampleCount;
+  core.Map<core.String, core.String>? exampleCount;
 
   GoogleCloudDatalabelingV1alpha1LabelStats();
 
@@ -3378,15 +3223,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exampleCount != null) 'exampleCount': exampleCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exampleCount != null) 'exampleCount': exampleCount!,
       };
 }
 
 /// Details of a LabelTextClassification operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelTextClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelTextClassificationOperationMetadata();
 
@@ -3399,15 +3244,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelTextEntityExtraction operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelTextEntityExtractionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelTextEntityExtractionOperationMetadata();
 
@@ -3420,15 +3265,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoClassification operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelVideoClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelVideoClassificationOperationMetadata();
 
@@ -3441,15 +3286,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoEvent operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelVideoEventOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelVideoEventOperationMetadata();
 
@@ -3462,15 +3307,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectDetection operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelVideoObjectDetectionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelVideoObjectDetectionOperationMetadata();
 
@@ -3483,15 +3328,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectTracking operation metadata.
 class GoogleCloudDatalabelingV1alpha1LabelVideoObjectTrackingOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1alpha1LabelVideoObjectTrackingOperationMetadata();
 
@@ -3504,8 +3349,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -3514,13 +3359,13 @@
   /// Output to a file in Cloud Storage.
   ///
   /// Should be used for labeling output other than image segmentation.
-  GoogleCloudDatalabelingV1alpha1GcsDestination gcsDestination;
+  GoogleCloudDatalabelingV1alpha1GcsDestination? gcsDestination;
 
   /// Output to a folder in Cloud Storage.
   ///
   /// Should be used for image segmentation or document de-identification
   /// labeling outputs.
-  GoogleCloudDatalabelingV1alpha1GcsFolderDestination gcsFolderDestination;
+  GoogleCloudDatalabelingV1alpha1GcsFolderDestination? gcsFolderDestination;
 
   GoogleCloudDatalabelingV1alpha1OutputConfig();
 
@@ -3537,10 +3382,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!.toJson(),
         if (gcsFolderDestination != null)
-          'gcsFolderDestination': gcsFolderDestination.toJson(),
+          'gcsFolderDestination': gcsFolderDestination!.toJson(),
       };
 }
 
@@ -3555,7 +3400,7 @@
   /// Possible string values are:
   /// - "ANNOTATION_SOURCE_UNSPECIFIED"
   /// - "OPERATOR" : Answer is provided by a human contributor.
-  core.String annotationSource;
+  core.String? annotationSource;
 
   /// Type of the annotation.
   ///
@@ -3584,23 +3429,23 @@
   /// - "TEXT_ENTITY_EXTRACTION_ANNOTATION" : Entity extraction for text.
   /// - "GENERAL_CLASSIFICATION_ANNOTATION" : General classification. Allowed
   /// for continuous evaluation.
-  core.String annotationType;
+  core.String? annotationType;
 
   /// The names of any related resources that are blocking changes to the
   /// annotated dataset.
   ///
   /// Output only.
-  core.List<core.String> blockingResources;
+  core.List<core.String>? blockingResources;
 
   /// Number of examples that have annotation in the annotated dataset.
   ///
   /// Output only.
-  core.String completedExampleCount;
+  core.String? completedExampleCount;
 
   /// Time the AnnotatedDataset was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The description of the AnnotatedDataset.
   ///
@@ -3608,7 +3453,7 @@
   /// Maximum of 10000 characters.
   ///
   /// Output only.
-  core.String description;
+  core.String? description;
 
   /// The display name of the AnnotatedDataset.
   ///
@@ -3616,29 +3461,29 @@
   /// Maximum of 64 characters.
   ///
   /// Output only.
-  core.String displayName;
+  core.String? displayName;
 
   /// Number of examples in the annotated dataset.
   ///
   /// Output only.
-  core.String exampleCount;
+  core.String? exampleCount;
 
   /// Per label statistics.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1LabelStats labelStats;
+  GoogleCloudDatalabelingV1beta1LabelStats? labelStats;
 
   /// Additional information about AnnotatedDataset.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1AnnotatedDatasetMetadata metadata;
+  GoogleCloudDatalabelingV1beta1AnnotatedDatasetMetadata? metadata;
 
   /// AnnotatedDataset resource name in format of:
   /// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
   /// {annotated_dataset_id}
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatalabelingV1beta1AnnotatedDataset();
 
@@ -3683,60 +3528,60 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSource != null) 'annotationSource': annotationSource,
-        if (annotationType != null) 'annotationType': annotationType,
-        if (blockingResources != null) 'blockingResources': blockingResources,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSource != null) 'annotationSource': annotationSource!,
+        if (annotationType != null) 'annotationType': annotationType!,
+        if (blockingResources != null) 'blockingResources': blockingResources!,
         if (completedExampleCount != null)
-          'completedExampleCount': completedExampleCount,
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (exampleCount != null) 'exampleCount': exampleCount,
-        if (labelStats != null) 'labelStats': labelStats.toJson(),
-        if (metadata != null) 'metadata': metadata.toJson(),
-        if (name != null) 'name': name,
+          'completedExampleCount': completedExampleCount!,
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (exampleCount != null) 'exampleCount': exampleCount!,
+        if (labelStats != null) 'labelStats': labelStats!.toJson(),
+        if (metadata != null) 'metadata': metadata!.toJson(),
+        if (name != null) 'name': name!,
       };
 }
 
 /// Metadata on AnnotatedDataset.
 class GoogleCloudDatalabelingV1beta1AnnotatedDatasetMetadata {
   /// Configuration for image bounding box and bounding poly task.
-  GoogleCloudDatalabelingV1beta1BoundingPolyConfig boundingPolyConfig;
+  GoogleCloudDatalabelingV1beta1BoundingPolyConfig? boundingPolyConfig;
 
   /// Configuration for video event labeling task.
-  GoogleCloudDatalabelingV1beta1EventConfig eventConfig;
+  GoogleCloudDatalabelingV1beta1EventConfig? eventConfig;
 
   /// HumanAnnotationConfig used when requesting the human labeling task for
   /// this AnnotatedDataset.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig humanAnnotationConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? humanAnnotationConfig;
 
   /// Configuration for image classification task.
-  GoogleCloudDatalabelingV1beta1ImageClassificationConfig
+  GoogleCloudDatalabelingV1beta1ImageClassificationConfig?
       imageClassificationConfig;
 
   /// Configuration for video object detection task.
-  GoogleCloudDatalabelingV1beta1ObjectDetectionConfig objectDetectionConfig;
+  GoogleCloudDatalabelingV1beta1ObjectDetectionConfig? objectDetectionConfig;
 
   /// Configuration for video object tracking task.
-  GoogleCloudDatalabelingV1beta1ObjectTrackingConfig objectTrackingConfig;
+  GoogleCloudDatalabelingV1beta1ObjectTrackingConfig? objectTrackingConfig;
 
   /// Configuration for image polyline task.
-  GoogleCloudDatalabelingV1beta1PolylineConfig polylineConfig;
+  GoogleCloudDatalabelingV1beta1PolylineConfig? polylineConfig;
 
   /// Configuration for image segmentation task.
-  GoogleCloudDatalabelingV1beta1SegmentationConfig segmentationConfig;
+  GoogleCloudDatalabelingV1beta1SegmentationConfig? segmentationConfig;
 
   /// Configuration for text classification task.
-  GoogleCloudDatalabelingV1beta1TextClassificationConfig
+  GoogleCloudDatalabelingV1beta1TextClassificationConfig?
       textClassificationConfig;
 
   /// Configuration for text entity extraction task.
-  GoogleCloudDatalabelingV1beta1TextEntityExtractionConfig
+  GoogleCloudDatalabelingV1beta1TextEntityExtractionConfig?
       textEntityExtractionConfig;
 
   /// Configuration for video classification task.
-  GoogleCloudDatalabelingV1beta1VideoClassificationConfig
+  GoogleCloudDatalabelingV1beta1VideoClassificationConfig?
       videoClassificationConfig;
 
   GoogleCloudDatalabelingV1beta1AnnotatedDatasetMetadata();
@@ -3807,27 +3652,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (boundingPolyConfig != null)
-          'boundingPolyConfig': boundingPolyConfig.toJson(),
-        if (eventConfig != null) 'eventConfig': eventConfig.toJson(),
+          'boundingPolyConfig': boundingPolyConfig!.toJson(),
+        if (eventConfig != null) 'eventConfig': eventConfig!.toJson(),
         if (humanAnnotationConfig != null)
-          'humanAnnotationConfig': humanAnnotationConfig.toJson(),
+          'humanAnnotationConfig': humanAnnotationConfig!.toJson(),
         if (imageClassificationConfig != null)
-          'imageClassificationConfig': imageClassificationConfig.toJson(),
+          'imageClassificationConfig': imageClassificationConfig!.toJson(),
         if (objectDetectionConfig != null)
-          'objectDetectionConfig': objectDetectionConfig.toJson(),
+          'objectDetectionConfig': objectDetectionConfig!.toJson(),
         if (objectTrackingConfig != null)
-          'objectTrackingConfig': objectTrackingConfig.toJson(),
-        if (polylineConfig != null) 'polylineConfig': polylineConfig.toJson(),
+          'objectTrackingConfig': objectTrackingConfig!.toJson(),
+        if (polylineConfig != null) 'polylineConfig': polylineConfig!.toJson(),
         if (segmentationConfig != null)
-          'segmentationConfig': segmentationConfig.toJson(),
+          'segmentationConfig': segmentationConfig!.toJson(),
         if (textClassificationConfig != null)
-          'textClassificationConfig': textClassificationConfig.toJson(),
+          'textClassificationConfig': textClassificationConfig!.toJson(),
         if (textEntityExtractionConfig != null)
-          'textEntityExtractionConfig': textEntityExtractionConfig.toJson(),
+          'textEntityExtractionConfig': textEntityExtractionConfig!.toJson(),
         if (videoClassificationConfig != null)
-          'videoClassificationConfig': videoClassificationConfig.toJson(),
+          'videoClassificationConfig': videoClassificationConfig!.toJson(),
       };
 }
 
@@ -3840,7 +3685,7 @@
   /// Annotation metadata, including information like votes for labels.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1AnnotationMetadata annotationMetadata;
+  GoogleCloudDatalabelingV1beta1AnnotationMetadata? annotationMetadata;
 
   /// Sentiment for this annotation.
   ///
@@ -3849,7 +3694,7 @@
   /// - "ANNOTATION_SENTIMENT_UNSPECIFIED"
   /// - "NEGATIVE" : This annotation describes negatively about the data.
   /// - "POSITIVE" : This label describes positively about the data.
-  core.String annotationSentiment;
+  core.String? annotationSentiment;
 
   /// The source of the annotation.
   ///
@@ -3857,19 +3702,19 @@
   /// Possible string values are:
   /// - "ANNOTATION_SOURCE_UNSPECIFIED"
   /// - "OPERATOR" : Answer is provided by a human contributor.
-  core.String annotationSource;
+  core.String? annotationSource;
 
   /// This is the actual annotation value, e.g classification, bounding box
   /// values are stored here.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1AnnotationValue annotationValue;
+  GoogleCloudDatalabelingV1beta1AnnotationValue? annotationValue;
 
   /// Unique name of this annotation, format is:
   /// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset}/examples/{example_id}/annotations/{annotation_id}
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatalabelingV1beta1Annotation();
 
@@ -3895,22 +3740,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationMetadata != null)
-          'annotationMetadata': annotationMetadata.toJson(),
+          'annotationMetadata': annotationMetadata!.toJson(),
         if (annotationSentiment != null)
-          'annotationSentiment': annotationSentiment,
-        if (annotationSource != null) 'annotationSource': annotationSource,
+          'annotationSentiment': annotationSentiment!,
+        if (annotationSource != null) 'annotationSource': annotationSource!,
         if (annotationValue != null)
-          'annotationValue': annotationValue.toJson(),
-        if (name != null) 'name': name,
+          'annotationValue': annotationValue!.toJson(),
+        if (name != null) 'name': name!,
       };
 }
 
 /// Additional information associated with the annotation.
 class GoogleCloudDatalabelingV1beta1AnnotationMetadata {
   /// Metadata related to human labeling.
-  GoogleCloudDatalabelingV1beta1OperatorMetadata operatorMetadata;
+  GoogleCloudDatalabelingV1beta1OperatorMetadata? operatorMetadata;
 
   GoogleCloudDatalabelingV1beta1AnnotationMetadata();
 
@@ -3922,9 +3767,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (operatorMetadata != null)
-          'operatorMetadata': operatorMetadata.toJson(),
+          'operatorMetadata': operatorMetadata!.toJson(),
       };
 }
 
@@ -3940,14 +3785,14 @@
   /// The description can be up to 10,000 characters long.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// The display name of the AnnotationSpec.
   ///
   /// Maximum of 64 characters.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// This is the integer index of the AnnotationSpec.
   ///
@@ -3959,7 +3804,7 @@
   /// numeric values.
   ///
   /// Output only.
-  core.int index;
+  core.int? index;
 
   GoogleCloudDatalabelingV1beta1AnnotationSpec();
 
@@ -3975,10 +3820,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (index != null) 'index': index,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (index != null) 'index': index!,
       };
 }
 
@@ -3994,33 +3839,33 @@
   /// These are the possible labels for the labeling task.
   ///
   /// Required.
-  core.List<GoogleCloudDatalabelingV1beta1AnnotationSpec> annotationSpecs;
+  core.List<GoogleCloudDatalabelingV1beta1AnnotationSpec>? annotationSpecs;
 
   /// The names of any related resources that are blocking changes to the
   /// annotation spec set.
   ///
   /// Output only.
-  core.List<core.String> blockingResources;
+  core.List<core.String>? blockingResources;
 
   /// User-provided description of the annotation specification set.
   ///
   /// The description can be up to 10,000 characters long.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// The display name for AnnotationSpecSet that you define when you create it.
   ///
   /// Maximum of 64 characters.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// The AnnotationSpecSet resource name in the following format:
   /// "projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatalabelingV1beta1AnnotationSpecSet();
 
@@ -4048,14 +3893,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationSpecs != null)
           'annotationSpecs':
-              annotationSpecs.map((value) => value.toJson()).toList(),
-        if (blockingResources != null) 'blockingResources': blockingResources,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
+              annotationSpecs!.map((value) => value.toJson()).toList(),
+        if (blockingResources != null) 'blockingResources': blockingResources!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4065,12 +3910,12 @@
   /// labels from one annotation spec set.
   ///
   /// Optional.
-  core.bool allowMultiLabel;
+  core.bool? allowMultiLabel;
 
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   GoogleCloudDatalabelingV1beta1AnnotationSpecSetConfig();
 
@@ -4084,9 +3929,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowMultiLabel != null) 'allowMultiLabel': allowMultiLabel,
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowMultiLabel != null) 'allowMultiLabel': allowMultiLabel!,
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
       };
 }
 
@@ -4094,11 +3939,11 @@
 class GoogleCloudDatalabelingV1beta1AnnotationValue {
   /// Annotation value for image bounding box, oriented bounding box and polygon
   /// cases.
-  GoogleCloudDatalabelingV1beta1ImageBoundingPolyAnnotation
+  GoogleCloudDatalabelingV1beta1ImageBoundingPolyAnnotation?
       imageBoundingPolyAnnotation;
 
   /// Annotation value for image classification case.
-  GoogleCloudDatalabelingV1beta1ImageClassificationAnnotation
+  GoogleCloudDatalabelingV1beta1ImageClassificationAnnotation?
       imageClassificationAnnotation;
 
   /// Annotation value for image polyline cases.
@@ -4106,29 +3951,30 @@
   /// Polyline here is different from BoundingPoly. It is formed by line
   /// segments connected to each other but not closed form(Bounding Poly). The
   /// line segments can cross each other.
-  GoogleCloudDatalabelingV1beta1ImagePolylineAnnotation imagePolylineAnnotation;
+  GoogleCloudDatalabelingV1beta1ImagePolylineAnnotation?
+      imagePolylineAnnotation;
 
   /// Annotation value for image segmentation.
-  GoogleCloudDatalabelingV1beta1ImageSegmentationAnnotation
+  GoogleCloudDatalabelingV1beta1ImageSegmentationAnnotation?
       imageSegmentationAnnotation;
 
   /// Annotation value for text classification case.
-  GoogleCloudDatalabelingV1beta1TextClassificationAnnotation
+  GoogleCloudDatalabelingV1beta1TextClassificationAnnotation?
       textClassificationAnnotation;
 
   /// Annotation value for text entity extraction case.
-  GoogleCloudDatalabelingV1beta1TextEntityExtractionAnnotation
+  GoogleCloudDatalabelingV1beta1TextEntityExtractionAnnotation?
       textEntityExtractionAnnotation;
 
   /// Annotation value for video classification case.
-  GoogleCloudDatalabelingV1beta1VideoClassificationAnnotation
+  GoogleCloudDatalabelingV1beta1VideoClassificationAnnotation?
       videoClassificationAnnotation;
 
   /// Annotation value for video event case.
-  GoogleCloudDatalabelingV1beta1VideoEventAnnotation videoEventAnnotation;
+  GoogleCloudDatalabelingV1beta1VideoEventAnnotation? videoEventAnnotation;
 
   /// Annotation value for video object detection and tracking case.
-  GoogleCloudDatalabelingV1beta1VideoObjectTrackingAnnotation
+  GoogleCloudDatalabelingV1beta1VideoObjectTrackingAnnotation?
       videoObjectTrackingAnnotation;
 
   GoogleCloudDatalabelingV1beta1AnnotationValue();
@@ -4190,38 +4036,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (imageBoundingPolyAnnotation != null)
-          'imageBoundingPolyAnnotation': imageBoundingPolyAnnotation.toJson(),
+          'imageBoundingPolyAnnotation': imageBoundingPolyAnnotation!.toJson(),
         if (imageClassificationAnnotation != null)
           'imageClassificationAnnotation':
-              imageClassificationAnnotation.toJson(),
+              imageClassificationAnnotation!.toJson(),
         if (imagePolylineAnnotation != null)
-          'imagePolylineAnnotation': imagePolylineAnnotation.toJson(),
+          'imagePolylineAnnotation': imagePolylineAnnotation!.toJson(),
         if (imageSegmentationAnnotation != null)
-          'imageSegmentationAnnotation': imageSegmentationAnnotation.toJson(),
+          'imageSegmentationAnnotation': imageSegmentationAnnotation!.toJson(),
         if (textClassificationAnnotation != null)
-          'textClassificationAnnotation': textClassificationAnnotation.toJson(),
+          'textClassificationAnnotation':
+              textClassificationAnnotation!.toJson(),
         if (textEntityExtractionAnnotation != null)
           'textEntityExtractionAnnotation':
-              textEntityExtractionAnnotation.toJson(),
+              textEntityExtractionAnnotation!.toJson(),
         if (videoClassificationAnnotation != null)
           'videoClassificationAnnotation':
-              videoClassificationAnnotation.toJson(),
+              videoClassificationAnnotation!.toJson(),
         if (videoEventAnnotation != null)
-          'videoEventAnnotation': videoEventAnnotation.toJson(),
+          'videoEventAnnotation': videoEventAnnotation!.toJson(),
         if (videoObjectTrackingAnnotation != null)
           'videoObjectTrackingAnnotation':
-              videoObjectTrackingAnnotation.toJson(),
+              videoObjectTrackingAnnotation!.toJson(),
       };
 }
 
 /// Records a failed evaluation job run.
 class GoogleCloudDatalabelingV1beta1Attempt {
-  core.String attemptTime;
+  core.String? attemptTime;
 
   /// Details of errors that occurred.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1beta1Attempt();
 
@@ -4237,11 +4084,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attemptTime != null) 'attemptTime': attemptTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attemptTime != null) 'attemptTime': attemptTime!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4262,7 +4109,7 @@
   /// more\](/ml-engine/docs/continuous-evaluation/create-job#table-schema).
   ///
   /// Required.
-  core.String inputUri;
+  core.String? inputUri;
 
   GoogleCloudDatalabelingV1beta1BigQuerySource();
 
@@ -4272,8 +4119,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inputUri != null) 'inputUri': inputUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inputUri != null) 'inputUri': inputUri!,
       };
 }
 
@@ -4284,7 +4131,7 @@
   /// required for 2 bounding boxes to be considered a match.
   ///
   /// This must be a number between 0 and 1.
-  core.double iouThreshold;
+  core.double? iouThreshold;
 
   GoogleCloudDatalabelingV1beta1BoundingBoxEvaluationOptions();
 
@@ -4295,15 +4142,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (iouThreshold != null) 'iouThreshold': iouThreshold,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (iouThreshold != null) 'iouThreshold': iouThreshold!,
       };
 }
 
 /// A bounding polygon in the image.
 class GoogleCloudDatalabelingV1beta1BoundingPoly {
   /// The bounding polygon vertices.
-  core.List<GoogleCloudDatalabelingV1beta1Vertex> vertices;
+  core.List<GoogleCloudDatalabelingV1beta1Vertex>? vertices;
 
   GoogleCloudDatalabelingV1beta1BoundingPoly();
 
@@ -4317,9 +4164,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (vertices != null)
-          'vertices': vertices.map((value) => value.toJson()).toList(),
+          'vertices': vertices!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4328,12 +4175,12 @@
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Instruction message showed on contributors UI.
   ///
   /// Optional.
-  core.String instructionMessage;
+  core.String? instructionMessage;
 
   GoogleCloudDatalabelingV1beta1BoundingPolyConfig();
 
@@ -4346,17 +4193,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (instructionMessage != null)
-          'instructionMessage': instructionMessage,
+          'instructionMessage': instructionMessage!,
       };
 }
 
 /// Metadata for classification annotations.
 class GoogleCloudDatalabelingV1beta1ClassificationMetadata {
   /// Whether the classification task is multi-label or not.
-  core.bool isMultiLabel;
+  core.bool? isMultiLabel;
 
   GoogleCloudDatalabelingV1beta1ClassificationMetadata();
 
@@ -4367,8 +4214,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (isMultiLabel != null) 'isMultiLabel': isMultiLabel,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (isMultiLabel != null) 'isMultiLabel': isMultiLabel!,
       };
 }
 
@@ -4377,11 +4224,11 @@
   /// Confusion matrix of predicted labels vs.
   ///
   /// ground truth labels.
-  GoogleCloudDatalabelingV1beta1ConfusionMatrix confusionMatrix;
+  GoogleCloudDatalabelingV1beta1ConfusionMatrix? confusionMatrix;
 
   /// Precision-recall curve based on ground truth labels, predicted labels, and
   /// scores for the predicted labels.
-  GoogleCloudDatalabelingV1beta1PrCurve prCurve;
+  GoogleCloudDatalabelingV1beta1PrCurve? prCurve;
 
   GoogleCloudDatalabelingV1beta1ClassificationMetrics();
 
@@ -4396,10 +4243,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (confusionMatrix != null)
-          'confusionMatrix': confusionMatrix.toJson(),
-        if (prCurve != null) 'prCurve': prCurve.toJson(),
+          'confusionMatrix': confusionMatrix!.toJson(),
+        if (prCurve != null) 'prCurve': prCurve!.toJson(),
       };
 }
 
@@ -4413,34 +4260,34 @@
   /// \[intersection-over-union
   /// (IOU)\](/vision/automl/object-detection/docs/evaluate#intersection-over-union)
   /// threshold for the context of this point on the PR curve.
-  core.double confidenceThreshold;
+  core.double? confidenceThreshold;
 
   /// Harmonic mean of recall and precision.
-  core.double f1Score;
+  core.double? f1Score;
 
   /// The harmonic mean of recall_at1 and precision_at1.
-  core.double f1ScoreAt1;
+  core.double? f1ScoreAt1;
 
   /// The harmonic mean of recall_at5 and precision_at5.
-  core.double f1ScoreAt5;
+  core.double? f1ScoreAt5;
 
   /// Precision value.
-  core.double precision;
+  core.double? precision;
 
   /// Precision value for entries with label that has highest score.
-  core.double precisionAt1;
+  core.double? precisionAt1;
 
   /// Precision value for entries with label that has highest 5 scores.
-  core.double precisionAt5;
+  core.double? precisionAt5;
 
   /// Recall value.
-  core.double recall;
+  core.double? recall;
 
   /// Recall value for entries with label that has highest score.
-  core.double recallAt1;
+  core.double? recallAt1;
 
   /// Recall value for entries with label that has highest 5 scores.
-  core.double recallAt5;
+  core.double? recallAt5;
 
   GoogleCloudDatalabelingV1beta1ConfidenceMetricsEntry();
 
@@ -4479,18 +4326,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (confidenceThreshold != null)
-          'confidenceThreshold': confidenceThreshold,
-        if (f1Score != null) 'f1Score': f1Score,
-        if (f1ScoreAt1 != null) 'f1ScoreAt1': f1ScoreAt1,
-        if (f1ScoreAt5 != null) 'f1ScoreAt5': f1ScoreAt5,
-        if (precision != null) 'precision': precision,
-        if (precisionAt1 != null) 'precisionAt1': precisionAt1,
-        if (precisionAt5 != null) 'precisionAt5': precisionAt5,
-        if (recall != null) 'recall': recall,
-        if (recallAt1 != null) 'recallAt1': recallAt1,
-        if (recallAt5 != null) 'recallAt5': recallAt5,
+          'confidenceThreshold': confidenceThreshold!,
+        if (f1Score != null) 'f1Score': f1Score!,
+        if (f1ScoreAt1 != null) 'f1ScoreAt1': f1ScoreAt1!,
+        if (f1ScoreAt5 != null) 'f1ScoreAt5': f1ScoreAt5!,
+        if (precision != null) 'precision': precision!,
+        if (precisionAt1 != null) 'precisionAt1': precisionAt1!,
+        if (precisionAt5 != null) 'precisionAt5': precisionAt5!,
+        if (recall != null) 'recall': recall!,
+        if (recallAt1 != null) 'recallAt1': recallAt1!,
+        if (recallAt5 != null) 'recallAt5': recallAt5!,
       };
 }
 
@@ -4499,7 +4346,7 @@
 /// Only applicable when the metrics entry aggregates multiple labels. Not
 /// applicable when the entry is for a single label.
 class GoogleCloudDatalabelingV1beta1ConfusionMatrix {
-  core.List<GoogleCloudDatalabelingV1beta1Row> row;
+  core.List<GoogleCloudDatalabelingV1beta1Row>? row;
 
   GoogleCloudDatalabelingV1beta1ConfusionMatrix();
 
@@ -4513,20 +4360,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (row != null) 'row': row.map((value) => value.toJson()).toList(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (row != null) 'row': row!.map((value) => value.toJson()).toList(),
       };
 }
 
 class GoogleCloudDatalabelingV1beta1ConfusionMatrixEntry {
   /// The annotation spec of a predicted label.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// Number of items predicted to have this label.
   ///
   /// (The ground truth label for these items is the `Row.annotationSpec` of
   /// this entry's parent.)
-  core.int itemCount;
+  core.int? itemCount;
 
   GoogleCloudDatalabelingV1beta1ConfusionMatrixEntry();
 
@@ -4540,9 +4387,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
-        if (itemCount != null) 'itemCount': itemCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
+        if (itemCount != null) 'itemCount': itemCount!,
       };
 }
 
@@ -4554,7 +4401,7 @@
   /// accepted for annotation specs with same display_name.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1AnnotationSpecSet annotationSpecSet;
+  GoogleCloudDatalabelingV1beta1AnnotationSpecSet? annotationSpecSet;
 
   GoogleCloudDatalabelingV1beta1CreateAnnotationSpecSetRequest();
 
@@ -4568,9 +4415,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationSpecSet != null)
-          'annotationSpecSet': annotationSpecSet.toJson(),
+          'annotationSpecSet': annotationSpecSet!.toJson(),
       };
 }
 
@@ -4579,7 +4426,7 @@
   /// The dataset to be created.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1Dataset dataset;
+  GoogleCloudDatalabelingV1beta1Dataset? dataset;
 
   GoogleCloudDatalabelingV1beta1CreateDatasetRequest();
 
@@ -4590,8 +4437,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!.toJson(),
       };
 }
 
@@ -4600,7 +4447,7 @@
   /// The evaluation job to create.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1EvaluationJob job;
+  GoogleCloudDatalabelingV1beta1EvaluationJob? job;
 
   GoogleCloudDatalabelingV1beta1CreateEvaluationJobRequest();
 
@@ -4612,26 +4459,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (job != null) 'job': job.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (job != null) 'job': job!.toJson(),
       };
 }
 
 /// Metadata of a CreateInstruction operation.
 class GoogleCloudDatalabelingV1beta1CreateInstructionMetadata {
   /// Timestamp when create instruction request was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of the created Instruction.
   ///
   /// projects/{project_id}/instructions/{instruction_id}
-  core.String instruction;
+  core.String? instruction;
 
   /// Partial failures encountered.
   ///
   /// E.g. single files that couldn't be read. Status details field will contain
   /// standard GCP error details.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1beta1CreateInstructionMetadata();
 
@@ -4651,12 +4498,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (instruction != null) 'instruction': instruction,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (instruction != null) 'instruction': instruction!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4665,7 +4512,7 @@
   /// Instruction of how to perform the labeling task.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1Instruction instruction;
+  GoogleCloudDatalabelingV1beta1Instruction? instruction;
 
   GoogleCloudDatalabelingV1beta1CreateInstructionRequest();
 
@@ -4677,8 +4524,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (instruction != null) 'instruction': instruction.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (instruction != null) 'instruction': instruction!.toJson(),
       };
 }
 
@@ -4689,7 +4536,7 @@
   /// CSV file for the instruction.
   ///
   /// Only gcs path is allowed.
-  core.String gcsFileUri;
+  core.String? gcsFileUri;
 
   GoogleCloudDatalabelingV1beta1CsvInstruction();
 
@@ -4699,8 +4546,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsFileUri != null) 'gcsFileUri': gcsFileUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsFileUri != null) 'gcsFileUri': gcsFileUri!,
       };
 }
 
@@ -4709,19 +4556,19 @@
 /// For example, an image.
 class GoogleCloudDatalabelingV1beta1DataItem {
   /// The image payload, a container of the image bytes/uri.
-  GoogleCloudDatalabelingV1beta1ImagePayload imagePayload;
+  GoogleCloudDatalabelingV1beta1ImagePayload? imagePayload;
 
   /// Name of the data item, in format of:
   /// projects/{project_id}/datasets/{dataset_id}/dataItems/{data_item_id}
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The text payload, a container of text content.
-  GoogleCloudDatalabelingV1beta1TextPayload textPayload;
+  GoogleCloudDatalabelingV1beta1TextPayload? textPayload;
 
   /// The video payload, a container of the video uri.
-  GoogleCloudDatalabelingV1beta1VideoPayload videoPayload;
+  GoogleCloudDatalabelingV1beta1VideoPayload? videoPayload;
 
   GoogleCloudDatalabelingV1beta1DataItem();
 
@@ -4743,11 +4590,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (imagePayload != null) 'imagePayload': imagePayload.toJson(),
-        if (name != null) 'name': name,
-        if (textPayload != null) 'textPayload': textPayload.toJson(),
-        if (videoPayload != null) 'videoPayload': videoPayload.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (imagePayload != null) 'imagePayload': imagePayload!.toJson(),
+        if (name != null) 'name': name!,
+        if (textPayload != null) 'textPayload': textPayload!.toJson(),
+        if (videoPayload != null) 'videoPayload': videoPayload!.toJson(),
       };
 }
 
@@ -4760,31 +4607,31 @@
   /// dataset.
   ///
   /// Output only.
-  core.List<core.String> blockingResources;
+  core.List<core.String>? blockingResources;
 
   /// Time the dataset is created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The number of data items in the dataset.
   ///
   /// Output only.
-  core.String dataItemCount;
+  core.String? dataItemCount;
 
   /// User-provided description of the annotation specification set.
   ///
   /// The description can be up to 10000 characters long.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// The display name of the dataset.
   ///
   /// Maximum of 64 characters.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// This is populated with the original input configs where ImportData is
   /// called.
@@ -4792,19 +4639,19 @@
   /// It is available only after the clients import data to this dataset.
   ///
   /// Output only.
-  core.List<GoogleCloudDatalabelingV1beta1InputConfig> inputConfigs;
+  core.List<GoogleCloudDatalabelingV1beta1InputConfig>? inputConfigs;
 
   /// Last time that the Dataset is migrated to AI Platform V2.
   ///
   /// If any of the AnnotatedDataset is migrated, the last_migration_time in
   /// Dataset is also updated.
-  core.String lastMigrateTime;
+  core.String? lastMigrateTime;
 
   /// Dataset resource name, format is:
   /// projects/{project_id}/datasets/{dataset_id}
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatalabelingV1beta1Dataset();
 
@@ -4841,16 +4688,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (blockingResources != null) 'blockingResources': blockingResources,
-        if (createTime != null) 'createTime': createTime,
-        if (dataItemCount != null) 'dataItemCount': dataItemCount,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (blockingResources != null) 'blockingResources': blockingResources!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataItemCount != null) 'dataItemCount': dataItemCount!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
         if (inputConfigs != null)
-          'inputConfigs': inputConfigs.map((value) => value.toJson()).toList(),
-        if (lastMigrateTime != null) 'lastMigrateTime': lastMigrateTime,
-        if (name != null) 'name': name,
+          'inputConfigs': inputConfigs!.map((value) => value.toJson()).toList(),
+        if (lastMigrateTime != null) 'lastMigrateTime': lastMigrateTime!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4886,17 +4733,17 @@
   /// - "TEXT_ENTITY_EXTRACTION_ANNOTATION" : Entity extraction for text.
   /// - "GENERAL_CLASSIFICATION_ANNOTATION" : General classification. Allowed
   /// for continuous evaluation.
-  core.String annotationType;
+  core.String? annotationType;
 
   /// Options used in the evaluation job that created this evaluation.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1EvaluationConfig config;
+  GoogleCloudDatalabelingV1beta1EvaluationConfig? config;
 
   /// Timestamp for when this evaluation was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The number of items in the ground truth dataset that were used for this
   /// evaluation.
@@ -4904,17 +4751,17 @@
   /// Only populated when the evaulation is for certain AnnotationTypes.
   ///
   /// Output only.
-  core.String evaluatedItemCount;
+  core.String? evaluatedItemCount;
 
   /// Timestamp for when the evaluation job that created this evaluation ran.
   ///
   /// Output only.
-  core.String evaluationJobRunTime;
+  core.String? evaluationJobRunTime;
 
   /// Metrics comparing predictions to ground truth labels.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1EvaluationMetrics evaluationMetrics;
+  GoogleCloudDatalabelingV1beta1EvaluationMetrics? evaluationMetrics;
 
   /// Resource name of an evaluation.
   ///
@@ -4922,7 +4769,7 @@
   /// "projects/{project_id}/datasets/{dataset_id}/evaluations/ {evaluation_id}'
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatalabelingV1beta1Evaluation();
 
@@ -4954,17 +4801,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationType != null) 'annotationType': annotationType,
-        if (config != null) 'config': config.toJson(),
-        if (createTime != null) 'createTime': createTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationType != null) 'annotationType': annotationType!,
+        if (config != null) 'config': config!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
         if (evaluatedItemCount != null)
-          'evaluatedItemCount': evaluatedItemCount,
+          'evaluatedItemCount': evaluatedItemCount!,
         if (evaluationJobRunTime != null)
-          'evaluationJobRunTime': evaluationJobRunTime,
+          'evaluationJobRunTime': evaluationJobRunTime!,
         if (evaluationMetrics != null)
-          'evaluationMetrics': evaluationMetrics.toJson(),
-        if (name != null) 'name': name,
+          'evaluationMetrics': evaluationMetrics!.toJson(),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4975,7 +4822,7 @@
   /// detection (`IMAGE_BOUNDING_BOX_ANNOTATION`).
   ///
   /// Describes how to evaluate bounding boxes.
-  GoogleCloudDatalabelingV1beta1BoundingBoxEvaluationOptions
+  GoogleCloudDatalabelingV1beta1BoundingBoxEvaluationOptions?
       boundingBoxEvaluationOptions;
 
   GoogleCloudDatalabelingV1beta1EvaluationConfig();
@@ -4989,9 +4836,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (boundingBoxEvaluationOptions != null)
-          'boundingBoxEvaluationOptions': boundingBoxEvaluationOptions.toJson(),
+          'boundingBoxEvaluationOptions':
+              boundingBoxEvaluationOptions!.toJson(),
       };
 }
 
@@ -5009,30 +4857,30 @@
   /// "projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}"
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Every time the evaluation job runs and an error occurs, the failed attempt
   /// is appended to this array.
   ///
   /// Output only.
-  core.List<GoogleCloudDatalabelingV1beta1Attempt> attempts;
+  core.List<GoogleCloudDatalabelingV1beta1Attempt>? attempts;
 
   /// Timestamp of when this evaluation job was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Description of the job.
   ///
   /// The description can be up to 25,000 characters long.
   ///
   /// Required.
-  core.String description;
+  core.String? description;
 
   /// Configuration details for the evaluation job.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1EvaluationJobConfig evaluationJobConfig;
+  GoogleCloudDatalabelingV1beta1EvaluationJobConfig? evaluationJobConfig;
 
   /// Whether you want Data Labeling Service to provide ground truth labels for
   /// prediction input.
@@ -5042,7 +4890,7 @@
   /// the evaluation job's BigQuery table, set this to `false`.
   ///
   /// Required.
-  core.bool labelMissingGroundTruth;
+  core.bool? labelMissingGroundTruth;
 
   /// The \[AI Platform Prediction model
   /// version\](/ml-engine/docs/prediction-overview) to be evaluated.
@@ -5054,14 +4902,14 @@
   /// can only be one evaluation job per model version.
   ///
   /// Required.
-  core.String modelVersion;
+  core.String? modelVersion;
 
   /// After you create a job, Data Labeling Service assigns a name to the job
   /// with the following format: "projects/{project_id}/evaluationJobs/
   /// {evaluation_job_id}"
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Describes the interval at which the job runs.
   ///
@@ -5075,7 +4923,7 @@
   /// interval from this schedule is used, not the specific time of day.
   ///
   /// Required.
-  core.String schedule;
+  core.String? schedule;
 
   /// Describes the current state of the job.
   ///
@@ -5109,7 +4957,7 @@
   /// BigQuery table and it will not run according to its schedule. You can
   /// resume the job.
   /// - "STOPPED" : The job has this state right before it is deleted.
-  core.String state;
+  core.String? state;
 
   GoogleCloudDatalabelingV1beta1EvaluationJob();
 
@@ -5153,20 +5001,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (attempts != null)
-          'attempts': attempts.map((value) => value.toJson()).toList(),
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
+          'attempts': attempts!.map((value) => value.toJson()).toList(),
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
         if (evaluationJobConfig != null)
-          'evaluationJobConfig': evaluationJobConfig.toJson(),
+          'evaluationJobConfig': evaluationJobConfig!.toJson(),
         if (labelMissingGroundTruth != null)
-          'labelMissingGroundTruth': labelMissingGroundTruth,
-        if (modelVersion != null) 'modelVersion': modelVersion,
-        if (name != null) 'name': name,
-        if (schedule != null) 'schedule': schedule,
-        if (state != null) 'state': state,
+          'labelMissingGroundTruth': labelMissingGroundTruth!,
+        if (modelVersion != null) 'modelVersion': modelVersion!,
+        if (name != null) 'name': name!,
+        if (schedule != null) 'schedule': schedule!,
+        if (state != null) 'state': state!,
       };
 }
 
@@ -5176,7 +5024,7 @@
   /// An email address to send alerts to.
   ///
   /// Required.
-  core.String email;
+  core.String? email;
 
   /// A number between 0 and 1 that describes a minimum mean average precision
   /// threshold.
@@ -5186,7 +5034,7 @@
   /// threshold, then it sends an alert to your specified email.
   ///
   /// Required.
-  core.double minAcceptableMeanAveragePrecision;
+  core.double? minAcceptableMeanAveragePrecision;
 
   GoogleCloudDatalabelingV1beta1EvaluationJobAlertConfig();
 
@@ -5201,11 +5049,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
         if (minAcceptableMeanAveragePrecision != null)
           'minAcceptableMeanAveragePrecision':
-              minAcceptableMeanAveragePrecision,
+              minAcceptableMeanAveragePrecision!,
       };
 }
 
@@ -5231,14 +5079,14 @@
   /// keys\](/ml-engine/docs/continuous-evaluation/create-job#prediction-keys).
   ///
   /// Required.
-  core.Map<core.String, core.String> bigqueryImportKeys;
+  core.Map<core.String, core.String>? bigqueryImportKeys;
 
   /// Specify this field if your model version performs image object detection
   /// (bounding box detection).
   ///
   /// `annotationSpecSet` in this configuration must match
   /// EvaluationJob.annotationSpecSet.
-  GoogleCloudDatalabelingV1beta1BoundingPolyConfig boundingPolyConfig;
+  GoogleCloudDatalabelingV1beta1BoundingPolyConfig? boundingPolyConfig;
 
   /// Details for calculating evaluation metrics and creating Evaulations.
   ///
@@ -5247,7 +5095,7 @@
   /// Otherwise, provide an empty object for this configuration.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1EvaluationConfig evaluationConfig;
+  GoogleCloudDatalabelingV1beta1EvaluationConfig? evaluationConfig;
 
   /// Configuration details for evaluation job alerts.
   ///
@@ -5256,7 +5104,7 @@
   /// run.
   ///
   /// Optional.
-  GoogleCloudDatalabelingV1beta1EvaluationJobAlertConfig
+  GoogleCloudDatalabelingV1beta1EvaluationJobAlertConfig?
       evaluationJobAlertConfig;
 
   /// The maximum number of predictions to sample and save to BigQuery during
@@ -5268,7 +5116,7 @@
   /// limit.
   ///
   /// Required.
-  core.int exampleCount;
+  core.int? exampleCount;
 
   /// Fraction of predictions to sample and save to BigQuery during each
   /// evaluation interval.
@@ -5277,7 +5125,7 @@
   /// saved to BigQuery.
   ///
   /// Required.
-  core.double exampleSamplePercentage;
+  core.double? exampleSamplePercentage;
 
   /// Details for human annotation of your data.
   ///
@@ -5288,7 +5136,7 @@
   /// instruction resource in the `instruction` field within this configuration.
   ///
   /// Optional.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig humanAnnotationConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? humanAnnotationConfig;
 
   /// Specify this field if your model version performs image classification or
   /// general classification.
@@ -5296,7 +5144,7 @@
   /// `annotationSpecSet` in this configuration must match
   /// EvaluationJob.annotationSpecSet. `allowMultiLabel` in this configuration
   /// must match `classificationMetadata.isMultiLabel` in input_config.
-  GoogleCloudDatalabelingV1beta1ImageClassificationConfig
+  GoogleCloudDatalabelingV1beta1ImageClassificationConfig?
       imageClassificationConfig;
 
   /// Rquired.
@@ -5309,14 +5157,14 @@
   /// (image object detection). * If your machine learning model performs
   /// classification, you must specify `classificationMetadata.isMultiLabel`. *
   /// You must specify `bigquerySource` (not `gcsSource`).
-  GoogleCloudDatalabelingV1beta1InputConfig inputConfig;
+  GoogleCloudDatalabelingV1beta1InputConfig? inputConfig;
 
   /// Specify this field if your model version performs text classification.
   ///
   /// `annotationSpecSet` in this configuration must match
   /// EvaluationJob.annotationSpecSet. `allowMultiLabel` in this configuration
   /// must match `classificationMetadata.isMultiLabel` in input_config.
-  GoogleCloudDatalabelingV1beta1TextClassificationConfig
+  GoogleCloudDatalabelingV1beta1TextClassificationConfig?
       textClassificationConfig;
 
   GoogleCloudDatalabelingV1beta1EvaluationJobConfig();
@@ -5380,31 +5228,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bigqueryImportKeys != null)
-          'bigqueryImportKeys': bigqueryImportKeys,
+          'bigqueryImportKeys': bigqueryImportKeys!,
         if (boundingPolyConfig != null)
-          'boundingPolyConfig': boundingPolyConfig.toJson(),
+          'boundingPolyConfig': boundingPolyConfig!.toJson(),
         if (evaluationConfig != null)
-          'evaluationConfig': evaluationConfig.toJson(),
+          'evaluationConfig': evaluationConfig!.toJson(),
         if (evaluationJobAlertConfig != null)
-          'evaluationJobAlertConfig': evaluationJobAlertConfig.toJson(),
-        if (exampleCount != null) 'exampleCount': exampleCount,
+          'evaluationJobAlertConfig': evaluationJobAlertConfig!.toJson(),
+        if (exampleCount != null) 'exampleCount': exampleCount!,
         if (exampleSamplePercentage != null)
-          'exampleSamplePercentage': exampleSamplePercentage,
+          'exampleSamplePercentage': exampleSamplePercentage!,
         if (humanAnnotationConfig != null)
-          'humanAnnotationConfig': humanAnnotationConfig.toJson(),
+          'humanAnnotationConfig': humanAnnotationConfig!.toJson(),
         if (imageClassificationConfig != null)
-          'imageClassificationConfig': imageClassificationConfig.toJson(),
-        if (inputConfig != null) 'inputConfig': inputConfig.toJson(),
+          'imageClassificationConfig': imageClassificationConfig!.toJson(),
+        if (inputConfig != null) 'inputConfig': inputConfig!.toJson(),
         if (textClassificationConfig != null)
-          'textClassificationConfig': textClassificationConfig.toJson(),
+          'textClassificationConfig': textClassificationConfig!.toJson(),
       };
 }
 
 class GoogleCloudDatalabelingV1beta1EvaluationMetrics {
-  GoogleCloudDatalabelingV1beta1ClassificationMetrics classificationMetrics;
-  GoogleCloudDatalabelingV1beta1ObjectDetectionMetrics objectDetectionMetrics;
+  GoogleCloudDatalabelingV1beta1ClassificationMetrics? classificationMetrics;
+  GoogleCloudDatalabelingV1beta1ObjectDetectionMetrics? objectDetectionMetrics;
 
   GoogleCloudDatalabelingV1beta1EvaluationMetrics();
 
@@ -5423,11 +5271,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (classificationMetrics != null)
-          'classificationMetrics': classificationMetrics.toJson(),
+          'classificationMetrics': classificationMetrics!.toJson(),
         if (objectDetectionMetrics != null)
-          'objectDetectionMetrics': objectDetectionMetrics.toJson(),
+          'objectDetectionMetrics': objectDetectionMetrics!.toJson(),
       };
 }
 
@@ -5439,18 +5287,18 @@
   /// AnnotationSpecSet at the same time.
   ///
   /// Required.
-  core.List<core.String> annotationSpecSets;
+  core.List<core.String>? annotationSpecSets;
 
   /// Videos will be cut to smaller clips to make it easier for labelers to work
   /// on.
   ///
   /// Users can configure is field in seconds, if not set, default value is 60s.
-  core.int clipLength;
+  core.int? clipLength;
 
   /// The overlap length between different video clips.
   ///
   /// Users can configure is field in seconds, if not set, default value is 1s.
-  core.int overlapLength;
+  core.int? overlapLength;
 
   GoogleCloudDatalabelingV1beta1EventConfig();
 
@@ -5468,11 +5316,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationSpecSets != null)
-          'annotationSpecSets': annotationSpecSets,
-        if (clipLength != null) 'clipLength': clipLength,
-        if (overlapLength != null) 'overlapLength': overlapLength,
+          'annotationSpecSets': annotationSpecSets!,
+        if (clipLength != null) 'clipLength': clipLength!,
+        if (overlapLength != null) 'overlapLength': overlapLength!,
       };
 }
 
@@ -5485,23 +5333,23 @@
   /// One piece of data can have multiple annotations.
   ///
   /// Output only.
-  core.List<GoogleCloudDatalabelingV1beta1Annotation> annotations;
+  core.List<GoogleCloudDatalabelingV1beta1Annotation>? annotations;
 
   /// The image payload, a container of the image bytes/uri.
-  GoogleCloudDatalabelingV1beta1ImagePayload imagePayload;
+  GoogleCloudDatalabelingV1beta1ImagePayload? imagePayload;
 
   /// Name of the example, in format of:
   /// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
   /// {annotated_dataset_id}/examples/{example_id}
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The text payload, a container of the text content.
-  GoogleCloudDatalabelingV1beta1TextPayload textPayload;
+  GoogleCloudDatalabelingV1beta1TextPayload? textPayload;
 
   /// The video payload, a container of the video uri.
-  GoogleCloudDatalabelingV1beta1VideoPayload videoPayload;
+  GoogleCloudDatalabelingV1beta1VideoPayload? videoPayload;
 
   GoogleCloudDatalabelingV1beta1Example();
 
@@ -5530,13 +5378,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotations != null)
-          'annotations': annotations.map((value) => value.toJson()).toList(),
-        if (imagePayload != null) 'imagePayload': imagePayload.toJson(),
-        if (name != null) 'name': name,
-        if (textPayload != null) 'textPayload': textPayload.toJson(),
-        if (videoPayload != null) 'videoPayload': videoPayload.toJson(),
+          'annotations': annotations!.map((value) => value.toJson()).toList(),
+        if (imagePayload != null) 'imagePayload': imagePayload!.toJson(),
+        if (name != null) 'name': name!,
+        if (textPayload != null) 'textPayload': textPayload!.toJson(),
+        if (videoPayload != null) 'videoPayload': videoPayload!.toJson(),
       };
 }
 
@@ -5544,10 +5392,10 @@
 /// specific input.
 class GoogleCloudDatalabelingV1beta1ExampleComparison {
   /// The ground truth output for the input.
-  GoogleCloudDatalabelingV1beta1Example groundTruthExample;
+  GoogleCloudDatalabelingV1beta1Example? groundTruthExample;
 
   /// Predictions by the model for the input.
-  core.List<GoogleCloudDatalabelingV1beta1Example> modelCreatedExamples;
+  core.List<GoogleCloudDatalabelingV1beta1Example>? modelCreatedExamples;
 
   GoogleCloudDatalabelingV1beta1ExampleComparison();
 
@@ -5565,12 +5413,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (groundTruthExample != null)
-          'groundTruthExample': groundTruthExample.toJson(),
+          'groundTruthExample': groundTruthExample!.toJson(),
         if (modelCreatedExamples != null)
           'modelCreatedExamples':
-              modelCreatedExamples.map((value) => value.toJson()).toList(),
+              modelCreatedExamples!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5580,19 +5428,19 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when export dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be exported.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -5600,7 +5448,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1beta1ExportDataOperationMetadata();
 
@@ -5623,13 +5471,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5639,32 +5487,32 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Ouptut only.
   ///
   /// The name of dataset. "projects / * /datasets / * "
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples exported successfully.
   ///
   /// Output only.
-  core.int exportCount;
+  core.int? exportCount;
 
   /// Statistic infos of labels in the exported dataset.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1LabelStats labelStats;
+  GoogleCloudDatalabelingV1beta1LabelStats? labelStats;
 
   /// output_config in the ExportData request.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1beta1OutputConfig outputConfig;
+  GoogleCloudDatalabelingV1beta1OutputConfig? outputConfig;
 
   /// Total number of examples requested to export
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1beta1ExportDataOperationResponse();
 
@@ -5692,13 +5540,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (dataset != null) 'dataset': dataset,
-        if (exportCount != null) 'exportCount': exportCount,
-        if (labelStats != null) 'labelStats': labelStats.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (dataset != null) 'dataset': dataset!,
+        if (exportCount != null) 'exportCount': exportCount!,
+        if (labelStats != null) 'labelStats': labelStats!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -5712,23 +5560,23 @@
   /// {annotated_dataset_id}
   ///
   /// Required.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Filter is not supported at this moment.
   ///
   /// Optional.
-  core.String filter;
+  core.String? filter;
 
   /// Specify the output destination.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1OutputConfig outputConfig;
+  GoogleCloudDatalabelingV1beta1OutputConfig? outputConfig;
 
   /// Email of the user who started the export task and should be notified by
   /// email.
   ///
   /// If empty no notification will be sent.
-  core.String userEmailAddress;
+  core.String? userEmailAddress;
 
   GoogleCloudDatalabelingV1beta1ExportDataRequest();
 
@@ -5748,11 +5596,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (filter != null) 'filter': filter,
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
-        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (filter != null) 'filter': filter!,
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
+        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress!,
       };
 }
 
@@ -5761,15 +5609,15 @@
   /// String content of the feedback.
   ///
   /// Maximum of 10000 characters.
-  core.String body;
+  core.String? body;
 
   /// Create time.
-  core.String createTime;
+  core.String? createTime;
 
   /// The image storing this feedback if the feedback is an image representing
   /// operator's comments.
-  core.String image;
-  core.List<core.int> get imageAsBytes => convert.base64.decode(image);
+  core.String? image;
+  core.List<core.int> get imageAsBytes => convert.base64.decode(image!);
 
   set imageAsBytes(core.List<core.int> _bytes) {
     image =
@@ -5780,10 +5628,10 @@
   ///
   /// Format:
   /// 'project/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset_id}/feedbackThreads/{feedback_thread_id}/feedbackMessage/{feedback_message_id}'
-  core.String name;
-  GoogleCloudDatalabelingV1beta1OperatorFeedbackMetadata
+  core.String? name;
+  GoogleCloudDatalabelingV1beta1OperatorFeedbackMetadata?
       operatorFeedbackMetadata;
-  GoogleCloudDatalabelingV1beta1RequesterFeedbackMetadata
+  GoogleCloudDatalabelingV1beta1RequesterFeedbackMetadata?
       requesterFeedbackMetadata;
 
   GoogleCloudDatalabelingV1beta1FeedbackMessage();
@@ -5815,28 +5663,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (body != null) 'body': body,
-        if (createTime != null) 'createTime': createTime,
-        if (image != null) 'image': image,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (body != null) 'body': body!,
+        if (createTime != null) 'createTime': createTime!,
+        if (image != null) 'image': image!,
+        if (name != null) 'name': name!,
         if (operatorFeedbackMetadata != null)
-          'operatorFeedbackMetadata': operatorFeedbackMetadata.toJson(),
+          'operatorFeedbackMetadata': operatorFeedbackMetadata!.toJson(),
         if (requesterFeedbackMetadata != null)
-          'requesterFeedbackMetadata': requesterFeedbackMetadata.toJson(),
+          'requesterFeedbackMetadata': requesterFeedbackMetadata!.toJson(),
       };
 }
 
 /// A feedback thread of a certain labeling task on a certain annotated dataset.
 class GoogleCloudDatalabelingV1beta1FeedbackThread {
   /// Metadata regarding the feedback thread.
-  GoogleCloudDatalabelingV1beta1FeedbackThreadMetadata feedbackThreadMetadata;
+  GoogleCloudDatalabelingV1beta1FeedbackThreadMetadata? feedbackThreadMetadata;
 
   /// Name of the feedback thread.
   ///
   /// Format:
   /// 'project/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset_id}/feedbackThreads/{feedback_thread_id}'
-  core.String name;
+  core.String? name;
 
   GoogleCloudDatalabelingV1beta1FeedbackThread();
 
@@ -5852,30 +5700,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (feedbackThreadMetadata != null)
-          'feedbackThreadMetadata': feedbackThreadMetadata.toJson(),
-        if (name != null) 'name': name,
+          'feedbackThreadMetadata': feedbackThreadMetadata!.toJson(),
+        if (name != null) 'name': name!,
       };
 }
 
 class GoogleCloudDatalabelingV1beta1FeedbackThreadMetadata {
   /// When the thread is created
-  core.String createTime;
+  core.String? createTime;
 
   /// When the thread is last updated.
-  core.String lastUpdateTime;
+  core.String? lastUpdateTime;
 
   ///
   /// Possible string values are:
   /// - "FEEDBACK_THREAD_STATUS_UNSPECIFIED"
   /// - "NEW" : Feedback thread is created with no reply;
   /// - "REPLIED" : Feedback thread is replied at least once;
-  core.String status;
+  core.String? status;
 
   /// An image thumbnail of this thread.
-  core.String thumbnail;
-  core.List<core.int> get thumbnailAsBytes => convert.base64.decode(thumbnail);
+  core.String? thumbnail;
+  core.List<core.int> get thumbnailAsBytes => convert.base64.decode(thumbnail!);
 
   set thumbnailAsBytes(core.List<core.int> _bytes) {
     thumbnail =
@@ -5900,11 +5748,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (lastUpdateTime != null) 'lastUpdateTime': lastUpdateTime,
-        if (status != null) 'status': status,
-        if (thumbnail != null) 'thumbnail': thumbnail,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (lastUpdateTime != null) 'lastUpdateTime': lastUpdateTime!,
+        if (status != null) 'status': status!,
+        if (thumbnail != null) 'thumbnail': thumbnail!,
       };
 }
 
@@ -5915,12 +5763,12 @@
   /// Only "text/csv" and "application/json" are supported.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// The output uri of destination file.
   ///
   /// Required.
-  core.String outputUri;
+  core.String? outputUri;
 
   GoogleCloudDatalabelingV1beta1GcsDestination();
 
@@ -5933,9 +5781,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (mimeType != null) 'mimeType': mimeType,
-        if (outputUri != null) 'outputUri': outputUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (outputUri != null) 'outputUri': outputUri!,
       };
 }
 
@@ -5944,7 +5792,7 @@
   /// Cloud Storage directory to export data to.
   ///
   /// Required.
-  core.String outputFolderUri;
+  core.String? outputFolderUri;
 
   GoogleCloudDatalabelingV1beta1GcsFolderDestination();
 
@@ -5954,8 +5802,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri!,
       };
 }
 
@@ -5966,14 +5814,14 @@
   /// This must be a Cloud Storage path (`gs://...`).
   ///
   /// Required.
-  core.String inputUri;
+  core.String? inputUri;
 
   /// The format of the source file.
   ///
   /// Only "text/csv" is supported.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDatalabelingV1beta1GcsSource();
 
@@ -5986,9 +5834,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inputUri != null) 'inputUri': inputUri,
-        if (mimeType != null) 'mimeType': mimeType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inputUri != null) 'inputUri': inputUri!,
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
@@ -5999,14 +5847,14 @@
   /// The description can be up to 10000 characters long.
   ///
   /// Optional.
-  core.String annotatedDatasetDescription;
+  core.String? annotatedDatasetDescription;
 
   /// A human-readable name for AnnotatedDataset defined by users.
   ///
   /// Maximum of 64 characters .
   ///
   /// Required.
-  core.String annotatedDatasetDisplayName;
+  core.String? annotatedDatasetDisplayName;
 
   /// If you want your own labeling contributors to manage and work on this
   /// labeling request, you can set these contributors here.
@@ -6016,19 +5864,19 @@
   /// https://crowd-compute.appspot.com/
   ///
   /// Optional.
-  core.List<core.String> contributorEmails;
+  core.List<core.String>? contributorEmails;
 
   /// Instruction resource name.
   ///
   /// Required.
-  core.String instruction;
+  core.String? instruction;
 
   /// A human-readable label used to logically group labeling tasks.
   ///
   /// This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`.
   ///
   /// Optional.
-  core.String labelGroup;
+  core.String? labelGroup;
 
   /// The Language of this question, as a
   /// \[BCP-47\](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
@@ -6037,14 +5885,14 @@
   /// related. For example, French text classification.
   ///
   /// Optional.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Maximum duration for contributors to answer a question.
   ///
   /// Maximum is 3600 seconds. Default is 3600 seconds.
   ///
   /// Optional.
-  core.String questionDuration;
+  core.String? questionDuration;
 
   /// Replication of questions.
   ///
@@ -6053,13 +5901,13 @@
   /// related labeling, valid values are 1, 3, 5.
   ///
   /// Optional.
-  core.int replicaCount;
+  core.int? replicaCount;
 
   /// Email of the user who started the labeling task and should be notified by
   /// email.
   ///
   /// If empty no notification will be sent.
-  core.String userEmailAddress;
+  core.String? userEmailAddress;
 
   GoogleCloudDatalabelingV1beta1HumanAnnotationConfig();
 
@@ -6097,18 +5945,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotatedDatasetDescription != null)
-          'annotatedDatasetDescription': annotatedDatasetDescription,
+          'annotatedDatasetDescription': annotatedDatasetDescription!,
         if (annotatedDatasetDisplayName != null)
-          'annotatedDatasetDisplayName': annotatedDatasetDisplayName,
-        if (contributorEmails != null) 'contributorEmails': contributorEmails,
-        if (instruction != null) 'instruction': instruction,
-        if (labelGroup != null) 'labelGroup': labelGroup,
-        if (languageCode != null) 'languageCode': languageCode,
-        if (questionDuration != null) 'questionDuration': questionDuration,
-        if (replicaCount != null) 'replicaCount': replicaCount,
-        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress,
+          'annotatedDatasetDisplayName': annotatedDatasetDisplayName!,
+        if (contributorEmails != null) 'contributorEmails': contributorEmails!,
+        if (instruction != null) 'instruction': instruction!,
+        if (labelGroup != null) 'labelGroup': labelGroup!,
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (questionDuration != null) 'questionDuration': questionDuration!,
+        if (replicaCount != null) 'replicaCount': replicaCount!,
+        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress!,
       };
 }
 
@@ -6117,9 +5965,9 @@
 /// It represents a polygon including bounding box in the image.
 class GoogleCloudDatalabelingV1beta1ImageBoundingPolyAnnotation {
   /// Label of object in this bounding polygon.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
-  GoogleCloudDatalabelingV1beta1BoundingPoly boundingPoly;
-  GoogleCloudDatalabelingV1beta1NormalizedBoundingPoly normalizedBoundingPoly;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
+  GoogleCloudDatalabelingV1beta1BoundingPoly? boundingPoly;
+  GoogleCloudDatalabelingV1beta1NormalizedBoundingPoly? normalizedBoundingPoly;
 
   GoogleCloudDatalabelingV1beta1ImageBoundingPolyAnnotation();
 
@@ -6141,18 +5989,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
         if (normalizedBoundingPoly != null)
-          'normalizedBoundingPoly': normalizedBoundingPoly.toJson(),
+          'normalizedBoundingPoly': normalizedBoundingPoly!.toJson(),
       };
 }
 
 /// Image classification annotation definition.
 class GoogleCloudDatalabelingV1beta1ImageClassificationAnnotation {
   /// Label of image.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   GoogleCloudDatalabelingV1beta1ImageClassificationAnnotation();
 
@@ -6164,8 +6012,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
       };
 }
 
@@ -6175,12 +6023,12 @@
   /// labels for one image.
   ///
   /// Optional.
-  core.bool allowMultiLabel;
+  core.bool? allowMultiLabel;
 
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// The type of how to aggregate answers.
   ///
@@ -6190,7 +6038,7 @@
   /// - "MAJORITY_VOTE" : Majority vote to aggregate answers.
   /// - "UNANIMOUS_VOTE" : Unanimous answers will be adopted.
   /// - "NO_AGGREGATION" : Preserve all answers by crowd compute.
-  core.String answerAggregationType;
+  core.String? answerAggregationType;
 
   GoogleCloudDatalabelingV1beta1ImageClassificationConfig();
 
@@ -6207,20 +6055,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowMultiLabel != null) 'allowMultiLabel': allowMultiLabel,
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowMultiLabel != null) 'allowMultiLabel': allowMultiLabel!,
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (answerAggregationType != null)
-          'answerAggregationType': answerAggregationType,
+          'answerAggregationType': answerAggregationType!,
       };
 }
 
 /// Container of information about an image.
 class GoogleCloudDatalabelingV1beta1ImagePayload {
   /// A byte string of a thumbnail image.
-  core.String imageThumbnail;
+  core.String? imageThumbnail;
   core.List<core.int> get imageThumbnailAsBytes =>
-      convert.base64.decode(imageThumbnail);
+      convert.base64.decode(imageThumbnail!);
 
   set imageThumbnailAsBytes(core.List<core.int> _bytes) {
     imageThumbnail =
@@ -6228,13 +6076,13 @@
   }
 
   /// Image uri from the user bucket.
-  core.String imageUri;
+  core.String? imageUri;
 
   /// Image format.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Signed uri of the image file in the service bucket.
-  core.String signedUri;
+  core.String? signedUri;
 
   GoogleCloudDatalabelingV1beta1ImagePayload();
 
@@ -6253,20 +6101,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (imageThumbnail != null) 'imageThumbnail': imageThumbnail,
-        if (imageUri != null) 'imageUri': imageUri,
-        if (mimeType != null) 'mimeType': mimeType,
-        if (signedUri != null) 'signedUri': signedUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (imageThumbnail != null) 'imageThumbnail': imageThumbnail!,
+        if (imageUri != null) 'imageUri': imageUri!,
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (signedUri != null) 'signedUri': signedUri!,
       };
 }
 
 /// A polyline for the image annotation.
 class GoogleCloudDatalabelingV1beta1ImagePolylineAnnotation {
   /// Label of this polyline.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
-  GoogleCloudDatalabelingV1beta1NormalizedPolyline normalizedPolyline;
-  GoogleCloudDatalabelingV1beta1Polyline polyline;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
+  GoogleCloudDatalabelingV1beta1NormalizedPolyline? normalizedPolyline;
+  GoogleCloudDatalabelingV1beta1Polyline? polyline;
 
   GoogleCloudDatalabelingV1beta1ImagePolylineAnnotation();
 
@@ -6288,11 +6136,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
         if (normalizedPolyline != null)
-          'normalizedPolyline': normalizedPolyline.toJson(),
-        if (polyline != null) 'polyline': polyline.toJson(),
+          'normalizedPolyline': normalizedPolyline!.toJson(),
+        if (polyline != null) 'polyline': polyline!.toJson(),
       };
 }
 
@@ -6302,13 +6150,13 @@
   ///
   /// The key is the rgb color represented in format of rgb(0, 0, 0). The value
   /// is the AnnotationSpec.
-  core.Map<core.String, GoogleCloudDatalabelingV1beta1AnnotationSpec>
+  core.Map<core.String, GoogleCloudDatalabelingV1beta1AnnotationSpec>?
       annotationColors;
 
   /// A byte string of a full image's color map.
-  core.String imageBytes;
+  core.String? imageBytes;
   core.List<core.int> get imageBytesAsBytes =>
-      convert.base64.decode(imageBytes);
+      convert.base64.decode(imageBytes!);
 
   set imageBytesAsBytes(core.List<core.int> _bytes) {
     imageBytes =
@@ -6316,7 +6164,7 @@
   }
 
   /// Image format.
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDatalabelingV1beta1ImageSegmentationAnnotation();
 
@@ -6324,7 +6172,7 @@
       core.Map _json) {
     if (_json.containsKey('annotationColors')) {
       annotationColors = (_json['annotationColors'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -6341,12 +6189,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationColors != null)
-          'annotationColors': annotationColors
+          'annotationColors': annotationColors!
               .map((key, item) => core.MapEntry(key, item.toJson())),
-        if (imageBytes != null) 'imageBytes': imageBytes,
-        if (mimeType != null) 'mimeType': mimeType,
+        if (imageBytes != null) 'imageBytes': imageBytes!,
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
@@ -6355,14 +6203,14 @@
   /// Timestamp when import dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of imported dataset.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -6370,7 +6218,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1beta1ImportDataOperationMetadata();
 
@@ -6390,12 +6238,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6404,17 +6252,17 @@
   /// Ouptut only.
   ///
   /// The name of imported dataset.
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples imported successfully.
   ///
   /// Output only.
-  core.int importCount;
+  core.int? importCount;
 
   /// Total number of examples requested to import
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1beta1ImportDataOperationResponse();
 
@@ -6431,10 +6279,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset,
-        if (importCount != null) 'importCount': importCount,
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!,
+        if (importCount != null) 'importCount': importCount!,
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -6443,13 +6291,13 @@
   /// Specify the input source of the data.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1InputConfig inputConfig;
+  GoogleCloudDatalabelingV1beta1InputConfig? inputConfig;
 
   /// Email of the user who started the import task and should be notified by
   /// email.
   ///
   /// If empty no notification will be sent.
-  core.String userEmailAddress;
+  core.String? userEmailAddress;
 
   GoogleCloudDatalabelingV1beta1ImportDataRequest();
 
@@ -6463,9 +6311,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inputConfig != null) 'inputConfig': inputConfig.toJson(),
-        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inputConfig != null) 'inputConfig': inputConfig!.toJson(),
+        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress!,
       };
 }
 
@@ -6499,13 +6347,13 @@
   /// - "TEXT_ENTITY_EXTRACTION_ANNOTATION" : Entity extraction for text.
   /// - "GENERAL_CLASSIFICATION_ANNOTATION" : General classification. Allowed
   /// for continuous evaluation.
-  core.String annotationType;
+  core.String? annotationType;
 
   /// Source located in BigQuery.
   ///
   /// You must specify this field if you are using this InputConfig in an
   /// EvaluationJob.
-  GoogleCloudDatalabelingV1beta1BigQuerySource bigquerySource;
+  GoogleCloudDatalabelingV1beta1BigQuerySource? bigquerySource;
 
   /// Metadata about annotations for the input.
   ///
@@ -6513,7 +6361,7 @@
   /// EvaluationJob for a model version that performs classification.
   ///
   /// Optional.
-  GoogleCloudDatalabelingV1beta1ClassificationMetadata classificationMetadata;
+  GoogleCloudDatalabelingV1beta1ClassificationMetadata? classificationMetadata;
 
   /// Data type must be specifed when user tries to import data.
   ///
@@ -6524,13 +6372,13 @@
   /// - "VIDEO" : Video data type.
   /// - "TEXT" : Allowed for continuous evaluation.
   /// - "GENERAL_DATA" : Allowed for continuous evaluation.
-  core.String dataType;
+  core.String? dataType;
 
   /// Source located in Cloud Storage.
-  GoogleCloudDatalabelingV1beta1GcsSource gcsSource;
+  GoogleCloudDatalabelingV1beta1GcsSource? gcsSource;
 
   /// Required for text import, as language code must be specified.
-  GoogleCloudDatalabelingV1beta1TextMetadata textMetadata;
+  GoogleCloudDatalabelingV1beta1TextMetadata? textMetadata;
 
   GoogleCloudDatalabelingV1beta1InputConfig();
 
@@ -6561,14 +6409,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationType != null) 'annotationType': annotationType,
-        if (bigquerySource != null) 'bigquerySource': bigquerySource.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationType != null) 'annotationType': annotationType!,
+        if (bigquerySource != null) 'bigquerySource': bigquerySource!.toJson(),
         if (classificationMetadata != null)
-          'classificationMetadata': classificationMetadata.toJson(),
-        if (dataType != null) 'dataType': dataType,
-        if (gcsSource != null) 'gcsSource': gcsSource.toJson(),
-        if (textMetadata != null) 'textMetadata': textMetadata.toJson(),
+          'classificationMetadata': classificationMetadata!.toJson(),
+        if (dataType != null) 'dataType': dataType!,
+        if (gcsSource != null) 'gcsSource': gcsSource!.toJson(),
+        if (textMetadata != null) 'textMetadata': textMetadata!.toJson(),
       };
 }
 
@@ -6580,12 +6428,12 @@
   /// instruction.
   ///
   /// Output only.
-  core.List<core.String> blockingResources;
+  core.List<core.String>? blockingResources;
 
   /// Creation time of instruction.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Deprecated: this instruction format is not supported any more.
   ///
@@ -6593,7 +6441,7 @@
   /// should have exact two columns, in the following format: * The first column
   /// is labeled data, such as an image reference, text. * The second column is
   /// comma separated labels associated with data.
-  GoogleCloudDatalabelingV1beta1CsvInstruction csvInstruction;
+  GoogleCloudDatalabelingV1beta1CsvInstruction? csvInstruction;
 
   /// The data type of this instruction.
   ///
@@ -6604,37 +6452,37 @@
   /// - "VIDEO" : Video data type.
   /// - "TEXT" : Allowed for continuous evaluation.
   /// - "GENERAL_DATA" : Allowed for continuous evaluation.
-  core.String dataType;
+  core.String? dataType;
 
   /// User-provided description of the instruction.
   ///
   /// The description can be up to 10000 characters long.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// The display name of the instruction.
   ///
   /// Maximum of 64 characters.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Instruction resource name, format:
   /// projects/{project_id}/instructions/{instruction_id}
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Instruction from a PDF document.
   ///
   /// The PDF should be in a Cloud Storage bucket.
-  GoogleCloudDatalabelingV1beta1PdfInstruction pdfInstruction;
+  GoogleCloudDatalabelingV1beta1PdfInstruction? pdfInstruction;
 
   /// Last update time of instruction.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDatalabelingV1beta1Instruction();
 
@@ -6672,23 +6520,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (blockingResources != null) 'blockingResources': blockingResources,
-        if (createTime != null) 'createTime': createTime,
-        if (csvInstruction != null) 'csvInstruction': csvInstruction.toJson(),
-        if (dataType != null) 'dataType': dataType,
-        if (description != null) 'description': description,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (pdfInstruction != null) 'pdfInstruction': pdfInstruction.toJson(),
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (blockingResources != null) 'blockingResources': blockingResources!,
+        if (createTime != null) 'createTime': createTime!,
+        if (csvInstruction != null) 'csvInstruction': csvInstruction!.toJson(),
+        if (dataType != null) 'dataType': dataType!,
+        if (description != null) 'description': description!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (pdfInstruction != null) 'pdfInstruction': pdfInstruction!.toJson(),
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// Details of a LabelImageBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelImageBoundingBoxOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImageBoundingBoxOperationMetadata();
 
@@ -6701,15 +6549,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImageBoundingPoly operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelImageBoundingPolyOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImageBoundingPolyOperationMetadata();
 
@@ -6722,15 +6570,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Metadata of a LabelImageClassification operation.
 class GoogleCloudDatalabelingV1beta1LabelImageClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImageClassificationOperationMetadata();
 
@@ -6743,15 +6591,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageOrientedBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelImageOrientedBoundingBoxOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImageOrientedBoundingBoxOperationMetadata();
 
@@ -6764,15 +6612,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImagePolyline operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelImagePolylineOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImagePolylineOperationMetadata();
 
@@ -6785,8 +6633,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -6795,13 +6643,13 @@
   /// Basic human annotation config.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   /// Configuration for bounding box and bounding poly task.
   ///
   /// One of image_classification_config, bounding_poly_config, polyline_config
   /// and segmentation_config are required.
-  GoogleCloudDatalabelingV1beta1BoundingPolyConfig boundingPolyConfig;
+  GoogleCloudDatalabelingV1beta1BoundingPolyConfig? boundingPolyConfig;
 
   /// The type of image labeling task.
   ///
@@ -6820,26 +6668,26 @@
   /// - "SEGMENTATION" : Label images with segmentation. Segmentation is
   /// different from bounding poly since it is more fine-grained, pixel level
   /// annotation.
-  core.String feature;
+  core.String? feature;
 
   /// Configuration for image classification task.
   ///
   /// One of image_classification_config, bounding_poly_config, polyline_config
   /// and segmentation_config are required.
-  GoogleCloudDatalabelingV1beta1ImageClassificationConfig
+  GoogleCloudDatalabelingV1beta1ImageClassificationConfig?
       imageClassificationConfig;
 
   /// Configuration for polyline task.
   ///
   /// One of image_classification_config, bounding_poly_config, polyline_config
   /// and segmentation_config are required.
-  GoogleCloudDatalabelingV1beta1PolylineConfig polylineConfig;
+  GoogleCloudDatalabelingV1beta1PolylineConfig? polylineConfig;
 
   /// Configuration for segmentation task.
   ///
   /// One of image_classification_config, bounding_poly_config, polyline_config
   /// and segmentation_config are required.
-  GoogleCloudDatalabelingV1beta1SegmentationConfig segmentationConfig;
+  GoogleCloudDatalabelingV1beta1SegmentationConfig? segmentationConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImageRequest();
 
@@ -6876,23 +6724,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
         if (boundingPolyConfig != null)
-          'boundingPolyConfig': boundingPolyConfig.toJson(),
-        if (feature != null) 'feature': feature,
+          'boundingPolyConfig': boundingPolyConfig!.toJson(),
+        if (feature != null) 'feature': feature!,
         if (imageClassificationConfig != null)
-          'imageClassificationConfig': imageClassificationConfig.toJson(),
-        if (polylineConfig != null) 'polylineConfig': polylineConfig.toJson(),
+          'imageClassificationConfig': imageClassificationConfig!.toJson(),
+        if (polylineConfig != null) 'polylineConfig': polylineConfig!.toJson(),
         if (segmentationConfig != null)
-          'segmentationConfig': segmentationConfig.toJson(),
+          'segmentationConfig': segmentationConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageSegmentation operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelImageSegmentationOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelImageSegmentationOperationMetadata();
 
@@ -6905,8 +6753,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -6918,42 +6766,42 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when labeling request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be labeled.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Details of label image bounding box operation.
-  GoogleCloudDatalabelingV1beta1LabelImageBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelImageBoundingBoxOperationMetadata?
       imageBoundingBoxDetails;
 
   /// Details of label image bounding poly operation.
-  GoogleCloudDatalabelingV1beta1LabelImageBoundingPolyOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelImageBoundingPolyOperationMetadata?
       imageBoundingPolyDetails;
 
   /// Details of label image classification operation.
-  GoogleCloudDatalabelingV1beta1LabelImageClassificationOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelImageClassificationOperationMetadata?
       imageClassificationDetails;
 
   /// Details of label image oriented bounding box operation.
-  GoogleCloudDatalabelingV1beta1LabelImageOrientedBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelImageOrientedBoundingBoxOperationMetadata?
       imageOrientedBoundingBoxDetails;
 
   /// Details of label image polyline operation.
-  GoogleCloudDatalabelingV1beta1LabelImagePolylineOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelImagePolylineOperationMetadata?
       imagePolylineDetails;
 
   /// Details of label image segmentation operation.
-  GoogleCloudDatalabelingV1beta1LabelImageSegmentationOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelImageSegmentationOperationMetadata?
       imageSegmentationDetails;
 
   /// Partial failures encountered.
@@ -6962,37 +6810,37 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   /// Progress of label operation.
   ///
   /// Range: \[0, 100\].
   ///
   /// Output only.
-  core.int progressPercent;
+  core.int? progressPercent;
 
   /// Details of label text classification operation.
-  GoogleCloudDatalabelingV1beta1LabelTextClassificationOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelTextClassificationOperationMetadata?
       textClassificationDetails;
 
   /// Details of label text entity extraction operation.
-  GoogleCloudDatalabelingV1beta1LabelTextEntityExtractionOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelTextEntityExtractionOperationMetadata?
       textEntityExtractionDetails;
 
   /// Details of label video classification operation.
-  GoogleCloudDatalabelingV1beta1LabelVideoClassificationOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelVideoClassificationOperationMetadata?
       videoClassificationDetails;
 
   /// Details of label video event operation.
-  GoogleCloudDatalabelingV1beta1LabelVideoEventOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelVideoEventOperationMetadata?
       videoEventDetails;
 
   /// Details of label video object detection operation.
-  GoogleCloudDatalabelingV1beta1LabelVideoObjectDetectionOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelVideoObjectDetectionOperationMetadata?
       videoObjectDetectionDetails;
 
   /// Details of label video object tracking operation.
-  GoogleCloudDatalabelingV1beta1LabelVideoObjectTrackingOperationMetadata
+  GoogleCloudDatalabelingV1beta1LabelVideoObjectTrackingOperationMetadata?
       videoObjectTrackingDetails;
 
   GoogleCloudDatalabelingV1beta1LabelOperationMetadata();
@@ -7091,39 +6939,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (imageBoundingBoxDetails != null)
-          'imageBoundingBoxDetails': imageBoundingBoxDetails.toJson(),
+          'imageBoundingBoxDetails': imageBoundingBoxDetails!.toJson(),
         if (imageBoundingPolyDetails != null)
-          'imageBoundingPolyDetails': imageBoundingPolyDetails.toJson(),
+          'imageBoundingPolyDetails': imageBoundingPolyDetails!.toJson(),
         if (imageClassificationDetails != null)
-          'imageClassificationDetails': imageClassificationDetails.toJson(),
+          'imageClassificationDetails': imageClassificationDetails!.toJson(),
         if (imageOrientedBoundingBoxDetails != null)
           'imageOrientedBoundingBoxDetails':
-              imageOrientedBoundingBoxDetails.toJson(),
+              imageOrientedBoundingBoxDetails!.toJson(),
         if (imagePolylineDetails != null)
-          'imagePolylineDetails': imagePolylineDetails.toJson(),
+          'imagePolylineDetails': imagePolylineDetails!.toJson(),
         if (imageSegmentationDetails != null)
-          'imageSegmentationDetails': imageSegmentationDetails.toJson(),
+          'imageSegmentationDetails': imageSegmentationDetails!.toJson(),
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
-        if (progressPercent != null) 'progressPercent': progressPercent,
+              partialFailures!.map((value) => value.toJson()).toList(),
+        if (progressPercent != null) 'progressPercent': progressPercent!,
         if (textClassificationDetails != null)
-          'textClassificationDetails': textClassificationDetails.toJson(),
+          'textClassificationDetails': textClassificationDetails!.toJson(),
         if (textEntityExtractionDetails != null)
-          'textEntityExtractionDetails': textEntityExtractionDetails.toJson(),
+          'textEntityExtractionDetails': textEntityExtractionDetails!.toJson(),
         if (videoClassificationDetails != null)
-          'videoClassificationDetails': videoClassificationDetails.toJson(),
+          'videoClassificationDetails': videoClassificationDetails!.toJson(),
         if (videoEventDetails != null)
-          'videoEventDetails': videoEventDetails.toJson(),
+          'videoEventDetails': videoEventDetails!.toJson(),
         if (videoObjectDetectionDetails != null)
-          'videoObjectDetectionDetails': videoObjectDetectionDetails.toJson(),
+          'videoObjectDetectionDetails': videoObjectDetectionDetails!.toJson(),
         if (videoObjectTrackingDetails != null)
-          'videoObjectTrackingDetails': videoObjectTrackingDetails.toJson(),
+          'videoObjectTrackingDetails': videoObjectTrackingDetails!.toJson(),
       };
 }
 
@@ -7135,7 +6983,7 @@
   /// that annotation spec. If the annotated dataset does not have annotation
   /// spec, the map will return a pair where the key is empty string and value
   /// is the total number of annotations.
-  core.Map<core.String, core.String> exampleCount;
+  core.Map<core.String, core.String>? exampleCount;
 
   GoogleCloudDatalabelingV1beta1LabelStats();
 
@@ -7152,15 +7000,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exampleCount != null) 'exampleCount': exampleCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exampleCount != null) 'exampleCount': exampleCount!,
       };
 }
 
 /// Details of a LabelTextClassification operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelTextClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelTextClassificationOperationMetadata();
 
@@ -7173,15 +7021,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelTextEntityExtraction operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelTextEntityExtractionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelTextEntityExtractionOperationMetadata();
 
@@ -7194,8 +7042,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -7204,7 +7052,7 @@
   /// Basic human annotation config.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   /// The type of text labeling task.
   ///
@@ -7213,20 +7061,20 @@
   /// - "FEATURE_UNSPECIFIED"
   /// - "TEXT_CLASSIFICATION" : Label text content to one of more labels.
   /// - "TEXT_ENTITY_EXTRACTION" : Label entities and their span in text.
-  core.String feature;
+  core.String? feature;
 
   /// Configuration for text classification task.
   ///
   /// One of text_classification_config and text_entity_extraction_config is
   /// required.
-  GoogleCloudDatalabelingV1beta1TextClassificationConfig
+  GoogleCloudDatalabelingV1beta1TextClassificationConfig?
       textClassificationConfig;
 
   /// Configuration for entity extraction task.
   ///
   /// One of text_classification_config and text_entity_extraction_config is
   /// required.
-  GoogleCloudDatalabelingV1beta1TextEntityExtractionConfig
+  GoogleCloudDatalabelingV1beta1TextEntityExtractionConfig?
       textEntityExtractionConfig;
 
   GoogleCloudDatalabelingV1beta1LabelTextRequest();
@@ -7254,20 +7102,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
-        if (feature != null) 'feature': feature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
+        if (feature != null) 'feature': feature!,
         if (textClassificationConfig != null)
-          'textClassificationConfig': textClassificationConfig.toJson(),
+          'textClassificationConfig': textClassificationConfig!.toJson(),
         if (textEntityExtractionConfig != null)
-          'textEntityExtractionConfig': textEntityExtractionConfig.toJson(),
+          'textEntityExtractionConfig': textEntityExtractionConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoClassification operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelVideoClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelVideoClassificationOperationMetadata();
 
@@ -7280,15 +7128,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoEvent operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelVideoEventOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelVideoEventOperationMetadata();
 
@@ -7301,15 +7149,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectDetection operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelVideoObjectDetectionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelVideoObjectDetectionOperationMetadata();
 
@@ -7322,15 +7170,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectTracking operation metadata.
 class GoogleCloudDatalabelingV1beta1LabelVideoObjectTrackingOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1beta1LabelVideoObjectTrackingOperationMetadata();
 
@@ -7343,8 +7191,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -7353,13 +7201,13 @@
   /// Basic human annotation config.
   ///
   /// Required.
-  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1beta1HumanAnnotationConfig? basicConfig;
 
   /// Configuration for video event task.
   ///
   /// One of video_classification_config, object_detection_config,
   /// object_tracking_config and event_config is required.
-  GoogleCloudDatalabelingV1beta1EventConfig eventConfig;
+  GoogleCloudDatalabelingV1beta1EventConfig? eventConfig;
 
   /// The type of video labeling task.
   ///
@@ -7372,25 +7220,25 @@
   /// extracted from the video.
   /// - "OBJECT_TRACKING" : Label and track objects in video.
   /// - "EVENT" : Label the range of video for the specified events.
-  core.String feature;
+  core.String? feature;
 
   /// Configuration for video object detection task.
   ///
   /// One of video_classification_config, object_detection_config,
   /// object_tracking_config and event_config is required.
-  GoogleCloudDatalabelingV1beta1ObjectDetectionConfig objectDetectionConfig;
+  GoogleCloudDatalabelingV1beta1ObjectDetectionConfig? objectDetectionConfig;
 
   /// Configuration for video object tracking task.
   ///
   /// One of video_classification_config, object_detection_config,
   /// object_tracking_config and event_config is required.
-  GoogleCloudDatalabelingV1beta1ObjectTrackingConfig objectTrackingConfig;
+  GoogleCloudDatalabelingV1beta1ObjectTrackingConfig? objectTrackingConfig;
 
   /// Configuration for video classification task.
   ///
   /// One of video_classification_config, object_detection_config,
   /// object_tracking_config and event_config is required.
-  GoogleCloudDatalabelingV1beta1VideoClassificationConfig
+  GoogleCloudDatalabelingV1beta1VideoClassificationConfig?
       videoClassificationConfig;
 
   GoogleCloudDatalabelingV1beta1LabelVideoRequest();
@@ -7428,26 +7276,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
-        if (eventConfig != null) 'eventConfig': eventConfig.toJson(),
-        if (feature != null) 'feature': feature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
+        if (eventConfig != null) 'eventConfig': eventConfig!.toJson(),
+        if (feature != null) 'feature': feature!,
         if (objectDetectionConfig != null)
-          'objectDetectionConfig': objectDetectionConfig.toJson(),
+          'objectDetectionConfig': objectDetectionConfig!.toJson(),
         if (objectTrackingConfig != null)
-          'objectTrackingConfig': objectTrackingConfig.toJson(),
+          'objectTrackingConfig': objectTrackingConfig!.toJson(),
         if (videoClassificationConfig != null)
-          'videoClassificationConfig': videoClassificationConfig.toJson(),
+          'videoClassificationConfig': videoClassificationConfig!.toJson(),
       };
 }
 
 /// Results of listing annotated datasets for a dataset.
 class GoogleCloudDatalabelingV1beta1ListAnnotatedDatasetsResponse {
   /// The list of annotated datasets to return.
-  core.List<GoogleCloudDatalabelingV1beta1AnnotatedDataset> annotatedDatasets;
+  core.List<GoogleCloudDatalabelingV1beta1AnnotatedDataset>? annotatedDatasets;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListAnnotatedDatasetsResponse();
 
@@ -7465,21 +7313,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotatedDatasets != null)
           'annotatedDatasets':
-              annotatedDatasets.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              annotatedDatasets!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results of listing annotation spec set under a project.
 class GoogleCloudDatalabelingV1beta1ListAnnotationSpecSetsResponse {
   /// The list of annotation spec sets.
-  core.List<GoogleCloudDatalabelingV1beta1AnnotationSpecSet> annotationSpecSets;
+  core.List<GoogleCloudDatalabelingV1beta1AnnotationSpecSet>?
+      annotationSpecSets;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListAnnotationSpecSetsResponse();
 
@@ -7497,21 +7346,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationSpecSets != null)
           'annotationSpecSets':
-              annotationSpecSets.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              annotationSpecSets!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results of listing data items in a dataset.
 class GoogleCloudDatalabelingV1beta1ListDataItemsResponse {
   /// The list of data items to return.
-  core.List<GoogleCloudDatalabelingV1beta1DataItem> dataItems;
+  core.List<GoogleCloudDatalabelingV1beta1DataItem>? dataItems;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListDataItemsResponse();
 
@@ -7528,20 +7377,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dataItems != null)
-          'dataItems': dataItems.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'dataItems': dataItems!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results of listing datasets within a project.
 class GoogleCloudDatalabelingV1beta1ListDatasetsResponse {
   /// The list of datasets to return.
-  core.List<GoogleCloudDatalabelingV1beta1Dataset> datasets;
+  core.List<GoogleCloudDatalabelingV1beta1Dataset>? datasets;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListDatasetsResponse();
 
@@ -7558,20 +7407,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (datasets != null)
-          'datasets': datasets.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'datasets': datasets!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results for listing evaluation jobs.
 class GoogleCloudDatalabelingV1beta1ListEvaluationJobsResponse {
   /// The list of evaluation jobs to return.
-  core.List<GoogleCloudDatalabelingV1beta1EvaluationJob> evaluationJobs;
+  core.List<GoogleCloudDatalabelingV1beta1EvaluationJob>? evaluationJobs;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListEvaluationJobsResponse();
 
@@ -7589,21 +7438,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (evaluationJobs != null)
           'evaluationJobs':
-              evaluationJobs.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              evaluationJobs!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results of listing Examples in and annotated dataset.
 class GoogleCloudDatalabelingV1beta1ListExamplesResponse {
   /// The list of examples to return.
-  core.List<GoogleCloudDatalabelingV1beta1Example> examples;
+  core.List<GoogleCloudDatalabelingV1beta1Example>? examples;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListExamplesResponse();
 
@@ -7620,20 +7469,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (examples != null)
-          'examples': examples.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'examples': examples!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results for listing FeedbackMessages.
 class GoogleCloudDatalabelingV1beta1ListFeedbackMessagesResponse {
   /// The list of feedback messages to return.
-  core.List<GoogleCloudDatalabelingV1beta1FeedbackMessage> feedbackMessages;
+  core.List<GoogleCloudDatalabelingV1beta1FeedbackMessage>? feedbackMessages;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListFeedbackMessagesResponse();
 
@@ -7651,21 +7500,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (feedbackMessages != null)
           'feedbackMessages':
-              feedbackMessages.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              feedbackMessages!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results for listing FeedbackThreads.
 class GoogleCloudDatalabelingV1beta1ListFeedbackThreadsResponse {
   /// The list of feedback threads to return.
-  core.List<GoogleCloudDatalabelingV1beta1FeedbackThread> feedbackThreads;
+  core.List<GoogleCloudDatalabelingV1beta1FeedbackThread>? feedbackThreads;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListFeedbackThreadsResponse();
 
@@ -7683,21 +7532,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (feedbackThreads != null)
           'feedbackThreads':
-              feedbackThreads.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              feedbackThreads!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Results of listing instructions under a project.
 class GoogleCloudDatalabelingV1beta1ListInstructionsResponse {
   /// The list of Instructions to return.
-  core.List<GoogleCloudDatalabelingV1beta1Instruction> instructions;
+  core.List<GoogleCloudDatalabelingV1beta1Instruction>? instructions;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1ListInstructionsResponse();
 
@@ -7715,17 +7564,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (instructions != null)
-          'instructions': instructions.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'instructions': instructions!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Normalized bounding polygon.
 class GoogleCloudDatalabelingV1beta1NormalizedBoundingPoly {
   /// The bounding polygon normalized vertices.
-  core.List<GoogleCloudDatalabelingV1beta1NormalizedVertex> normalizedVertices;
+  core.List<GoogleCloudDatalabelingV1beta1NormalizedVertex>? normalizedVertices;
 
   GoogleCloudDatalabelingV1beta1NormalizedBoundingPoly();
 
@@ -7740,17 +7589,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (normalizedVertices != null)
           'normalizedVertices':
-              normalizedVertices.map((value) => value.toJson()).toList(),
+              normalizedVertices!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Normalized polyline.
 class GoogleCloudDatalabelingV1beta1NormalizedPolyline {
   /// The normalized polyline vertices.
-  core.List<GoogleCloudDatalabelingV1beta1NormalizedVertex> normalizedVertices;
+  core.List<GoogleCloudDatalabelingV1beta1NormalizedVertex>? normalizedVertices;
 
   GoogleCloudDatalabelingV1beta1NormalizedPolyline();
 
@@ -7764,10 +7613,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (normalizedVertices != null)
           'normalizedVertices':
-              normalizedVertices.map((value) => value.toJson()).toList(),
+              normalizedVertices!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7777,10 +7626,10 @@
 /// and range from 0 to 1.
 class GoogleCloudDatalabelingV1beta1NormalizedVertex {
   /// X coordinate.
-  core.double x;
+  core.double? x;
 
   /// Y coordinate.
-  core.double y;
+  core.double? y;
 
   GoogleCloudDatalabelingV1beta1NormalizedVertex();
 
@@ -7793,9 +7642,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
@@ -7809,12 +7658,12 @@
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Number of frames per second to be extracted from the video.
   ///
   /// Required.
-  core.double extractionFrameRate;
+  core.double? extractionFrameRate;
 
   GoogleCloudDatalabelingV1beta1ObjectDetectionConfig();
 
@@ -7828,17 +7677,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (extractionFrameRate != null)
-          'extractionFrameRate': extractionFrameRate,
+          'extractionFrameRate': extractionFrameRate!,
       };
 }
 
 /// Metrics calculated for an image object detection (bounding box) model.
 class GoogleCloudDatalabelingV1beta1ObjectDetectionMetrics {
   /// Precision-recall curve.
-  GoogleCloudDatalabelingV1beta1PrCurve prCurve;
+  GoogleCloudDatalabelingV1beta1PrCurve? prCurve;
 
   GoogleCloudDatalabelingV1beta1ObjectDetectionMetrics();
 
@@ -7850,8 +7699,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (prCurve != null) 'prCurve': prCurve.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (prCurve != null) 'prCurve': prCurve!.toJson(),
       };
 }
 
@@ -7860,19 +7709,19 @@
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Videos will be cut to smaller clips to make it easier for labelers to work
   /// on.
   ///
   /// Users can configure is field in seconds, if not set, default value is 20s.
-  core.int clipLength;
+  core.int? clipLength;
 
   /// The overlap length between different video clips.
   ///
   /// Users can configure is field in seconds, if not set, default value is
   /// 0.3s.
-  core.int overlapLength;
+  core.int? overlapLength;
 
   GoogleCloudDatalabelingV1beta1ObjectTrackingConfig();
 
@@ -7888,20 +7737,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
-        if (clipLength != null) 'clipLength': clipLength,
-        if (overlapLength != null) 'overlapLength': overlapLength,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
+        if (clipLength != null) 'clipLength': clipLength!,
+        if (overlapLength != null) 'overlapLength': overlapLength!,
       };
 }
 
 /// Video frame level annotation for object detection and tracking.
 class GoogleCloudDatalabelingV1beta1ObjectTrackingFrame {
-  GoogleCloudDatalabelingV1beta1BoundingPoly boundingPoly;
-  GoogleCloudDatalabelingV1beta1NormalizedBoundingPoly normalizedBoundingPoly;
+  GoogleCloudDatalabelingV1beta1BoundingPoly? boundingPoly;
+  GoogleCloudDatalabelingV1beta1NormalizedBoundingPoly? normalizedBoundingPoly;
 
   /// The time offset of this frame relative to the beginning of the video.
-  core.String timeOffset;
+  core.String? timeOffset;
 
   GoogleCloudDatalabelingV1beta1ObjectTrackingFrame();
 
@@ -7921,11 +7770,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
         if (normalizedBoundingPoly != null)
-          'normalizedBoundingPoly': normalizedBoundingPoly.toJson(),
-        if (timeOffset != null) 'timeOffset': timeOffset,
+          'normalizedBoundingPoly': normalizedBoundingPoly!.toJson(),
+        if (timeOffset != null) 'timeOffset': timeOffset!,
       };
 }
 
@@ -7937,25 +7786,25 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// General information useful for labels coming from contributors.
 class GoogleCloudDatalabelingV1beta1OperatorMetadata {
   /// Comments from contributors.
-  core.List<core.String> comments;
+  core.List<core.String>? comments;
 
   /// The total number of contributors that choose this label.
-  core.int labelVotes;
+  core.int? labelVotes;
 
   /// Confidence score corresponding to a label.
   ///
   /// For examle, if 3 contributors have answered the question and 2 of them
   /// agree on the final label, the confidence score will be 0.67 (2/3).
-  core.double score;
+  core.double? score;
 
   /// The total number of contributors that answer this question.
-  core.int totalVotes;
+  core.int? totalVotes;
 
   GoogleCloudDatalabelingV1beta1OperatorMetadata();
 
@@ -7976,11 +7825,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (comments != null) 'comments': comments,
-        if (labelVotes != null) 'labelVotes': labelVotes,
-        if (score != null) 'score': score,
-        if (totalVotes != null) 'totalVotes': totalVotes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (comments != null) 'comments': comments!,
+        if (labelVotes != null) 'labelVotes': labelVotes!,
+        if (score != null) 'score': score!,
+        if (totalVotes != null) 'totalVotes': totalVotes!,
       };
 }
 
@@ -7989,13 +7838,13 @@
   /// Output to a file in Cloud Storage.
   ///
   /// Should be used for labeling output other than image segmentation.
-  GoogleCloudDatalabelingV1beta1GcsDestination gcsDestination;
+  GoogleCloudDatalabelingV1beta1GcsDestination? gcsDestination;
 
   /// Output to a folder in Cloud Storage.
   ///
   /// Should be used for image segmentation or document de-identification
   /// labeling outputs.
-  GoogleCloudDatalabelingV1beta1GcsFolderDestination gcsFolderDestination;
+  GoogleCloudDatalabelingV1beta1GcsFolderDestination? gcsFolderDestination;
 
   GoogleCloudDatalabelingV1beta1OutputConfig();
 
@@ -8012,10 +7861,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!.toJson(),
         if (gcsFolderDestination != null)
-          'gcsFolderDestination': gcsFolderDestination.toJson(),
+          'gcsFolderDestination': gcsFolderDestination!.toJson(),
       };
 }
 
@@ -8027,7 +7876,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Instruction from a PDF file.
@@ -8035,7 +7884,7 @@
   /// PDF file for the instruction.
   ///
   /// Only gcs path is allowed.
-  core.String gcsFileUri;
+  core.String? gcsFileUri;
 
   GoogleCloudDatalabelingV1beta1PdfInstruction();
 
@@ -8045,15 +7894,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsFileUri != null) 'gcsFileUri': gcsFileUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsFileUri != null) 'gcsFileUri': gcsFileUri!,
       };
 }
 
 /// A line with multiple line segments.
 class GoogleCloudDatalabelingV1beta1Polyline {
   /// The polyline vertices.
-  core.List<GoogleCloudDatalabelingV1beta1Vertex> vertices;
+  core.List<GoogleCloudDatalabelingV1beta1Vertex>? vertices;
 
   GoogleCloudDatalabelingV1beta1Polyline();
 
@@ -8067,9 +7916,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (vertices != null)
-          'vertices': vertices.map((value) => value.toJson()).toList(),
+          'vertices': vertices!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -8078,12 +7927,12 @@
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Instruction message showed on contributors UI.
   ///
   /// Optional.
-  core.String instructionMessage;
+  core.String? instructionMessage;
 
   GoogleCloudDatalabelingV1beta1PolylineConfig();
 
@@ -8096,10 +7945,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (instructionMessage != null)
-          'instructionMessage': instructionMessage,
+          'instructionMessage': instructionMessage!,
       };
 }
 
@@ -8109,23 +7958,23 @@
   ///
   /// If this field is empty, that means the precision-recall curve is an
   /// aggregate curve for all labels.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// Area under the precision-recall curve.
   ///
   /// Not to be confused with area under a receiver operating characteristic
   /// (ROC) curve.
-  core.double areaUnderCurve;
+  core.double? areaUnderCurve;
 
   /// Entries that make up the precision-recall graph.
   ///
   /// Each entry is a "point" on the graph drawn for a different
   /// `confidence_threshold`.
-  core.List<GoogleCloudDatalabelingV1beta1ConfidenceMetricsEntry>
+  core.List<GoogleCloudDatalabelingV1beta1ConfidenceMetricsEntry>?
       confidenceMetricsEntries;
 
   /// Mean average prcision of this curve.
-  core.double meanAveragePrecision;
+  core.double? meanAveragePrecision;
 
   GoogleCloudDatalabelingV1beta1PrCurve();
 
@@ -8151,14 +8000,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
-        if (areaUnderCurve != null) 'areaUnderCurve': areaUnderCurve,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
+        if (areaUnderCurve != null) 'areaUnderCurve': areaUnderCurve!,
         if (confidenceMetricsEntries != null)
           'confidenceMetricsEntries':
-              confidenceMetricsEntries.map((value) => value.toJson()).toList(),
+              confidenceMetricsEntries!.map((value) => value.toJson()).toList(),
         if (meanAveragePrecision != null)
-          'meanAveragePrecision': meanAveragePrecision,
+          'meanAveragePrecision': meanAveragePrecision!,
       };
 }
 
@@ -8170,7 +8019,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message ResumeEvaluationJob.
@@ -8181,7 +8030,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A row in the confusion matrix.
@@ -8189,12 +8038,12 @@
 /// Each entry in this row has the same ground truth label.
 class GoogleCloudDatalabelingV1beta1Row {
   /// The annotation spec of the ground truth label for this row.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// A list of the confusion matrix entries.
   ///
   /// One entry for each possible predicted label.
-  core.List<GoogleCloudDatalabelingV1beta1ConfusionMatrixEntry> entries;
+  core.List<GoogleCloudDatalabelingV1beta1ConfusionMatrixEntry>? entries;
 
   GoogleCloudDatalabelingV1beta1Row();
 
@@ -8212,20 +8061,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
         if (entries != null)
-          'entries': entries.map((value) => value.toJson()).toList(),
+          'entries': entries!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Results of searching evaluations.
 class GoogleCloudDatalabelingV1beta1SearchEvaluationsResponse {
   /// The list of evaluations matching the search.
-  core.List<GoogleCloudDatalabelingV1beta1Evaluation> evaluations;
+  core.List<GoogleCloudDatalabelingV1beta1Evaluation>? evaluations;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1SearchEvaluationsResponse();
 
@@ -8243,10 +8092,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (evaluations != null)
-          'evaluations': evaluations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'evaluations': evaluations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -8257,7 +8106,7 @@
   /// Server may return fewer results than requested. Default value is 100.
   ///
   /// Optional.
-  core.int pageSize;
+  core.int? pageSize;
 
   /// A token identifying a page of results for the server to return.
   ///
@@ -8266,7 +8115,7 @@
   /// first page of the search.
   ///
   /// Optional.
-  core.String pageToken;
+  core.String? pageToken;
 
   GoogleCloudDatalabelingV1beta1SearchExampleComparisonsRequest();
 
@@ -8280,19 +8129,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (pageSize != null) 'pageSize': pageSize,
-        if (pageToken != null) 'pageToken': pageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (pageSize != null) 'pageSize': pageSize!,
+        if (pageToken != null) 'pageToken': pageToken!,
       };
 }
 
 /// Results of searching example comparisons.
 class GoogleCloudDatalabelingV1beta1SearchExampleComparisonsResponse {
   /// A list of example comparisons matching the search criteria.
-  core.List<GoogleCloudDatalabelingV1beta1ExampleComparison> exampleComparisons;
+  core.List<GoogleCloudDatalabelingV1beta1ExampleComparison>?
+      exampleComparisons;
 
   /// A token to retrieve next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudDatalabelingV1beta1SearchExampleComparisonsResponse();
 
@@ -8310,11 +8160,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (exampleComparisons != null)
           'exampleComparisons':
-              exampleComparisons.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              exampleComparisons!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -8325,10 +8175,10 @@
   /// format: projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Instruction message showed on labelers UI.
-  core.String instructionMessage;
+  core.String? instructionMessage;
 
   GoogleCloudDatalabelingV1beta1SegmentationConfig();
 
@@ -8341,10 +8191,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (instructionMessage != null)
-          'instructionMessage': instructionMessage,
+          'instructionMessage': instructionMessage!,
       };
 }
 
@@ -8354,7 +8204,7 @@
   /// the label they selected, to mark it as negative or positive label.
   ///
   /// Default is false.
-  core.bool enableLabelSentimentSelection;
+  core.bool? enableLabelSentimentSelection;
 
   GoogleCloudDatalabelingV1beta1SentimentConfig();
 
@@ -8365,19 +8215,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (enableLabelSentimentSelection != null)
-          'enableLabelSentimentSelection': enableLabelSentimentSelection,
+          'enableLabelSentimentSelection': enableLabelSentimentSelection!,
       };
 }
 
 /// Start and end position in a sequence (e.g. text segment).
 class GoogleCloudDatalabelingV1beta1SequentialSegment {
   /// End position (exclusive).
-  core.int end;
+  core.int? end;
 
   /// Start position (inclusive).
-  core.int start;
+  core.int? start;
 
   GoogleCloudDatalabelingV1beta1SequentialSegment();
 
@@ -8390,16 +8240,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (end != null) 'end': end,
-        if (start != null) 'start': start,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (end != null) 'end': end!,
+        if (start != null) 'start': start!,
       };
 }
 
 /// Text classification annotation.
 class GoogleCloudDatalabelingV1beta1TextClassificationAnnotation {
   /// Label of the text.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   GoogleCloudDatalabelingV1beta1TextClassificationAnnotation();
 
@@ -8411,8 +8261,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
       };
 }
 
@@ -8422,12 +8272,12 @@
   /// labels for one text segment.
   ///
   /// Optional.
-  core.bool allowMultiLabel;
+  core.bool? allowMultiLabel;
 
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   /// Configs for sentiment selection.
   ///
@@ -8435,7 +8285,7 @@
   /// incompatible with uCAIP.
   ///
   /// Optional.
-  GoogleCloudDatalabelingV1beta1SentimentConfig sentimentConfig;
+  GoogleCloudDatalabelingV1beta1SentimentConfig? sentimentConfig;
 
   GoogleCloudDatalabelingV1beta1TextClassificationConfig();
 
@@ -8453,21 +8303,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowMultiLabel != null) 'allowMultiLabel': allowMultiLabel,
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowMultiLabel != null) 'allowMultiLabel': allowMultiLabel!,
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
         if (sentimentConfig != null)
-          'sentimentConfig': sentimentConfig.toJson(),
+          'sentimentConfig': sentimentConfig!.toJson(),
       };
 }
 
 /// Text entity extraction annotation.
 class GoogleCloudDatalabelingV1beta1TextEntityExtractionAnnotation {
   /// Label of the text entities.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// Position of the entity.
-  GoogleCloudDatalabelingV1beta1SequentialSegment sequentialSegment;
+  GoogleCloudDatalabelingV1beta1SequentialSegment? sequentialSegment;
 
   GoogleCloudDatalabelingV1beta1TextEntityExtractionAnnotation();
 
@@ -8485,10 +8335,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
         if (sequentialSegment != null)
-          'sequentialSegment': sequentialSegment.toJson(),
+          'sequentialSegment': sequentialSegment!.toJson(),
       };
 }
 
@@ -8497,7 +8347,7 @@
   /// Annotation spec set resource name.
   ///
   /// Required.
-  core.String annotationSpecSet;
+  core.String? annotationSpecSet;
 
   GoogleCloudDatalabelingV1beta1TextEntityExtractionConfig();
 
@@ -8508,8 +8358,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpecSet != null) 'annotationSpecSet': annotationSpecSet!,
       };
 }
 
@@ -8519,7 +8369,7 @@
   /// \[BCP-47\](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
   ///
   /// Default value is en-US.
-  core.String languageCode;
+  core.String? languageCode;
 
   GoogleCloudDatalabelingV1beta1TextMetadata();
 
@@ -8529,15 +8379,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (languageCode != null) 'languageCode': languageCode!,
       };
 }
 
 /// Container of information about a piece of text.
 class GoogleCloudDatalabelingV1beta1TextPayload {
   /// Text content.
-  core.String textContent;
+  core.String? textContent;
 
   GoogleCloudDatalabelingV1beta1TextPayload();
 
@@ -8547,8 +8397,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (textContent != null) 'textContent': textContent,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (textContent != null) 'textContent': textContent!,
       };
 }
 
@@ -8556,11 +8406,11 @@
 class GoogleCloudDatalabelingV1beta1TimeSegment {
   /// End of the time segment (exclusive), represented as the duration since the
   /// example start.
-  core.String endTimeOffset;
+  core.String? endTimeOffset;
 
   /// Start of the time segment (inclusive), represented as the duration since
   /// the example start.
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   GoogleCloudDatalabelingV1beta1TimeSegment();
 
@@ -8573,9 +8423,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset,
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset!,
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
       };
 }
 
@@ -8584,10 +8434,10 @@
 /// NOTE: the vertex coordinates are in the same scale as the original image.
 class GoogleCloudDatalabelingV1beta1Vertex {
   /// X coordinate.
-  core.int x;
+  core.int? x;
 
   /// Y coordinate.
-  core.int y;
+  core.int? y;
 
   GoogleCloudDatalabelingV1beta1Vertex();
 
@@ -8600,19 +8450,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
 /// Video classification annotation.
 class GoogleCloudDatalabelingV1beta1VideoClassificationAnnotation {
   /// Label of the segment specified by time_segment.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// The time segment of the video to which the annotation applies.
-  GoogleCloudDatalabelingV1beta1TimeSegment timeSegment;
+  GoogleCloudDatalabelingV1beta1TimeSegment? timeSegment;
 
   GoogleCloudDatalabelingV1beta1VideoClassificationAnnotation();
 
@@ -8628,9 +8478,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
-        if (timeSegment != null) 'timeSegment': timeSegment.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
+        if (timeSegment != null) 'timeSegment': timeSegment!.toJson(),
       };
 }
 
@@ -8649,13 +8499,13 @@
   /// label) from each group.
   ///
   /// Required.
-  core.List<GoogleCloudDatalabelingV1beta1AnnotationSpecSetConfig>
+  core.List<GoogleCloudDatalabelingV1beta1AnnotationSpecSetConfig>?
       annotationSpecSetConfigs;
 
   /// Option to apply shot detection on the video.
   ///
   /// Optional.
-  core.bool applyShotDetection;
+  core.bool? applyShotDetection;
 
   GoogleCloudDatalabelingV1beta1VideoClassificationConfig();
 
@@ -8674,22 +8524,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotationSpecSetConfigs != null)
           'annotationSpecSetConfigs':
-              annotationSpecSetConfigs.map((value) => value.toJson()).toList(),
+              annotationSpecSetConfigs!.map((value) => value.toJson()).toList(),
         if (applyShotDetection != null)
-          'applyShotDetection': applyShotDetection,
+          'applyShotDetection': applyShotDetection!,
       };
 }
 
 /// Video event annotation.
 class GoogleCloudDatalabelingV1beta1VideoEventAnnotation {
   /// Label of the event in this annotation.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// The time segment of the video to which the annotation applies.
-  GoogleCloudDatalabelingV1beta1TimeSegment timeSegment;
+  GoogleCloudDatalabelingV1beta1TimeSegment? timeSegment;
 
   GoogleCloudDatalabelingV1beta1VideoEventAnnotation();
 
@@ -8704,23 +8554,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
-        if (timeSegment != null) 'timeSegment': timeSegment.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
+        if (timeSegment != null) 'timeSegment': timeSegment!.toJson(),
       };
 }
 
 /// Video object tracking annotation.
 class GoogleCloudDatalabelingV1beta1VideoObjectTrackingAnnotation {
   /// Label of the object tracked in this annotation.
-  GoogleCloudDatalabelingV1beta1AnnotationSpec annotationSpec;
+  GoogleCloudDatalabelingV1beta1AnnotationSpec? annotationSpec;
 
   /// The list of frames where this object track appears.
-  core.List<GoogleCloudDatalabelingV1beta1ObjectTrackingFrame>
+  core.List<GoogleCloudDatalabelingV1beta1ObjectTrackingFrame>?
       objectTrackingFrames;
 
   /// The time segment of the video to which object tracking applies.
-  GoogleCloudDatalabelingV1beta1TimeSegment timeSegment;
+  GoogleCloudDatalabelingV1beta1TimeSegment? timeSegment;
 
   GoogleCloudDatalabelingV1beta1VideoObjectTrackingAnnotation();
 
@@ -8743,31 +8593,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotationSpec != null) 'annotationSpec': annotationSpec.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotationSpec != null) 'annotationSpec': annotationSpec!.toJson(),
         if (objectTrackingFrames != null)
           'objectTrackingFrames':
-              objectTrackingFrames.map((value) => value.toJson()).toList(),
-        if (timeSegment != null) 'timeSegment': timeSegment.toJson(),
+              objectTrackingFrames!.map((value) => value.toJson()).toList(),
+        if (timeSegment != null) 'timeSegment': timeSegment!.toJson(),
       };
 }
 
 /// Container of information of a video.
 class GoogleCloudDatalabelingV1beta1VideoPayload {
   /// FPS of the video.
-  core.double frameRate;
+  core.double? frameRate;
 
   /// Video format.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Signed uri of the video file in the service bucket.
-  core.String signedUri;
+  core.String? signedUri;
 
   /// The list of video thumbnails.
-  core.List<GoogleCloudDatalabelingV1beta1VideoThumbnail> videoThumbnails;
+  core.List<GoogleCloudDatalabelingV1beta1VideoThumbnail>? videoThumbnails;
 
   /// Video uri from the user bucket.
-  core.String videoUri;
+  core.String? videoUri;
 
   GoogleCloudDatalabelingV1beta1VideoPayload();
 
@@ -8793,22 +8643,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (frameRate != null) 'frameRate': frameRate,
-        if (mimeType != null) 'mimeType': mimeType,
-        if (signedUri != null) 'signedUri': signedUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (frameRate != null) 'frameRate': frameRate!,
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (signedUri != null) 'signedUri': signedUri!,
         if (videoThumbnails != null)
           'videoThumbnails':
-              videoThumbnails.map((value) => value.toJson()).toList(),
-        if (videoUri != null) 'videoUri': videoUri,
+              videoThumbnails!.map((value) => value.toJson()).toList(),
+        if (videoUri != null) 'videoUri': videoUri!,
       };
 }
 
 /// Container of information of a video thumbnail.
 class GoogleCloudDatalabelingV1beta1VideoThumbnail {
   /// A byte string of the video frame.
-  core.String thumbnail;
-  core.List<core.int> get thumbnailAsBytes => convert.base64.decode(thumbnail);
+  core.String? thumbnail;
+  core.List<core.int> get thumbnailAsBytes => convert.base64.decode(thumbnail!);
 
   set thumbnailAsBytes(core.List<core.int> _bytes) {
     thumbnail =
@@ -8817,7 +8667,7 @@
 
   /// Time offset relative to the beginning of the video, corresponding to the
   /// video frame where the thumbnail has been extracted from.
-  core.String timeOffset;
+  core.String? timeOffset;
 
   GoogleCloudDatalabelingV1beta1VideoThumbnail();
 
@@ -8830,27 +8680,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (thumbnail != null) 'thumbnail': thumbnail,
-        if (timeOffset != null) 'timeOffset': timeOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (thumbnail != null) 'thumbnail': thumbnail!,
+        if (timeOffset != null) 'timeOffset': timeOffset!,
       };
 }
 
 /// Metadata of a CreateInstruction operation.
 class GoogleCloudDatalabelingV1p1alpha1CreateInstructionMetadata {
   /// Timestamp when create instruction request was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of the created Instruction.
   ///
   /// projects/{project_id}/instructions/{instruction_id}
-  core.String instruction;
+  core.String? instruction;
 
   /// Partial failures encountered.
   ///
   /// E.g. single files that couldn't be read. Status details field will contain
   /// standard GCP error details.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1p1alpha1CreateInstructionMetadata();
 
@@ -8870,12 +8720,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (instruction != null) 'instruction': instruction,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (instruction != null) 'instruction': instruction!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -8885,19 +8735,19 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when export dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be exported.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -8905,7 +8755,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1p1alpha1ExportDataOperationMetadata();
 
@@ -8928,13 +8778,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -8944,32 +8794,32 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Ouptut only.
   ///
   /// The name of dataset. "projects / * /datasets / * "
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples exported successfully.
   ///
   /// Output only.
-  core.int exportCount;
+  core.int? exportCount;
 
   /// Statistic infos of labels in the exported dataset.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1p1alpha1LabelStats labelStats;
+  GoogleCloudDatalabelingV1p1alpha1LabelStats? labelStats;
 
   /// output_config in the ExportData request.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1p1alpha1OutputConfig outputConfig;
+  GoogleCloudDatalabelingV1p1alpha1OutputConfig? outputConfig;
 
   /// Total number of examples requested to export
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1p1alpha1ExportDataOperationResponse();
 
@@ -8997,13 +8847,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (dataset != null) 'dataset': dataset,
-        if (exportCount != null) 'exportCount': exportCount,
-        if (labelStats != null) 'labelStats': labelStats.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (dataset != null) 'dataset': dataset!,
+        if (exportCount != null) 'exportCount': exportCount!,
+        if (labelStats != null) 'labelStats': labelStats!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -9014,12 +8864,12 @@
   /// Only "text/csv" and "application/json" are supported.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// The output uri of destination file.
   ///
   /// Required.
-  core.String outputUri;
+  core.String? outputUri;
 
   GoogleCloudDatalabelingV1p1alpha1GcsDestination();
 
@@ -9032,9 +8882,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (mimeType != null) 'mimeType': mimeType,
-        if (outputUri != null) 'outputUri': outputUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (outputUri != null) 'outputUri': outputUri!,
       };
 }
 
@@ -9043,7 +8893,7 @@
   /// Cloud Storage directory to export data to.
   ///
   /// Required.
-  core.String outputFolderUri;
+  core.String? outputFolderUri;
 
   GoogleCloudDatalabelingV1p1alpha1GcsFolderDestination();
 
@@ -9054,20 +8904,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri!,
       };
 }
 
 /// Metadata of an GenerateAnalysisReport operation.
 class GoogleCloudDatalabelingV1p1alpha1GenerateAnalysisReportOperationMetadata {
   /// Timestamp when generate report request was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of the dataset for which the analysis report is generated.
   ///
   /// Format: "projects / * /datasets / * "
-  core.String dataset;
+  core.String? dataset;
 
   GoogleCloudDatalabelingV1p1alpha1GenerateAnalysisReportOperationMetadata();
 
@@ -9081,9 +8931,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
       };
 }
 
@@ -9094,14 +8944,14 @@
   /// The description can be up to 10000 characters long.
   ///
   /// Optional.
-  core.String annotatedDatasetDescription;
+  core.String? annotatedDatasetDescription;
 
   /// A human-readable name for AnnotatedDataset defined by users.
   ///
   /// Maximum of 64 characters .
   ///
   /// Required.
-  core.String annotatedDatasetDisplayName;
+  core.String? annotatedDatasetDisplayName;
 
   /// If you want your own labeling contributors to manage and work on this
   /// labeling request, you can set these contributors here.
@@ -9111,19 +8961,19 @@
   /// https://crowd-compute.appspot.com/
   ///
   /// Optional.
-  core.List<core.String> contributorEmails;
+  core.List<core.String>? contributorEmails;
 
   /// Instruction resource name.
   ///
   /// Required.
-  core.String instruction;
+  core.String? instruction;
 
   /// A human-readable label used to logically group labeling tasks.
   ///
   /// This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`.
   ///
   /// Optional.
-  core.String labelGroup;
+  core.String? labelGroup;
 
   /// The Language of this question, as a
   /// \[BCP-47\](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
@@ -9132,14 +8982,14 @@
   /// related. For example, French text classification.
   ///
   /// Optional.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Maximum duration for contributors to answer a question.
   ///
   /// Maximum is 3600 seconds. Default is 3600 seconds.
   ///
   /// Optional.
-  core.String questionDuration;
+  core.String? questionDuration;
 
   /// Replication of questions.
   ///
@@ -9148,13 +8998,13 @@
   /// related labeling, valid values are 1, 3, 5.
   ///
   /// Optional.
-  core.int replicaCount;
+  core.int? replicaCount;
 
   /// Email of the user who started the labeling task and should be notified by
   /// email.
   ///
   /// If empty no notification will be sent.
-  core.String userEmailAddress;
+  core.String? userEmailAddress;
 
   GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig();
 
@@ -9193,18 +9043,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotatedDatasetDescription != null)
-          'annotatedDatasetDescription': annotatedDatasetDescription,
+          'annotatedDatasetDescription': annotatedDatasetDescription!,
         if (annotatedDatasetDisplayName != null)
-          'annotatedDatasetDisplayName': annotatedDatasetDisplayName,
-        if (contributorEmails != null) 'contributorEmails': contributorEmails,
-        if (instruction != null) 'instruction': instruction,
-        if (labelGroup != null) 'labelGroup': labelGroup,
-        if (languageCode != null) 'languageCode': languageCode,
-        if (questionDuration != null) 'questionDuration': questionDuration,
-        if (replicaCount != null) 'replicaCount': replicaCount,
-        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress,
+          'annotatedDatasetDisplayName': annotatedDatasetDisplayName!,
+        if (contributorEmails != null) 'contributorEmails': contributorEmails!,
+        if (instruction != null) 'instruction': instruction!,
+        if (labelGroup != null) 'labelGroup': labelGroup!,
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (questionDuration != null) 'questionDuration': questionDuration!,
+        if (replicaCount != null) 'replicaCount': replicaCount!,
+        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress!,
       };
 }
 
@@ -9213,14 +9063,14 @@
   /// Timestamp when import dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of imported dataset.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -9228,7 +9078,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1p1alpha1ImportDataOperationMetadata();
 
@@ -9248,12 +9098,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -9262,17 +9112,17 @@
   /// Ouptut only.
   ///
   /// The name of imported dataset.
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples imported successfully.
   ///
   /// Output only.
-  core.int importCount;
+  core.int? importCount;
 
   /// Total number of examples requested to import
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1p1alpha1ImportDataOperationResponse();
 
@@ -9289,17 +9139,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset,
-        if (importCount != null) 'importCount': importCount,
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!,
+        if (importCount != null) 'importCount': importCount!,
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
 /// Details of a LabelImageBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingBoxOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingBoxOperationMetadata();
 
@@ -9312,15 +9162,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImageBoundingPoly operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingPolyOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingPolyOperationMetadata();
 
@@ -9333,15 +9183,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Metadata of a LabelImageClassification operation.
 class GoogleCloudDatalabelingV1p1alpha1LabelImageClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelImageClassificationOperationMetadata();
 
@@ -9354,15 +9204,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageOrientedBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelImageOrientedBoundingBoxOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelImageOrientedBoundingBoxOperationMetadata();
 
@@ -9375,15 +9225,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImagePolyline operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelImagePolylineOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelImagePolylineOperationMetadata();
 
@@ -9396,15 +9246,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageSegmentation operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelImageSegmentationOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelImageSegmentationOperationMetadata();
 
@@ -9417,8 +9267,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -9430,42 +9280,42 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when labeling request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be labeled.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Details of label image bounding box operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingBoxOperationMetadata?
       imageBoundingBoxDetails;
 
   /// Details of label image bounding poly operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingPolyOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelImageBoundingPolyOperationMetadata?
       imageBoundingPolyDetails;
 
   /// Details of label image classification operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelImageClassificationOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelImageClassificationOperationMetadata?
       imageClassificationDetails;
 
   /// Details of label image oriented bounding box operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelImageOrientedBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelImageOrientedBoundingBoxOperationMetadata?
       imageOrientedBoundingBoxDetails;
 
   /// Details of label image polyline operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelImagePolylineOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelImagePolylineOperationMetadata?
       imagePolylineDetails;
 
   /// Details of label image segmentation operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelImageSegmentationOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelImageSegmentationOperationMetadata?
       imageSegmentationDetails;
 
   /// Partial failures encountered.
@@ -9474,37 +9324,37 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   /// Progress of label operation.
   ///
   /// Range: \[0, 100\].
   ///
   /// Output only.
-  core.int progressPercent;
+  core.int? progressPercent;
 
   /// Details of label text classification operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelTextClassificationOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelTextClassificationOperationMetadata?
       textClassificationDetails;
 
   /// Details of label text entity extraction operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelTextEntityExtractionOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelTextEntityExtractionOperationMetadata?
       textEntityExtractionDetails;
 
   /// Details of label video classification operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelVideoClassificationOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelVideoClassificationOperationMetadata?
       videoClassificationDetails;
 
   /// Details of label video event operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelVideoEventOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelVideoEventOperationMetadata?
       videoEventDetails;
 
   /// Details of label video object detection operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectDetectionOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectDetectionOperationMetadata?
       videoObjectDetectionDetails;
 
   /// Details of label video object tracking operation.
-  GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectTrackingOperationMetadata
+  GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectTrackingOperationMetadata?
       videoObjectTrackingDetails;
 
   GoogleCloudDatalabelingV1p1alpha1LabelOperationMetadata();
@@ -9603,39 +9453,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (imageBoundingBoxDetails != null)
-          'imageBoundingBoxDetails': imageBoundingBoxDetails.toJson(),
+          'imageBoundingBoxDetails': imageBoundingBoxDetails!.toJson(),
         if (imageBoundingPolyDetails != null)
-          'imageBoundingPolyDetails': imageBoundingPolyDetails.toJson(),
+          'imageBoundingPolyDetails': imageBoundingPolyDetails!.toJson(),
         if (imageClassificationDetails != null)
-          'imageClassificationDetails': imageClassificationDetails.toJson(),
+          'imageClassificationDetails': imageClassificationDetails!.toJson(),
         if (imageOrientedBoundingBoxDetails != null)
           'imageOrientedBoundingBoxDetails':
-              imageOrientedBoundingBoxDetails.toJson(),
+              imageOrientedBoundingBoxDetails!.toJson(),
         if (imagePolylineDetails != null)
-          'imagePolylineDetails': imagePolylineDetails.toJson(),
+          'imagePolylineDetails': imagePolylineDetails!.toJson(),
         if (imageSegmentationDetails != null)
-          'imageSegmentationDetails': imageSegmentationDetails.toJson(),
+          'imageSegmentationDetails': imageSegmentationDetails!.toJson(),
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
-        if (progressPercent != null) 'progressPercent': progressPercent,
+              partialFailures!.map((value) => value.toJson()).toList(),
+        if (progressPercent != null) 'progressPercent': progressPercent!,
         if (textClassificationDetails != null)
-          'textClassificationDetails': textClassificationDetails.toJson(),
+          'textClassificationDetails': textClassificationDetails!.toJson(),
         if (textEntityExtractionDetails != null)
-          'textEntityExtractionDetails': textEntityExtractionDetails.toJson(),
+          'textEntityExtractionDetails': textEntityExtractionDetails!.toJson(),
         if (videoClassificationDetails != null)
-          'videoClassificationDetails': videoClassificationDetails.toJson(),
+          'videoClassificationDetails': videoClassificationDetails!.toJson(),
         if (videoEventDetails != null)
-          'videoEventDetails': videoEventDetails.toJson(),
+          'videoEventDetails': videoEventDetails!.toJson(),
         if (videoObjectDetectionDetails != null)
-          'videoObjectDetectionDetails': videoObjectDetectionDetails.toJson(),
+          'videoObjectDetectionDetails': videoObjectDetectionDetails!.toJson(),
         if (videoObjectTrackingDetails != null)
-          'videoObjectTrackingDetails': videoObjectTrackingDetails.toJson(),
+          'videoObjectTrackingDetails': videoObjectTrackingDetails!.toJson(),
       };
 }
 
@@ -9647,7 +9497,7 @@
   /// that annotation spec. If the annotated dataset does not have annotation
   /// spec, the map will return a pair where the key is empty string and value
   /// is the total number of annotations.
-  core.Map<core.String, core.String> exampleCount;
+  core.Map<core.String, core.String>? exampleCount;
 
   GoogleCloudDatalabelingV1p1alpha1LabelStats();
 
@@ -9664,15 +9514,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exampleCount != null) 'exampleCount': exampleCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exampleCount != null) 'exampleCount': exampleCount!,
       };
 }
 
 /// Details of a LabelTextClassification operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelTextClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelTextClassificationOperationMetadata();
 
@@ -9685,15 +9535,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelTextEntityExtraction operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelTextEntityExtractionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelTextEntityExtractionOperationMetadata();
 
@@ -9706,15 +9556,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoClassification operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelVideoClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelVideoClassificationOperationMetadata();
 
@@ -9727,15 +9577,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoEvent operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelVideoEventOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelVideoEventOperationMetadata();
 
@@ -9748,15 +9598,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectDetection operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectDetectionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectDetectionOperationMetadata();
 
@@ -9769,15 +9619,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectTracking operation metadata.
 class GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectTrackingOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p1alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p1alpha1LabelVideoObjectTrackingOperationMetadata();
 
@@ -9790,8 +9640,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -9800,13 +9650,13 @@
   /// Output to a file in Cloud Storage.
   ///
   /// Should be used for labeling output other than image segmentation.
-  GoogleCloudDatalabelingV1p1alpha1GcsDestination gcsDestination;
+  GoogleCloudDatalabelingV1p1alpha1GcsDestination? gcsDestination;
 
   /// Output to a folder in Cloud Storage.
   ///
   /// Should be used for image segmentation or document de-identification
   /// labeling outputs.
-  GoogleCloudDatalabelingV1p1alpha1GcsFolderDestination gcsFolderDestination;
+  GoogleCloudDatalabelingV1p1alpha1GcsFolderDestination? gcsFolderDestination;
 
   GoogleCloudDatalabelingV1p1alpha1OutputConfig();
 
@@ -9823,28 +9673,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!.toJson(),
         if (gcsFolderDestination != null)
-          'gcsFolderDestination': gcsFolderDestination.toJson(),
+          'gcsFolderDestination': gcsFolderDestination!.toJson(),
       };
 }
 
 /// Metadata of a CreateInstruction operation.
 class GoogleCloudDatalabelingV1p2alpha1CreateInstructionMetadata {
   /// Timestamp when create instruction request was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of the created Instruction.
   ///
   /// projects/{project_id}/instructions/{instruction_id}
-  core.String instruction;
+  core.String? instruction;
 
   /// Partial failures encountered.
   ///
   /// E.g. single files that couldn't be read. Status details field will contain
   /// standard GCP error details.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1p2alpha1CreateInstructionMetadata();
 
@@ -9864,12 +9714,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (instruction != null) 'instruction': instruction,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (instruction != null) 'instruction': instruction!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -9879,19 +9729,19 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when export dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be exported.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -9899,7 +9749,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1p2alpha1ExportDataOperationMetadata();
 
@@ -9922,13 +9772,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -9938,32 +9788,32 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Ouptut only.
   ///
   /// The name of dataset. "projects / * /datasets / * "
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples exported successfully.
   ///
   /// Output only.
-  core.int exportCount;
+  core.int? exportCount;
 
   /// Statistic infos of labels in the exported dataset.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1p2alpha1LabelStats labelStats;
+  GoogleCloudDatalabelingV1p2alpha1LabelStats? labelStats;
 
   /// output_config in the ExportData request.
   ///
   /// Output only.
-  GoogleCloudDatalabelingV1p2alpha1OutputConfig outputConfig;
+  GoogleCloudDatalabelingV1p2alpha1OutputConfig? outputConfig;
 
   /// Total number of examples requested to export
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1p2alpha1ExportDataOperationResponse();
 
@@ -9991,13 +9841,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (dataset != null) 'dataset': dataset,
-        if (exportCount != null) 'exportCount': exportCount,
-        if (labelStats != null) 'labelStats': labelStats.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (dataset != null) 'dataset': dataset!,
+        if (exportCount != null) 'exportCount': exportCount!,
+        if (labelStats != null) 'labelStats': labelStats!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -10008,12 +9858,12 @@
   /// Only "text/csv" and "application/json" are supported.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// The output uri of destination file.
   ///
   /// Required.
-  core.String outputUri;
+  core.String? outputUri;
 
   GoogleCloudDatalabelingV1p2alpha1GcsDestination();
 
@@ -10026,9 +9876,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (mimeType != null) 'mimeType': mimeType,
-        if (outputUri != null) 'outputUri': outputUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (outputUri != null) 'outputUri': outputUri!,
       };
 }
 
@@ -10037,7 +9887,7 @@
   /// Cloud Storage directory to export data to.
   ///
   /// Required.
-  core.String outputFolderUri;
+  core.String? outputFolderUri;
 
   GoogleCloudDatalabelingV1p2alpha1GcsFolderDestination();
 
@@ -10048,8 +9898,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (outputFolderUri != null) 'outputFolderUri': outputFolderUri!,
       };
 }
 
@@ -10060,14 +9910,14 @@
   /// The description can be up to 10000 characters long.
   ///
   /// Optional.
-  core.String annotatedDatasetDescription;
+  core.String? annotatedDatasetDescription;
 
   /// A human-readable name for AnnotatedDataset defined by users.
   ///
   /// Maximum of 64 characters .
   ///
   /// Required.
-  core.String annotatedDatasetDisplayName;
+  core.String? annotatedDatasetDisplayName;
 
   /// If you want your own labeling contributors to manage and work on this
   /// labeling request, you can set these contributors here.
@@ -10077,19 +9927,19 @@
   /// https://crowd-compute.appspot.com/
   ///
   /// Optional.
-  core.List<core.String> contributorEmails;
+  core.List<core.String>? contributorEmails;
 
   /// Instruction resource name.
   ///
   /// Required.
-  core.String instruction;
+  core.String? instruction;
 
   /// A human-readable label used to logically group labeling tasks.
   ///
   /// This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`.
   ///
   /// Optional.
-  core.String labelGroup;
+  core.String? labelGroup;
 
   /// The Language of this question, as a
   /// \[BCP-47\](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
@@ -10098,14 +9948,14 @@
   /// related. For example, French text classification.
   ///
   /// Optional.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Maximum duration for contributors to answer a question.
   ///
   /// Maximum is 3600 seconds. Default is 3600 seconds.
   ///
   /// Optional.
-  core.String questionDuration;
+  core.String? questionDuration;
 
   /// Replication of questions.
   ///
@@ -10114,13 +9964,13 @@
   /// related labeling, valid values are 1, 3, 5.
   ///
   /// Optional.
-  core.int replicaCount;
+  core.int? replicaCount;
 
   /// Email of the user who started the labeling task and should be notified by
   /// email.
   ///
   /// If empty no notification will be sent.
-  core.String userEmailAddress;
+  core.String? userEmailAddress;
 
   GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig();
 
@@ -10159,18 +10009,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (annotatedDatasetDescription != null)
-          'annotatedDatasetDescription': annotatedDatasetDescription,
+          'annotatedDatasetDescription': annotatedDatasetDescription!,
         if (annotatedDatasetDisplayName != null)
-          'annotatedDatasetDisplayName': annotatedDatasetDisplayName,
-        if (contributorEmails != null) 'contributorEmails': contributorEmails,
-        if (instruction != null) 'instruction': instruction,
-        if (labelGroup != null) 'labelGroup': labelGroup,
-        if (languageCode != null) 'languageCode': languageCode,
-        if (questionDuration != null) 'questionDuration': questionDuration,
-        if (replicaCount != null) 'replicaCount': replicaCount,
-        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress,
+          'annotatedDatasetDisplayName': annotatedDatasetDisplayName!,
+        if (contributorEmails != null) 'contributorEmails': contributorEmails!,
+        if (instruction != null) 'instruction': instruction!,
+        if (labelGroup != null) 'labelGroup': labelGroup!,
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (questionDuration != null) 'questionDuration': questionDuration!,
+        if (replicaCount != null) 'replicaCount': replicaCount!,
+        if (userEmailAddress != null) 'userEmailAddress': userEmailAddress!,
       };
 }
 
@@ -10179,14 +10029,14 @@
   /// Timestamp when import dataset request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of imported dataset.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Partial failures encountered.
   ///
@@ -10194,7 +10044,7 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   GoogleCloudDatalabelingV1p2alpha1ImportDataOperationMetadata();
 
@@ -10214,12 +10064,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
+              partialFailures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -10228,17 +10078,17 @@
   /// Ouptut only.
   ///
   /// The name of imported dataset.
-  core.String dataset;
+  core.String? dataset;
 
   /// Number of examples imported successfully.
   ///
   /// Output only.
-  core.int importCount;
+  core.int? importCount;
 
   /// Total number of examples requested to import
   ///
   /// Output only.
-  core.int totalCount;
+  core.int? totalCount;
 
   GoogleCloudDatalabelingV1p2alpha1ImportDataOperationResponse();
 
@@ -10255,17 +10105,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataset != null) 'dataset': dataset,
-        if (importCount != null) 'importCount': importCount,
-        if (totalCount != null) 'totalCount': totalCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataset != null) 'dataset': dataset!,
+        if (importCount != null) 'importCount': importCount!,
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
 /// Details of a LabelImageBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingBoxOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingBoxOperationMetadata();
 
@@ -10278,15 +10128,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImageBoundingPoly operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingPolyOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingPolyOperationMetadata();
 
@@ -10299,15 +10149,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Metadata of a LabelImageClassification operation.
 class GoogleCloudDatalabelingV1p2alpha1LabelImageClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelImageClassificationOperationMetadata();
 
@@ -10320,15 +10170,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageOrientedBoundingBox operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelImageOrientedBoundingBoxOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelImageOrientedBoundingBoxOperationMetadata();
 
@@ -10341,15 +10191,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of LabelImagePolyline operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelImagePolylineOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelImagePolylineOperationMetadata();
 
@@ -10362,15 +10212,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelImageSegmentation operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelImageSegmentationOperationMetadata {
   /// Basic human annotation config.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelImageSegmentationOperationMetadata();
 
@@ -10383,8 +10233,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -10396,42 +10246,42 @@
   /// /annotatedDatasets / * ".
   ///
   /// Output only.
-  core.String annotatedDataset;
+  core.String? annotatedDataset;
 
   /// Timestamp when labeling request was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The name of dataset to be labeled.
   ///
   /// "projects / * /datasets / * "
   ///
   /// Output only.
-  core.String dataset;
+  core.String? dataset;
 
   /// Details of label image bounding box operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingBoxOperationMetadata?
       imageBoundingBoxDetails;
 
   /// Details of label image bounding poly operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingPolyOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelImageBoundingPolyOperationMetadata?
       imageBoundingPolyDetails;
 
   /// Details of label image classification operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelImageClassificationOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelImageClassificationOperationMetadata?
       imageClassificationDetails;
 
   /// Details of label image oriented bounding box operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelImageOrientedBoundingBoxOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelImageOrientedBoundingBoxOperationMetadata?
       imageOrientedBoundingBoxDetails;
 
   /// Details of label image polyline operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelImagePolylineOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelImagePolylineOperationMetadata?
       imagePolylineDetails;
 
   /// Details of label image segmentation operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelImageSegmentationOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelImageSegmentationOperationMetadata?
       imageSegmentationDetails;
 
   /// Partial failures encountered.
@@ -10440,37 +10290,37 @@
   /// standard GCP error details.
   ///
   /// Output only.
-  core.List<GoogleRpcStatus> partialFailures;
+  core.List<GoogleRpcStatus>? partialFailures;
 
   /// Progress of label operation.
   ///
   /// Range: \[0, 100\].
   ///
   /// Output only.
-  core.int progressPercent;
+  core.int? progressPercent;
 
   /// Details of label text classification operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelTextClassificationOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelTextClassificationOperationMetadata?
       textClassificationDetails;
 
   /// Details of label text entity extraction operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelTextEntityExtractionOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelTextEntityExtractionOperationMetadata?
       textEntityExtractionDetails;
 
   /// Details of label video classification operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelVideoClassificationOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelVideoClassificationOperationMetadata?
       videoClassificationDetails;
 
   /// Details of label video event operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelVideoEventOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelVideoEventOperationMetadata?
       videoEventDetails;
 
   /// Details of label video object detection operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectDetectionOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectDetectionOperationMetadata?
       videoObjectDetectionDetails;
 
   /// Details of label video object tracking operation.
-  GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectTrackingOperationMetadata
+  GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectTrackingOperationMetadata?
       videoObjectTrackingDetails;
 
   GoogleCloudDatalabelingV1p2alpha1LabelOperationMetadata();
@@ -10569,39 +10419,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset,
-        if (createTime != null) 'createTime': createTime,
-        if (dataset != null) 'dataset': dataset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (annotatedDataset != null) 'annotatedDataset': annotatedDataset!,
+        if (createTime != null) 'createTime': createTime!,
+        if (dataset != null) 'dataset': dataset!,
         if (imageBoundingBoxDetails != null)
-          'imageBoundingBoxDetails': imageBoundingBoxDetails.toJson(),
+          'imageBoundingBoxDetails': imageBoundingBoxDetails!.toJson(),
         if (imageBoundingPolyDetails != null)
-          'imageBoundingPolyDetails': imageBoundingPolyDetails.toJson(),
+          'imageBoundingPolyDetails': imageBoundingPolyDetails!.toJson(),
         if (imageClassificationDetails != null)
-          'imageClassificationDetails': imageClassificationDetails.toJson(),
+          'imageClassificationDetails': imageClassificationDetails!.toJson(),
         if (imageOrientedBoundingBoxDetails != null)
           'imageOrientedBoundingBoxDetails':
-              imageOrientedBoundingBoxDetails.toJson(),
+              imageOrientedBoundingBoxDetails!.toJson(),
         if (imagePolylineDetails != null)
-          'imagePolylineDetails': imagePolylineDetails.toJson(),
+          'imagePolylineDetails': imagePolylineDetails!.toJson(),
         if (imageSegmentationDetails != null)
-          'imageSegmentationDetails': imageSegmentationDetails.toJson(),
+          'imageSegmentationDetails': imageSegmentationDetails!.toJson(),
         if (partialFailures != null)
           'partialFailures':
-              partialFailures.map((value) => value.toJson()).toList(),
-        if (progressPercent != null) 'progressPercent': progressPercent,
+              partialFailures!.map((value) => value.toJson()).toList(),
+        if (progressPercent != null) 'progressPercent': progressPercent!,
         if (textClassificationDetails != null)
-          'textClassificationDetails': textClassificationDetails.toJson(),
+          'textClassificationDetails': textClassificationDetails!.toJson(),
         if (textEntityExtractionDetails != null)
-          'textEntityExtractionDetails': textEntityExtractionDetails.toJson(),
+          'textEntityExtractionDetails': textEntityExtractionDetails!.toJson(),
         if (videoClassificationDetails != null)
-          'videoClassificationDetails': videoClassificationDetails.toJson(),
+          'videoClassificationDetails': videoClassificationDetails!.toJson(),
         if (videoEventDetails != null)
-          'videoEventDetails': videoEventDetails.toJson(),
+          'videoEventDetails': videoEventDetails!.toJson(),
         if (videoObjectDetectionDetails != null)
-          'videoObjectDetectionDetails': videoObjectDetectionDetails.toJson(),
+          'videoObjectDetectionDetails': videoObjectDetectionDetails!.toJson(),
         if (videoObjectTrackingDetails != null)
-          'videoObjectTrackingDetails': videoObjectTrackingDetails.toJson(),
+          'videoObjectTrackingDetails': videoObjectTrackingDetails!.toJson(),
       };
 }
 
@@ -10613,7 +10463,7 @@
   /// that annotation spec. If the annotated dataset does not have annotation
   /// spec, the map will return a pair where the key is empty string and value
   /// is the total number of annotations.
-  core.Map<core.String, core.String> exampleCount;
+  core.Map<core.String, core.String>? exampleCount;
 
   GoogleCloudDatalabelingV1p2alpha1LabelStats();
 
@@ -10630,15 +10480,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exampleCount != null) 'exampleCount': exampleCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exampleCount != null) 'exampleCount': exampleCount!,
       };
 }
 
 /// Details of a LabelTextClassification operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelTextClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelTextClassificationOperationMetadata();
 
@@ -10651,15 +10501,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelTextEntityExtraction operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelTextEntityExtractionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelTextEntityExtractionOperationMetadata();
 
@@ -10672,15 +10522,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoClassification operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelVideoClassificationOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelVideoClassificationOperationMetadata();
 
@@ -10693,15 +10543,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoEvent operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelVideoEventOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelVideoEventOperationMetadata();
 
@@ -10714,15 +10564,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectDetection operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectDetectionOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectDetectionOperationMetadata();
 
@@ -10735,15 +10585,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
 /// Details of a LabelVideoObjectTracking operation metadata.
 class GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectTrackingOperationMetadata {
   /// Basic human annotation config used in labeling request.
-  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig basicConfig;
+  GoogleCloudDatalabelingV1p2alpha1HumanAnnotationConfig? basicConfig;
 
   GoogleCloudDatalabelingV1p2alpha1LabelVideoObjectTrackingOperationMetadata();
 
@@ -10756,8 +10606,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (basicConfig != null) 'basicConfig': basicConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (basicConfig != null) 'basicConfig': basicConfig!.toJson(),
       };
 }
 
@@ -10766,13 +10616,13 @@
   /// Output to a file in Cloud Storage.
   ///
   /// Should be used for labeling output other than image segmentation.
-  GoogleCloudDatalabelingV1p2alpha1GcsDestination gcsDestination;
+  GoogleCloudDatalabelingV1p2alpha1GcsDestination? gcsDestination;
 
   /// Output to a folder in Cloud Storage.
   ///
   /// Should be used for image segmentation or document de-identification
   /// labeling outputs.
-  GoogleCloudDatalabelingV1p2alpha1GcsFolderDestination gcsFolderDestination;
+  GoogleCloudDatalabelingV1p2alpha1GcsFolderDestination? gcsFolderDestination;
 
   GoogleCloudDatalabelingV1p2alpha1OutputConfig();
 
@@ -10789,20 +10639,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!.toJson(),
         if (gcsFolderDestination != null)
-          'gcsFolderDestination': gcsFolderDestination.toJson(),
+          'gcsFolderDestination': gcsFolderDestination!.toJson(),
       };
 }
 
 /// The response message for Operations.ListOperations.
 class GoogleLongrunningListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<GoogleLongrunningOperation> operations;
+  core.List<GoogleLongrunningOperation>? operations;
 
   GoogleLongrunningListOperationsResponse();
 
@@ -10819,10 +10669,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -10833,10 +10683,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -10847,14 +10697,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -10867,7 +10717,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   GoogleLongrunningOperation();
 
@@ -10902,12 +10752,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -10925,7 +10775,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The `Status` type defines a logical error model that is suitable for
@@ -10937,7 +10787,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class GoogleRpcStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -10945,13 +10795,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   GoogleRpcStatus();
 
@@ -10975,9 +10825,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
diff --git a/generated/googleapis_beta/lib/datamigration/v1beta1.dart b/generated/googleapis_beta/lib/datamigration/v1beta1.dart
index 3b69173..0426fb9 100644
--- a/generated/googleapis_beta/lib/datamigration/v1beta1.dart
+++ b/generated/googleapis_beta/lib/datamigration/v1beta1.dart
@@ -99,11 +99,8 @@
   /// this method will complete with the same error.
   async.Future<Location> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -143,14 +140,11 @@
   /// this method will complete with the same error.
   async.Future<ListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -209,15 +203,11 @@
   async.Future<Operation> create(
     ConnectionProfile request,
     core.String parent, {
-    core.String connectionProfileId,
-    core.String requestId,
-    core.String $fields,
+    core.String? connectionProfileId,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (connectionProfileId != null)
         'connectionProfileId': [connectionProfileId],
@@ -270,13 +260,10 @@
   /// this method will complete with the same error.
   async.Future<Operation> delete(
     core.String name, {
-    core.bool force,
-    core.String requestId,
-    core.String $fields,
+    core.bool? force,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (force != null) 'force': ['${force}'],
       if (requestId != null) 'requestId': [requestId],
@@ -313,11 +300,8 @@
   /// this method will complete with the same error.
   async.Future<ConnectionProfile> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -366,12 +350,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -433,15 +414,12 @@
   /// this method will complete with the same error.
   async.Future<ListConnectionProfilesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -496,15 +474,11 @@
   async.Future<Operation> patch(
     ConnectionProfile request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -550,13 +524,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -604,13 +574,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -667,15 +633,11 @@
   async.Future<Operation> create(
     MigrationJob request,
     core.String parent, {
-    core.String migrationJobId,
-    core.String requestId,
-    core.String $fields,
+    core.String? migrationJobId,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (migrationJobId != null) 'migrationJobId': [migrationJobId],
       if (requestId != null) 'requestId': [requestId],
@@ -725,13 +687,10 @@
   /// this method will complete with the same error.
   async.Future<Operation> delete(
     core.String name, {
-    core.bool force,
-    core.String requestId,
-    core.String $fields,
+    core.bool? force,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (force != null) 'force': ['${force}'],
       if (requestId != null) 'requestId': [requestId],
@@ -773,13 +732,9 @@
   async.Future<SshScript> generateSshScript(
     GenerateSshScriptRequest request,
     core.String migrationJob, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (migrationJob == null) {
-      throw core.ArgumentError('Parameter migrationJob is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -817,11 +772,8 @@
   /// this method will complete with the same error.
   async.Future<MigrationJob> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -870,12 +822,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -938,15 +887,12 @@
   /// this method will complete with the same error.
   async.Future<ListMigrationJobsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -1001,15 +947,11 @@
   async.Future<Operation> patch(
     MigrationJob request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -1051,13 +993,9 @@
   async.Future<Operation> promote(
     PromoteMigrationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1100,13 +1038,9 @@
   async.Future<Operation> restart(
     RestartMigrationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1148,13 +1082,9 @@
   async.Future<Operation> resume(
     ResumeMigrationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1199,13 +1129,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1246,13 +1172,9 @@
   async.Future<Operation> start(
     StartMigrationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1292,13 +1214,9 @@
   async.Future<Operation> stop(
     StopMigrationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1345,13 +1263,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1394,13 +1308,9 @@
   async.Future<Operation> verify(
     VerifyMigrationJobRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1456,13 +1366,9 @@
   async.Future<Empty> cancel(
     CancelOperationRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1503,11 +1409,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1545,11 +1448,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1598,14 +1498,11 @@
   /// this method will complete with the same error.
   async.Future<ListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1646,13 +1543,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<AuditLogConfig> auditLogConfigs;
+  core.List<AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   /// `allServices` is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   AuditConfig();
 
@@ -1668,11 +1565,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -1687,7 +1584,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -1695,7 +1592,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   AuditLogConfig();
 
@@ -1710,9 +1607,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -1726,7 +1623,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -1758,12 +1655,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -1782,10 +1679,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -1797,7 +1694,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Specifies required connection parameters, and, optionally, the parameters
@@ -1806,22 +1703,22 @@
   /// The Cloud SQL instance ID that this connection profile is associated with.
   ///
   /// Output only.
-  core.String cloudSqlId;
+  core.String? cloudSqlId;
 
   /// The Cloud SQL database instance's private IP.
   ///
   /// Output only.
-  core.String privateIp;
+  core.String? privateIp;
 
   /// The Cloud SQL database instance's public IP.
   ///
   /// Output only.
-  core.String publicIp;
+  core.String? publicIp;
 
   /// Metadata used to create the destination Cloud SQL database.
   ///
   /// Immutable.
-  CloudSqlSettings settings;
+  CloudSqlSettings? settings;
 
   CloudSqlConnectionProfile();
 
@@ -1841,11 +1738,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudSqlId != null) 'cloudSqlId': cloudSqlId,
-        if (privateIp != null) 'privateIp': privateIp,
-        if (publicIp != null) 'publicIp': publicIp,
-        if (settings != null) 'settings': settings.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudSqlId != null) 'cloudSqlId': cloudSqlId!,
+        if (privateIp != null) 'privateIp': privateIp!,
+        if (publicIp != null) 'publicIp': publicIp!,
+        if (settings != null) 'settings': settings!.toJson(),
       };
 }
 
@@ -1861,7 +1758,7 @@
   /// - "SQL_ACTIVATION_POLICY_UNSPECIFIED" : unspecified policy.
   /// - "ALWAYS" : The instance is always up and running.
   /// - "NEVER" : The instance should never spin up.
-  core.String activationPolicy;
+  core.String? activationPolicy;
 
   /// \[default: ON\] If you enable this setting, Cloud SQL checks your
   /// available storage every 30 seconds.
@@ -1870,25 +1767,25 @@
   /// automatically adds additional storage capacity. If the available storage
   /// repeatedly falls below the threshold size, Cloud SQL continues to add
   /// storage until it reaches the maximum of 30 TB.
-  core.bool autoStorageIncrease;
+  core.bool? autoStorageIncrease;
 
   /// The storage capacity available to the database, in GB.
   ///
   /// The minimum (and default) size is 10GB.
-  core.String dataDiskSizeGb;
+  core.String? dataDiskSizeGb;
 
   /// The type of storage: `PD_SSD` (default) or `PD_HDD`.
   /// Possible string values are:
   /// - "SQL_DATA_DISK_TYPE_UNSPECIFIED" : Unspecified.
   /// - "PD_SSD" : SSD disk.
   /// - "PD_HDD" : HDD disk.
-  core.String dataDiskType;
+  core.String? dataDiskType;
 
   /// The database flags passed to the Cloud SQL instance at startup.
   ///
   /// An object containing a list of "key": value pairs. Example: { "name":
   /// "wrench", "mass": "1.3kg", "count": "3" }.
-  core.Map<core.String, core.String> databaseFlags;
+  core.Map<core.String, core.String>? databaseFlags;
 
   /// The database engine type and version.
   /// Possible string values are:
@@ -1896,51 +1793,51 @@
   /// - "MYSQL_5_6" : MySQL 5.6.
   /// - "MYSQL_5_7" : MySQL 5.7.
   /// - "MYSQL_8_0" : MySQL 8.0.
-  core.String databaseVersion;
+  core.String? databaseVersion;
 
   /// The settings for IP Management.
   ///
   /// This allows to enable or disable the instance IP and manage which external
   /// networks can connect to the instance. The IPv4 address cannot be disabled.
-  SqlIpConfig ipConfig;
+  SqlIpConfig? ipConfig;
 
   /// Input only.
   ///
   /// Initial root password.
-  core.String rootPassword;
+  core.String? rootPassword;
 
   /// Indicates If this connection profile root password is stored.
   ///
   /// Output only.
-  core.bool rootPasswordSet;
+  core.bool? rootPasswordSet;
 
   /// The Database Migration Service source connection profile ID, in the
   /// format:
   /// `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID`
-  core.String sourceId;
+  core.String? sourceId;
 
   /// The maximum size to which storage capacity can be automatically increased.
   ///
   /// The default value is 0, which specifies that there is no limit.
-  core.String storageAutoResizeLimit;
+  core.String? storageAutoResizeLimit;
 
   /// The tier (or machine type) for this instance, for example:
   /// `db-n1-standard-1` (MySQL instances).
   ///
   /// For more information, see
   /// [Cloud SQL Instance Settings](https://cloud.google.com/sql/docs/mysql/instance-settings).
-  core.String tier;
+  core.String? tier;
 
   /// The resource labels for a Cloud SQL instance to use to annotate any
   /// related underlying resources such as Compute Engine VMs.
   ///
   /// An object containing a list of "key": "value" pairs. Example: `{ "name":
   /// "wrench", "mass": "18kg", "count": "3" }`.
-  core.Map<core.String, core.String> userLabels;
+  core.Map<core.String, core.String>? userLabels;
 
   /// The Google Cloud Platform zone where your Cloud SQL datdabse instance is
   /// located.
-  core.String zone;
+  core.String? zone;
 
   CloudSqlSettings();
 
@@ -2004,30 +1901,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (activationPolicy != null) 'activationPolicy': activationPolicy,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (activationPolicy != null) 'activationPolicy': activationPolicy!,
         if (autoStorageIncrease != null)
-          'autoStorageIncrease': autoStorageIncrease,
-        if (dataDiskSizeGb != null) 'dataDiskSizeGb': dataDiskSizeGb,
-        if (dataDiskType != null) 'dataDiskType': dataDiskType,
-        if (databaseFlags != null) 'databaseFlags': databaseFlags,
-        if (databaseVersion != null) 'databaseVersion': databaseVersion,
-        if (ipConfig != null) 'ipConfig': ipConfig.toJson(),
-        if (rootPassword != null) 'rootPassword': rootPassword,
-        if (rootPasswordSet != null) 'rootPasswordSet': rootPasswordSet,
-        if (sourceId != null) 'sourceId': sourceId,
+          'autoStorageIncrease': autoStorageIncrease!,
+        if (dataDiskSizeGb != null) 'dataDiskSizeGb': dataDiskSizeGb!,
+        if (dataDiskType != null) 'dataDiskType': dataDiskType!,
+        if (databaseFlags != null) 'databaseFlags': databaseFlags!,
+        if (databaseVersion != null) 'databaseVersion': databaseVersion!,
+        if (ipConfig != null) 'ipConfig': ipConfig!.toJson(),
+        if (rootPassword != null) 'rootPassword': rootPassword!,
+        if (rootPasswordSet != null) 'rootPasswordSet': rootPasswordSet!,
+        if (sourceId != null) 'sourceId': sourceId!,
         if (storageAutoResizeLimit != null)
-          'storageAutoResizeLimit': storageAutoResizeLimit,
-        if (tier != null) 'tier': tier,
-        if (userLabels != null) 'userLabels': userLabels,
-        if (zone != null) 'zone': zone,
+          'storageAutoResizeLimit': storageAutoResizeLimit!,
+        if (tier != null) 'tier': tier!,
+        if (userLabels != null) 'userLabels': userLabels!,
+        if (zone != null) 'zone': zone!,
       };
 }
 
 /// A connection profile definition.
 class ConnectionProfile {
   /// A CloudSQL database connection profile.
-  CloudSqlConnectionProfile cloudsql;
+  CloudSqlConnectionProfile? cloudsql;
 
   /// The timestamp when the resource was created.
   ///
@@ -2035,36 +1932,36 @@
   /// Example: "2014-10-02T15:01:23.045123456Z".
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The connection profile display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// The error details in case of state FAILED.
   ///
   /// Output only.
-  Status error;
+  Status? error;
 
   /// The resource labels for connection profile to use to annotate any related
   /// underlying resources such as Compute Engine VMs.
   ///
   /// An object containing a list of "key": "value" pairs. Example: `{ "name":
   /// "wrench", "mass": "1.3kg", "count": "3" }`.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// A MySQL database connection profile.
-  MySqlConnectionProfile mysql;
+  MySqlConnectionProfile? mysql;
 
   /// The name of this connection profile resource in the form of
   /// projects/{project}/locations/{location}/instances/{instance}.
-  core.String name;
+  core.String? name;
 
   /// The database provider.
   /// Possible string values are:
   /// - "DATABASE_PROVIDER_UNSPECIFIED" : The database provider is unknown.
   /// - "CLOUDSQL" : CloudSQL runs the database.
   /// - "RDS" : RDS runs the database.
-  core.String provider;
+  core.String? provider;
 
   /// The current connection profile state (e.g. DRAFT, READY, or FAILED).
   /// Possible string values are:
@@ -2076,7 +1973,7 @@
   /// - "DELETING" : The connection profile is being deleted.
   /// - "DELETED" : The connection profile has been deleted.
   /// - "FAILED" : The last action on the connection profile failed.
-  core.String state;
+  core.String? state;
 
   /// The timestamp when the resource was last updated.
   ///
@@ -2084,7 +1981,7 @@
   /// Example: "2014-10-02T15:01:23.045123456Z".
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   ConnectionProfile();
 
@@ -2130,17 +2027,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudsql != null) 'cloudsql': cloudsql.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (displayName != null) 'displayName': displayName,
-        if (error != null) 'error': error.toJson(),
-        if (labels != null) 'labels': labels,
-        if (mysql != null) 'mysql': mysql.toJson(),
-        if (name != null) 'name': name,
-        if (provider != null) 'provider': provider,
-        if (state != null) 'state': state,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudsql != null) 'cloudsql': cloudsql!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (displayName != null) 'displayName': displayName!,
+        if (error != null) 'error': error!.toJson(),
+        if (labels != null) 'labels': labels!,
+        if (mysql != null) 'mysql': mysql!.toJson(),
+        if (name != null) 'name': name!,
+        if (provider != null) 'provider': provider!,
+        if (state != null) 'state': state!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -2151,14 +2048,14 @@
   /// - "DATABASE_ENGINE_UNSPECIFIED" : The source database engine of the
   /// migration job is unknown.
   /// - "MYSQL" : The source engine is MySQL.
-  core.String engine;
+  core.String? engine;
 
   /// The database provider.
   /// Possible string values are:
   /// - "DATABASE_PROVIDER_UNSPECIFIED" : The database provider is unknown.
   /// - "CLOUDSQL" : CloudSQL runs the database.
   /// - "RDS" : RDS runs the database.
-  core.String provider;
+  core.String? provider;
 
   DatabaseType();
 
@@ -2171,9 +2068,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (engine != null) 'engine': engine,
-        if (provider != null) 'provider': provider,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (engine != null) 'engine': engine!,
+        if (provider != null) 'provider': provider!,
       };
 }
 
@@ -2191,7 +2088,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Represents a textual expression in the Common Expression Language (CEL)
@@ -2219,24 +2116,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -2255,11 +2152,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -2268,16 +2165,16 @@
   /// Bastion VM Instance name to use or to create.
   ///
   /// Required.
-  core.String vm;
+  core.String? vm;
 
   /// The VM creation configuration
-  VmCreationConfig vmCreationConfig;
+  VmCreationConfig? vmCreationConfig;
 
   /// The port that will be open on the bastion host
-  core.int vmPort;
+  core.int? vmPort;
 
   /// The VM selection configuration
-  VmSelectionConfig vmSelectionConfig;
+  VmSelectionConfig? vmSelectionConfig;
 
   GenerateSshScriptRequest();
 
@@ -2298,13 +2195,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (vm != null) 'vm': vm,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (vm != null) 'vm': vm!,
         if (vmCreationConfig != null)
-          'vmCreationConfig': vmCreationConfig.toJson(),
-        if (vmPort != null) 'vmPort': vmPort,
+          'vmCreationConfig': vmCreationConfig!.toJson(),
+        if (vmPort != null) 'vmPort': vmPort!,
         if (vmSelectionConfig != null)
-          'vmSelectionConfig': vmSelectionConfig.toJson(),
+          'vmSelectionConfig': vmSelectionConfig!.toJson(),
       };
 }
 
@@ -2313,17 +2210,17 @@
   /// API version used to start the operation.
   ///
   /// Output only.
-  core.String apiVersion;
+  core.String? apiVersion;
 
   /// The time the operation was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time the operation finished running.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// Identifies whether the user has requested cancellation of the operation.
   ///
@@ -2332,22 +2229,22 @@
   /// `Code.CANCELLED`.
   ///
   /// Output only.
-  core.bool requestedCancellation;
+  core.bool? requestedCancellation;
 
   /// Human-readable status of the operation, if any.
   ///
   /// Output only.
-  core.String statusMessage;
+  core.String? statusMessage;
 
   /// Server-defined resource path for the target of the operation.
   ///
   /// Output only.
-  core.String target;
+  core.String? target;
 
   /// Name of the verb executed by the operation.
   ///
   /// Output only.
-  core.String verb;
+  core.String? verb;
 
   GoogleCloudClouddmsV1beta1OperationMetadata();
 
@@ -2375,30 +2272,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiVersion != null) 'apiVersion': apiVersion,
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiVersion != null) 'apiVersion': apiVersion!,
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
         if (requestedCancellation != null)
-          'requestedCancellation': requestedCancellation,
-        if (statusMessage != null) 'statusMessage': statusMessage,
-        if (target != null) 'target': target,
-        if (verb != null) 'verb': verb,
+          'requestedCancellation': requestedCancellation!,
+        if (statusMessage != null) 'statusMessage': statusMessage!,
+        if (target != null) 'target': target!,
+        if (verb != null) 'verb': verb!,
       };
 }
 
 /// Response message for 'ListConnectionProfiles' request.
 class ListConnectionProfilesResponse {
   /// The response list of connection profiles.
-  core.List<ConnectionProfile> connectionProfiles;
+  core.List<ConnectionProfile>? connectionProfiles;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Locations that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListConnectionProfilesResponse();
 
@@ -2419,22 +2316,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (connectionProfiles != null)
           'connectionProfiles':
-              connectionProfiles.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+              connectionProfiles!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class ListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLocationsResponse();
 
@@ -2450,25 +2347,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for 'ListMigrationJobs' request.
 class ListMigrationJobsResponse {
   /// The list of migration jobs objects.
-  core.List<MigrationJob> migrationJobs;
+  core.List<MigrationJob>? migrationJobs;
 
   /// A token, which can be sent as `page_token` to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Locations that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListMigrationJobsResponse();
 
@@ -2489,22 +2386,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (migrationJobs != null)
           'migrationJobs':
-              migrationJobs.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+              migrationJobs!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class ListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   ListOperationsResponse();
 
@@ -2520,10 +2417,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2532,17 +2429,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: `"us-east1"`.
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -2550,12 +2447,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: `"projects/example-project/locations/us-east1"`
-  core.String name;
+  core.String? name;
 
   Location();
 
@@ -2589,12 +2486,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -2606,22 +2503,22 @@
   /// Example: "2014-10-02T15:01:23.045123456Z".
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The resource name (URI) of the destination connection profile.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   /// The database engine type and provider of the destination.
-  DatabaseType destinationDatabase;
+  DatabaseType? destinationDatabase;
 
   /// The migration job display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// The path to the dump file in Google Cloud Storage, in the format:
   /// (gs://\[BUCKET_NAME\]/\[OBJECT_NAME\]).
-  core.String dumpPath;
+  core.String? dumpPath;
 
   /// The duration of the migration job (in seconds).
   ///
@@ -2629,28 +2526,28 @@
   /// 's'. Example: "3.5s".
   ///
   /// Output only.
-  core.String duration;
+  core.String? duration;
 
   /// If the migration job is completed, the time when it was completed.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// The error details in case of state FAILED.
   ///
   /// Output only.
-  Status error;
+  Status? error;
 
   /// The resource labels for migration job to use to annotate any related
   /// underlying resources such as Compute Engine VMs.
   ///
   /// An object containing a list of "key": "value" pairs. Example: `{ "name":
   /// "wrench", "mass": "1.3kg", "count": "3" }`.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The name (URI) of this migration job resource, in the form of:
   /// projects/{project}/locations/{location}/instances/{instance}.
-  core.String name;
+  core.String? name;
 
   /// The current migration job phase.
   ///
@@ -2664,19 +2561,19 @@
   /// writes to stop
   /// - "PREPARING_THE_DUMP" : Only RDS flow - the sources writes stopped,
   /// waiting for dump to begin
-  core.String phase;
+  core.String? phase;
 
   /// The details needed to communicate to the source over Reverse SSH tunnel
   /// connectivity.
-  ReverseSshConnectivity reverseSshConnectivity;
+  ReverseSshConnectivity? reverseSshConnectivity;
 
   /// The resource name (URI) of the source connection profile.
   ///
   /// Required.
-  core.String source;
+  core.String? source;
 
   /// The database engine type and provider of the source.
-  DatabaseType sourceDatabase;
+  DatabaseType? sourceDatabase;
 
   /// The current migration job state.
   /// Possible string values are:
@@ -2698,10 +2595,10 @@
   /// - "STARTING" : The migration job is starting.
   /// - "RESTARTING" : The migration job is restarting.
   /// - "RESUMING" : The migration job is resuming.
-  core.String state;
+  core.String? state;
 
   /// static ip connectivity data (default, no additional details needed).
-  StaticIpConnectivity staticIpConnectivity;
+  StaticIpConnectivity? staticIpConnectivity;
 
   /// The migration job type.
   ///
@@ -2710,7 +2607,7 @@
   /// - "TYPE_UNSPECIFIED" : The type of the migration job is unknown.
   /// - "ONE_TIME" : The migration job is a one time migration.
   /// - "CONTINUOUS" : The migration job is a continuous migration.
-  core.String type;
+  core.String? type;
 
   /// The timestamp when the migration job resource was last updated.
   ///
@@ -2718,10 +2615,10 @@
   /// Example: "2014-10-02T15:01:23.045123456Z".
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The details of the VPC network that the source database is located in.
-  VpcPeeringConnectivity vpcPeeringConnectivity;
+  VpcPeeringConnectivity? vpcPeeringConnectivity;
 
   MigrationJob();
 
@@ -2799,30 +2696,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (destination != null) 'destination': destination!,
         if (destinationDatabase != null)
-          'destinationDatabase': destinationDatabase.toJson(),
-        if (displayName != null) 'displayName': displayName,
-        if (dumpPath != null) 'dumpPath': dumpPath,
-        if (duration != null) 'duration': duration,
-        if (endTime != null) 'endTime': endTime,
-        if (error != null) 'error': error.toJson(),
-        if (labels != null) 'labels': labels,
-        if (name != null) 'name': name,
-        if (phase != null) 'phase': phase,
+          'destinationDatabase': destinationDatabase!.toJson(),
+        if (displayName != null) 'displayName': displayName!,
+        if (dumpPath != null) 'dumpPath': dumpPath!,
+        if (duration != null) 'duration': duration!,
+        if (endTime != null) 'endTime': endTime!,
+        if (error != null) 'error': error!.toJson(),
+        if (labels != null) 'labels': labels!,
+        if (name != null) 'name': name!,
+        if (phase != null) 'phase': phase!,
         if (reverseSshConnectivity != null)
-          'reverseSshConnectivity': reverseSshConnectivity.toJson(),
-        if (source != null) 'source': source,
-        if (sourceDatabase != null) 'sourceDatabase': sourceDatabase.toJson(),
-        if (state != null) 'state': state,
+          'reverseSshConnectivity': reverseSshConnectivity!.toJson(),
+        if (source != null) 'source': source!,
+        if (sourceDatabase != null) 'sourceDatabase': sourceDatabase!.toJson(),
+        if (state != null) 'state': state!,
         if (staticIpConnectivity != null)
-          'staticIpConnectivity': staticIpConnectivity.toJson(),
-        if (type != null) 'type': type,
-        if (updateTime != null) 'updateTime': updateTime,
+          'staticIpConnectivity': staticIpConnectivity!.toJson(),
+        if (type != null) 'type': type!,
+        if (updateTime != null) 'updateTime': updateTime!,
         if (vpcPeeringConnectivity != null)
-          'vpcPeeringConnectivity': vpcPeeringConnectivity.toJson(),
+          'vpcPeeringConnectivity': vpcPeeringConnectivity!.toJson(),
       };
 }
 
@@ -2846,17 +2743,17 @@
   /// - "UNSUPPORTED_GTID_MODE" : The gtid_mode is not supported, applicable for
   /// MySQL.
   /// - "UNSUPPORTED_DEFINER" : The definer is not supported.
-  core.String errorCode;
+  core.String? errorCode;
 
   /// A specific detailed error message, if supplied by the engine.
   ///
   /// Output only.
-  core.String errorDetailMessage;
+  core.String? errorDetailMessage;
 
   /// A formatted message with further details about the error and a CTA.
   ///
   /// Output only.
-  core.String errorMessage;
+  core.String? errorMessage;
 
   MigrationJobVerificationError();
 
@@ -2872,11 +2769,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (errorCode != null) 'errorCode': errorCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (errorCode != null) 'errorCode': errorCode!,
         if (errorDetailMessage != null)
-          'errorDetailMessage': errorDetailMessage,
-        if (errorMessage != null) 'errorMessage': errorMessage,
+          'errorDetailMessage': errorDetailMessage!,
+        if (errorMessage != null) 'errorMessage': errorMessage!,
       };
 }
 
@@ -2884,12 +2781,12 @@
 class MySqlConnectionProfile {
   /// If the source is a Cloud SQL database, use this field to provide the Cloud
   /// SQL instance ID of the source.
-  core.String cloudSqlId;
+  core.String? cloudSqlId;
 
   /// The IP or hostname of the source MySQL database.
   ///
   /// Required.
-  core.String host;
+  core.String? host;
 
   /// Input only.
   ///
@@ -2898,20 +2795,20 @@
   /// value is encrypted when stored in Database Migration Service.
   ///
   /// Required.
-  core.String password;
+  core.String? password;
 
   /// Indicates If this connection profile password is stored.
   ///
   /// Output only.
-  core.bool passwordSet;
+  core.bool? passwordSet;
 
   /// The network port of the source MySQL database.
   ///
   /// Required.
-  core.int port;
+  core.int? port;
 
   /// SSL configuration for the destination to connect to the source database.
-  SslConfig ssl;
+  SslConfig? ssl;
 
   /// The username that Database Migration Service will use to connect to the
   /// database.
@@ -2919,7 +2816,7 @@
   /// The value is encrypted when stored in Database Migration Service.
   ///
   /// Required.
-  core.String username;
+  core.String? username;
 
   MySqlConnectionProfile();
 
@@ -2948,14 +2845,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudSqlId != null) 'cloudSqlId': cloudSqlId,
-        if (host != null) 'host': host,
-        if (password != null) 'password': password,
-        if (passwordSet != null) 'passwordSet': passwordSet,
-        if (port != null) 'port': port,
-        if (ssl != null) 'ssl': ssl.toJson(),
-        if (username != null) 'username': username,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudSqlId != null) 'cloudSqlId': cloudSqlId!,
+        if (host != null) 'host': host!,
+        if (password != null) 'password': password!,
+        if (passwordSet != null) 'passwordSet': passwordSet!,
+        if (port != null) 'port': port!,
+        if (ssl != null) 'ssl': ssl!.toJson(),
+        if (username != null) 'username': username!,
       };
 }
 
@@ -2966,10 +2863,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -2980,14 +2877,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -3000,7 +2897,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -3035,12 +2932,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -3077,14 +2974,14 @@
 /// [IAM documentation](https://cloud.google.com/iam/docs/).
 class Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<AuditConfig> auditConfigs;
+  core.List<AuditConfig>? auditConfigs;
 
   /// Associates a list of `members` to a `role`.
   ///
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -3098,8 +2995,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -3123,7 +3020,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -3148,13 +3045,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -3166,7 +3063,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message for 'RestartMigrationJob' request.
@@ -3177,7 +3074,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message for 'ResumeMigrationJob' request.
@@ -3188,7 +3085,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The details needed to configure a reverse SSH tunnel between the source and
@@ -3201,22 +3098,22 @@
 class ReverseSshConnectivity {
   /// The name of the virtual machine (Compute Engine) used as the bastion
   /// server for the SSH tunnel.
-  core.String vm;
+  core.String? vm;
 
   /// The IP of the virtual machine (Compute Engine) used as the bastion server
   /// for the SSH tunnel.
   ///
   /// Required.
-  core.String vmIp;
+  core.String? vmIp;
 
   /// The forwarding port of the virtual machine (Compute Engine) used as the
   /// bastion server for the SSH tunnel.
   ///
   /// Required.
-  core.int vmPort;
+  core.int? vmPort;
 
   /// The name of the VPC to peer with the Cloud SQL private network.
-  core.String vpc;
+  core.String? vpc;
 
   ReverseSshConnectivity();
 
@@ -3235,11 +3132,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (vm != null) 'vm': vm,
-        if (vmIp != null) 'vmIp': vmIp,
-        if (vmPort != null) 'vmPort': vmPort,
-        if (vpc != null) 'vpc': vpc,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (vm != null) 'vm': vm!,
+        if (vmIp != null) 'vmIp': vmIp!,
+        if (vmPort != null) 'vmPort': vmPort!,
+        if (vpc != null) 'vpc': vpc!,
       };
 }
 
@@ -3250,13 +3147,13 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   /// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
   ///
   /// Only the fields in the mask will be modified. If no mask is provided, the
   /// following default mask is used: `paths: "bindings, etag"`
-  core.String updateMask;
+  core.String? updateMask;
 
   SetIamPolicyRequest();
 
@@ -3270,9 +3167,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -3281,18 +3178,18 @@
   /// The time when this access control entry expires in
   /// [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example:
   /// `2012-11-15T16:19:00.094Z`.
-  core.String expireTime;
+  core.String? expireTime;
 
   /// A label to identify this entry.
-  core.String label;
+  core.String? label;
 
   /// Input only.
   ///
   /// The time-to-leave of this access control entry.
-  core.String ttl;
+  core.String? ttl;
 
   /// The allowlisted value for the access control list.
-  core.String value;
+  core.String? value;
 
   SqlAclEntry();
 
@@ -3311,11 +3208,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (expireTime != null) 'expireTime': expireTime,
-        if (label != null) 'label': label,
-        if (ttl != null) 'ttl': ttl,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (expireTime != null) 'expireTime': expireTime!,
+        if (label != null) 'label': label!,
+        if (ttl != null) 'ttl': ttl!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -3326,20 +3223,20 @@
   ///
   /// See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known
   /// as 'slash' notation (e.g. `192.168.100.0/24`).
-  core.List<SqlAclEntry> authorizedNetworks;
+  core.List<SqlAclEntry>? authorizedNetworks;
 
   /// Whether the instance should be assigned an IPv4 address or not.
-  core.bool enableIpv4;
+  core.bool? enableIpv4;
 
   /// The resource link for the VPC network from which the Cloud SQL instance is
   /// accessible for private IP.
   ///
   /// For example, `/projects/myProject/global/networks/default`. This setting
   /// can be updated, but it cannot be removed after it is set.
-  core.String privateNetwork;
+  core.String? privateNetwork;
 
   /// Whether SSL connections over IP should be enforced or not.
-  core.bool requireSsl;
+  core.bool? requireSsl;
 
   SqlIpConfig();
 
@@ -3361,20 +3258,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (authorizedNetworks != null)
           'authorizedNetworks':
-              authorizedNetworks.map((value) => value.toJson()).toList(),
-        if (enableIpv4 != null) 'enableIpv4': enableIpv4,
-        if (privateNetwork != null) 'privateNetwork': privateNetwork,
-        if (requireSsl != null) 'requireSsl': requireSsl,
+              authorizedNetworks!.map((value) => value.toJson()).toList(),
+        if (enableIpv4 != null) 'enableIpv4': enableIpv4!,
+        if (privateNetwork != null) 'privateNetwork': privateNetwork!,
+        if (requireSsl != null) 'requireSsl': requireSsl!,
       };
 }
 
 /// Response message for 'GenerateSshScript' request.
 class SshScript {
   /// The ssh configuration script.
-  core.String script;
+  core.String? script;
 
   SshScript();
 
@@ -3384,8 +3281,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (script != null) 'script': script,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (script != null) 'script': script!,
       };
 }
 
@@ -3398,21 +3295,21 @@
   /// connecting to the right host.
   ///
   /// Required.
-  core.String caCertificate;
+  core.String? caCertificate;
 
   /// Input only.
   ///
   /// The x509 PEM-encoded certificate that will be used by the replica to
   /// authenticate against the source database server.If this field is used then
   /// the 'client_key' field is mandatory.
-  core.String clientCertificate;
+  core.String? clientCertificate;
 
   /// Input only.
   ///
   /// The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with
   /// the Client Certificate. If this field is used then the
   /// 'client_certificate' field is mandatory.
-  core.String clientKey;
+  core.String? clientKey;
 
   /// The ssl config type according to 'client_key', 'client_certificate' and
   /// 'ca_certificate'.
@@ -3423,7 +3320,7 @@
   /// - "SERVER_ONLY" : Only 'ca_certificate' specified.
   /// - "SERVER_CLIENT" : Both server ('ca_certificate'), and client
   /// ('client_key', 'client_certificate') specified.
-  core.String type;
+  core.String? type;
 
   SslConfig();
 
@@ -3442,11 +3339,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (caCertificate != null) 'caCertificate': caCertificate,
-        if (clientCertificate != null) 'clientCertificate': clientCertificate,
-        if (clientKey != null) 'clientKey': clientKey,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (caCertificate != null) 'caCertificate': caCertificate!,
+        if (clientCertificate != null) 'clientCertificate': clientCertificate!,
+        if (clientKey != null) 'clientKey': clientKey!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -3458,7 +3355,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The source database will allow incoming connections from the destination
@@ -3473,7 +3370,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The `Status` type defines a logical error model that is suitable for
@@ -3485,7 +3382,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -3493,13 +3390,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -3523,10 +3420,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -3538,7 +3435,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message for `TestIamPermissions` method.
@@ -3548,7 +3445,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -3560,8 +3457,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -3569,7 +3466,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -3581,8 +3478,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -3594,21 +3491,21 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// VM creation configuration message
 class VmCreationConfig {
   /// The subnet name the vm needs to be created in.
-  core.String subnet;
+  core.String? subnet;
 
   /// VM instance machine type to create.
   ///
   /// Required.
-  core.String vmMachineType;
+  core.String? vmMachineType;
 
   /// The Google Cloud Platform zone to create the VM in.
-  core.String vmZone;
+  core.String? vmZone;
 
   VmCreationConfig();
 
@@ -3624,10 +3521,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (subnet != null) 'subnet': subnet,
-        if (vmMachineType != null) 'vmMachineType': vmMachineType,
-        if (vmZone != null) 'vmZone': vmZone,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (subnet != null) 'subnet': subnet!,
+        if (vmMachineType != null) 'vmMachineType': vmMachineType!,
+        if (vmZone != null) 'vmZone': vmZone!,
       };
 }
 
@@ -3636,7 +3533,7 @@
   /// The Google Cloud Platform zone the VM is located.
   ///
   /// Required.
-  core.String vmZone;
+  core.String? vmZone;
 
   VmSelectionConfig();
 
@@ -3646,8 +3543,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (vmZone != null) 'vmZone': vmZone,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (vmZone != null) 'vmZone': vmZone!,
       };
 }
 
@@ -3657,7 +3554,7 @@
 /// Cloud SQL and this VPC.
 class VpcPeeringConnectivity {
   /// The name of the VPC network to peer with the Cloud SQL private network.
-  core.String vpc;
+  core.String? vpc;
 
   VpcPeeringConnectivity();
 
@@ -3667,7 +3564,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (vpc != null) 'vpc': vpc,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (vpc != null) 'vpc': vpc!,
       };
 }
diff --git a/generated/googleapis_beta/lib/documentai/v1beta3.dart b/generated/googleapis_beta/lib/documentai/v1beta3.dart
index 5508951..a8bb3bc 100644
--- a/generated/googleapis_beta/lib/documentai/v1beta3.dart
+++ b/generated/googleapis_beta/lib/documentai/v1beta3.dart
@@ -101,11 +101,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudLocationLocation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -146,14 +143,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudLocationListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -204,11 +198,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -263,13 +254,9 @@
   async.Future<GoogleLongrunningOperation> batchProcess(
     GoogleCloudDocumentaiV1beta3BatchProcessRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -315,13 +302,9 @@
   async.Future<GoogleCloudDocumentaiV1beta3ProcessResponse> process(
     GoogleCloudDocumentaiV1beta3ProcessRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -374,13 +357,9 @@
   async.Future<GoogleLongrunningOperation> reviewDocument(
     GoogleCloudDocumentaiV1beta3ReviewDocumentRequest request,
     core.String humanReviewConfig, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (humanReviewConfig == null) {
-      throw core.ArgumentError('Parameter humanReviewConfig is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -434,13 +413,9 @@
   async.Future<GoogleLongrunningOperation> batchProcess(
     GoogleCloudDocumentaiV1beta3BatchProcessRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -486,13 +461,9 @@
   async.Future<GoogleCloudDocumentaiV1beta3ProcessResponse> process(
     GoogleCloudDocumentaiV1beta3ProcessRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -515,7 +486,7 @@
 /// The common metadata for long running operations.
 class GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The state of the operation.
   /// Possible string values are:
@@ -525,13 +496,13 @@
   /// - "SUCCEEDED" : Operation succeeded.
   /// - "FAILED" : Operation failed.
   /// - "CANCELLED" : Operation is cancelled.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata();
 
@@ -551,18 +522,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// The long running operation metadata for CreateLabelerPool.
 class GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3CreateLabelerPoolOperationMetadata();
 
@@ -575,15 +546,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// The long running operation metadata for DeleteLabelerPool.
 class GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata();
 
@@ -596,15 +567,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// The long running operation metadata for delete processor method.
 class GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3DeleteProcessorMetadata();
 
@@ -617,15 +588,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// The long running operation metadata for delete processor version method.
 class GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3DeleteProcessorVersionMetadata();
 
@@ -638,15 +609,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// The long running operation metadata for deploy processor version method.
 class GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3DeployProcessorVersionMetadata();
 
@@ -659,8 +630,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
@@ -672,13 +643,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The long running operation metadata for disable processor method.
 class GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3DisableProcessorMetadata();
 
@@ -691,8 +662,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
@@ -706,13 +677,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The long running operation metadata for enable processor method.
 class GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3EnableProcessorMetadata();
 
@@ -725,8 +696,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
@@ -740,13 +711,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Metadata of the EvaluateProcessorVersion method.
 class GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionMetadata();
 
@@ -759,15 +730,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// Metadata of the EvaluateProcessorVersion method.
 class GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse {
   /// The resource name of the created evaluation.
-  core.String evaluation;
+  core.String? evaluation;
 
   GoogleCloudDocumentaiUiv1beta3EvaluateProcessorVersionResponse();
 
@@ -778,22 +749,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (evaluation != null) 'evaluation': evaluation,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (evaluation != null) 'evaluation': evaluation!,
       };
 }
 
 /// The metadata that represents a processor version being created.
 class GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   /// The test dataset validation information.
-  GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation
+  GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation?
       testDatasetValidation;
 
   /// The training dataset validation information.
-  GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation
+  GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation?
       trainingDatasetValidation;
 
   GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadata();
@@ -819,12 +790,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
         if (testDatasetValidation != null)
-          'testDatasetValidation': testDatasetValidation.toJson(),
+          'testDatasetValidation': testDatasetValidation!.toJson(),
         if (trainingDatasetValidation != null)
-          'trainingDatasetValidation': trainingDatasetValidation.toJson(),
+          'trainingDatasetValidation': trainingDatasetValidation!.toJson(),
       };
 }
 
@@ -836,13 +807,13 @@
   ///
   /// A maximum of 10 dataset errors will be returned. A single dataset error is
   /// terminal for training.
-  core.List<GoogleRpcStatus> datasetErrors;
+  core.List<GoogleRpcStatus>? datasetErrors;
 
   /// Error information pertaining to specific documents.
   ///
   /// A maximum of 10 document errors will be returned. Any document with errors
   /// will not be used throughout training.
-  core.List<GoogleRpcStatus> documentErrors;
+  core.List<GoogleRpcStatus>? documentErrors;
 
   GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionMetadataDatasetValidation();
 
@@ -862,20 +833,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (datasetErrors != null)
           'datasetErrors':
-              datasetErrors.map((value) => value.toJson()).toList(),
+              datasetErrors!.map((value) => value.toJson()).toList(),
         if (documentErrors != null)
           'documentErrors':
-              documentErrors.map((value) => value.toJson()).toList(),
+              documentErrors!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// The response for the TrainProcessorVersion method.
 class GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse {
   /// The resource name of the processor version produced by training.
-  core.String processorVersion;
+  core.String? processorVersion;
 
   GoogleCloudDocumentaiUiv1beta3TrainProcessorVersionResponse();
 
@@ -886,8 +857,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (processorVersion != null) 'processorVersion': processorVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (processorVersion != null) 'processorVersion': processorVersion!,
       };
 }
 
@@ -895,7 +866,7 @@
 /// method.
 class GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3UndeployProcessorVersionMetadata();
 
@@ -908,8 +879,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
@@ -921,14 +892,14 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The long running operation metadata for updating the human review
 /// configuration.
 class GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3UpdateHumanReviewConfigMetadata();
 
@@ -941,15 +912,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// The long running operation metadata for UpdateLabelerPool.
 class GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiUiv1beta3UpdateLabelerPoolOperationMetadata();
 
@@ -962,18 +933,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// The long running operation metadata for batch process method.
 class GoogleCloudDocumentaiV1BatchProcessMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The list of response details of each document.
-  core.List<GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus>
+  core.List<GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus>?
       individualProcessStatuses;
 
   /// The state of the current batch processing.
@@ -986,15 +957,15 @@
   /// - "CANCELLING" : The batch processing was being cancelled.
   /// - "CANCELLED" : The batch processing was cancelled.
   /// - "FAILED" : The batch processing has failed.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
   ///
   /// For example, the error message if the operation is failed.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1BatchProcessMetadata();
 
@@ -1022,35 +993,36 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
         if (individualProcessStatuses != null)
-          'individualProcessStatuses':
-              individualProcessStatuses.map((value) => value.toJson()).toList(),
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+          'individualProcessStatuses': individualProcessStatuses!
+              .map((value) => value.toJson())
+              .toList(),
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// The status of a each individual document in the batch process.
 class GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus {
   /// The status of human review on the processed document.
-  GoogleCloudDocumentaiV1HumanReviewStatus humanReviewStatus;
+  GoogleCloudDocumentaiV1HumanReviewStatus? humanReviewStatus;
 
   /// The source of the document, same as the \[input_gcs_source\] field in the
   /// request when the batch process started.
   ///
   /// The batch process is started by take snapshot of that document, since a
   /// user can move or change that document during the process.
-  core.String inputGcsSource;
+  core.String? inputGcsSource;
 
   /// The output_gcs_destination (in the request as 'output_gcs_destination') of
   /// the processed document if it was successful, otherwise empty.
-  core.String outputGcsDestination;
+  core.String? outputGcsDestination;
 
   /// The status of the processing of the document.
-  GoogleRpcStatus status;
+  GoogleRpcStatus? status;
 
   GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus();
 
@@ -1072,13 +1044,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (humanReviewStatus != null)
-          'humanReviewStatus': humanReviewStatus.toJson(),
-        if (inputGcsSource != null) 'inputGcsSource': inputGcsSource,
+          'humanReviewStatus': humanReviewStatus!.toJson(),
+        if (inputGcsSource != null) 'inputGcsSource': inputGcsSource!,
         if (outputGcsDestination != null)
-          'outputGcsDestination': outputGcsDestination,
-        if (status != null) 'status': status.toJson(),
+          'outputGcsDestination': outputGcsDestination!,
+        if (status != null) 'status': status!.toJson(),
       };
 }
 
@@ -1090,13 +1062,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The common metadata for long running operations.
 class GoogleCloudDocumentaiV1CommonOperationMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The state of the operation.
   /// Possible string values are:
@@ -1106,13 +1078,13 @@
   /// - "SUCCEEDED" : Operation succeeded.
   /// - "FAILED" : Operation failed.
   /// - "CANCELLED" : Operation is cancelled.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1CommonOperationMetadata();
 
@@ -1131,11 +1103,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -1146,7 +1118,7 @@
   /// This field is populated only when the \[state\] is
   /// \[HUMAN_REVIEW_IN_PROGRESS\]. It has the same response type and metadata
   /// as the long running operation returned by \[ReviewDocument\] method.
-  core.String humanReviewOperation;
+  core.String? humanReviewOperation;
 
   /// The state of human review on the processing request.
   /// Possible string values are:
@@ -1161,10 +1133,10 @@
   /// under review.
   /// - "ERROR" : Some error happened during triggering human review, see the
   /// \[state_message\] for details.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the human review state.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   GoogleCloudDocumentaiV1HumanReviewStatus();
 
@@ -1180,18 +1152,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (humanReviewOperation != null)
-          'humanReviewOperation': humanReviewOperation,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
+          'humanReviewOperation': humanReviewOperation!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
       };
 }
 
 /// The long running operation metadata for review document method.
 class GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiV1CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiV1CommonOperationMetadata? commonMetadata;
 
   GoogleCloudDocumentaiV1ReviewDocumentOperationMetadata();
 
@@ -1203,15 +1175,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
       };
 }
 
 /// Response message for review document method.
 class GoogleCloudDocumentaiV1ReviewDocumentResponse {
   /// The Cloud Storage uri for the human reviewed document.
-  core.String gcsDestination;
+  core.String? gcsDestination;
 
   GoogleCloudDocumentaiV1ReviewDocumentResponse();
 
@@ -1221,8 +1193,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!,
       };
 }
 
@@ -1231,7 +1203,7 @@
 /// This is returned in the LRO Operation after the operation is complete.
 class GoogleCloudDocumentaiV1beta1BatchProcessDocumentsResponse {
   /// Responses for each individual document.
-  core.List<GoogleCloudDocumentaiV1beta1ProcessDocumentResponse> responses;
+  core.List<GoogleCloudDocumentaiV1beta1ProcessDocumentResponse>? responses;
 
   GoogleCloudDocumentaiV1beta1BatchProcessDocumentsResponse();
 
@@ -1246,19 +1218,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (responses != null)
-          'responses': responses.map((value) => value.toJson()).toList(),
+          'responses': responses!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A bounding polygon for the detected image annotation.
 class GoogleCloudDocumentaiV1beta1BoundingPoly {
   /// The bounding polygon normalized vertices.
-  core.List<GoogleCloudDocumentaiV1beta1NormalizedVertex> normalizedVertices;
+  core.List<GoogleCloudDocumentaiV1beta1NormalizedVertex>? normalizedVertices;
 
   /// The bounding polygon vertices.
-  core.List<GoogleCloudDocumentaiV1beta1Vertex> vertices;
+  core.List<GoogleCloudDocumentaiV1beta1Vertex>? vertices;
 
   GoogleCloudDocumentaiV1beta1BoundingPoly();
 
@@ -1279,12 +1251,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (normalizedVertices != null)
           'normalizedVertices':
-              normalizedVertices.map((value) => value.toJson()).toList(),
+              normalizedVertices!.map((value) => value.toJson()).toList(),
         if (vertices != null)
-          'vertices': vertices.map((value) => value.toJson()).toList(),
+          'vertices': vertices!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1299,8 +1271,8 @@
   ///
   /// Note: As with all `bytes` fields, protobuffers use a pure binary
   /// representation, whereas JSON representations use base64.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -1310,48 +1282,49 @@
   /// A list of entities detected on Document.text.
   ///
   /// For document shards, entities in this list may cross shard boundaries.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentEntity> entities;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentEntity>? entities;
 
   /// Relationship among Document.entities.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentEntityRelation> entityRelations;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentEntityRelation>?
+      entityRelations;
 
   /// Any error that occurred while processing this document.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// An IANA published MIME type (also referred to as media type).
   ///
   /// For more information, see
   /// https://www.iana.org/assignments/media-types/media-types.xhtml.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Visual page layout for the Document.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPage> pages;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPage>? pages;
 
   /// Revision history of this document.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentRevision> revisions;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentRevision>? revisions;
 
   /// Information about the sharding if this document is sharded part of a
   /// larger document.
   ///
   /// If the document is not sharded, this message is not specified.
-  GoogleCloudDocumentaiV1beta1DocumentShardInfo shardInfo;
+  GoogleCloudDocumentaiV1beta1DocumentShardInfo? shardInfo;
 
   /// UTF-8 encoded text in reading order from the document.
-  core.String text;
+  core.String? text;
 
   /// A list of text corrections made to \[Document.text\].
   ///
   /// This is usually used for annotating corrections to OCR mistakes. Text
   /// changes for a given revision may not overlap with each other.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentTextChange> textChanges;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentTextChange>? textChanges;
 
   /// Styles for the Document.text.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentStyle> textStyles;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentStyle>? textStyles;
 
   /// A list of translations on Document.text.
   ///
   /// For document shards, translations in this list may cross shard boundaries.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentTranslation> translations;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentTranslation>? translations;
 
   /// Currently supports Google Cloud Storage URI of the form
   /// `gs://bucket_name/object_name`.
@@ -1359,7 +1332,7 @@
   /// Object versioning is not supported. See
   /// [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris)
   /// for more info.
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta1Document();
 
@@ -1435,28 +1408,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
         if (entities != null)
-          'entities': entities.map((value) => value.toJson()).toList(),
+          'entities': entities!.map((value) => value.toJson()).toList(),
         if (entityRelations != null)
           'entityRelations':
-              entityRelations.map((value) => value.toJson()).toList(),
-        if (error != null) 'error': error.toJson(),
-        if (mimeType != null) 'mimeType': mimeType,
+              entityRelations!.map((value) => value.toJson()).toList(),
+        if (error != null) 'error': error!.toJson(),
+        if (mimeType != null) 'mimeType': mimeType!,
         if (pages != null)
-          'pages': pages.map((value) => value.toJson()).toList(),
+          'pages': pages!.map((value) => value.toJson()).toList(),
         if (revisions != null)
-          'revisions': revisions.map((value) => value.toJson()).toList(),
-        if (shardInfo != null) 'shardInfo': shardInfo.toJson(),
-        if (text != null) 'text': text,
+          'revisions': revisions!.map((value) => value.toJson()).toList(),
+        if (shardInfo != null) 'shardInfo': shardInfo!.toJson(),
+        if (text != null) 'text': text!,
         if (textChanges != null)
-          'textChanges': textChanges.map((value) => value.toJson()).toList(),
+          'textChanges': textChanges!.map((value) => value.toJson()).toList(),
         if (textStyles != null)
-          'textStyles': textStyles.map((value) => value.toJson()).toList(),
+          'textStyles': textStyles!.map((value) => value.toJson()).toList(),
         if (translations != null)
-          'translations': translations.map((value) => value.toJson()).toList(),
-        if (uri != null) 'uri': uri,
+          'translations': translations!.map((value) => value.toJson()).toList(),
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -1468,22 +1441,22 @@
   /// Range \[0, 1\].
   ///
   /// Optional.
-  core.double confidence;
+  core.double? confidence;
 
   /// Canonical id.
   ///
   /// This will be a unique value in the entity list for this document.
   ///
   /// Optional.
-  core.String id;
+  core.String? id;
 
   /// Use `id` field instead.
   ///
   /// Deprecated.
-  core.String mentionId;
+  core.String? mentionId;
 
   /// Text value in the document e.g. `1600 Amphitheatre Pkwy`.
-  core.String mentionText;
+  core.String? mentionText;
 
   /// Normalized entity value.
   ///
@@ -1492,38 +1465,38 @@
   /// populated for certain supported document types.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta1DocumentEntityNormalizedValue normalizedValue;
+  GoogleCloudDocumentaiV1beta1DocumentEntityNormalizedValue? normalizedValue;
 
   /// Represents the provenance of this entity wrt.
   ///
   /// the location on the page where it was found.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta1DocumentPageAnchor pageAnchor;
+  GoogleCloudDocumentaiV1beta1DocumentPageAnchor? pageAnchor;
 
   /// Entities can be nested to form a hierarchical data structure representing
   /// the content in the document.
   ///
   /// Optional.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentEntity> properties;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentEntity>? properties;
 
   /// The history of this annotation.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta1DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta1DocumentProvenance? provenance;
 
   /// Whether the entity will be redacted for de-identification purposes.
   ///
   /// Optional.
-  core.bool redacted;
+  core.bool? redacted;
 
   /// Provenance of the entity.
   ///
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta1DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta1DocumentTextAnchor? textAnchor;
 
   /// Entity type from a schema e.g. `Address`.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta1DocumentEntity();
 
@@ -1572,20 +1545,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (confidence != null) 'confidence': confidence,
-        if (id != null) 'id': id,
-        if (mentionId != null) 'mentionId': mentionId,
-        if (mentionText != null) 'mentionText': mentionText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (confidence != null) 'confidence': confidence!,
+        if (id != null) 'id': id!,
+        if (mentionId != null) 'mentionId': mentionId!,
+        if (mentionText != null) 'mentionText': mentionText!,
         if (normalizedValue != null)
-          'normalizedValue': normalizedValue.toJson(),
-        if (pageAnchor != null) 'pageAnchor': pageAnchor.toJson(),
+          'normalizedValue': normalizedValue!.toJson(),
+        if (pageAnchor != null) 'pageAnchor': pageAnchor!.toJson(),
         if (properties != null)
-          'properties': properties.map((value) => value.toJson()).toList(),
-        if (provenance != null) 'provenance': provenance.toJson(),
-        if (redacted != null) 'redacted': redacted,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (type != null) 'type': type,
+          'properties': properties!.map((value) => value.toJson()).toList(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
+        if (redacted != null) 'redacted': redacted!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -1595,30 +1568,30 @@
   ///
   /// See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
-  GoogleTypePostalAddress addressValue;
+  GoogleTypePostalAddress? addressValue;
 
   /// Boolean value.
   ///
   /// Can be used for entities with binary values, or for checkboxes.
-  core.bool booleanValue;
+  core.bool? booleanValue;
 
   /// Date value.
   ///
   /// Includes year, month, day. See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
-  GoogleTypeDate dateValue;
+  GoogleTypeDate? dateValue;
 
   /// DateTime value.
   ///
   /// Includes date, time, and timezone. See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
-  GoogleTypeDateTime datetimeValue;
+  GoogleTypeDateTime? datetimeValue;
 
   /// Money value.
   ///
   /// See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
-  GoogleTypeMoney moneyValue;
+  GoogleTypeMoney? moneyValue;
 
   /// Normalized entity value stored as a string.
   ///
@@ -1629,7 +1602,7 @@
   /// Datetime type (`datetime_value`) is in the ISO 8601 text format.
   ///
   /// Required.
-  core.String text;
+  core.String? text;
 
   GoogleCloudDocumentaiV1beta1DocumentEntityNormalizedValue();
 
@@ -1659,26 +1632,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (addressValue != null) 'addressValue': addressValue.toJson(),
-        if (booleanValue != null) 'booleanValue': booleanValue,
-        if (dateValue != null) 'dateValue': dateValue.toJson(),
-        if (datetimeValue != null) 'datetimeValue': datetimeValue.toJson(),
-        if (moneyValue != null) 'moneyValue': moneyValue.toJson(),
-        if (text != null) 'text': text,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (addressValue != null) 'addressValue': addressValue!.toJson(),
+        if (booleanValue != null) 'booleanValue': booleanValue!,
+        if (dateValue != null) 'dateValue': dateValue!.toJson(),
+        if (datetimeValue != null) 'datetimeValue': datetimeValue!.toJson(),
+        if (moneyValue != null) 'moneyValue': moneyValue!.toJson(),
+        if (text != null) 'text': text!,
       };
 }
 
 /// Relationship between Entities.
 class GoogleCloudDocumentaiV1beta1DocumentEntityRelation {
   /// Object entity id.
-  core.String objectId;
+  core.String? objectId;
 
   /// Relationship description.
-  core.String relation;
+  core.String? relation;
 
   /// Subject entity id.
-  core.String subjectId;
+  core.String? subjectId;
 
   GoogleCloudDocumentaiV1beta1DocumentEntityRelation();
 
@@ -1694,10 +1667,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (objectId != null) 'objectId': objectId,
-        if (relation != null) 'relation': relation,
-        if (subjectId != null) 'subjectId': subjectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (objectId != null) 'objectId': objectId!,
+        if (relation != null) 'relation': relation!,
+        if (subjectId != null) 'subjectId': subjectId!,
       };
 }
 
@@ -1707,56 +1680,56 @@
   ///
   /// A block has a set of lines (collected into paragraphs) that have a common
   /// line-spacing and orientation.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageBlock> blocks;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageBlock>? blocks;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Physical dimension of the page.
-  GoogleCloudDocumentaiV1beta1DocumentPageDimension dimension;
+  GoogleCloudDocumentaiV1beta1DocumentPageDimension? dimension;
 
   /// A list of visually detected form fields on the page.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageFormField> formFields;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageFormField>? formFields;
 
   /// Rendered image for this page.
   ///
   /// This image is preprocessed to remove any skew, rotation, and distortions
   /// such that the annotation bounding boxes can be upright and axis-aligned.
-  GoogleCloudDocumentaiV1beta1DocumentPageImage image;
+  GoogleCloudDocumentaiV1beta1DocumentPageImage? image;
 
   /// Layout for the page.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// A list of visually detected text lines on the page.
   ///
   /// A collection of tokens that a human would perceive as a line.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageLine> lines;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageLine>? lines;
 
   /// 1-based index for current Page in a parent Document.
   ///
   /// Useful when a page is taken out of a Document for individual processing.
-  core.int pageNumber;
+  core.int? pageNumber;
 
   /// A list of visually detected text paragraphs on the page.
   ///
   /// A collection of lines that a human would perceive as a paragraph.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageParagraph> paragraphs;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageParagraph>? paragraphs;
 
   /// A list of visually detected tables on the page.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTable> tables;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTable>? tables;
 
   /// A list of visually detected tokens on the page.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageToken> tokens;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageToken>? tokens;
 
   /// Transformation matrices that were applied to the original document image
   /// to produce Page.image.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageMatrix> transforms;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageMatrix>? transforms;
 
   /// A list of detected non-text visual elements e.g. checkbox, signature etc.
   ///
   /// on the page.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageVisualElement>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageVisualElement>?
       visualElements;
 
   GoogleCloudDocumentaiV1beta1DocumentPage();
@@ -1843,31 +1816,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (blocks != null)
-          'blocks': blocks.map((value) => value.toJson()).toList(),
+          'blocks': blocks!.map((value) => value.toJson()).toList(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (dimension != null) 'dimension': dimension.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (dimension != null) 'dimension': dimension!.toJson(),
         if (formFields != null)
-          'formFields': formFields.map((value) => value.toJson()).toList(),
-        if (image != null) 'image': image.toJson(),
-        if (layout != null) 'layout': layout.toJson(),
+          'formFields': formFields!.map((value) => value.toJson()).toList(),
+        if (image != null) 'image': image!.toJson(),
+        if (layout != null) 'layout': layout!.toJson(),
         if (lines != null)
-          'lines': lines.map((value) => value.toJson()).toList(),
-        if (pageNumber != null) 'pageNumber': pageNumber,
+          'lines': lines!.map((value) => value.toJson()).toList(),
+        if (pageNumber != null) 'pageNumber': pageNumber!,
         if (paragraphs != null)
-          'paragraphs': paragraphs.map((value) => value.toJson()).toList(),
+          'paragraphs': paragraphs!.map((value) => value.toJson()).toList(),
         if (tables != null)
-          'tables': tables.map((value) => value.toJson()).toList(),
+          'tables': tables!.map((value) => value.toJson()).toList(),
         if (tokens != null)
-          'tokens': tokens.map((value) => value.toJson()).toList(),
+          'tokens': tokens!.map((value) => value.toJson()).toList(),
         if (transforms != null)
-          'transforms': transforms.map((value) => value.toJson()).toList(),
+          'transforms': transforms!.map((value) => value.toJson()).toList(),
         if (visualElements != null)
           'visualElements':
-              visualElements.map((value) => value.toJson()).toList(),
+              visualElements!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1877,7 +1850,7 @@
 /// optionally reference specific layout element types.
 class GoogleCloudDocumentaiV1beta1DocumentPageAnchor {
   /// One or more references to visual page elements
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageAnchorPageRef> pageRefs;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageAnchorPageRef>? pageRefs;
 
   GoogleCloudDocumentaiV1beta1DocumentPageAnchor();
 
@@ -1891,9 +1864,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (pageRefs != null)
-          'pageRefs': pageRefs.map((value) => value.toJson()).toList(),
+          'pageRefs': pageRefs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1902,12 +1875,12 @@
   /// Identifies the bounding polygon of a layout element on the page.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta1BoundingPoly boundingPoly;
+  GoogleCloudDocumentaiV1beta1BoundingPoly? boundingPoly;
 
   /// Use PageRef.bounding_poly instead.
   ///
   /// Optional. Deprecated.
-  core.String layoutId;
+  core.String? layoutId;
 
   /// The type of the layout element that is being referenced if any.
   ///
@@ -1921,13 +1894,13 @@
   /// - "VISUAL_ELEMENT" : References a Page.visual_elements element.
   /// - "TABLE" : Refrrences a Page.tables element.
   /// - "FORM_FIELD" : References a Page.form_fields element.
-  core.String layoutType;
+  core.String? layoutType;
 
   /// Index into the Document.pages element, for example using Document.pages to
   /// locate the related page element.
   ///
   /// Required.
-  core.String page;
+  core.String? page;
 
   GoogleCloudDocumentaiV1beta1DocumentPageAnchorPageRef();
 
@@ -1948,11 +1921,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
-        if (layoutId != null) 'layoutId': layoutId,
-        if (layoutType != null) 'layoutType': layoutType,
-        if (page != null) 'page': page,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
+        if (layoutId != null) 'layoutId': layoutId!,
+        if (layoutType != null) 'layoutType': layoutType!,
+        if (page != null) 'page': page!,
       };
 }
 
@@ -1960,14 +1933,14 @@
 /// line-spacing and orientation.
 class GoogleCloudDocumentaiV1beta1DocumentPageBlock {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Block.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta1DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta1DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta1DocumentPageBlock();
 
@@ -1990,12 +1963,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -2004,13 +1977,13 @@
   /// Confidence of detected language.
   ///
   /// Range \[0, 1\].
-  core.double confidence;
+  core.double? confidence;
 
   /// The BCP-47 language code, such as "en-US" or "sr-Latn".
   ///
   /// For more information, see
   /// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-  core.String languageCode;
+  core.String? languageCode;
 
   GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage();
 
@@ -2024,22 +1997,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (confidence != null) 'confidence': confidence,
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (confidence != null) 'confidence': confidence!,
+        if (languageCode != null) 'languageCode': languageCode!,
       };
 }
 
 /// Dimension for the page.
 class GoogleCloudDocumentaiV1beta1DocumentPageDimension {
   /// Page height.
-  core.double height;
+  core.double? height;
 
   /// Dimension unit.
-  core.String unit;
+  core.String? unit;
 
   /// Page width.
-  core.double width;
+  core.double? width;
 
   GoogleCloudDocumentaiV1beta1DocumentPageDimension();
 
@@ -2055,10 +2028,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (unit != null) 'unit': unit,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (unit != null) 'unit': unit!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -2067,24 +2040,24 @@
   /// Layout for the FormField name.
   ///
   /// e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout fieldName;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? fieldName;
 
   /// Layout for the FormField value.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout fieldValue;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? fieldValue;
 
   /// A list of detected languages for name together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       nameDetectedLanguages;
 
   /// A list of detected languages for value together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       valueDetectedLanguages;
 
   /// If the value is non-textual, this field represents the type.
   ///
   /// Current valid values are: - blank (this indicates the field_value is
   /// normal text) - "unfilled_checkbox" - "filled_checkbox"
-  core.String valueType;
+  core.String? valueType;
 
   GoogleCloudDocumentaiV1beta1DocumentPageFormField();
 
@@ -2118,24 +2091,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fieldName != null) 'fieldName': fieldName.toJson(),
-        if (fieldValue != null) 'fieldValue': fieldValue.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fieldName != null) 'fieldName': fieldName!.toJson(),
+        if (fieldValue != null) 'fieldValue': fieldValue!.toJson(),
         if (nameDetectedLanguages != null)
           'nameDetectedLanguages':
-              nameDetectedLanguages.map((value) => value.toJson()).toList(),
+              nameDetectedLanguages!.map((value) => value.toJson()).toList(),
         if (valueDetectedLanguages != null)
           'valueDetectedLanguages':
-              valueDetectedLanguages.map((value) => value.toJson()).toList(),
-        if (valueType != null) 'valueType': valueType,
+              valueDetectedLanguages!.map((value) => value.toJson()).toList(),
+        if (valueType != null) 'valueType': valueType!,
       };
 }
 
 /// Rendered image contents for this page.
 class GoogleCloudDocumentaiV1beta1DocumentPageImage {
   /// Raw byte content of the image.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -2143,13 +2116,13 @@
   }
 
   /// Height of the image in pixels.
-  core.int height;
+  core.int? height;
 
   /// Encoding mime type for the image.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Width of the image in pixels.
-  core.int width;
+  core.int? width;
 
   GoogleCloudDocumentaiV1beta1DocumentPageImage();
 
@@ -2168,25 +2141,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
-        if (height != null) 'height': height,
-        if (mimeType != null) 'mimeType': mimeType,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
+        if (height != null) 'height': height!,
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (width != null) 'width': width!,
       };
 }
 
 /// Visual element describing a layout unit on a page.
 class GoogleCloudDocumentaiV1beta1DocumentPageLayout {
   /// The bounding polygon for the Layout.
-  GoogleCloudDocumentaiV1beta1BoundingPoly boundingPoly;
+  GoogleCloudDocumentaiV1beta1BoundingPoly? boundingPoly;
 
   /// Confidence of the current Layout within context of the object this layout
   /// is for.
   ///
   /// e.g. confidence can be for a single token, a table, a visual element, etc.
   /// depending on context. Range \[0, 1\].
-  core.double confidence;
+  core.double? confidence;
 
   /// Detected orientation for the Layout.
   /// Possible string values are:
@@ -2198,10 +2171,10 @@
   /// degrees from upright to read.
   /// - "PAGE_LEFT" : Orientation is aligned with page left. Turn the head 90
   /// degrees counterclockwise from upright to read.
-  core.String orientation;
+  core.String? orientation;
 
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta1DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta1DocumentTextAnchor? textAnchor;
 
   GoogleCloudDocumentaiV1beta1DocumentPageLayout();
 
@@ -2222,11 +2195,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
-        if (confidence != null) 'confidence': confidence,
-        if (orientation != null) 'orientation': orientation,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
+        if (confidence != null) 'confidence': confidence!,
+        if (orientation != null) 'orientation': orientation!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
       };
 }
 
@@ -2235,14 +2208,14 @@
 /// Does not cross column boundaries, can be horizontal, vertical, etc.
 class GoogleCloudDocumentaiV1beta1DocumentPageLine {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Line.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta1DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta1DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta1DocumentPageLine();
 
@@ -2265,12 +2238,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -2278,11 +2251,11 @@
 /// with OpenCV format for image manipulation.
 class GoogleCloudDocumentaiV1beta1DocumentPageMatrix {
   /// Number of columns in the matrix.
-  core.int cols;
+  core.int? cols;
 
   /// The matrix data.
-  core.String data;
-  core.List<core.int> get dataAsBytes => convert.base64.decode(data);
+  core.String? data;
+  core.List<core.int> get dataAsBytes => convert.base64.decode(data!);
 
   set dataAsBytes(core.List<core.int> _bytes) {
     data =
@@ -2290,14 +2263,14 @@
   }
 
   /// Number of rows in the matrix.
-  core.int rows;
+  core.int? rows;
 
   /// This encodes information about what data type the matrix uses.
   ///
   /// For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of
   /// OpenCV primitive data types, please refer to
   /// https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
-  core.int type;
+  core.int? type;
 
   GoogleCloudDocumentaiV1beta1DocumentPageMatrix();
 
@@ -2316,25 +2289,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cols != null) 'cols': cols,
-        if (data != null) 'data': data,
-        if (rows != null) 'rows': rows,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cols != null) 'cols': cols!,
+        if (data != null) 'data': data!,
+        if (rows != null) 'rows': rows!,
+        if (type != null) 'type': type!,
       };
 }
 
 /// A collection of lines that a human would perceive as a paragraph.
 class GoogleCloudDocumentaiV1beta1DocumentPageParagraph {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Paragraph.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta1DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta1DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta1DocumentPageParagraph();
 
@@ -2357,29 +2330,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
 /// A table representation similar to HTML table structure.
 class GoogleCloudDocumentaiV1beta1DocumentPageTable {
   /// Body rows of the table.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow> bodyRows;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow>? bodyRows;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Header rows of the table.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow> headerRows;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow>? headerRows;
 
   /// Layout for Table.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   GoogleCloudDocumentaiV1beta1DocumentPageTable();
 
@@ -2412,32 +2385,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bodyRows != null)
-          'bodyRows': bodyRows.map((value) => value.toJson()).toList(),
+          'bodyRows': bodyRows!.map((value) => value.toJson()).toList(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
         if (headerRows != null)
-          'headerRows': headerRows.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
+          'headerRows': headerRows!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
       };
 }
 
 /// A cell representation inside the table.
 class GoogleCloudDocumentaiV1beta1DocumentPageTableTableCell {
   /// How many columns this cell spans.
-  core.int colSpan;
+  core.int? colSpan;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for TableCell.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// How many rows this cell spans.
-  core.int rowSpan;
+  core.int? rowSpan;
 
   GoogleCloudDocumentaiV1beta1DocumentPageTableTableCell();
 
@@ -2463,20 +2436,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (colSpan != null) 'colSpan': colSpan,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (colSpan != null) 'colSpan': colSpan!,
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (rowSpan != null) 'rowSpan': rowSpan,
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (rowSpan != null) 'rowSpan': rowSpan!,
       };
 }
 
 /// A row of table cells.
 class GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow {
   /// Cells that make up this row.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTableTableCell> cells;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageTableTableCell>? cells;
 
   GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow();
 
@@ -2491,26 +2464,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (cells != null)
-          'cells': cells.map((value) => value.toJson()).toList(),
+          'cells': cells!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A detected token.
 class GoogleCloudDocumentaiV1beta1DocumentPageToken {
   /// Detected break at the end of a Token.
-  GoogleCloudDocumentaiV1beta1DocumentPageTokenDetectedBreak detectedBreak;
+  GoogleCloudDocumentaiV1beta1DocumentPageTokenDetectedBreak? detectedBreak;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Token.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta1DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta1DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta1DocumentPageToken();
 
@@ -2538,13 +2511,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (detectedBreak != null) 'detectedBreak': detectedBreak.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (detectedBreak != null) 'detectedBreak': detectedBreak!.toJson(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -2557,7 +2530,7 @@
   /// - "WIDE_SPACE" : A wider whitespace.
   /// - "HYPHEN" : A hyphen that indicates that a token has been split across
   /// lines.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta1DocumentPageTokenDetectedBreak();
 
@@ -2568,8 +2541,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (type != null) 'type': type!,
       };
 }
 
@@ -2578,14 +2551,14 @@
 /// on the page.
 class GoogleCloudDocumentaiV1beta1DocumentPageVisualElement {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for VisualElement.
-  GoogleCloudDocumentaiV1beta1DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta1DocumentPageLayout? layout;
 
   /// Type of the VisualElement.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta1DocumentPageVisualElement();
 
@@ -2608,12 +2581,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (type != null) 'type': type,
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -2623,13 +2596,13 @@
   /// The Id of this operation.
   ///
   /// Needs to be unique within the scope of the revision.
-  core.int id;
+  core.int? id;
 
   /// References to the original elements that are replaced.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentProvenanceParent> parents;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentProvenanceParent>? parents;
 
   /// The index of the revision that produced this element.
-  core.int revision;
+  core.int? revision;
 
   /// The type of provenance operation.
   /// Possible string values are:
@@ -2641,7 +2614,7 @@
   /// - "EVAL_REQUESTED" : Element is requested for human review.
   /// - "EVAL_APPROVED" : Element is review and approved at human review,
   /// confidence will be set to 1.0
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta1DocumentProvenance();
 
@@ -2664,12 +2637,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
         if (parents != null)
-          'parents': parents.map((value) => value.toJson()).toList(),
-        if (revision != null) 'revision': revision,
-        if (type != null) 'type': type,
+          'parents': parents!.map((value) => value.toJson()).toList(),
+        if (revision != null) 'revision': revision!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -2679,10 +2652,10 @@
 /// identify the elements that are replaced.
 class GoogleCloudDocumentaiV1beta1DocumentProvenanceParent {
   /// The id of the parent provenance.
-  core.int id;
+  core.int? id;
 
   /// The index of the \[Document.revisions\] identifying the parent revision.
-  core.int revision;
+  core.int? revision;
 
   GoogleCloudDocumentaiV1beta1DocumentProvenanceParent();
 
@@ -2696,37 +2669,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (revision != null) 'revision': revision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (revision != null) 'revision': revision!,
       };
 }
 
 /// Contains past or forward revisions of this document.
 class GoogleCloudDocumentaiV1beta1DocumentRevision {
   /// If the change was made by a person specify the name or id of that person.
-  core.String agent;
+  core.String? agent;
 
   /// The time that the revision was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// Human Review information of this revision.
-  GoogleCloudDocumentaiV1beta1DocumentRevisionHumanReview humanReview;
+  GoogleCloudDocumentaiV1beta1DocumentRevisionHumanReview? humanReview;
 
   /// Id of the revision.
   ///
   /// Unique within the context of the document.
-  core.String id;
+  core.String? id;
 
   /// The revisions that this revision is based on.
   ///
   /// This can include one or more parent (when documents are merged.) This
   /// field represents the index into the `revisions` field.
-  core.List<core.int> parent;
+  core.List<core.int>? parent;
 
   /// If the annotation was made by processor identify the processor by its
   /// resource name.
-  core.String processor;
+  core.String? processor;
 
   GoogleCloudDocumentaiV1beta1DocumentRevision();
 
@@ -2755,13 +2728,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (agent != null) 'agent': agent,
-        if (createTime != null) 'createTime': createTime,
-        if (humanReview != null) 'humanReview': humanReview.toJson(),
-        if (id != null) 'id': id,
-        if (parent != null) 'parent': parent,
-        if (processor != null) 'processor': processor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (agent != null) 'agent': agent!,
+        if (createTime != null) 'createTime': createTime!,
+        if (humanReview != null) 'humanReview': humanReview!.toJson(),
+        if (id != null) 'id': id!,
+        if (parent != null) 'parent': parent!,
+        if (processor != null) 'processor': processor!,
       };
 }
 
@@ -2770,12 +2743,12 @@
   /// Human review state.
   ///
   /// e.g. `requested`, `succeeded`, `rejected`.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
   ///
   /// For example, the rejection reason when the state is `rejected`.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   GoogleCloudDocumentaiV1beta1DocumentRevisionHumanReview();
 
@@ -2789,9 +2762,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
       };
 }
 
@@ -2801,14 +2774,14 @@
 /// Each document shard contains this field to detail which shard it is.
 class GoogleCloudDocumentaiV1beta1DocumentShardInfo {
   /// Total number of shards.
-  core.String shardCount;
+  core.String? shardCount;
 
   /// The 0-based index of this shard.
-  core.String shardIndex;
+  core.String? shardIndex;
 
   /// The index of the first character in Document.text in the overall document
   /// global text.
-  core.String textOffset;
+  core.String? textOffset;
 
   GoogleCloudDocumentaiV1beta1DocumentShardInfo();
 
@@ -2824,10 +2797,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (shardCount != null) 'shardCount': shardCount,
-        if (shardIndex != null) 'shardIndex': shardIndex,
-        if (textOffset != null) 'textOffset': textOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (shardCount != null) 'shardCount': shardCount!,
+        if (shardIndex != null) 'shardIndex': shardIndex!,
+        if (textOffset != null) 'textOffset': textOffset!,
       };
 }
 
@@ -2836,34 +2809,34 @@
 /// This adheres to CSS conventions as much as possible.
 class GoogleCloudDocumentaiV1beta1DocumentStyle {
   /// Text background color.
-  GoogleTypeColor backgroundColor;
+  GoogleTypeColor? backgroundColor;
 
   /// Text color.
-  GoogleTypeColor color;
+  GoogleTypeColor? color;
 
   /// Font size.
-  GoogleCloudDocumentaiV1beta1DocumentStyleFontSize fontSize;
+  GoogleCloudDocumentaiV1beta1DocumentStyleFontSize? fontSize;
 
   /// Font weight.
   ///
   /// Possible values are normal, bold, bolder, and lighter.
   /// https://www.w3schools.com/cssref/pr_font_weight.asp
-  core.String fontWeight;
+  core.String? fontWeight;
 
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta1DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta1DocumentTextAnchor? textAnchor;
 
   /// Text decoration.
   ///
   /// Follows CSS standard.
   /// https://www.w3schools.com/cssref/pr_text_text-decoration.asp
-  core.String textDecoration;
+  core.String? textDecoration;
 
   /// Text style.
   ///
   /// Possible values are normal, italic, and oblique.
   /// https://www.w3schools.com/cssref/pr_font_font-style.asp
-  core.String textStyle;
+  core.String? textStyle;
 
   GoogleCloudDocumentaiV1beta1DocumentStyle();
 
@@ -2895,27 +2868,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (backgroundColor != null)
-          'backgroundColor': backgroundColor.toJson(),
-        if (color != null) 'color': color.toJson(),
-        if (fontSize != null) 'fontSize': fontSize.toJson(),
-        if (fontWeight != null) 'fontWeight': fontWeight,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (textDecoration != null) 'textDecoration': textDecoration,
-        if (textStyle != null) 'textStyle': textStyle,
+          'backgroundColor': backgroundColor!.toJson(),
+        if (color != null) 'color': color!.toJson(),
+        if (fontSize != null) 'fontSize': fontSize!.toJson(),
+        if (fontWeight != null) 'fontWeight': fontWeight!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (textDecoration != null) 'textDecoration': textDecoration!,
+        if (textStyle != null) 'textStyle': textStyle!,
       };
 }
 
 /// Font size with unit.
 class GoogleCloudDocumentaiV1beta1DocumentStyleFontSize {
   /// Font size for the text.
-  core.double size;
+  core.double? size;
 
   /// Unit for the font size.
   ///
   /// Follows CSS naming (in, px, pt, etc.).
-  core.String unit;
+  core.String? unit;
 
   GoogleCloudDocumentaiV1beta1DocumentStyleFontSize();
 
@@ -2928,9 +2901,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (size != null) 'size': size,
-        if (unit != null) 'unit': unit,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (size != null) 'size': size!,
+        if (unit != null) 'unit': unit!,
       };
 }
 
@@ -2938,10 +2911,10 @@
 class GoogleCloudDocumentaiV1beta1DocumentTextAnchor {
   /// Contains the content of the text span so that users do not have to look it
   /// up in the text_segments.
-  core.String content;
+  core.String? content;
 
   /// The text segments from the Document.text.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentTextAnchorTextSegment>
+  core.List<GoogleCloudDocumentaiV1beta1DocumentTextAnchorTextSegment>?
       textSegments;
 
   GoogleCloudDocumentaiV1beta1DocumentTextAnchor();
@@ -2960,10 +2933,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
         if (textSegments != null)
-          'textSegments': textSegments.map((value) => value.toJson()).toList(),
+          'textSegments': textSegments!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2974,10 +2947,10 @@
 /// ShardInfo.text_offset
 class GoogleCloudDocumentaiV1beta1DocumentTextAnchorTextSegment {
   /// TextSegment half open end UTF-8 char index in the Document.text.
-  core.String endIndex;
+  core.String? endIndex;
 
   /// TextSegment start UTF-8 char index in the Document.text.
-  core.String startIndex;
+  core.String? startIndex;
 
   GoogleCloudDocumentaiV1beta1DocumentTextAnchorTextSegment();
 
@@ -2991,9 +2964,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endIndex != null) 'endIndex': endIndex,
-        if (startIndex != null) 'startIndex': startIndex,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endIndex != null) 'endIndex': endIndex!,
+        if (startIndex != null) 'startIndex': startIndex!,
       };
 }
 
@@ -3002,17 +2975,17 @@
 /// OCR corrections.
 class GoogleCloudDocumentaiV1beta1DocumentTextChange {
   /// The text that replaces the text identified in the `text_anchor`.
-  core.String changedText;
+  core.String? changedText;
 
   /// The history of this annotation.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentProvenance> provenance;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentProvenance>? provenance;
 
   /// Provenance of the correction.
   ///
   /// Text anchor indexing into the Document.text. There can only be a single
   /// `TextAnchor.text_segments` element. If the start and end index of the text
   /// segment are the same, the text change is inserted before that index.
-  GoogleCloudDocumentaiV1beta1DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta1DocumentTextAnchor? textAnchor;
 
   GoogleCloudDocumentaiV1beta1DocumentTextChange();
 
@@ -3033,11 +3006,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (changedText != null) 'changedText': changedText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (changedText != null) 'changedText': changedText!,
         if (provenance != null)
-          'provenance': provenance.map((value) => value.toJson()).toList(),
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
+          'provenance': provenance!.map((value) => value.toJson()).toList(),
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
       };
 }
 
@@ -3047,20 +3020,20 @@
   ///
   /// For more information, see
   /// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// The history of this annotation.
-  core.List<GoogleCloudDocumentaiV1beta1DocumentProvenance> provenance;
+  core.List<GoogleCloudDocumentaiV1beta1DocumentProvenance>? provenance;
 
   /// Provenance of the translation.
   ///
   /// Text anchor indexing into the Document.text. There can only be a single
   /// `TextAnchor.text_segments` element. If the start and end index of the text
   /// segment are the same, the text change is inserted before that index.
-  GoogleCloudDocumentaiV1beta1DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta1DocumentTextAnchor? textAnchor;
 
   /// Text translated into the target language.
-  core.String translatedText;
+  core.String? translatedText;
 
   GoogleCloudDocumentaiV1beta1DocumentTranslation();
 
@@ -3084,18 +3057,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (languageCode != null) 'languageCode': languageCode!,
         if (provenance != null)
-          'provenance': provenance.map((value) => value.toJson()).toList(),
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (translatedText != null) 'translatedText': translatedText,
+          'provenance': provenance!.map((value) => value.toJson()).toList(),
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (translatedText != null) 'translatedText': translatedText!,
       };
 }
 
 /// The Google Cloud Storage location where the output file will be written to.
 class GoogleCloudDocumentaiV1beta1GcsDestination {
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta1GcsDestination();
 
@@ -3105,14 +3078,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (uri != null) 'uri': uri!,
       };
 }
 
 /// The Google Cloud Storage location where the input file will be read from.
 class GoogleCloudDocumentaiV1beta1GcsSource {
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta1GcsSource();
 
@@ -3122,8 +3095,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -3132,7 +3105,7 @@
   /// The Google Cloud Storage location to read the input from.
   ///
   /// This must be a single file.
-  GoogleCloudDocumentaiV1beta1GcsSource gcsSource;
+  GoogleCloudDocumentaiV1beta1GcsSource? gcsSource;
 
   /// Mimetype of the input.
   ///
@@ -3142,7 +3115,7 @@
   /// to be in Document format.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDocumentaiV1beta1InputConfig();
 
@@ -3156,9 +3129,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsSource != null) 'gcsSource': gcsSource.toJson(),
-        if (mimeType != null) 'mimeType': mimeType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsSource != null) 'gcsSource': gcsSource!.toJson(),
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
@@ -3168,10 +3141,10 @@
 /// and range from 0 to 1.
 class GoogleCloudDocumentaiV1beta1NormalizedVertex {
   /// X coordinate.
-  core.double x;
+  core.double? x;
 
   /// Y coordinate.
-  core.double y;
+  core.double? y;
 
   GoogleCloudDocumentaiV1beta1NormalizedVertex();
 
@@ -3184,16 +3157,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
 /// Contains metadata for the BatchProcessDocuments operation.
 class GoogleCloudDocumentaiV1beta1OperationMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The state of the current batch processing.
   /// Possible string values are:
@@ -3205,13 +3178,13 @@
   /// - "SUCCEEDED" : The batch processing completed successfully.
   /// - "CANCELLED" : The batch processing was cancelled.
   /// - "FAILED" : The batch processing has failed.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1beta1OperationMetadata();
 
@@ -3230,18 +3203,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// The desired output location and metadata.
 class GoogleCloudDocumentaiV1beta1OutputConfig {
   /// The Google Cloud Storage location to write the output to.
-  GoogleCloudDocumentaiV1beta1GcsDestination gcsDestination;
+  GoogleCloudDocumentaiV1beta1GcsDestination? gcsDestination;
 
   /// The max number of pages to include into each output Document shard JSON on
   /// Google Cloud Storage.
@@ -3254,7 +3227,7 @@
   /// y are 1-indexed page numbers. Example GCS outputs with 157 pages and
   /// pages_per_shard = 50: pages-001-to-050.json pages-051-to-100.json
   /// pages-101-to-150.json pages-151-to-157.json
-  core.int pagesPerShard;
+  core.int? pagesPerShard;
 
   GoogleCloudDocumentaiV1beta1OutputConfig();
 
@@ -3268,9 +3241,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination.toJson(),
-        if (pagesPerShard != null) 'pagesPerShard': pagesPerShard,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!.toJson(),
+        if (pagesPerShard != null) 'pagesPerShard': pagesPerShard!,
       };
 }
 
@@ -3279,13 +3252,13 @@
   /// Information about the input file.
   ///
   /// This is the same as the corresponding input config in the request.
-  GoogleCloudDocumentaiV1beta1InputConfig inputConfig;
+  GoogleCloudDocumentaiV1beta1InputConfig? inputConfig;
 
   /// The output location of the parsed responses.
   ///
   /// The responses are written to this location as JSON-serialized `Document`
   /// objects.
-  GoogleCloudDocumentaiV1beta1OutputConfig outputConfig;
+  GoogleCloudDocumentaiV1beta1OutputConfig? outputConfig;
 
   GoogleCloudDocumentaiV1beta1ProcessDocumentResponse();
 
@@ -3300,9 +3273,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inputConfig != null) 'inputConfig': inputConfig.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inputConfig != null) 'inputConfig': inputConfig!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
       };
 }
 
@@ -3311,10 +3284,10 @@
 /// NOTE: the vertex coordinates are in the same scale as the original image.
 class GoogleCloudDocumentaiV1beta1Vertex {
   /// X coordinate.
-  core.int x;
+  core.int? x;
 
   /// Y coordinate.
-  core.int y;
+  core.int? y;
 
   GoogleCloudDocumentaiV1beta1Vertex();
 
@@ -3327,9 +3300,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
@@ -3338,7 +3311,7 @@
 /// This is returned in the LRO Operation after the operation is complete.
 class GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse {
   /// Responses for each individual document.
-  core.List<GoogleCloudDocumentaiV1beta2ProcessDocumentResponse> responses;
+  core.List<GoogleCloudDocumentaiV1beta2ProcessDocumentResponse>? responses;
 
   GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse();
 
@@ -3353,19 +3326,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (responses != null)
-          'responses': responses.map((value) => value.toJson()).toList(),
+          'responses': responses!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A bounding polygon for the detected image annotation.
 class GoogleCloudDocumentaiV1beta2BoundingPoly {
   /// The bounding polygon normalized vertices.
-  core.List<GoogleCloudDocumentaiV1beta2NormalizedVertex> normalizedVertices;
+  core.List<GoogleCloudDocumentaiV1beta2NormalizedVertex>? normalizedVertices;
 
   /// The bounding polygon vertices.
-  core.List<GoogleCloudDocumentaiV1beta2Vertex> vertices;
+  core.List<GoogleCloudDocumentaiV1beta2Vertex>? vertices;
 
   GoogleCloudDocumentaiV1beta2BoundingPoly();
 
@@ -3386,12 +3359,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (normalizedVertices != null)
           'normalizedVertices':
-              normalizedVertices.map((value) => value.toJson()).toList(),
+              normalizedVertices!.map((value) => value.toJson()).toList(),
         if (vertices != null)
-          'vertices': vertices.map((value) => value.toJson()).toList(),
+          'vertices': vertices!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3406,8 +3379,8 @@
   ///
   /// Note: As with all `bytes` fields, protobuffers use a pure binary
   /// representation, whereas JSON representations use base64.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -3417,51 +3390,52 @@
   /// A list of entities detected on Document.text.
   ///
   /// For document shards, entities in this list may cross shard boundaries.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentEntity> entities;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentEntity>? entities;
 
   /// Relationship among Document.entities.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentEntityRelation> entityRelations;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentEntityRelation>?
+      entityRelations;
 
   /// Any error that occurred while processing this document.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// Labels for this document.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentLabel> labels;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentLabel>? labels;
 
   /// An IANA published MIME type (also referred to as media type).
   ///
   /// For more information, see
   /// https://www.iana.org/assignments/media-types/media-types.xhtml.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Visual page layout for the Document.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPage> pages;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPage>? pages;
 
   /// Revision history of this document.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentRevision> revisions;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentRevision>? revisions;
 
   /// Information about the sharding if this document is sharded part of a
   /// larger document.
   ///
   /// If the document is not sharded, this message is not specified.
-  GoogleCloudDocumentaiV1beta2DocumentShardInfo shardInfo;
+  GoogleCloudDocumentaiV1beta2DocumentShardInfo? shardInfo;
 
   /// UTF-8 encoded text in reading order from the document.
-  core.String text;
+  core.String? text;
 
   /// A list of text corrections made to \[Document.text\].
   ///
   /// This is usually used for annotating corrections to OCR mistakes. Text
   /// changes for a given revision may not overlap with each other.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentTextChange> textChanges;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentTextChange>? textChanges;
 
   /// Styles for the Document.text.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentStyle> textStyles;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentStyle>? textStyles;
 
   /// A list of translations on Document.text.
   ///
   /// For document shards, translations in this list may cross shard boundaries.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentTranslation> translations;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentTranslation>? translations;
 
   /// Currently supports Google Cloud Storage URI of the form
   /// `gs://bucket_name/object_name`.
@@ -3469,7 +3443,7 @@
   /// Object versioning is not supported. See
   /// [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris)
   /// for more info.
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta2Document();
 
@@ -3552,30 +3526,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
         if (entities != null)
-          'entities': entities.map((value) => value.toJson()).toList(),
+          'entities': entities!.map((value) => value.toJson()).toList(),
         if (entityRelations != null)
           'entityRelations':
-              entityRelations.map((value) => value.toJson()).toList(),
-        if (error != null) 'error': error.toJson(),
+              entityRelations!.map((value) => value.toJson()).toList(),
+        if (error != null) 'error': error!.toJson(),
         if (labels != null)
-          'labels': labels.map((value) => value.toJson()).toList(),
-        if (mimeType != null) 'mimeType': mimeType,
+          'labels': labels!.map((value) => value.toJson()).toList(),
+        if (mimeType != null) 'mimeType': mimeType!,
         if (pages != null)
-          'pages': pages.map((value) => value.toJson()).toList(),
+          'pages': pages!.map((value) => value.toJson()).toList(),
         if (revisions != null)
-          'revisions': revisions.map((value) => value.toJson()).toList(),
-        if (shardInfo != null) 'shardInfo': shardInfo.toJson(),
-        if (text != null) 'text': text,
+          'revisions': revisions!.map((value) => value.toJson()).toList(),
+        if (shardInfo != null) 'shardInfo': shardInfo!.toJson(),
+        if (text != null) 'text': text!,
         if (textChanges != null)
-          'textChanges': textChanges.map((value) => value.toJson()).toList(),
+          'textChanges': textChanges!.map((value) => value.toJson()).toList(),
         if (textStyles != null)
-          'textStyles': textStyles.map((value) => value.toJson()).toList(),
+          'textStyles': textStyles!.map((value) => value.toJson()).toList(),
         if (translations != null)
-          'translations': translations.map((value) => value.toJson()).toList(),
-        if (uri != null) 'uri': uri,
+          'translations': translations!.map((value) => value.toJson()).toList(),
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -3587,22 +3561,22 @@
   /// Range \[0, 1\].
   ///
   /// Optional.
-  core.double confidence;
+  core.double? confidence;
 
   /// Canonical id.
   ///
   /// This will be a unique value in the entity list for this document.
   ///
   /// Optional.
-  core.String id;
+  core.String? id;
 
   /// Use `id` field instead.
   ///
   /// Deprecated.
-  core.String mentionId;
+  core.String? mentionId;
 
   /// Text value in the document e.g. `1600 Amphitheatre Pkwy`.
-  core.String mentionText;
+  core.String? mentionText;
 
   /// Normalized entity value.
   ///
@@ -3611,38 +3585,38 @@
   /// populated for certain supported document types.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta2DocumentEntityNormalizedValue normalizedValue;
+  GoogleCloudDocumentaiV1beta2DocumentEntityNormalizedValue? normalizedValue;
 
   /// Represents the provenance of this entity wrt.
   ///
   /// the location on the page where it was found.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta2DocumentPageAnchor pageAnchor;
+  GoogleCloudDocumentaiV1beta2DocumentPageAnchor? pageAnchor;
 
   /// Entities can be nested to form a hierarchical data structure representing
   /// the content in the document.
   ///
   /// Optional.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentEntity> properties;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentEntity>? properties;
 
   /// The history of this annotation.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta2DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta2DocumentProvenance? provenance;
 
   /// Whether the entity will be redacted for de-identification purposes.
   ///
   /// Optional.
-  core.bool redacted;
+  core.bool? redacted;
 
   /// Provenance of the entity.
   ///
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta2DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta2DocumentTextAnchor? textAnchor;
 
   /// Entity type from a schema e.g. `Address`.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta2DocumentEntity();
 
@@ -3691,20 +3665,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (confidence != null) 'confidence': confidence,
-        if (id != null) 'id': id,
-        if (mentionId != null) 'mentionId': mentionId,
-        if (mentionText != null) 'mentionText': mentionText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (confidence != null) 'confidence': confidence!,
+        if (id != null) 'id': id!,
+        if (mentionId != null) 'mentionId': mentionId!,
+        if (mentionText != null) 'mentionText': mentionText!,
         if (normalizedValue != null)
-          'normalizedValue': normalizedValue.toJson(),
-        if (pageAnchor != null) 'pageAnchor': pageAnchor.toJson(),
+          'normalizedValue': normalizedValue!.toJson(),
+        if (pageAnchor != null) 'pageAnchor': pageAnchor!.toJson(),
         if (properties != null)
-          'properties': properties.map((value) => value.toJson()).toList(),
-        if (provenance != null) 'provenance': provenance.toJson(),
-        if (redacted != null) 'redacted': redacted,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (type != null) 'type': type,
+          'properties': properties!.map((value) => value.toJson()).toList(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
+        if (redacted != null) 'redacted': redacted!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -3714,30 +3688,30 @@
   ///
   /// See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
-  GoogleTypePostalAddress addressValue;
+  GoogleTypePostalAddress? addressValue;
 
   /// Boolean value.
   ///
   /// Can be used for entities with binary values, or for checkboxes.
-  core.bool booleanValue;
+  core.bool? booleanValue;
 
   /// Date value.
   ///
   /// Includes year, month, day. See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
-  GoogleTypeDate dateValue;
+  GoogleTypeDate? dateValue;
 
   /// DateTime value.
   ///
   /// Includes date, time, and timezone. See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
-  GoogleTypeDateTime datetimeValue;
+  GoogleTypeDateTime? datetimeValue;
 
   /// Money value.
   ///
   /// See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
-  GoogleTypeMoney moneyValue;
+  GoogleTypeMoney? moneyValue;
 
   /// Normalized entity value stored as a string.
   ///
@@ -3748,7 +3722,7 @@
   /// Datetime type (`datetime_value`) is in the ISO 8601 text format.
   ///
   /// Required.
-  core.String text;
+  core.String? text;
 
   GoogleCloudDocumentaiV1beta2DocumentEntityNormalizedValue();
 
@@ -3778,26 +3752,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (addressValue != null) 'addressValue': addressValue.toJson(),
-        if (booleanValue != null) 'booleanValue': booleanValue,
-        if (dateValue != null) 'dateValue': dateValue.toJson(),
-        if (datetimeValue != null) 'datetimeValue': datetimeValue.toJson(),
-        if (moneyValue != null) 'moneyValue': moneyValue.toJson(),
-        if (text != null) 'text': text,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (addressValue != null) 'addressValue': addressValue!.toJson(),
+        if (booleanValue != null) 'booleanValue': booleanValue!,
+        if (dateValue != null) 'dateValue': dateValue!.toJson(),
+        if (datetimeValue != null) 'datetimeValue': datetimeValue!.toJson(),
+        if (moneyValue != null) 'moneyValue': moneyValue!.toJson(),
+        if (text != null) 'text': text!,
       };
 }
 
 /// Relationship between Entities.
 class GoogleCloudDocumentaiV1beta2DocumentEntityRelation {
   /// Object entity id.
-  core.String objectId;
+  core.String? objectId;
 
   /// Relationship description.
-  core.String relation;
+  core.String? relation;
 
   /// Subject entity id.
-  core.String subjectId;
+  core.String? subjectId;
 
   GoogleCloudDocumentaiV1beta2DocumentEntityRelation();
 
@@ -3813,10 +3787,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (objectId != null) 'objectId': objectId,
-        if (relation != null) 'relation': relation,
-        if (subjectId != null) 'subjectId': subjectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (objectId != null) 'objectId': objectId!,
+        if (relation != null) 'relation': relation!,
+        if (subjectId != null) 'subjectId': subjectId!,
       };
 }
 
@@ -3831,16 +3805,16 @@
   ///
   /// This field stores the full resource name of the AutoML model. Format:
   /// `projects/{project-id}/locations/{location-id}/models/{model-id}`
-  core.String automlModel;
+  core.String? automlModel;
 
   /// Confidence score between 0 and 1 for label assignment.
-  core.double confidence;
+  core.double? confidence;
 
   /// Name of the label.
   ///
   /// When the label is generated from AutoML Text Classification model, this
   /// field represents the name of the category.
-  core.String name;
+  core.String? name;
 
   GoogleCloudDocumentaiV1beta2DocumentLabel();
 
@@ -3856,10 +3830,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (automlModel != null) 'automlModel': automlModel,
-        if (confidence != null) 'confidence': confidence,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (automlModel != null) 'automlModel': automlModel!,
+        if (confidence != null) 'confidence': confidence!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -3869,56 +3843,56 @@
   ///
   /// A block has a set of lines (collected into paragraphs) that have a common
   /// line-spacing and orientation.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageBlock> blocks;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageBlock>? blocks;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Physical dimension of the page.
-  GoogleCloudDocumentaiV1beta2DocumentPageDimension dimension;
+  GoogleCloudDocumentaiV1beta2DocumentPageDimension? dimension;
 
   /// A list of visually detected form fields on the page.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageFormField> formFields;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageFormField>? formFields;
 
   /// Rendered image for this page.
   ///
   /// This image is preprocessed to remove any skew, rotation, and distortions
   /// such that the annotation bounding boxes can be upright and axis-aligned.
-  GoogleCloudDocumentaiV1beta2DocumentPageImage image;
+  GoogleCloudDocumentaiV1beta2DocumentPageImage? image;
 
   /// Layout for the page.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// A list of visually detected text lines on the page.
   ///
   /// A collection of tokens that a human would perceive as a line.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageLine> lines;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageLine>? lines;
 
   /// 1-based index for current Page in a parent Document.
   ///
   /// Useful when a page is taken out of a Document for individual processing.
-  core.int pageNumber;
+  core.int? pageNumber;
 
   /// A list of visually detected text paragraphs on the page.
   ///
   /// A collection of lines that a human would perceive as a paragraph.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageParagraph> paragraphs;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageParagraph>? paragraphs;
 
   /// A list of visually detected tables on the page.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTable> tables;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTable>? tables;
 
   /// A list of visually detected tokens on the page.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageToken> tokens;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageToken>? tokens;
 
   /// Transformation matrices that were applied to the original document image
   /// to produce Page.image.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageMatrix> transforms;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageMatrix>? transforms;
 
   /// A list of detected non-text visual elements e.g. checkbox, signature etc.
   ///
   /// on the page.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageVisualElement>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageVisualElement>?
       visualElements;
 
   GoogleCloudDocumentaiV1beta2DocumentPage();
@@ -4005,31 +3979,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (blocks != null)
-          'blocks': blocks.map((value) => value.toJson()).toList(),
+          'blocks': blocks!.map((value) => value.toJson()).toList(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (dimension != null) 'dimension': dimension.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (dimension != null) 'dimension': dimension!.toJson(),
         if (formFields != null)
-          'formFields': formFields.map((value) => value.toJson()).toList(),
-        if (image != null) 'image': image.toJson(),
-        if (layout != null) 'layout': layout.toJson(),
+          'formFields': formFields!.map((value) => value.toJson()).toList(),
+        if (image != null) 'image': image!.toJson(),
+        if (layout != null) 'layout': layout!.toJson(),
         if (lines != null)
-          'lines': lines.map((value) => value.toJson()).toList(),
-        if (pageNumber != null) 'pageNumber': pageNumber,
+          'lines': lines!.map((value) => value.toJson()).toList(),
+        if (pageNumber != null) 'pageNumber': pageNumber!,
         if (paragraphs != null)
-          'paragraphs': paragraphs.map((value) => value.toJson()).toList(),
+          'paragraphs': paragraphs!.map((value) => value.toJson()).toList(),
         if (tables != null)
-          'tables': tables.map((value) => value.toJson()).toList(),
+          'tables': tables!.map((value) => value.toJson()).toList(),
         if (tokens != null)
-          'tokens': tokens.map((value) => value.toJson()).toList(),
+          'tokens': tokens!.map((value) => value.toJson()).toList(),
         if (transforms != null)
-          'transforms': transforms.map((value) => value.toJson()).toList(),
+          'transforms': transforms!.map((value) => value.toJson()).toList(),
         if (visualElements != null)
           'visualElements':
-              visualElements.map((value) => value.toJson()).toList(),
+              visualElements!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4039,7 +4013,7 @@
 /// optionally reference specific layout element types.
 class GoogleCloudDocumentaiV1beta2DocumentPageAnchor {
   /// One or more references to visual page elements
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageAnchorPageRef> pageRefs;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageAnchorPageRef>? pageRefs;
 
   GoogleCloudDocumentaiV1beta2DocumentPageAnchor();
 
@@ -4053,9 +4027,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (pageRefs != null)
-          'pageRefs': pageRefs.map((value) => value.toJson()).toList(),
+          'pageRefs': pageRefs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4064,12 +4038,12 @@
   /// Identifies the bounding polygon of a layout element on the page.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta2BoundingPoly boundingPoly;
+  GoogleCloudDocumentaiV1beta2BoundingPoly? boundingPoly;
 
   /// Use PageRef.bounding_poly instead.
   ///
   /// Optional. Deprecated.
-  core.String layoutId;
+  core.String? layoutId;
 
   /// The type of the layout element that is being referenced if any.
   ///
@@ -4083,13 +4057,13 @@
   /// - "VISUAL_ELEMENT" : References a Page.visual_elements element.
   /// - "TABLE" : Refrrences a Page.tables element.
   /// - "FORM_FIELD" : References a Page.form_fields element.
-  core.String layoutType;
+  core.String? layoutType;
 
   /// Index into the Document.pages element, for example using Document.pages to
   /// locate the related page element.
   ///
   /// Required.
-  core.String page;
+  core.String? page;
 
   GoogleCloudDocumentaiV1beta2DocumentPageAnchorPageRef();
 
@@ -4110,11 +4084,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
-        if (layoutId != null) 'layoutId': layoutId,
-        if (layoutType != null) 'layoutType': layoutType,
-        if (page != null) 'page': page,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
+        if (layoutId != null) 'layoutId': layoutId!,
+        if (layoutType != null) 'layoutType': layoutType!,
+        if (page != null) 'page': page!,
       };
 }
 
@@ -4122,14 +4096,14 @@
 /// line-spacing and orientation.
 class GoogleCloudDocumentaiV1beta2DocumentPageBlock {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Block.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta2DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta2DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta2DocumentPageBlock();
 
@@ -4152,12 +4126,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -4166,13 +4140,13 @@
   /// Confidence of detected language.
   ///
   /// Range \[0, 1\].
-  core.double confidence;
+  core.double? confidence;
 
   /// The BCP-47 language code, such as "en-US" or "sr-Latn".
   ///
   /// For more information, see
   /// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-  core.String languageCode;
+  core.String? languageCode;
 
   GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage();
 
@@ -4186,22 +4160,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (confidence != null) 'confidence': confidence,
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (confidence != null) 'confidence': confidence!,
+        if (languageCode != null) 'languageCode': languageCode!,
       };
 }
 
 /// Dimension for the page.
 class GoogleCloudDocumentaiV1beta2DocumentPageDimension {
   /// Page height.
-  core.double height;
+  core.double? height;
 
   /// Dimension unit.
-  core.String unit;
+  core.String? unit;
 
   /// Page width.
-  core.double width;
+  core.double? width;
 
   GoogleCloudDocumentaiV1beta2DocumentPageDimension();
 
@@ -4217,10 +4191,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (unit != null) 'unit': unit,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (unit != null) 'unit': unit!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -4229,24 +4203,24 @@
   /// Layout for the FormField name.
   ///
   /// e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout fieldName;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? fieldName;
 
   /// Layout for the FormField value.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout fieldValue;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? fieldValue;
 
   /// A list of detected languages for name together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       nameDetectedLanguages;
 
   /// A list of detected languages for value together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       valueDetectedLanguages;
 
   /// If the value is non-textual, this field represents the type.
   ///
   /// Current valid values are: - blank (this indicates the field_value is
   /// normal text) - "unfilled_checkbox" - "filled_checkbox"
-  core.String valueType;
+  core.String? valueType;
 
   GoogleCloudDocumentaiV1beta2DocumentPageFormField();
 
@@ -4280,24 +4254,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fieldName != null) 'fieldName': fieldName.toJson(),
-        if (fieldValue != null) 'fieldValue': fieldValue.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fieldName != null) 'fieldName': fieldName!.toJson(),
+        if (fieldValue != null) 'fieldValue': fieldValue!.toJson(),
         if (nameDetectedLanguages != null)
           'nameDetectedLanguages':
-              nameDetectedLanguages.map((value) => value.toJson()).toList(),
+              nameDetectedLanguages!.map((value) => value.toJson()).toList(),
         if (valueDetectedLanguages != null)
           'valueDetectedLanguages':
-              valueDetectedLanguages.map((value) => value.toJson()).toList(),
-        if (valueType != null) 'valueType': valueType,
+              valueDetectedLanguages!.map((value) => value.toJson()).toList(),
+        if (valueType != null) 'valueType': valueType!,
       };
 }
 
 /// Rendered image contents for this page.
 class GoogleCloudDocumentaiV1beta2DocumentPageImage {
   /// Raw byte content of the image.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -4305,13 +4279,13 @@
   }
 
   /// Height of the image in pixels.
-  core.int height;
+  core.int? height;
 
   /// Encoding mime type for the image.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Width of the image in pixels.
-  core.int width;
+  core.int? width;
 
   GoogleCloudDocumentaiV1beta2DocumentPageImage();
 
@@ -4330,25 +4304,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
-        if (height != null) 'height': height,
-        if (mimeType != null) 'mimeType': mimeType,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
+        if (height != null) 'height': height!,
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (width != null) 'width': width!,
       };
 }
 
 /// Visual element describing a layout unit on a page.
 class GoogleCloudDocumentaiV1beta2DocumentPageLayout {
   /// The bounding polygon for the Layout.
-  GoogleCloudDocumentaiV1beta2BoundingPoly boundingPoly;
+  GoogleCloudDocumentaiV1beta2BoundingPoly? boundingPoly;
 
   /// Confidence of the current Layout within context of the object this layout
   /// is for.
   ///
   /// e.g. confidence can be for a single token, a table, a visual element, etc.
   /// depending on context. Range \[0, 1\].
-  core.double confidence;
+  core.double? confidence;
 
   /// Detected orientation for the Layout.
   /// Possible string values are:
@@ -4360,10 +4334,10 @@
   /// degrees from upright to read.
   /// - "PAGE_LEFT" : Orientation is aligned with page left. Turn the head 90
   /// degrees counterclockwise from upright to read.
-  core.String orientation;
+  core.String? orientation;
 
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta2DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta2DocumentTextAnchor? textAnchor;
 
   GoogleCloudDocumentaiV1beta2DocumentPageLayout();
 
@@ -4384,11 +4358,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
-        if (confidence != null) 'confidence': confidence,
-        if (orientation != null) 'orientation': orientation,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
+        if (confidence != null) 'confidence': confidence!,
+        if (orientation != null) 'orientation': orientation!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
       };
 }
 
@@ -4397,14 +4371,14 @@
 /// Does not cross column boundaries, can be horizontal, vertical, etc.
 class GoogleCloudDocumentaiV1beta2DocumentPageLine {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Line.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta2DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta2DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta2DocumentPageLine();
 
@@ -4427,12 +4401,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -4440,11 +4414,11 @@
 /// with OpenCV format for image manipulation.
 class GoogleCloudDocumentaiV1beta2DocumentPageMatrix {
   /// Number of columns in the matrix.
-  core.int cols;
+  core.int? cols;
 
   /// The matrix data.
-  core.String data;
-  core.List<core.int> get dataAsBytes => convert.base64.decode(data);
+  core.String? data;
+  core.List<core.int> get dataAsBytes => convert.base64.decode(data!);
 
   set dataAsBytes(core.List<core.int> _bytes) {
     data =
@@ -4452,14 +4426,14 @@
   }
 
   /// Number of rows in the matrix.
-  core.int rows;
+  core.int? rows;
 
   /// This encodes information about what data type the matrix uses.
   ///
   /// For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of
   /// OpenCV primitive data types, please refer to
   /// https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
-  core.int type;
+  core.int? type;
 
   GoogleCloudDocumentaiV1beta2DocumentPageMatrix();
 
@@ -4478,25 +4452,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cols != null) 'cols': cols,
-        if (data != null) 'data': data,
-        if (rows != null) 'rows': rows,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cols != null) 'cols': cols!,
+        if (data != null) 'data': data!,
+        if (rows != null) 'rows': rows!,
+        if (type != null) 'type': type!,
       };
 }
 
 /// A collection of lines that a human would perceive as a paragraph.
 class GoogleCloudDocumentaiV1beta2DocumentPageParagraph {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Paragraph.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta2DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta2DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta2DocumentPageParagraph();
 
@@ -4519,29 +4493,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
 /// A table representation similar to HTML table structure.
 class GoogleCloudDocumentaiV1beta2DocumentPageTable {
   /// Body rows of the table.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow> bodyRows;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow>? bodyRows;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Header rows of the table.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow> headerRows;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow>? headerRows;
 
   /// Layout for Table.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   GoogleCloudDocumentaiV1beta2DocumentPageTable();
 
@@ -4574,32 +4548,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bodyRows != null)
-          'bodyRows': bodyRows.map((value) => value.toJson()).toList(),
+          'bodyRows': bodyRows!.map((value) => value.toJson()).toList(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
         if (headerRows != null)
-          'headerRows': headerRows.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
+          'headerRows': headerRows!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
       };
 }
 
 /// A cell representation inside the table.
 class GoogleCloudDocumentaiV1beta2DocumentPageTableTableCell {
   /// How many columns this cell spans.
-  core.int colSpan;
+  core.int? colSpan;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for TableCell.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// How many rows this cell spans.
-  core.int rowSpan;
+  core.int? rowSpan;
 
   GoogleCloudDocumentaiV1beta2DocumentPageTableTableCell();
 
@@ -4625,20 +4599,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (colSpan != null) 'colSpan': colSpan,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (colSpan != null) 'colSpan': colSpan!,
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (rowSpan != null) 'rowSpan': rowSpan,
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (rowSpan != null) 'rowSpan': rowSpan!,
       };
 }
 
 /// A row of table cells.
 class GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow {
   /// Cells that make up this row.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTableTableCell> cells;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageTableTableCell>? cells;
 
   GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow();
 
@@ -4653,26 +4627,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (cells != null)
-          'cells': cells.map((value) => value.toJson()).toList(),
+          'cells': cells!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A detected token.
 class GoogleCloudDocumentaiV1beta2DocumentPageToken {
   /// Detected break at the end of a Token.
-  GoogleCloudDocumentaiV1beta2DocumentPageTokenDetectedBreak detectedBreak;
+  GoogleCloudDocumentaiV1beta2DocumentPageTokenDetectedBreak? detectedBreak;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Token.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta2DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta2DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta2DocumentPageToken();
 
@@ -4700,13 +4674,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (detectedBreak != null) 'detectedBreak': detectedBreak.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (detectedBreak != null) 'detectedBreak': detectedBreak!.toJson(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -4719,7 +4693,7 @@
   /// - "WIDE_SPACE" : A wider whitespace.
   /// - "HYPHEN" : A hyphen that indicates that a token has been split across
   /// lines.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta2DocumentPageTokenDetectedBreak();
 
@@ -4730,8 +4704,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (type != null) 'type': type!,
       };
 }
 
@@ -4740,14 +4714,14 @@
 /// on the page.
 class GoogleCloudDocumentaiV1beta2DocumentPageVisualElement {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for VisualElement.
-  GoogleCloudDocumentaiV1beta2DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta2DocumentPageLayout? layout;
 
   /// Type of the VisualElement.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta2DocumentPageVisualElement();
 
@@ -4770,12 +4744,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (type != null) 'type': type,
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -4785,13 +4759,13 @@
   /// The Id of this operation.
   ///
   /// Needs to be unique within the scope of the revision.
-  core.int id;
+  core.int? id;
 
   /// References to the original elements that are replaced.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentProvenanceParent> parents;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentProvenanceParent>? parents;
 
   /// The index of the revision that produced this element.
-  core.int revision;
+  core.int? revision;
 
   /// The type of provenance operation.
   /// Possible string values are:
@@ -4803,7 +4777,7 @@
   /// - "EVAL_REQUESTED" : Element is requested for human review.
   /// - "EVAL_APPROVED" : Element is review and approved at human review,
   /// confidence will be set to 1.0
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta2DocumentProvenance();
 
@@ -4826,12 +4800,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
         if (parents != null)
-          'parents': parents.map((value) => value.toJson()).toList(),
-        if (revision != null) 'revision': revision,
-        if (type != null) 'type': type,
+          'parents': parents!.map((value) => value.toJson()).toList(),
+        if (revision != null) 'revision': revision!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -4841,10 +4815,10 @@
 /// identify the elements that are replaced.
 class GoogleCloudDocumentaiV1beta2DocumentProvenanceParent {
   /// The id of the parent provenance.
-  core.int id;
+  core.int? id;
 
   /// The index of the \[Document.revisions\] identifying the parent revision.
-  core.int revision;
+  core.int? revision;
 
   GoogleCloudDocumentaiV1beta2DocumentProvenanceParent();
 
@@ -4858,37 +4832,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (revision != null) 'revision': revision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (revision != null) 'revision': revision!,
       };
 }
 
 /// Contains past or forward revisions of this document.
 class GoogleCloudDocumentaiV1beta2DocumentRevision {
   /// If the change was made by a person specify the name or id of that person.
-  core.String agent;
+  core.String? agent;
 
   /// The time that the revision was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// Human Review information of this revision.
-  GoogleCloudDocumentaiV1beta2DocumentRevisionHumanReview humanReview;
+  GoogleCloudDocumentaiV1beta2DocumentRevisionHumanReview? humanReview;
 
   /// Id of the revision.
   ///
   /// Unique within the context of the document.
-  core.String id;
+  core.String? id;
 
   /// The revisions that this revision is based on.
   ///
   /// This can include one or more parent (when documents are merged.) This
   /// field represents the index into the `revisions` field.
-  core.List<core.int> parent;
+  core.List<core.int>? parent;
 
   /// If the annotation was made by processor identify the processor by its
   /// resource name.
-  core.String processor;
+  core.String? processor;
 
   GoogleCloudDocumentaiV1beta2DocumentRevision();
 
@@ -4917,13 +4891,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (agent != null) 'agent': agent,
-        if (createTime != null) 'createTime': createTime,
-        if (humanReview != null) 'humanReview': humanReview.toJson(),
-        if (id != null) 'id': id,
-        if (parent != null) 'parent': parent,
-        if (processor != null) 'processor': processor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (agent != null) 'agent': agent!,
+        if (createTime != null) 'createTime': createTime!,
+        if (humanReview != null) 'humanReview': humanReview!.toJson(),
+        if (id != null) 'id': id!,
+        if (parent != null) 'parent': parent!,
+        if (processor != null) 'processor': processor!,
       };
 }
 
@@ -4932,12 +4906,12 @@
   /// Human review state.
   ///
   /// e.g. `requested`, `succeeded`, `rejected`.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
   ///
   /// For example, the rejection reason when the state is `rejected`.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   GoogleCloudDocumentaiV1beta2DocumentRevisionHumanReview();
 
@@ -4951,9 +4925,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
       };
 }
 
@@ -4963,14 +4937,14 @@
 /// Each document shard contains this field to detail which shard it is.
 class GoogleCloudDocumentaiV1beta2DocumentShardInfo {
   /// Total number of shards.
-  core.String shardCount;
+  core.String? shardCount;
 
   /// The 0-based index of this shard.
-  core.String shardIndex;
+  core.String? shardIndex;
 
   /// The index of the first character in Document.text in the overall document
   /// global text.
-  core.String textOffset;
+  core.String? textOffset;
 
   GoogleCloudDocumentaiV1beta2DocumentShardInfo();
 
@@ -4986,10 +4960,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (shardCount != null) 'shardCount': shardCount,
-        if (shardIndex != null) 'shardIndex': shardIndex,
-        if (textOffset != null) 'textOffset': textOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (shardCount != null) 'shardCount': shardCount!,
+        if (shardIndex != null) 'shardIndex': shardIndex!,
+        if (textOffset != null) 'textOffset': textOffset!,
       };
 }
 
@@ -4998,34 +4972,34 @@
 /// This adheres to CSS conventions as much as possible.
 class GoogleCloudDocumentaiV1beta2DocumentStyle {
   /// Text background color.
-  GoogleTypeColor backgroundColor;
+  GoogleTypeColor? backgroundColor;
 
   /// Text color.
-  GoogleTypeColor color;
+  GoogleTypeColor? color;
 
   /// Font size.
-  GoogleCloudDocumentaiV1beta2DocumentStyleFontSize fontSize;
+  GoogleCloudDocumentaiV1beta2DocumentStyleFontSize? fontSize;
 
   /// Font weight.
   ///
   /// Possible values are normal, bold, bolder, and lighter.
   /// https://www.w3schools.com/cssref/pr_font_weight.asp
-  core.String fontWeight;
+  core.String? fontWeight;
 
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta2DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta2DocumentTextAnchor? textAnchor;
 
   /// Text decoration.
   ///
   /// Follows CSS standard.
   /// https://www.w3schools.com/cssref/pr_text_text-decoration.asp
-  core.String textDecoration;
+  core.String? textDecoration;
 
   /// Text style.
   ///
   /// Possible values are normal, italic, and oblique.
   /// https://www.w3schools.com/cssref/pr_font_font-style.asp
-  core.String textStyle;
+  core.String? textStyle;
 
   GoogleCloudDocumentaiV1beta2DocumentStyle();
 
@@ -5057,27 +5031,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (backgroundColor != null)
-          'backgroundColor': backgroundColor.toJson(),
-        if (color != null) 'color': color.toJson(),
-        if (fontSize != null) 'fontSize': fontSize.toJson(),
-        if (fontWeight != null) 'fontWeight': fontWeight,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (textDecoration != null) 'textDecoration': textDecoration,
-        if (textStyle != null) 'textStyle': textStyle,
+          'backgroundColor': backgroundColor!.toJson(),
+        if (color != null) 'color': color!.toJson(),
+        if (fontSize != null) 'fontSize': fontSize!.toJson(),
+        if (fontWeight != null) 'fontWeight': fontWeight!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (textDecoration != null) 'textDecoration': textDecoration!,
+        if (textStyle != null) 'textStyle': textStyle!,
       };
 }
 
 /// Font size with unit.
 class GoogleCloudDocumentaiV1beta2DocumentStyleFontSize {
   /// Font size for the text.
-  core.double size;
+  core.double? size;
 
   /// Unit for the font size.
   ///
   /// Follows CSS naming (in, px, pt, etc.).
-  core.String unit;
+  core.String? unit;
 
   GoogleCloudDocumentaiV1beta2DocumentStyleFontSize();
 
@@ -5090,9 +5064,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (size != null) 'size': size,
-        if (unit != null) 'unit': unit,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (size != null) 'size': size!,
+        if (unit != null) 'unit': unit!,
       };
 }
 
@@ -5100,10 +5074,10 @@
 class GoogleCloudDocumentaiV1beta2DocumentTextAnchor {
   /// Contains the content of the text span so that users do not have to look it
   /// up in the text_segments.
-  core.String content;
+  core.String? content;
 
   /// The text segments from the Document.text.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentTextAnchorTextSegment>
+  core.List<GoogleCloudDocumentaiV1beta2DocumentTextAnchorTextSegment>?
       textSegments;
 
   GoogleCloudDocumentaiV1beta2DocumentTextAnchor();
@@ -5122,10 +5096,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
         if (textSegments != null)
-          'textSegments': textSegments.map((value) => value.toJson()).toList(),
+          'textSegments': textSegments!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5136,10 +5110,10 @@
 /// ShardInfo.text_offset
 class GoogleCloudDocumentaiV1beta2DocumentTextAnchorTextSegment {
   /// TextSegment half open end UTF-8 char index in the Document.text.
-  core.String endIndex;
+  core.String? endIndex;
 
   /// TextSegment start UTF-8 char index in the Document.text.
-  core.String startIndex;
+  core.String? startIndex;
 
   GoogleCloudDocumentaiV1beta2DocumentTextAnchorTextSegment();
 
@@ -5153,9 +5127,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endIndex != null) 'endIndex': endIndex,
-        if (startIndex != null) 'startIndex': startIndex,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endIndex != null) 'endIndex': endIndex!,
+        if (startIndex != null) 'startIndex': startIndex!,
       };
 }
 
@@ -5164,17 +5138,17 @@
 /// OCR corrections.
 class GoogleCloudDocumentaiV1beta2DocumentTextChange {
   /// The text that replaces the text identified in the `text_anchor`.
-  core.String changedText;
+  core.String? changedText;
 
   /// The history of this annotation.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentProvenance> provenance;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentProvenance>? provenance;
 
   /// Provenance of the correction.
   ///
   /// Text anchor indexing into the Document.text. There can only be a single
   /// `TextAnchor.text_segments` element. If the start and end index of the text
   /// segment are the same, the text change is inserted before that index.
-  GoogleCloudDocumentaiV1beta2DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta2DocumentTextAnchor? textAnchor;
 
   GoogleCloudDocumentaiV1beta2DocumentTextChange();
 
@@ -5195,11 +5169,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (changedText != null) 'changedText': changedText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (changedText != null) 'changedText': changedText!,
         if (provenance != null)
-          'provenance': provenance.map((value) => value.toJson()).toList(),
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
+          'provenance': provenance!.map((value) => value.toJson()).toList(),
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
       };
 }
 
@@ -5209,20 +5183,20 @@
   ///
   /// For more information, see
   /// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// The history of this annotation.
-  core.List<GoogleCloudDocumentaiV1beta2DocumentProvenance> provenance;
+  core.List<GoogleCloudDocumentaiV1beta2DocumentProvenance>? provenance;
 
   /// Provenance of the translation.
   ///
   /// Text anchor indexing into the Document.text. There can only be a single
   /// `TextAnchor.text_segments` element. If the start and end index of the text
   /// segment are the same, the text change is inserted before that index.
-  GoogleCloudDocumentaiV1beta2DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta2DocumentTextAnchor? textAnchor;
 
   /// Text translated into the target language.
-  core.String translatedText;
+  core.String? translatedText;
 
   GoogleCloudDocumentaiV1beta2DocumentTranslation();
 
@@ -5246,18 +5220,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (languageCode != null) 'languageCode': languageCode!,
         if (provenance != null)
-          'provenance': provenance.map((value) => value.toJson()).toList(),
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (translatedText != null) 'translatedText': translatedText,
+          'provenance': provenance!.map((value) => value.toJson()).toList(),
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (translatedText != null) 'translatedText': translatedText!,
       };
 }
 
 /// The Google Cloud Storage location where the output file will be written to.
 class GoogleCloudDocumentaiV1beta2GcsDestination {
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta2GcsDestination();
 
@@ -5267,14 +5241,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (uri != null) 'uri': uri!,
       };
 }
 
 /// The Google Cloud Storage location where the input file will be read from.
 class GoogleCloudDocumentaiV1beta2GcsSource {
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta2GcsSource();
 
@@ -5284,8 +5258,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -5296,8 +5270,8 @@
   /// Note: As with all `bytes` fields, proto buffer messages use a pure binary
   /// representation, whereas JSON representations use base64. This field only
   /// works for synchronous ProcessDocument method.
-  core.String contents;
-  core.List<core.int> get contentsAsBytes => convert.base64.decode(contents);
+  core.String? contents;
+  core.List<core.int> get contentsAsBytes => convert.base64.decode(contents!);
 
   set contentsAsBytes(core.List<core.int> _bytes) {
     contents =
@@ -5307,7 +5281,7 @@
   /// The Google Cloud Storage location to read the input from.
   ///
   /// This must be a single file.
-  GoogleCloudDocumentaiV1beta2GcsSource gcsSource;
+  GoogleCloudDocumentaiV1beta2GcsSource? gcsSource;
 
   /// Mimetype of the input.
   ///
@@ -5317,7 +5291,7 @@
   /// to be in Document format.
   ///
   /// Required.
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDocumentaiV1beta2InputConfig();
 
@@ -5334,10 +5308,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contents != null) 'contents': contents,
-        if (gcsSource != null) 'gcsSource': gcsSource.toJson(),
-        if (mimeType != null) 'mimeType': mimeType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contents != null) 'contents': contents!,
+        if (gcsSource != null) 'gcsSource': gcsSource!.toJson(),
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
@@ -5347,10 +5321,10 @@
 /// and range from 0 to 1.
 class GoogleCloudDocumentaiV1beta2NormalizedVertex {
   /// X coordinate.
-  core.double x;
+  core.double? x;
 
   /// Y coordinate.
-  core.double y;
+  core.double? y;
 
   GoogleCloudDocumentaiV1beta2NormalizedVertex();
 
@@ -5363,16 +5337,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
 /// Contains metadata for the BatchProcessDocuments operation.
 class GoogleCloudDocumentaiV1beta2OperationMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The state of the current batch processing.
   /// Possible string values are:
@@ -5384,13 +5358,13 @@
   /// - "SUCCEEDED" : The batch processing completed successfully.
   /// - "CANCELLED" : The batch processing was cancelled.
   /// - "FAILED" : The batch processing has failed.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1beta2OperationMetadata();
 
@@ -5409,18 +5383,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// The desired output location and metadata.
 class GoogleCloudDocumentaiV1beta2OutputConfig {
   /// The Google Cloud Storage location to write the output to.
-  GoogleCloudDocumentaiV1beta2GcsDestination gcsDestination;
+  GoogleCloudDocumentaiV1beta2GcsDestination? gcsDestination;
 
   /// The max number of pages to include into each output Document shard JSON on
   /// Google Cloud Storage.
@@ -5433,7 +5407,7 @@
   /// y are 1-indexed page numbers. Example GCS outputs with 157 pages and
   /// pages_per_shard = 50: pages-001-to-050.json pages-051-to-100.json
   /// pages-101-to-150.json pages-151-to-157.json
-  core.int pagesPerShard;
+  core.int? pagesPerShard;
 
   GoogleCloudDocumentaiV1beta2OutputConfig();
 
@@ -5447,9 +5421,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination.toJson(),
-        if (pagesPerShard != null) 'pagesPerShard': pagesPerShard,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!.toJson(),
+        if (pagesPerShard != null) 'pagesPerShard': pagesPerShard!,
       };
 }
 
@@ -5458,13 +5432,13 @@
   /// Information about the input file.
   ///
   /// This is the same as the corresponding input config in the request.
-  GoogleCloudDocumentaiV1beta2InputConfig inputConfig;
+  GoogleCloudDocumentaiV1beta2InputConfig? inputConfig;
 
   /// The output location of the parsed responses.
   ///
   /// The responses are written to this location as JSON-serialized `Document`
   /// objects.
-  GoogleCloudDocumentaiV1beta2OutputConfig outputConfig;
+  GoogleCloudDocumentaiV1beta2OutputConfig? outputConfig;
 
   GoogleCloudDocumentaiV1beta2ProcessDocumentResponse();
 
@@ -5479,9 +5453,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inputConfig != null) 'inputConfig': inputConfig.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inputConfig != null) 'inputConfig': inputConfig!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
       };
 }
 
@@ -5490,10 +5464,10 @@
 /// NOTE: the vertex coordinates are in the same scale as the original image.
 class GoogleCloudDocumentaiV1beta2Vertex {
   /// X coordinate.
-  core.int x;
+  core.int? x;
 
   /// Y coordinate.
-  core.int y;
+  core.int? y;
 
   GoogleCloudDocumentaiV1beta2Vertex();
 
@@ -5506,20 +5480,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
 /// The common config to specify a set of documents used as input.
 class GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig {
   /// The set of documents individually specified on Cloud Storage.
-  GoogleCloudDocumentaiV1beta3GcsDocuments gcsDocuments;
+  GoogleCloudDocumentaiV1beta3GcsDocuments? gcsDocuments;
 
   /// The set of documents that match the specified Cloud Storage
   /// \[gcs_prefix\].
-  GoogleCloudDocumentaiV1beta3GcsPrefix gcsPrefix;
+  GoogleCloudDocumentaiV1beta3GcsPrefix? gcsPrefix;
 
   GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig();
 
@@ -5535,20 +5509,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDocuments != null) 'gcsDocuments': gcsDocuments.toJson(),
-        if (gcsPrefix != null) 'gcsPrefix': gcsPrefix.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDocuments != null) 'gcsDocuments': gcsDocuments!.toJson(),
+        if (gcsPrefix != null) 'gcsPrefix': gcsPrefix!.toJson(),
       };
 }
 
 /// The long running operation metadata for batch process method.
 class GoogleCloudDocumentaiV1beta3BatchProcessMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The list of response details of each document.
   core.List<
-          GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus>
+          GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus>?
       individualProcessStatuses;
 
   /// The state of the current batch processing.
@@ -5561,15 +5535,15 @@
   /// - "CANCELLING" : The batch processing was being cancelled.
   /// - "CANCELLED" : The batch processing was cancelled.
   /// - "FAILED" : The batch processing has failed.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
   ///
   /// For example, the error message if the operation is failed.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1beta3BatchProcessMetadata();
 
@@ -5597,14 +5571,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
         if (individualProcessStatuses != null)
-          'individualProcessStatuses':
-              individualProcessStatuses.map((value) => value.toJson()).toList(),
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+          'individualProcessStatuses': individualProcessStatuses!
+              .map((value) => value.toJson())
+              .toList(),
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -5615,24 +5590,24 @@
   /// If the human review process is not triggered, this field will be empty. It
   /// has the same response type and metadata as the long running operation
   /// returned by ReviewDocument method.
-  core.String humanReviewOperation;
+  core.String? humanReviewOperation;
 
   /// The status of human review on the processed document.
-  GoogleCloudDocumentaiV1beta3HumanReviewStatus humanReviewStatus;
+  GoogleCloudDocumentaiV1beta3HumanReviewStatus? humanReviewStatus;
 
   /// The source of the document, same as the \[input_gcs_source\] field in the
   /// request when the batch process started.
   ///
   /// The batch process is started by take snapshot of that document, since a
   /// user can move or change that document during the process.
-  core.String inputGcsSource;
+  core.String? inputGcsSource;
 
   /// The output_gcs_destination (in the request as 'output_gcs_destination') of
   /// the processed document if it was successful, otherwise empty.
-  core.String outputGcsDestination;
+  core.String? outputGcsDestination;
 
   /// The status of the processing of the document.
-  GoogleRpcStatus status;
+  GoogleRpcStatus? status;
 
   GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus();
 
@@ -5659,37 +5634,38 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (humanReviewOperation != null)
-          'humanReviewOperation': humanReviewOperation,
+          'humanReviewOperation': humanReviewOperation!,
         if (humanReviewStatus != null)
-          'humanReviewStatus': humanReviewStatus.toJson(),
-        if (inputGcsSource != null) 'inputGcsSource': inputGcsSource,
+          'humanReviewStatus': humanReviewStatus!.toJson(),
+        if (inputGcsSource != null) 'inputGcsSource': inputGcsSource!,
         if (outputGcsDestination != null)
-          'outputGcsDestination': outputGcsDestination,
-        if (status != null) 'status': status.toJson(),
+          'outputGcsDestination': outputGcsDestination!,
+        if (status != null) 'status': status!.toJson(),
       };
 }
 
 /// Request message for batch process document method.
 class GoogleCloudDocumentaiV1beta3BatchProcessRequest {
   /// The overall output config for batch process.
-  GoogleCloudDocumentaiV1beta3DocumentOutputConfig documentOutputConfig;
+  GoogleCloudDocumentaiV1beta3DocumentOutputConfig? documentOutputConfig;
 
   /// The input config for each single document in the batch process.
-  core.List<GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig>
+  core.List<GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig>?
       inputConfigs;
 
   /// The input documents for batch process.
-  GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig inputDocuments;
+  GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig? inputDocuments;
 
   /// The overall output config for batch process.
-  GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig outputConfig;
+  GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig?
+      outputConfig;
 
   /// Whether Human Review feature should be skipped for this request.
   ///
   /// Default to false.
-  core.bool skipHumanReview;
+  core.bool? skipHumanReview;
 
   GoogleCloudDocumentaiV1beta3BatchProcessRequest();
 
@@ -5724,28 +5700,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (documentOutputConfig != null)
-          'documentOutputConfig': documentOutputConfig.toJson(),
+          'documentOutputConfig': documentOutputConfig!.toJson(),
         if (inputConfigs != null)
-          'inputConfigs': inputConfigs.map((value) => value.toJson()).toList(),
-        if (inputDocuments != null) 'inputDocuments': inputDocuments.toJson(),
-        if (outputConfig != null) 'outputConfig': outputConfig.toJson(),
-        if (skipHumanReview != null) 'skipHumanReview': skipHumanReview,
+          'inputConfigs': inputConfigs!.map((value) => value.toJson()).toList(),
+        if (inputDocuments != null) 'inputDocuments': inputDocuments!.toJson(),
+        if (outputConfig != null) 'outputConfig': outputConfig!.toJson(),
+        if (skipHumanReview != null) 'skipHumanReview': skipHumanReview!,
       };
 }
 
 /// The message for input config in batch process.
 class GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig {
   /// The Cloud Storage location as the source of the document.
-  core.String gcsSource;
+  core.String? gcsSource;
 
   /// Mimetype of the input.
   ///
   /// If the input is a raw document, the supported mimetypes are
   /// application/pdf, image/tiff, and image/gif. If the input is a \[Document\]
   /// proto, the type should be application/json.
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchInputConfig();
 
@@ -5759,16 +5735,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsSource != null) 'gcsSource': gcsSource,
-        if (mimeType != null) 'mimeType': mimeType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsSource != null) 'gcsSource': gcsSource!,
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
 /// The message for output config in batch process.
 class GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig {
   /// The output Cloud Storage directory to put the processed documents.
-  core.String gcsDestination;
+  core.String? gcsDestination;
 
   GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig();
 
@@ -5779,8 +5755,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!,
       };
 }
 
@@ -5792,16 +5768,16 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A bounding polygon for the detected image annotation.
 class GoogleCloudDocumentaiV1beta3BoundingPoly {
   /// The bounding polygon normalized vertices.
-  core.List<GoogleCloudDocumentaiV1beta3NormalizedVertex> normalizedVertices;
+  core.List<GoogleCloudDocumentaiV1beta3NormalizedVertex>? normalizedVertices;
 
   /// The bounding polygon vertices.
-  core.List<GoogleCloudDocumentaiV1beta3Vertex> vertices;
+  core.List<GoogleCloudDocumentaiV1beta3Vertex>? vertices;
 
   GoogleCloudDocumentaiV1beta3BoundingPoly();
 
@@ -5822,19 +5798,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (normalizedVertices != null)
           'normalizedVertices':
-              normalizedVertices.map((value) => value.toJson()).toList(),
+              normalizedVertices!.map((value) => value.toJson()).toList(),
         if (vertices != null)
-          'vertices': vertices.map((value) => value.toJson()).toList(),
+          'vertices': vertices!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// The common metadata for long running operations.
 class GoogleCloudDocumentaiV1beta3CommonOperationMetadata {
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// The state of the operation.
   /// Possible string values are:
@@ -5844,13 +5820,13 @@
   /// - "SUCCEEDED" : Operation succeeded.
   /// - "FAILED" : Operation failed.
   /// - "CANCELLED" : Operation is cancelled.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1beta3CommonOperationMetadata();
 
@@ -5869,11 +5845,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -5888,8 +5864,8 @@
   ///
   /// Note: As with all `bytes` fields, protobuffers use a pure binary
   /// representation, whereas JSON representations use base64.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -5899,48 +5875,49 @@
   /// A list of entities detected on Document.text.
   ///
   /// For document shards, entities in this list may cross shard boundaries.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentEntity> entities;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentEntity>? entities;
 
   /// Relationship among Document.entities.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentEntityRelation> entityRelations;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentEntityRelation>?
+      entityRelations;
 
   /// Any error that occurred while processing this document.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// An IANA published MIME type (also referred to as media type).
   ///
   /// For more information, see
   /// https://www.iana.org/assignments/media-types/media-types.xhtml.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Visual page layout for the Document.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPage> pages;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPage>? pages;
 
   /// Revision history of this document.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentRevision> revisions;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentRevision>? revisions;
 
   /// Information about the sharding if this document is sharded part of a
   /// larger document.
   ///
   /// If the document is not sharded, this message is not specified.
-  GoogleCloudDocumentaiV1beta3DocumentShardInfo shardInfo;
+  GoogleCloudDocumentaiV1beta3DocumentShardInfo? shardInfo;
 
   /// UTF-8 encoded text in reading order from the document.
-  core.String text;
+  core.String? text;
 
   /// A list of text corrections made to \[Document.text\].
   ///
   /// This is usually used for annotating corrections to OCR mistakes. Text
   /// changes for a given revision may not overlap with each other.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentTextChange> textChanges;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentTextChange>? textChanges;
 
   /// Styles for the Document.text.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentStyle> textStyles;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentStyle>? textStyles;
 
   /// A list of translations on Document.text.
   ///
   /// For document shards, translations in this list may cross shard boundaries.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentTranslation> translations;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentTranslation>? translations;
 
   /// Currently supports Google Cloud Storage URI of the form
   /// `gs://bucket_name/object_name`.
@@ -5948,7 +5925,7 @@
   /// Object versioning is not supported. See
   /// [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris)
   /// for more info.
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudDocumentaiV1beta3Document();
 
@@ -6024,28 +6001,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
         if (entities != null)
-          'entities': entities.map((value) => value.toJson()).toList(),
+          'entities': entities!.map((value) => value.toJson()).toList(),
         if (entityRelations != null)
           'entityRelations':
-              entityRelations.map((value) => value.toJson()).toList(),
-        if (error != null) 'error': error.toJson(),
-        if (mimeType != null) 'mimeType': mimeType,
+              entityRelations!.map((value) => value.toJson()).toList(),
+        if (error != null) 'error': error!.toJson(),
+        if (mimeType != null) 'mimeType': mimeType!,
         if (pages != null)
-          'pages': pages.map((value) => value.toJson()).toList(),
+          'pages': pages!.map((value) => value.toJson()).toList(),
         if (revisions != null)
-          'revisions': revisions.map((value) => value.toJson()).toList(),
-        if (shardInfo != null) 'shardInfo': shardInfo.toJson(),
-        if (text != null) 'text': text,
+          'revisions': revisions!.map((value) => value.toJson()).toList(),
+        if (shardInfo != null) 'shardInfo': shardInfo!.toJson(),
+        if (text != null) 'text': text!,
         if (textChanges != null)
-          'textChanges': textChanges.map((value) => value.toJson()).toList(),
+          'textChanges': textChanges!.map((value) => value.toJson()).toList(),
         if (textStyles != null)
-          'textStyles': textStyles.map((value) => value.toJson()).toList(),
+          'textStyles': textStyles!.map((value) => value.toJson()).toList(),
         if (translations != null)
-          'translations': translations.map((value) => value.toJson()).toList(),
-        if (uri != null) 'uri': uri,
+          'translations': translations!.map((value) => value.toJson()).toList(),
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -6057,22 +6034,22 @@
   /// Range \[0, 1\].
   ///
   /// Optional.
-  core.double confidence;
+  core.double? confidence;
 
   /// Canonical id.
   ///
   /// This will be a unique value in the entity list for this document.
   ///
   /// Optional.
-  core.String id;
+  core.String? id;
 
   /// Use `id` field instead.
   ///
   /// Deprecated.
-  core.String mentionId;
+  core.String? mentionId;
 
   /// Text value in the document e.g. `1600 Amphitheatre Pkwy`.
-  core.String mentionText;
+  core.String? mentionText;
 
   /// Normalized entity value.
   ///
@@ -6081,38 +6058,38 @@
   /// populated for certain supported document types.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta3DocumentEntityNormalizedValue normalizedValue;
+  GoogleCloudDocumentaiV1beta3DocumentEntityNormalizedValue? normalizedValue;
 
   /// Represents the provenance of this entity wrt.
   ///
   /// the location on the page where it was found.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta3DocumentPageAnchor pageAnchor;
+  GoogleCloudDocumentaiV1beta3DocumentPageAnchor? pageAnchor;
 
   /// Entities can be nested to form a hierarchical data structure representing
   /// the content in the document.
   ///
   /// Optional.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentEntity> properties;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentEntity>? properties;
 
   /// The history of this annotation.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta3DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta3DocumentProvenance? provenance;
 
   /// Whether the entity will be redacted for de-identification purposes.
   ///
   /// Optional.
-  core.bool redacted;
+  core.bool? redacted;
 
   /// Provenance of the entity.
   ///
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta3DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta3DocumentTextAnchor? textAnchor;
 
   /// Entity type from a schema e.g. `Address`.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta3DocumentEntity();
 
@@ -6161,20 +6138,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (confidence != null) 'confidence': confidence,
-        if (id != null) 'id': id,
-        if (mentionId != null) 'mentionId': mentionId,
-        if (mentionText != null) 'mentionText': mentionText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (confidence != null) 'confidence': confidence!,
+        if (id != null) 'id': id!,
+        if (mentionId != null) 'mentionId': mentionId!,
+        if (mentionText != null) 'mentionText': mentionText!,
         if (normalizedValue != null)
-          'normalizedValue': normalizedValue.toJson(),
-        if (pageAnchor != null) 'pageAnchor': pageAnchor.toJson(),
+          'normalizedValue': normalizedValue!.toJson(),
+        if (pageAnchor != null) 'pageAnchor': pageAnchor!.toJson(),
         if (properties != null)
-          'properties': properties.map((value) => value.toJson()).toList(),
-        if (provenance != null) 'provenance': provenance.toJson(),
-        if (redacted != null) 'redacted': redacted,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (type != null) 'type': type,
+          'properties': properties!.map((value) => value.toJson()).toList(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
+        if (redacted != null) 'redacted': redacted!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -6184,30 +6161,30 @@
   ///
   /// See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
-  GoogleTypePostalAddress addressValue;
+  GoogleTypePostalAddress? addressValue;
 
   /// Boolean value.
   ///
   /// Can be used for entities with binary values, or for checkboxes.
-  core.bool booleanValue;
+  core.bool? booleanValue;
 
   /// Date value.
   ///
   /// Includes year, month, day. See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
-  GoogleTypeDate dateValue;
+  GoogleTypeDate? dateValue;
 
   /// DateTime value.
   ///
   /// Includes date, time, and timezone. See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
-  GoogleTypeDateTime datetimeValue;
+  GoogleTypeDateTime? datetimeValue;
 
   /// Money value.
   ///
   /// See also:
   /// https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
-  GoogleTypeMoney moneyValue;
+  GoogleTypeMoney? moneyValue;
 
   /// Normalized entity value stored as a string.
   ///
@@ -6218,7 +6195,7 @@
   /// Datetime type (`datetime_value`) is in the ISO 8601 text format.
   ///
   /// Required.
-  core.String text;
+  core.String? text;
 
   GoogleCloudDocumentaiV1beta3DocumentEntityNormalizedValue();
 
@@ -6248,26 +6225,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (addressValue != null) 'addressValue': addressValue.toJson(),
-        if (booleanValue != null) 'booleanValue': booleanValue,
-        if (dateValue != null) 'dateValue': dateValue.toJson(),
-        if (datetimeValue != null) 'datetimeValue': datetimeValue.toJson(),
-        if (moneyValue != null) 'moneyValue': moneyValue.toJson(),
-        if (text != null) 'text': text,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (addressValue != null) 'addressValue': addressValue!.toJson(),
+        if (booleanValue != null) 'booleanValue': booleanValue!,
+        if (dateValue != null) 'dateValue': dateValue!.toJson(),
+        if (datetimeValue != null) 'datetimeValue': datetimeValue!.toJson(),
+        if (moneyValue != null) 'moneyValue': moneyValue!.toJson(),
+        if (text != null) 'text': text!,
       };
 }
 
 /// Relationship between Entities.
 class GoogleCloudDocumentaiV1beta3DocumentEntityRelation {
   /// Object entity id.
-  core.String objectId;
+  core.String? objectId;
 
   /// Relationship description.
-  core.String relation;
+  core.String? relation;
 
   /// Subject entity id.
-  core.String subjectId;
+  core.String? subjectId;
 
   GoogleCloudDocumentaiV1beta3DocumentEntityRelation();
 
@@ -6283,10 +6260,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (objectId != null) 'objectId': objectId,
-        if (relation != null) 'relation': relation,
-        if (subjectId != null) 'subjectId': subjectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (objectId != null) 'objectId': objectId!,
+        if (relation != null) 'relation': relation!,
+        if (subjectId != null) 'subjectId': subjectId!,
       };
 }
 
@@ -6295,7 +6272,7 @@
 /// All documents will be written as a JSON file.
 class GoogleCloudDocumentaiV1beta3DocumentOutputConfig {
   /// Output config to write the results to Cloud Storage.
-  GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig
+  GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig?
       gcsOutputConfig;
 
   GoogleCloudDocumentaiV1beta3DocumentOutputConfig();
@@ -6309,16 +6286,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (gcsOutputConfig != null)
-          'gcsOutputConfig': gcsOutputConfig.toJson(),
+          'gcsOutputConfig': gcsOutputConfig!.toJson(),
       };
 }
 
 /// The configuration used when outputting documents.
 class GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig {
   /// The Cloud Storage uri (a directory) of the output.
-  core.String gcsUri;
+  core.String? gcsUri;
 
   GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig();
 
@@ -6329,8 +6306,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsUri != null) 'gcsUri': gcsUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsUri != null) 'gcsUri': gcsUri!,
       };
 }
 
@@ -6340,56 +6317,56 @@
   ///
   /// A block has a set of lines (collected into paragraphs) that have a common
   /// line-spacing and orientation.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageBlock> blocks;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageBlock>? blocks;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Physical dimension of the page.
-  GoogleCloudDocumentaiV1beta3DocumentPageDimension dimension;
+  GoogleCloudDocumentaiV1beta3DocumentPageDimension? dimension;
 
   /// A list of visually detected form fields on the page.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageFormField> formFields;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageFormField>? formFields;
 
   /// Rendered image for this page.
   ///
   /// This image is preprocessed to remove any skew, rotation, and distortions
   /// such that the annotation bounding boxes can be upright and axis-aligned.
-  GoogleCloudDocumentaiV1beta3DocumentPageImage image;
+  GoogleCloudDocumentaiV1beta3DocumentPageImage? image;
 
   /// Layout for the page.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// A list of visually detected text lines on the page.
   ///
   /// A collection of tokens that a human would perceive as a line.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageLine> lines;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageLine>? lines;
 
   /// 1-based index for current Page in a parent Document.
   ///
   /// Useful when a page is taken out of a Document for individual processing.
-  core.int pageNumber;
+  core.int? pageNumber;
 
   /// A list of visually detected text paragraphs on the page.
   ///
   /// A collection of lines that a human would perceive as a paragraph.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageParagraph> paragraphs;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageParagraph>? paragraphs;
 
   /// A list of visually detected tables on the page.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTable> tables;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTable>? tables;
 
   /// A list of visually detected tokens on the page.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageToken> tokens;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageToken>? tokens;
 
   /// Transformation matrices that were applied to the original document image
   /// to produce Page.image.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageMatrix> transforms;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageMatrix>? transforms;
 
   /// A list of detected non-text visual elements e.g. checkbox, signature etc.
   ///
   /// on the page.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageVisualElement>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageVisualElement>?
       visualElements;
 
   GoogleCloudDocumentaiV1beta3DocumentPage();
@@ -6476,31 +6453,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (blocks != null)
-          'blocks': blocks.map((value) => value.toJson()).toList(),
+          'blocks': blocks!.map((value) => value.toJson()).toList(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (dimension != null) 'dimension': dimension.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (dimension != null) 'dimension': dimension!.toJson(),
         if (formFields != null)
-          'formFields': formFields.map((value) => value.toJson()).toList(),
-        if (image != null) 'image': image.toJson(),
-        if (layout != null) 'layout': layout.toJson(),
+          'formFields': formFields!.map((value) => value.toJson()).toList(),
+        if (image != null) 'image': image!.toJson(),
+        if (layout != null) 'layout': layout!.toJson(),
         if (lines != null)
-          'lines': lines.map((value) => value.toJson()).toList(),
-        if (pageNumber != null) 'pageNumber': pageNumber,
+          'lines': lines!.map((value) => value.toJson()).toList(),
+        if (pageNumber != null) 'pageNumber': pageNumber!,
         if (paragraphs != null)
-          'paragraphs': paragraphs.map((value) => value.toJson()).toList(),
+          'paragraphs': paragraphs!.map((value) => value.toJson()).toList(),
         if (tables != null)
-          'tables': tables.map((value) => value.toJson()).toList(),
+          'tables': tables!.map((value) => value.toJson()).toList(),
         if (tokens != null)
-          'tokens': tokens.map((value) => value.toJson()).toList(),
+          'tokens': tokens!.map((value) => value.toJson()).toList(),
         if (transforms != null)
-          'transforms': transforms.map((value) => value.toJson()).toList(),
+          'transforms': transforms!.map((value) => value.toJson()).toList(),
         if (visualElements != null)
           'visualElements':
-              visualElements.map((value) => value.toJson()).toList(),
+              visualElements!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6510,7 +6487,7 @@
 /// optionally reference specific layout element types.
 class GoogleCloudDocumentaiV1beta3DocumentPageAnchor {
   /// One or more references to visual page elements
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageAnchorPageRef> pageRefs;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageAnchorPageRef>? pageRefs;
 
   GoogleCloudDocumentaiV1beta3DocumentPageAnchor();
 
@@ -6524,9 +6501,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (pageRefs != null)
-          'pageRefs': pageRefs.map((value) => value.toJson()).toList(),
+          'pageRefs': pageRefs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6535,12 +6512,12 @@
   /// Identifies the bounding polygon of a layout element on the page.
   ///
   /// Optional.
-  GoogleCloudDocumentaiV1beta3BoundingPoly boundingPoly;
+  GoogleCloudDocumentaiV1beta3BoundingPoly? boundingPoly;
 
   /// Use PageRef.bounding_poly instead.
   ///
   /// Optional. Deprecated.
-  core.String layoutId;
+  core.String? layoutId;
 
   /// The type of the layout element that is being referenced if any.
   ///
@@ -6554,13 +6531,13 @@
   /// - "VISUAL_ELEMENT" : References a Page.visual_elements element.
   /// - "TABLE" : Refrrences a Page.tables element.
   /// - "FORM_FIELD" : References a Page.form_fields element.
-  core.String layoutType;
+  core.String? layoutType;
 
   /// Index into the Document.pages element, for example using Document.pages to
   /// locate the related page element.
   ///
   /// Required.
-  core.String page;
+  core.String? page;
 
   GoogleCloudDocumentaiV1beta3DocumentPageAnchorPageRef();
 
@@ -6581,11 +6558,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
-        if (layoutId != null) 'layoutId': layoutId,
-        if (layoutType != null) 'layoutType': layoutType,
-        if (page != null) 'page': page,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
+        if (layoutId != null) 'layoutId': layoutId!,
+        if (layoutType != null) 'layoutType': layoutType!,
+        if (page != null) 'page': page!,
       };
 }
 
@@ -6593,14 +6570,14 @@
 /// line-spacing and orientation.
 class GoogleCloudDocumentaiV1beta3DocumentPageBlock {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Block.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta3DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta3DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta3DocumentPageBlock();
 
@@ -6623,12 +6600,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -6637,13 +6614,13 @@
   /// Confidence of detected language.
   ///
   /// Range \[0, 1\].
-  core.double confidence;
+  core.double? confidence;
 
   /// The BCP-47 language code, such as "en-US" or "sr-Latn".
   ///
   /// For more information, see
   /// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-  core.String languageCode;
+  core.String? languageCode;
 
   GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage();
 
@@ -6657,22 +6634,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (confidence != null) 'confidence': confidence,
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (confidence != null) 'confidence': confidence!,
+        if (languageCode != null) 'languageCode': languageCode!,
       };
 }
 
 /// Dimension for the page.
 class GoogleCloudDocumentaiV1beta3DocumentPageDimension {
   /// Page height.
-  core.double height;
+  core.double? height;
 
   /// Dimension unit.
-  core.String unit;
+  core.String? unit;
 
   /// Page width.
-  core.double width;
+  core.double? width;
 
   GoogleCloudDocumentaiV1beta3DocumentPageDimension();
 
@@ -6688,10 +6665,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (unit != null) 'unit': unit,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (unit != null) 'unit': unit!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -6700,24 +6677,24 @@
   /// Layout for the FormField name.
   ///
   /// e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout fieldName;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? fieldName;
 
   /// Layout for the FormField value.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout fieldValue;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? fieldValue;
 
   /// A list of detected languages for name together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       nameDetectedLanguages;
 
   /// A list of detected languages for value together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       valueDetectedLanguages;
 
   /// If the value is non-textual, this field represents the type.
   ///
   /// Current valid values are: - blank (this indicates the field_value is
   /// normal text) - "unfilled_checkbox" - "filled_checkbox"
-  core.String valueType;
+  core.String? valueType;
 
   GoogleCloudDocumentaiV1beta3DocumentPageFormField();
 
@@ -6751,24 +6728,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fieldName != null) 'fieldName': fieldName.toJson(),
-        if (fieldValue != null) 'fieldValue': fieldValue.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fieldName != null) 'fieldName': fieldName!.toJson(),
+        if (fieldValue != null) 'fieldValue': fieldValue!.toJson(),
         if (nameDetectedLanguages != null)
           'nameDetectedLanguages':
-              nameDetectedLanguages.map((value) => value.toJson()).toList(),
+              nameDetectedLanguages!.map((value) => value.toJson()).toList(),
         if (valueDetectedLanguages != null)
           'valueDetectedLanguages':
-              valueDetectedLanguages.map((value) => value.toJson()).toList(),
-        if (valueType != null) 'valueType': valueType,
+              valueDetectedLanguages!.map((value) => value.toJson()).toList(),
+        if (valueType != null) 'valueType': valueType!,
       };
 }
 
 /// Rendered image contents for this page.
 class GoogleCloudDocumentaiV1beta3DocumentPageImage {
   /// Raw byte content of the image.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -6776,13 +6753,13 @@
   }
 
   /// Height of the image in pixels.
-  core.int height;
+  core.int? height;
 
   /// Encoding mime type for the image.
-  core.String mimeType;
+  core.String? mimeType;
 
   /// Width of the image in pixels.
-  core.int width;
+  core.int? width;
 
   GoogleCloudDocumentaiV1beta3DocumentPageImage();
 
@@ -6801,25 +6778,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
-        if (height != null) 'height': height,
-        if (mimeType != null) 'mimeType': mimeType,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
+        if (height != null) 'height': height!,
+        if (mimeType != null) 'mimeType': mimeType!,
+        if (width != null) 'width': width!,
       };
 }
 
 /// Visual element describing a layout unit on a page.
 class GoogleCloudDocumentaiV1beta3DocumentPageLayout {
   /// The bounding polygon for the Layout.
-  GoogleCloudDocumentaiV1beta3BoundingPoly boundingPoly;
+  GoogleCloudDocumentaiV1beta3BoundingPoly? boundingPoly;
 
   /// Confidence of the current Layout within context of the object this layout
   /// is for.
   ///
   /// e.g. confidence can be for a single token, a table, a visual element, etc.
   /// depending on context. Range \[0, 1\].
-  core.double confidence;
+  core.double? confidence;
 
   /// Detected orientation for the Layout.
   /// Possible string values are:
@@ -6831,10 +6808,10 @@
   /// degrees from upright to read.
   /// - "PAGE_LEFT" : Orientation is aligned with page left. Turn the head 90
   /// degrees counterclockwise from upright to read.
-  core.String orientation;
+  core.String? orientation;
 
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta3DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta3DocumentTextAnchor? textAnchor;
 
   GoogleCloudDocumentaiV1beta3DocumentPageLayout();
 
@@ -6855,11 +6832,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boundingPoly != null) 'boundingPoly': boundingPoly.toJson(),
-        if (confidence != null) 'confidence': confidence,
-        if (orientation != null) 'orientation': orientation,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boundingPoly != null) 'boundingPoly': boundingPoly!.toJson(),
+        if (confidence != null) 'confidence': confidence!,
+        if (orientation != null) 'orientation': orientation!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
       };
 }
 
@@ -6868,14 +6845,14 @@
 /// Does not cross column boundaries, can be horizontal, vertical, etc.
 class GoogleCloudDocumentaiV1beta3DocumentPageLine {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Line.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta3DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta3DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta3DocumentPageLine();
 
@@ -6898,12 +6875,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -6911,11 +6888,11 @@
 /// with OpenCV format for image manipulation.
 class GoogleCloudDocumentaiV1beta3DocumentPageMatrix {
   /// Number of columns in the matrix.
-  core.int cols;
+  core.int? cols;
 
   /// The matrix data.
-  core.String data;
-  core.List<core.int> get dataAsBytes => convert.base64.decode(data);
+  core.String? data;
+  core.List<core.int> get dataAsBytes => convert.base64.decode(data!);
 
   set dataAsBytes(core.List<core.int> _bytes) {
     data =
@@ -6923,14 +6900,14 @@
   }
 
   /// Number of rows in the matrix.
-  core.int rows;
+  core.int? rows;
 
   /// This encodes information about what data type the matrix uses.
   ///
   /// For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of
   /// OpenCV primitive data types, please refer to
   /// https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
-  core.int type;
+  core.int? type;
 
   GoogleCloudDocumentaiV1beta3DocumentPageMatrix();
 
@@ -6949,25 +6926,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cols != null) 'cols': cols,
-        if (data != null) 'data': data,
-        if (rows != null) 'rows': rows,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cols != null) 'cols': cols!,
+        if (data != null) 'data': data!,
+        if (rows != null) 'rows': rows!,
+        if (type != null) 'type': type!,
       };
 }
 
 /// A collection of lines that a human would perceive as a paragraph.
 class GoogleCloudDocumentaiV1beta3DocumentPageParagraph {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Paragraph.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta3DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta3DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta3DocumentPageParagraph();
 
@@ -6990,29 +6967,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
 /// A table representation similar to HTML table structure.
 class GoogleCloudDocumentaiV1beta3DocumentPageTable {
   /// Body rows of the table.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow> bodyRows;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow>? bodyRows;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Header rows of the table.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow> headerRows;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow>? headerRows;
 
   /// Layout for Table.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   GoogleCloudDocumentaiV1beta3DocumentPageTable();
 
@@ -7045,32 +7022,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bodyRows != null)
-          'bodyRows': bodyRows.map((value) => value.toJson()).toList(),
+          'bodyRows': bodyRows!.map((value) => value.toJson()).toList(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
         if (headerRows != null)
-          'headerRows': headerRows.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
+          'headerRows': headerRows!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
       };
 }
 
 /// A cell representation inside the table.
 class GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell {
   /// How many columns this cell spans.
-  core.int colSpan;
+  core.int? colSpan;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for TableCell.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// How many rows this cell spans.
-  core.int rowSpan;
+  core.int? rowSpan;
 
   GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell();
 
@@ -7096,20 +7073,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (colSpan != null) 'colSpan': colSpan,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (colSpan != null) 'colSpan': colSpan!,
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (rowSpan != null) 'rowSpan': rowSpan,
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (rowSpan != null) 'rowSpan': rowSpan!,
       };
 }
 
 /// A row of table cells.
 class GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow {
   /// Cells that make up this row.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell> cells;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageTableTableCell>? cells;
 
   GoogleCloudDocumentaiV1beta3DocumentPageTableTableRow();
 
@@ -7124,26 +7101,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (cells != null)
-          'cells': cells.map((value) => value.toJson()).toList(),
+          'cells': cells!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// A detected token.
 class GoogleCloudDocumentaiV1beta3DocumentPageToken {
   /// Detected break at the end of a Token.
-  GoogleCloudDocumentaiV1beta3DocumentPageTokenDetectedBreak detectedBreak;
+  GoogleCloudDocumentaiV1beta3DocumentPageTokenDetectedBreak? detectedBreak;
 
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for Token.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// The history of this annotation.
-  GoogleCloudDocumentaiV1beta3DocumentProvenance provenance;
+  GoogleCloudDocumentaiV1beta3DocumentProvenance? provenance;
 
   GoogleCloudDocumentaiV1beta3DocumentPageToken();
 
@@ -7171,13 +7148,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (detectedBreak != null) 'detectedBreak': detectedBreak.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (detectedBreak != null) 'detectedBreak': detectedBreak!.toJson(),
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (provenance != null) 'provenance': provenance.toJson(),
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (provenance != null) 'provenance': provenance!.toJson(),
       };
 }
 
@@ -7190,7 +7167,7 @@
   /// - "WIDE_SPACE" : A wider whitespace.
   /// - "HYPHEN" : A hyphen that indicates that a token has been split across
   /// lines.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta3DocumentPageTokenDetectedBreak();
 
@@ -7201,8 +7178,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (type != null) 'type': type!,
       };
 }
 
@@ -7211,14 +7188,14 @@
 /// on the page.
 class GoogleCloudDocumentaiV1beta3DocumentPageVisualElement {
   /// A list of detected languages together with confidence.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage>?
       detectedLanguages;
 
   /// Layout for VisualElement.
-  GoogleCloudDocumentaiV1beta3DocumentPageLayout layout;
+  GoogleCloudDocumentaiV1beta3DocumentPageLayout? layout;
 
   /// Type of the VisualElement.
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta3DocumentPageVisualElement();
 
@@ -7241,12 +7218,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (detectedLanguages != null)
           'detectedLanguages':
-              detectedLanguages.map((value) => value.toJson()).toList(),
-        if (layout != null) 'layout': layout.toJson(),
-        if (type != null) 'type': type,
+              detectedLanguages!.map((value) => value.toJson()).toList(),
+        if (layout != null) 'layout': layout!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
@@ -7256,13 +7233,13 @@
   /// The Id of this operation.
   ///
   /// Needs to be unique within the scope of the revision.
-  core.int id;
+  core.int? id;
 
   /// References to the original elements that are replaced.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentProvenanceParent> parents;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentProvenanceParent>? parents;
 
   /// The index of the revision that produced this element.
-  core.int revision;
+  core.int? revision;
 
   /// The type of provenance operation.
   /// Possible string values are:
@@ -7274,7 +7251,7 @@
   /// - "EVAL_REQUESTED" : Element is requested for human review.
   /// - "EVAL_APPROVED" : Element is review and approved at human review,
   /// confidence will be set to 1.0
-  core.String type;
+  core.String? type;
 
   GoogleCloudDocumentaiV1beta3DocumentProvenance();
 
@@ -7297,12 +7274,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
         if (parents != null)
-          'parents': parents.map((value) => value.toJson()).toList(),
-        if (revision != null) 'revision': revision,
-        if (type != null) 'type': type,
+          'parents': parents!.map((value) => value.toJson()).toList(),
+        if (revision != null) 'revision': revision!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -7312,10 +7289,10 @@
 /// identify the elements that are replaced.
 class GoogleCloudDocumentaiV1beta3DocumentProvenanceParent {
   /// The id of the parent provenance.
-  core.int id;
+  core.int? id;
 
   /// The index of the \[Document.revisions\] identifying the parent revision.
-  core.int revision;
+  core.int? revision;
 
   GoogleCloudDocumentaiV1beta3DocumentProvenanceParent();
 
@@ -7329,37 +7306,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (revision != null) 'revision': revision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (revision != null) 'revision': revision!,
       };
 }
 
 /// Contains past or forward revisions of this document.
 class GoogleCloudDocumentaiV1beta3DocumentRevision {
   /// If the change was made by a person specify the name or id of that person.
-  core.String agent;
+  core.String? agent;
 
   /// The time that the revision was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// Human Review information of this revision.
-  GoogleCloudDocumentaiV1beta3DocumentRevisionHumanReview humanReview;
+  GoogleCloudDocumentaiV1beta3DocumentRevisionHumanReview? humanReview;
 
   /// Id of the revision.
   ///
   /// Unique within the context of the document.
-  core.String id;
+  core.String? id;
 
   /// The revisions that this revision is based on.
   ///
   /// This can include one or more parent (when documents are merged.) This
   /// field represents the index into the `revisions` field.
-  core.List<core.int> parent;
+  core.List<core.int>? parent;
 
   /// If the annotation was made by processor identify the processor by its
   /// resource name.
-  core.String processor;
+  core.String? processor;
 
   GoogleCloudDocumentaiV1beta3DocumentRevision();
 
@@ -7388,13 +7365,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (agent != null) 'agent': agent,
-        if (createTime != null) 'createTime': createTime,
-        if (humanReview != null) 'humanReview': humanReview.toJson(),
-        if (id != null) 'id': id,
-        if (parent != null) 'parent': parent,
-        if (processor != null) 'processor': processor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (agent != null) 'agent': agent!,
+        if (createTime != null) 'createTime': createTime!,
+        if (humanReview != null) 'humanReview': humanReview!.toJson(),
+        if (id != null) 'id': id!,
+        if (parent != null) 'parent': parent!,
+        if (processor != null) 'processor': processor!,
       };
 }
 
@@ -7403,12 +7380,12 @@
   /// Human review state.
   ///
   /// e.g. `requested`, `succeeded`, `rejected`.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
   ///
   /// For example, the rejection reason when the state is `rejected`.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   GoogleCloudDocumentaiV1beta3DocumentRevisionHumanReview();
 
@@ -7422,9 +7399,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
       };
 }
 
@@ -7434,14 +7411,14 @@
 /// Each document shard contains this field to detail which shard it is.
 class GoogleCloudDocumentaiV1beta3DocumentShardInfo {
   /// Total number of shards.
-  core.String shardCount;
+  core.String? shardCount;
 
   /// The 0-based index of this shard.
-  core.String shardIndex;
+  core.String? shardIndex;
 
   /// The index of the first character in Document.text in the overall document
   /// global text.
-  core.String textOffset;
+  core.String? textOffset;
 
   GoogleCloudDocumentaiV1beta3DocumentShardInfo();
 
@@ -7457,10 +7434,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (shardCount != null) 'shardCount': shardCount,
-        if (shardIndex != null) 'shardIndex': shardIndex,
-        if (textOffset != null) 'textOffset': textOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (shardCount != null) 'shardCount': shardCount!,
+        if (shardIndex != null) 'shardIndex': shardIndex!,
+        if (textOffset != null) 'textOffset': textOffset!,
       };
 }
 
@@ -7469,34 +7446,34 @@
 /// This adheres to CSS conventions as much as possible.
 class GoogleCloudDocumentaiV1beta3DocumentStyle {
   /// Text background color.
-  GoogleTypeColor backgroundColor;
+  GoogleTypeColor? backgroundColor;
 
   /// Text color.
-  GoogleTypeColor color;
+  GoogleTypeColor? color;
 
   /// Font size.
-  GoogleCloudDocumentaiV1beta3DocumentStyleFontSize fontSize;
+  GoogleCloudDocumentaiV1beta3DocumentStyleFontSize? fontSize;
 
   /// Font weight.
   ///
   /// Possible values are normal, bold, bolder, and lighter.
   /// https://www.w3schools.com/cssref/pr_font_weight.asp
-  core.String fontWeight;
+  core.String? fontWeight;
 
   /// Text anchor indexing into the Document.text.
-  GoogleCloudDocumentaiV1beta3DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta3DocumentTextAnchor? textAnchor;
 
   /// Text decoration.
   ///
   /// Follows CSS standard.
   /// https://www.w3schools.com/cssref/pr_text_text-decoration.asp
-  core.String textDecoration;
+  core.String? textDecoration;
 
   /// Text style.
   ///
   /// Possible values are normal, italic, and oblique.
   /// https://www.w3schools.com/cssref/pr_font_font-style.asp
-  core.String textStyle;
+  core.String? textStyle;
 
   GoogleCloudDocumentaiV1beta3DocumentStyle();
 
@@ -7528,27 +7505,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (backgroundColor != null)
-          'backgroundColor': backgroundColor.toJson(),
-        if (color != null) 'color': color.toJson(),
-        if (fontSize != null) 'fontSize': fontSize.toJson(),
-        if (fontWeight != null) 'fontWeight': fontWeight,
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (textDecoration != null) 'textDecoration': textDecoration,
-        if (textStyle != null) 'textStyle': textStyle,
+          'backgroundColor': backgroundColor!.toJson(),
+        if (color != null) 'color': color!.toJson(),
+        if (fontSize != null) 'fontSize': fontSize!.toJson(),
+        if (fontWeight != null) 'fontWeight': fontWeight!,
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (textDecoration != null) 'textDecoration': textDecoration!,
+        if (textStyle != null) 'textStyle': textStyle!,
       };
 }
 
 /// Font size with unit.
 class GoogleCloudDocumentaiV1beta3DocumentStyleFontSize {
   /// Font size for the text.
-  core.double size;
+  core.double? size;
 
   /// Unit for the font size.
   ///
   /// Follows CSS naming (in, px, pt, etc.).
-  core.String unit;
+  core.String? unit;
 
   GoogleCloudDocumentaiV1beta3DocumentStyleFontSize();
 
@@ -7561,9 +7538,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (size != null) 'size': size,
-        if (unit != null) 'unit': unit,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (size != null) 'size': size!,
+        if (unit != null) 'unit': unit!,
       };
 }
 
@@ -7571,10 +7548,10 @@
 class GoogleCloudDocumentaiV1beta3DocumentTextAnchor {
   /// Contains the content of the text span so that users do not have to look it
   /// up in the text_segments.
-  core.String content;
+  core.String? content;
 
   /// The text segments from the Document.text.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment>
+  core.List<GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment>?
       textSegments;
 
   GoogleCloudDocumentaiV1beta3DocumentTextAnchor();
@@ -7593,10 +7570,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
         if (textSegments != null)
-          'textSegments': textSegments.map((value) => value.toJson()).toList(),
+          'textSegments': textSegments!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -7607,10 +7584,10 @@
 /// ShardInfo.text_offset
 class GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment {
   /// TextSegment half open end UTF-8 char index in the Document.text.
-  core.String endIndex;
+  core.String? endIndex;
 
   /// TextSegment start UTF-8 char index in the Document.text.
-  core.String startIndex;
+  core.String? startIndex;
 
   GoogleCloudDocumentaiV1beta3DocumentTextAnchorTextSegment();
 
@@ -7624,9 +7601,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endIndex != null) 'endIndex': endIndex,
-        if (startIndex != null) 'startIndex': startIndex,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endIndex != null) 'endIndex': endIndex!,
+        if (startIndex != null) 'startIndex': startIndex!,
       };
 }
 
@@ -7635,17 +7612,17 @@
 /// OCR corrections.
 class GoogleCloudDocumentaiV1beta3DocumentTextChange {
   /// The text that replaces the text identified in the `text_anchor`.
-  core.String changedText;
+  core.String? changedText;
 
   /// The history of this annotation.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentProvenance> provenance;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentProvenance>? provenance;
 
   /// Provenance of the correction.
   ///
   /// Text anchor indexing into the Document.text. There can only be a single
   /// `TextAnchor.text_segments` element. If the start and end index of the text
   /// segment are the same, the text change is inserted before that index.
-  GoogleCloudDocumentaiV1beta3DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta3DocumentTextAnchor? textAnchor;
 
   GoogleCloudDocumentaiV1beta3DocumentTextChange();
 
@@ -7666,11 +7643,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (changedText != null) 'changedText': changedText,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (changedText != null) 'changedText': changedText!,
         if (provenance != null)
-          'provenance': provenance.map((value) => value.toJson()).toList(),
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
+          'provenance': provenance!.map((value) => value.toJson()).toList(),
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
       };
 }
 
@@ -7680,20 +7657,20 @@
   ///
   /// For more information, see
   /// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// The history of this annotation.
-  core.List<GoogleCloudDocumentaiV1beta3DocumentProvenance> provenance;
+  core.List<GoogleCloudDocumentaiV1beta3DocumentProvenance>? provenance;
 
   /// Provenance of the translation.
   ///
   /// Text anchor indexing into the Document.text. There can only be a single
   /// `TextAnchor.text_segments` element. If the start and end index of the text
   /// segment are the same, the text change is inserted before that index.
-  GoogleCloudDocumentaiV1beta3DocumentTextAnchor textAnchor;
+  GoogleCloudDocumentaiV1beta3DocumentTextAnchor? textAnchor;
 
   /// Text translated into the target language.
-  core.String translatedText;
+  core.String? translatedText;
 
   GoogleCloudDocumentaiV1beta3DocumentTranslation();
 
@@ -7717,22 +7694,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (languageCode != null) 'languageCode': languageCode!,
         if (provenance != null)
-          'provenance': provenance.map((value) => value.toJson()).toList(),
-        if (textAnchor != null) 'textAnchor': textAnchor.toJson(),
-        if (translatedText != null) 'translatedText': translatedText,
+          'provenance': provenance!.map((value) => value.toJson()).toList(),
+        if (textAnchor != null) 'textAnchor': textAnchor!.toJson(),
+        if (translatedText != null) 'translatedText': translatedText!,
       };
 }
 
 /// Specifies a document stored on Cloud Storage.
 class GoogleCloudDocumentaiV1beta3GcsDocument {
   /// The Cloud Storage object uri.
-  core.String gcsUri;
+  core.String? gcsUri;
 
   /// An IANA MIME type (RFC6838) of the content.
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDocumentaiV1beta3GcsDocument();
 
@@ -7745,16 +7722,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsUri != null) 'gcsUri': gcsUri,
-        if (mimeType != null) 'mimeType': mimeType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsUri != null) 'gcsUri': gcsUri!,
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
 /// Specifies a set of documents on Cloud Storage.
 class GoogleCloudDocumentaiV1beta3GcsDocuments {
   /// The list of documents.
-  core.List<GoogleCloudDocumentaiV1beta3GcsDocument> documents;
+  core.List<GoogleCloudDocumentaiV1beta3GcsDocument>? documents;
 
   GoogleCloudDocumentaiV1beta3GcsDocuments();
 
@@ -7768,16 +7745,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (documents != null)
-          'documents': documents.map((value) => value.toJson()).toList(),
+          'documents': documents!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Specifies all documents on Cloud Storage with a common prefix.
 class GoogleCloudDocumentaiV1beta3GcsPrefix {
   /// The URI prefix.
-  core.String gcsUriPrefix;
+  core.String? gcsUriPrefix;
 
   GoogleCloudDocumentaiV1beta3GcsPrefix();
 
@@ -7787,8 +7764,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsUriPrefix != null) 'gcsUriPrefix': gcsUriPrefix,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsUriPrefix != null) 'gcsUriPrefix': gcsUriPrefix!,
       };
 }
 
@@ -7799,7 +7776,7 @@
   /// This field is populated only when the \[state\] is
   /// \[HUMAN_REVIEW_IN_PROGRESS\]. It has the same response type and metadata
   /// as the long running operation returned by \[ReviewDocument\] method.
-  core.String humanReviewOperation;
+  core.String? humanReviewOperation;
 
   /// The state of human review on the processing request.
   /// Possible string values are:
@@ -7814,10 +7791,10 @@
   /// under review.
   /// - "ERROR" : Some error happened during triggering human review, see the
   /// \[state_message\] for details.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the human review state.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   GoogleCloudDocumentaiV1beta3HumanReviewStatus();
 
@@ -7833,11 +7810,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (humanReviewOperation != null)
-          'humanReviewOperation': humanReviewOperation,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
+          'humanReviewOperation': humanReviewOperation!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
       };
 }
 
@@ -7847,10 +7824,10 @@
 /// and range from 0 to 1.
 class GoogleCloudDocumentaiV1beta3NormalizedVertex {
   /// X coordinate.
-  core.double x;
+  core.double? x;
 
   /// Y coordinate.
-  core.double y;
+  core.double? y;
 
   GoogleCloudDocumentaiV1beta3NormalizedVertex();
 
@@ -7863,9 +7840,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
@@ -7873,18 +7850,18 @@
 class GoogleCloudDocumentaiV1beta3ProcessRequest {
   /// The document payload, the \[content\] and \[mime_type\] fields must be
   /// set.
-  GoogleCloudDocumentaiV1beta3Document document;
+  GoogleCloudDocumentaiV1beta3Document? document;
 
   /// An inline document proto.
-  GoogleCloudDocumentaiV1beta3Document inlineDocument;
+  GoogleCloudDocumentaiV1beta3Document? inlineDocument;
 
   /// A raw document content (bytes).
-  GoogleCloudDocumentaiV1beta3RawDocument rawDocument;
+  GoogleCloudDocumentaiV1beta3RawDocument? rawDocument;
 
   /// Whether Human Review feature should be skipped for this request.
   ///
   /// Default to false.
-  core.bool skipHumanReview;
+  core.bool? skipHumanReview;
 
   GoogleCloudDocumentaiV1beta3ProcessRequest();
 
@@ -7906,11 +7883,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (document != null) 'document': document.toJson(),
-        if (inlineDocument != null) 'inlineDocument': inlineDocument.toJson(),
-        if (rawDocument != null) 'rawDocument': rawDocument.toJson(),
-        if (skipHumanReview != null) 'skipHumanReview': skipHumanReview,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (document != null) 'document': document!.toJson(),
+        if (inlineDocument != null) 'inlineDocument': inlineDocument!.toJson(),
+        if (rawDocument != null) 'rawDocument': rawDocument!.toJson(),
+        if (skipHumanReview != null) 'skipHumanReview': skipHumanReview!,
       };
 }
 
@@ -7918,17 +7895,17 @@
 class GoogleCloudDocumentaiV1beta3ProcessResponse {
   /// The document payload, will populate fields based on the processor's
   /// behavior.
-  GoogleCloudDocumentaiV1beta3Document document;
+  GoogleCloudDocumentaiV1beta3Document? document;
 
   /// The name of the operation triggered by the processed document.
   ///
   /// If the human review process is not triggered, this field will be empty. It
   /// has the same response type and metadata as the long running operation
   /// returned by ReviewDocument method.
-  core.String humanReviewOperation;
+  core.String? humanReviewOperation;
 
   /// The status of human review on the processed document.
-  GoogleCloudDocumentaiV1beta3HumanReviewStatus humanReviewStatus;
+  GoogleCloudDocumentaiV1beta3HumanReviewStatus? humanReviewStatus;
 
   GoogleCloudDocumentaiV1beta3ProcessResponse();
 
@@ -7948,20 +7925,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (document != null) 'document': document.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (document != null) 'document': document!.toJson(),
         if (humanReviewOperation != null)
-          'humanReviewOperation': humanReviewOperation,
+          'humanReviewOperation': humanReviewOperation!,
         if (humanReviewStatus != null)
-          'humanReviewStatus': humanReviewStatus.toJson(),
+          'humanReviewStatus': humanReviewStatus!.toJson(),
       };
 }
 
 /// Payload message of raw document content (bytes).
 class GoogleCloudDocumentaiV1beta3RawDocument {
   /// Inline document content.
-  core.String content;
-  core.List<core.int> get contentAsBytes => convert.base64.decode(content);
+  core.String? content;
+  core.List<core.int> get contentAsBytes => convert.base64.decode(content!);
 
   set contentAsBytes(core.List<core.int> _bytes) {
     content =
@@ -7970,7 +7947,7 @@
 
   /// An IANA MIME type (RFC6838) indicating the nature and format of the
   /// \[content\].
-  core.String mimeType;
+  core.String? mimeType;
 
   GoogleCloudDocumentaiV1beta3RawDocument();
 
@@ -7983,19 +7960,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (content != null) 'content': content,
-        if (mimeType != null) 'mimeType': mimeType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (content != null) 'content': content!,
+        if (mimeType != null) 'mimeType': mimeType!,
       };
 }
 
 /// The long running operation metadata for review document method.
 class GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata {
   /// The basic metadata of the long running operation.
-  GoogleCloudDocumentaiV1beta3CommonOperationMetadata commonMetadata;
+  GoogleCloudDocumentaiV1beta3CommonOperationMetadata? commonMetadata;
 
   /// The creation time of the operation.
-  core.String createTime;
+  core.String? createTime;
 
   /// Used only when Operation.done is false.
   /// Possible string values are:
@@ -8005,15 +7982,15 @@
   /// - "SUCCEEDED" : Operation succeeded.
   /// - "FAILED" : Operation failed.
   /// - "CANCELLED" : Operation is cancelled.
-  core.String state;
+  core.String? state;
 
   /// A message providing more details about the current state of processing.
   ///
   /// For example, the error message if the operation is failed.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The last update time of the operation.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudDocumentaiV1beta3ReviewDocumentOperationMetadata();
 
@@ -8038,22 +8015,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonMetadata != null) 'commonMetadata': commonMetadata.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonMetadata != null) 'commonMetadata': commonMetadata!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
 /// Request message for review document method.
 class GoogleCloudDocumentaiV1beta3ReviewDocumentRequest {
   /// The document that needs human review.
-  GoogleCloudDocumentaiV1beta3Document document;
+  GoogleCloudDocumentaiV1beta3Document? document;
 
   /// An inline document proto.
-  GoogleCloudDocumentaiV1beta3Document inlineDocument;
+  GoogleCloudDocumentaiV1beta3Document? inlineDocument;
 
   GoogleCloudDocumentaiV1beta3ReviewDocumentRequest();
 
@@ -8068,16 +8045,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (document != null) 'document': document.toJson(),
-        if (inlineDocument != null) 'inlineDocument': inlineDocument.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (document != null) 'document': document!.toJson(),
+        if (inlineDocument != null) 'inlineDocument': inlineDocument!.toJson(),
       };
 }
 
 /// Response message for review document method.
 class GoogleCloudDocumentaiV1beta3ReviewDocumentResponse {
   /// The Cloud Storage uri for the human reviewed document.
-  core.String gcsDestination;
+  core.String? gcsDestination;
 
   GoogleCloudDocumentaiV1beta3ReviewDocumentResponse();
 
@@ -8087,8 +8064,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsDestination != null) 'gcsDestination': gcsDestination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsDestination != null) 'gcsDestination': gcsDestination!,
       };
 }
 
@@ -8097,10 +8074,10 @@
 /// NOTE: the vertex coordinates are in the same scale as the original image.
 class GoogleCloudDocumentaiV1beta3Vertex {
   /// X coordinate.
-  core.int x;
+  core.int? x;
 
   /// Y coordinate.
-  core.int y;
+  core.int? y;
 
   GoogleCloudDocumentaiV1beta3Vertex();
 
@@ -8113,19 +8090,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class GoogleCloudLocationListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<GoogleCloudLocationLocation> locations;
+  core.List<GoogleCloudLocationLocation>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudLocationListLocationsResponse();
 
@@ -8142,10 +8119,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -8154,17 +8131,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: `"us-east1"`.
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -8172,12 +8149,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: `"projects/example-project/locations/us-east1"`
-  core.String name;
+  core.String? name;
 
   GoogleCloudLocationLocation();
 
@@ -8211,12 +8188,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -8227,10 +8204,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -8241,14 +8218,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -8261,7 +8238,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   GoogleLongrunningOperation();
 
@@ -8296,12 +8273,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -8319,7 +8296,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The `Status` type defines a logical error model that is suitable for
@@ -8331,7 +8308,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class GoogleRpcStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -8339,13 +8316,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   GoogleRpcStatus();
 
@@ -8369,10 +8346,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -8436,16 +8413,16 @@
   /// between a default value and the value being unset. If omitted, this color
   /// object is to be rendered as a solid color (as if the alpha value had been
   /// explicitly given with a value of 1.0).
-  core.double alpha;
+  core.double? alpha;
 
   /// The amount of blue in the color as a value in the interval \[0, 1\].
-  core.double blue;
+  core.double? blue;
 
   /// The amount of green in the color as a value in the interval \[0, 1\].
-  core.double green;
+  core.double? green;
 
   /// The amount of red in the color as a value in the interval \[0, 1\].
-  core.double red;
+  core.double? red;
 
   GoogleTypeColor();
 
@@ -8464,11 +8441,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alpha != null) 'alpha': alpha,
-        if (blue != null) 'blue': blue,
-        if (green != null) 'green': green,
-        if (red != null) 'red': red,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alpha != null) 'alpha': alpha!,
+        if (blue != null) 'blue': blue!,
+        if (green != null) 'green': green!,
+        if (red != null) 'red': red!,
       };
 }
 
@@ -8486,17 +8463,17 @@
   ///
   /// Must be from 1 to 31 and valid for the year and month, or 0 to specify a
   /// year by itself or a year and month where the day isn't significant.
-  core.int day;
+  core.int? day;
 
   /// Month of a year.
   ///
   /// Must be from 1 to 12, or 0 to specify a year without a month and day.
-  core.int month;
+  core.int? month;
 
   /// Year of the date.
   ///
   /// Must be from 1 to 9999, or 0 to specify a date without a year.
-  core.int year;
+  core.int? year;
 
   GoogleTypeDate();
 
@@ -8512,10 +8489,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (day != null) 'day': day,
-        if (month != null) 'month': month,
-        if (year != null) 'year': year,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (day != null) 'day': day!,
+        if (month != null) 'month': month!,
+        if (year != null) 'year': year!,
       };
 }
 
@@ -8541,7 +8518,7 @@
   /// Must be from 1 to 31 and valid for the year and month.
   ///
   /// Required.
-  core.int day;
+  core.int? day;
 
   /// Hours of day in 24 hour format.
   ///
@@ -8549,28 +8526,28 @@
   /// for scenarios like business closing time.
   ///
   /// Required.
-  core.int hours;
+  core.int? hours;
 
   /// Minutes of hour of day.
   ///
   /// Must be from 0 to 59.
   ///
   /// Required.
-  core.int minutes;
+  core.int? minutes;
 
   /// Month of year.
   ///
   /// Must be from 1 to 12.
   ///
   /// Required.
-  core.int month;
+  core.int? month;
 
   /// Fractions of seconds in nanoseconds.
   ///
   /// Must be from 0 to 999,999,999.
   ///
   /// Required.
-  core.int nanos;
+  core.int? nanos;
 
   /// Seconds of minutes of the time.
   ///
@@ -8578,23 +8555,23 @@
   /// leap-seconds.
   ///
   /// Required.
-  core.int seconds;
+  core.int? seconds;
 
   /// Time zone.
-  GoogleTypeTimeZone timeZone;
+  GoogleTypeTimeZone? timeZone;
 
   /// UTC offset.
   ///
   /// Must be whole seconds, between -18 hours and +18 hours. For example, a UTC
   /// offset of -4:00 would be represented as { seconds: -14400 }.
-  core.String utcOffset;
+  core.String? utcOffset;
 
   /// Year of date.
   ///
   /// Must be from 1 to 9999, or 0 if specifying a datetime without a year.
   ///
   /// Optional.
-  core.int year;
+  core.int? year;
 
   GoogleTypeDateTime();
 
@@ -8629,23 +8606,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (day != null) 'day': day,
-        if (hours != null) 'hours': hours,
-        if (minutes != null) 'minutes': minutes,
-        if (month != null) 'month': month,
-        if (nanos != null) 'nanos': nanos,
-        if (seconds != null) 'seconds': seconds,
-        if (timeZone != null) 'timeZone': timeZone.toJson(),
-        if (utcOffset != null) 'utcOffset': utcOffset,
-        if (year != null) 'year': year,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (day != null) 'day': day!,
+        if (hours != null) 'hours': hours!,
+        if (minutes != null) 'minutes': minutes!,
+        if (month != null) 'month': month!,
+        if (nanos != null) 'nanos': nanos!,
+        if (seconds != null) 'seconds': seconds!,
+        if (timeZone != null) 'timeZone': timeZone!.toJson(),
+        if (utcOffset != null) 'utcOffset': utcOffset!,
+        if (year != null) 'year': year!,
       };
 }
 
 /// Represents an amount of money with its currency type.
 class GoogleTypeMoney {
   /// The three-letter currency code defined in ISO 4217.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Number of nano (10^-9) units of the amount.
   ///
@@ -8654,12 +8631,12 @@
   /// `nanos` can be positive, zero, or negative. If `units` is negative,
   /// `nanos` must be negative or zero. For example $-1.75 is represented as
   /// `units`=-1 and `nanos`=-750,000,000.
-  core.int nanos;
+  core.int? nanos;
 
   /// The whole units of the amount.
   ///
   /// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-  core.String units;
+  core.String? units;
 
   GoogleTypeMoney();
 
@@ -8675,10 +8652,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (nanos != null) 'nanos': nanos,
-        if (units != null) 'units': units,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (nanos != null) 'nanos': nanos!,
+        if (units != null) 'units': units!,
       };
 }
 
@@ -8712,7 +8689,7 @@
   /// region_code and address_lines, and then geocoding is the recommended way
   /// to handle completely unstructured addresses (as opposed to guessing which
   /// parts of the address should be localities or administrative areas).
-  core.List<core.String> addressLines;
+  core.List<core.String>? addressLines;
 
   /// Highest administrative subdivision which is used for postal addresses of a
   /// country or region.
@@ -8724,7 +8701,7 @@
   /// should be left unpopulated.
   ///
   /// Optional.
-  core.String administrativeArea;
+  core.String? administrativeArea;
 
   /// BCP-47 language code of the contents of this address (if known).
   ///
@@ -8737,7 +8714,7 @@
   /// possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en".
   ///
   /// Optional.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Generally refers to the city/town portion of the address.
   ///
@@ -8746,12 +8723,12 @@
   /// leave locality empty and use address_lines.
   ///
   /// Optional.
-  core.String locality;
+  core.String? locality;
 
   /// The name of the organization at the address.
   ///
   /// Optional.
-  core.String organization;
+  core.String? organization;
 
   /// Postal code of the address.
   ///
@@ -8760,7 +8737,7 @@
   /// the address (e.g. state/zip validation in the U.S.A.).
   ///
   /// Optional.
-  core.String postalCode;
+  core.String? postalCode;
 
   /// The recipient at the address.
   ///
@@ -8768,7 +8745,7 @@
   /// information. For example, it might contain "care of" information.
   ///
   /// Optional.
-  core.List<core.String> recipients;
+  core.List<core.String>? recipients;
 
   /// CLDR region code of the country/region of the address.
   ///
@@ -8778,13 +8755,13 @@
   /// for details. Example: "CH" for Switzerland.
   ///
   /// Required.
-  core.String regionCode;
+  core.String? regionCode;
 
   /// The schema revision of the `PostalAddress`.
   ///
   /// This must be set to 0, which is the latest revision. All new revisions
   /// **must** be backward compatible with old revisions.
-  core.int revision;
+  core.int? revision;
 
   /// Additional, country-specific, sorting code.
   ///
@@ -8794,14 +8771,14 @@
   /// area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
   ///
   /// Optional.
-  core.String sortingCode;
+  core.String? sortingCode;
 
   /// Sublocality of the address.
   ///
   /// For example, this can be neighborhoods, boroughs, districts.
   ///
   /// Optional.
-  core.String sublocality;
+  core.String? sublocality;
 
   GoogleTypePostalAddress();
 
@@ -8845,19 +8822,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (addressLines != null) 'addressLines': addressLines,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (addressLines != null) 'addressLines': addressLines!,
         if (administrativeArea != null)
-          'administrativeArea': administrativeArea,
-        if (languageCode != null) 'languageCode': languageCode,
-        if (locality != null) 'locality': locality,
-        if (organization != null) 'organization': organization,
-        if (postalCode != null) 'postalCode': postalCode,
-        if (recipients != null) 'recipients': recipients,
-        if (regionCode != null) 'regionCode': regionCode,
-        if (revision != null) 'revision': revision,
-        if (sortingCode != null) 'sortingCode': sortingCode,
-        if (sublocality != null) 'sublocality': sublocality,
+          'administrativeArea': administrativeArea!,
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (locality != null) 'locality': locality!,
+        if (organization != null) 'organization': organization!,
+        if (postalCode != null) 'postalCode': postalCode!,
+        if (recipients != null) 'recipients': recipients!,
+        if (regionCode != null) 'regionCode': regionCode!,
+        if (revision != null) 'revision': revision!,
+        if (sortingCode != null) 'sortingCode': sortingCode!,
+        if (sublocality != null) 'sublocality': sublocality!,
       };
 }
 
@@ -8865,12 +8842,12 @@
 /// [IANA Time Zone Database](https://www.iana.org/time-zones).
 class GoogleTypeTimeZone {
   /// IANA Time Zone Database time zone, e.g. "America/New_York".
-  core.String id;
+  core.String? id;
 
   /// IANA Time Zone Database version number, e.g. "2019a".
   ///
   /// Optional.
-  core.String version;
+  core.String? version;
 
   GoogleTypeTimeZone();
 
@@ -8883,8 +8860,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (version != null) 'version': version!,
       };
 }
diff --git a/generated/googleapis_beta/lib/domains/v1beta1.dart b/generated/googleapis_beta/lib/domains/v1beta1.dart
index d4c74c7..fc0994c 100644
--- a/generated/googleapis_beta/lib/domains/v1beta1.dart
+++ b/generated/googleapis_beta/lib/domains/v1beta1.dart
@@ -95,11 +95,8 @@
   /// this method will complete with the same error.
   async.Future<Location> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -139,14 +136,11 @@
   /// this method will complete with the same error.
   async.Future<ListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -197,11 +191,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -250,14 +241,11 @@
   /// this method will complete with the same error.
   async.Future<ListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -312,13 +300,9 @@
   async.Future<Operation> configureContactSettings(
     ConfigureContactSettingsRequest request,
     core.String registration, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (registration == null) {
-      throw core.ArgumentError('Parameter registration is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -361,13 +345,9 @@
   async.Future<Operation> configureDnsSettings(
     ConfigureDnsSettingsRequest request,
     core.String registration, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (registration == null) {
-      throw core.ArgumentError('Parameter registration is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -410,13 +390,9 @@
   async.Future<Operation> configureManagementSettings(
     ConfigureManagementSettingsRequest request,
     core.String registration, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (registration == null) {
-      throw core.ArgumentError('Parameter registration is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -459,11 +435,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -513,13 +486,9 @@
   async.Future<Operation> export(
     ExportRegistrationRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -557,11 +526,8 @@
   /// this method will complete with the same error.
   async.Future<Registration> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -610,12 +576,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -672,14 +635,11 @@
   /// this method will complete with the same error.
   async.Future<ListRegistrationsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -733,14 +693,10 @@
   async.Future<Operation> patch(
     Registration request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -790,13 +746,9 @@
   async.Future<Operation> register(
     RegisterDomainRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -843,13 +795,9 @@
   async.Future<AuthorizationCode> resetAuthorizationCode(
     ResetAuthorizationCodeRequest request,
     core.String registration, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (registration == null) {
-      throw core.ArgumentError('Parameter registration is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -894,11 +842,8 @@
   /// this method will complete with the same error.
   async.Future<AuthorizationCode> retrieveAuthorizationCode(
     core.String registration, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (registration == null) {
-      throw core.ArgumentError('Parameter registration is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -942,12 +887,9 @@
   /// this method will complete with the same error.
   async.Future<RetrieveRegisterParametersResponse> retrieveRegisterParameters(
     core.String location, {
-    core.String domainName,
-    core.String $fields,
+    core.String? domainName,
+    core.String? $fields,
   }) async {
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (domainName != null) 'domainName': [domainName],
       if ($fields != null) 'fields': [$fields],
@@ -992,12 +934,9 @@
   /// this method will complete with the same error.
   async.Future<SearchDomainsResponse> searchDomains(
     core.String location, {
-    core.String query,
-    core.String $fields,
+    core.String? query,
+    core.String? $fields,
   }) async {
-    if (location == null) {
-      throw core.ArgumentError('Parameter location is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (query != null) 'query': [query],
       if ($fields != null) 'fields': [$fields],
@@ -1044,13 +983,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1098,13 +1033,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1143,13 +1074,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<AuditLogConfig> auditLogConfigs;
+  core.List<AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   /// `allServices` is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   AuditConfig();
 
@@ -1165,11 +1096,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -1184,7 +1115,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -1192,7 +1123,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   AuditLogConfig();
 
@@ -1207,9 +1138,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -1218,7 +1149,7 @@
   /// The Authorization Code in ASCII.
   ///
   /// It can be used to transfer the domain to or from another registrar.
-  core.String code;
+  core.String? code;
 
   AuthorizationCode();
 
@@ -1228,8 +1159,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
       };
 }
 
@@ -1243,7 +1174,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -1275,12 +1206,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -1299,10 +1230,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -1312,10 +1243,10 @@
   ///
   /// The notices needed here depend on the values specified in
   /// `contact_settings`.
-  core.List<core.String> contactNotices;
+  core.List<core.String>? contactNotices;
 
   /// Fields of the `ContactSettings` to update.
-  ContactSettings contactSettings;
+  ContactSettings? contactSettings;
 
   /// The field mask describing which fields to update as a comma-separated
   /// list.
@@ -1324,10 +1255,10 @@
   /// `update_mask` would be `"registrant_contact"`.
   ///
   /// Required.
-  core.String updateMask;
+  core.String? updateMask;
 
   /// Validate the request without actually updating the contact settings.
-  core.bool validateOnly;
+  core.bool? validateOnly;
 
   ConfigureContactSettingsRequest();
 
@@ -1349,19 +1280,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contactNotices != null) 'contactNotices': contactNotices,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contactNotices != null) 'contactNotices': contactNotices!,
         if (contactSettings != null)
-          'contactSettings': contactSettings.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
-        if (validateOnly != null) 'validateOnly': validateOnly,
+          'contactSettings': contactSettings!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
+        if (validateOnly != null) 'validateOnly': validateOnly!,
       };
 }
 
 /// Request for the `ConfigureDnsSettings` method.
 class ConfigureDnsSettingsRequest {
   /// Fields of the `DnsSettings` to update.
-  DnsSettings dnsSettings;
+  DnsSettings? dnsSettings;
 
   /// The field mask describing which fields to update as a comma-separated
   /// list.
@@ -1374,10 +1305,10 @@
   /// Custom DNS configuration, the `update_mask` would be `"custom_dns"`. //
   ///
   /// Required.
-  core.String updateMask;
+  core.String? updateMask;
 
   /// Validate the request without actually updating the DNS settings.
-  core.bool validateOnly;
+  core.bool? validateOnly;
 
   ConfigureDnsSettingsRequest();
 
@@ -1394,17 +1325,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dnsSettings != null) 'dnsSettings': dnsSettings.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
-        if (validateOnly != null) 'validateOnly': validateOnly,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dnsSettings != null) 'dnsSettings': dnsSettings!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
+        if (validateOnly != null) 'validateOnly': validateOnly!,
       };
 }
 
 /// Request for the `ConfigureManagementSettings` method.
 class ConfigureManagementSettingsRequest {
   /// Fields of the `ManagementSettings` to update.
-  ManagementSettings managementSettings;
+  ManagementSettings? managementSettings;
 
   /// The field mask describing which fields to update as a comma-separated
   /// list.
@@ -1413,7 +1344,7 @@
   /// would be `"transfer_lock_state"`.
   ///
   /// Required.
-  core.String updateMask;
+  core.String? updateMask;
 
   ConfigureManagementSettingsRequest();
 
@@ -1427,10 +1358,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (managementSettings != null)
-          'managementSettings': managementSettings.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+          'managementSettings': managementSettings!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -1439,24 +1370,24 @@
   /// Email address of the contact.
   ///
   /// Required.
-  core.String email;
+  core.String? email;
 
   /// Fax number of the contact in international format.
   ///
   /// For example, `"+1-800-555-0123"`.
-  core.String faxNumber;
+  core.String? faxNumber;
 
   /// Phone number of the contact in international format.
   ///
   /// For example, `"+1-800-555-0123"`.
   ///
   /// Required.
-  core.String phoneNumber;
+  core.String? phoneNumber;
 
   /// Postal address of the contact.
   ///
   /// Required.
-  PostalAddress postalAddress;
+  PostalAddress? postalAddress;
 
   Contact();
 
@@ -1476,11 +1407,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
-        if (faxNumber != null) 'faxNumber': faxNumber,
-        if (phoneNumber != null) 'phoneNumber': phoneNumber,
-        if (postalAddress != null) 'postalAddress': postalAddress.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
+        if (faxNumber != null) 'faxNumber': faxNumber!,
+        if (phoneNumber != null) 'phoneNumber': phoneNumber!,
+        if (postalAddress != null) 'postalAddress': postalAddress!.toJson(),
       };
 }
 
@@ -1493,7 +1424,7 @@
   /// The administrative contact for the `Registration`.
   ///
   /// Required.
-  Contact adminContact;
+  Contact? adminContact;
 
   /// Privacy setting for the contacts associated with the `Registration`.
   ///
@@ -1514,7 +1445,7 @@
   /// available. The actual information redacted depends on the domain. For
   /// details, see
   /// [the registration privacy article](https://support.google.com/domains/answer/3251242).
-  core.String privacy;
+  core.String? privacy;
 
   /// The registrant contact for the `Registration`.
   ///
@@ -1524,12 +1455,12 @@
   /// they must complete within 15 days to avoid domain suspension.*
   ///
   /// Required.
-  Contact registrantContact;
+  Contact? registrantContact;
 
   /// The technical contact for the `Registration`.
   ///
   /// Required.
-  Contact technicalContact;
+  Contact? technicalContact;
 
   ContactSettings();
 
@@ -1551,13 +1482,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (adminContact != null) 'adminContact': adminContact.toJson(),
-        if (privacy != null) 'privacy': privacy,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (adminContact != null) 'adminContact': adminContact!.toJson(),
+        if (privacy != null) 'privacy': privacy!,
         if (registrantContact != null)
-          'registrantContact': registrantContact.toJson(),
+          'registrantContact': registrantContact!.toJson(),
         if (technicalContact != null)
-          'technicalContact': technicalContact.toJson(),
+          'technicalContact': technicalContact!.toJson(),
       };
 }
 
@@ -1567,7 +1498,7 @@
   ///
   /// The domain's DNS provider can provide the values to set here. If this
   /// field is empty, DNSSEC is disabled.
-  core.List<DsRecord> dsRecords;
+  core.List<DsRecord>? dsRecords;
 
   /// A list of name servers that store the DNS zone for this domain.
   ///
@@ -1575,7 +1506,7 @@
   /// Punycode format.
   ///
   /// Required.
-  core.List<core.String> nameServers;
+  core.List<core.String>? nameServers;
 
   CustomDns();
 
@@ -1593,10 +1524,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dsRecords != null)
-          'dsRecords': dsRecords.map((value) => value.toJson()).toList(),
-        if (nameServers != null) 'nameServers': nameServers,
+          'dsRecords': dsRecords!.map((value) => value.toJson()).toList(),
+        if (nameServers != null) 'nameServers': nameServers!,
       };
 }
 
@@ -1604,15 +1535,15 @@
 /// DNSSEC, and glue records.
 class DnsSettings {
   /// An arbitrary DNS provider identified by its name servers.
-  CustomDns customDns;
+  CustomDns? customDns;
 
   /// The list of glue records for this `Registration`.
   ///
   /// Commonly empty.
-  core.List<GlueRecord> glueRecords;
+  core.List<GlueRecord>? glueRecords;
 
   /// The free DNS zone provided by [Google Domains](https://domains.google/).
-  GoogleDomainsDns googleDomainsDns;
+  GoogleDomainsDns? googleDomainsDns;
 
   DnsSettings();
 
@@ -1633,12 +1564,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (customDns != null) 'customDns': customDns.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (customDns != null) 'customDns': customDns!.toJson(),
         if (glueRecords != null)
-          'glueRecords': glueRecords.map((value) => value.toJson()).toList(),
+          'glueRecords': glueRecords!.map((value) => value.toJson()).toList(),
         if (googleDomainsDns != null)
-          'googleDomainsDns': googleDomainsDns.toJson(),
+          'googleDomainsDns': googleDomainsDns!.toJson(),
       };
 }
 
@@ -1664,10 +1595,10 @@
   /// - "ECDSAP384SHA384" : ECDSA Curve P-384 with SHA-384.
   /// - "ED25519" : Ed25519.
   /// - "ED448" : Ed448.
-  core.String algorithm;
+  core.String? algorithm;
 
   /// The digest generated from the referenced DNSKEY.
-  core.String digest;
+  core.String? digest;
 
   /// The hash function used to generate the digest of the referenced DNSKEY.
   /// Possible string values are:
@@ -1676,12 +1607,12 @@
   /// - "SHA256" : SHA-256.
   /// - "GOST3411" : GOST R 34.11-94.
   /// - "SHA384" : SHA-384.
-  core.String digestType;
+  core.String? digestType;
 
   /// The key tag of the record.
   ///
   /// Must be set in range 0 -- 65535.
-  core.int keyTag;
+  core.int? keyTag;
 
   DsRecord();
 
@@ -1700,11 +1631,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (algorithm != null) 'algorithm': algorithm,
-        if (digest != null) 'digest': digest,
-        if (digestType != null) 'digestType': digestType,
-        if (keyTag != null) 'keyTag': keyTag,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (algorithm != null) 'algorithm': algorithm!,
+        if (digest != null) 'digest': digest!,
+        if (digestType != null) 'digestType': digestType!,
+        if (keyTag != null) 'keyTag': keyTag!,
       };
 }
 
@@ -1716,7 +1647,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Represents a textual expression in the Common Expression Language (CEL)
@@ -1744,24 +1675,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -1780,11 +1711,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -1800,19 +1731,19 @@
   /// Domain name of the host in Punycode format.
   ///
   /// Required.
-  core.String hostName;
+  core.String? hostName;
 
   /// List of IPv4 addresses corresponding to this host in the standard decimal
   /// format (e.g. `198.51.100.1`).
   ///
   /// At least one of `ipv4_address` and `ipv6_address` must be set.
-  core.List<core.String> ipv4Addresses;
+  core.List<core.String>? ipv4Addresses;
 
   /// List of IPv6 addresses corresponding to this host in the standard
   /// hexadecimal format (e.g. `2001:db8::`).
   ///
   /// At least one of `ipv4_address` and `ipv6_address` must be set.
-  core.List<core.String> ipv6Addresses;
+  core.List<core.String>? ipv6Addresses;
 
   GlueRecord();
 
@@ -1832,10 +1763,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hostName != null) 'hostName': hostName,
-        if (ipv4Addresses != null) 'ipv4Addresses': ipv4Addresses,
-        if (ipv6Addresses != null) 'ipv6Addresses': ipv6Addresses,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hostName != null) 'hostName': hostName!,
+        if (ipv4Addresses != null) 'ipv4Addresses': ipv4Addresses!,
+        if (ipv6Addresses != null) 'ipv6Addresses': ipv6Addresses!,
       };
 }
 
@@ -1851,7 +1782,7 @@
   /// `DS_RECORDS_PUBLISHED`, otherwise it remains empty.
   ///
   /// Output only.
-  core.List<DsRecord> dsRecords;
+  core.List<DsRecord>? dsRecords;
 
   /// The state of DS records for this domain.
   ///
@@ -1866,7 +1797,7 @@
   /// DS records for this domain are published in the parent DNS zone. This
   /// option is valid only if the DNS zone referenced in the `Registration`'s
   /// `dns_provider` field is already DNSSEC-signed.
-  core.String dsState;
+  core.String? dsState;
 
   /// A list of name servers that store the DNS zone for this domain.
   ///
@@ -1875,7 +1806,7 @@
   /// servers assigned to the Google Domains DNS zone.
   ///
   /// Output only.
-  core.List<core.String> nameServers;
+  core.List<core.String>? nameServers;
 
   GoogleDomainsDns();
 
@@ -1896,21 +1827,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (dsRecords != null)
-          'dsRecords': dsRecords.map((value) => value.toJson()).toList(),
-        if (dsState != null) 'dsState': dsState,
-        if (nameServers != null) 'nameServers': nameServers,
+          'dsRecords': dsRecords!.map((value) => value.toJson()).toList(),
+        if (dsState != null) 'dsState': dsState!,
+        if (nameServers != null) 'nameServers': nameServers!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class ListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLocationsResponse();
 
@@ -1926,20 +1857,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class ListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   ListOperationsResponse();
 
@@ -1955,10 +1886,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1968,10 +1899,10 @@
   ///
   /// Set `page_token` to this value on a subsequent call to get the next page
   /// of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of `Registration`s.
-  core.List<Registration> registrations;
+  core.List<Registration>? registrations;
 
   ListRegistrationsResponse();
 
@@ -1987,11 +1918,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (registrations != null)
           'registrations':
-              registrations.map((value) => value.toJson()).toList(),
+              registrations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2000,17 +1931,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: `"us-east1"`.
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -2018,12 +1949,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: `"projects/example-project/locations/us-east1"`
-  core.String name;
+  core.String? name;
 
   Location();
 
@@ -2057,12 +1988,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -2081,7 +2012,7 @@
   /// `Registration` is in state `EXPORTED`. To manage the domain's current
   /// billing and renewal settings, go to
   /// [Google Domains](https://domains.google/).
-  core.String renewalMethod;
+  core.String? renewalMethod;
 
   /// Controls whether the domain can be transferred to another registrar.
   /// Possible string values are:
@@ -2090,7 +2021,7 @@
   /// registrar.
   /// - "LOCKED" : The domain is locked and cannot be transferred to another
   /// registrar.
-  core.String transferLockState;
+  core.String? transferLockState;
 
   ManagementSettings();
 
@@ -2103,16 +2034,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (renewalMethod != null) 'renewalMethod': renewalMethod,
-        if (transferLockState != null) 'transferLockState': transferLockState,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (renewalMethod != null) 'renewalMethod': renewalMethod!,
+        if (transferLockState != null) 'transferLockState': transferLockState!,
       };
 }
 
 /// Represents an amount of money with its currency type.
 class Money {
   /// The three-letter currency code defined in ISO 4217.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Number of nano (10^-9) units of the amount.
   ///
@@ -2121,12 +2052,12 @@
   /// `nanos` can be positive, zero, or negative. If `units` is negative,
   /// `nanos` must be negative or zero. For example $-1.75 is represented as
   /// `units`=-1 and `nanos`=-750,000,000.
-  core.int nanos;
+  core.int? nanos;
 
   /// The whole units of the amount.
   ///
   /// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-  core.String units;
+  core.String? units;
 
   Money();
 
@@ -2142,10 +2073,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (nanos != null) 'nanos': nanos,
-        if (units != null) 'units': units,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (nanos != null) 'nanos': nanos!,
+        if (units != null) 'units': units!,
       };
 }
 
@@ -2156,10 +2087,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -2170,14 +2101,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -2190,7 +2121,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -2225,12 +2156,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -2239,22 +2170,22 @@
 /// Output only.
 class OperationMetadata {
   /// API version used to start the operation.
-  core.String apiVersion;
+  core.String? apiVersion;
 
   /// The time the operation was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time the operation finished running.
-  core.String endTime;
+  core.String? endTime;
 
   /// Human-readable status of the operation, if any.
-  core.String statusDetail;
+  core.String? statusDetail;
 
   /// Server-defined resource path for the target of the operation.
-  core.String target;
+  core.String? target;
 
   /// Name of the verb executed by the operation.
-  core.String verb;
+  core.String? verb;
 
   OperationMetadata();
 
@@ -2279,13 +2210,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiVersion != null) 'apiVersion': apiVersion,
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
-        if (statusDetail != null) 'statusDetail': statusDetail,
-        if (target != null) 'target': target,
-        if (verb != null) 'verb': verb,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiVersion != null) 'apiVersion': apiVersion!,
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
+        if (statusDetail != null) 'statusDetail': statusDetail!,
+        if (target != null) 'target': target!,
+        if (verb != null) 'verb': verb!,
       };
 }
 
@@ -2322,14 +2253,14 @@
 /// [IAM documentation](https://cloud.google.com/iam/docs/).
 class Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<AuditConfig> auditConfigs;
+  core.List<AuditConfig>? auditConfigs;
 
   /// Associates a list of `members` to a `role`.
   ///
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -2343,8 +2274,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -2368,7 +2299,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -2393,13 +2324,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -2433,7 +2364,7 @@
   /// region_code and address_lines, and then geocoding is the recommended way
   /// to handle completely unstructured addresses (as opposed to guessing which
   /// parts of the address should be localities or administrative areas).
-  core.List<core.String> addressLines;
+  core.List<core.String>? addressLines;
 
   /// Highest administrative subdivision which is used for postal addresses of a
   /// country or region.
@@ -2445,7 +2376,7 @@
   /// should be left unpopulated.
   ///
   /// Optional.
-  core.String administrativeArea;
+  core.String? administrativeArea;
 
   /// BCP-47 language code of the contents of this address (if known).
   ///
@@ -2458,7 +2389,7 @@
   /// possibly incorrect default). Examples: "zh-Hant", "ja", "ja-Latn", "en".
   ///
   /// Optional.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Generally refers to the city/town portion of the address.
   ///
@@ -2467,12 +2398,12 @@
   /// leave locality empty and use address_lines.
   ///
   /// Optional.
-  core.String locality;
+  core.String? locality;
 
   /// The name of the organization at the address.
   ///
   /// Optional.
-  core.String organization;
+  core.String? organization;
 
   /// Postal code of the address.
   ///
@@ -2481,7 +2412,7 @@
   /// the address (e.g. state/zip validation in the U.S.A.).
   ///
   /// Optional.
-  core.String postalCode;
+  core.String? postalCode;
 
   /// The recipient at the address.
   ///
@@ -2489,7 +2420,7 @@
   /// information. For example, it might contain "care of" information.
   ///
   /// Optional.
-  core.List<core.String> recipients;
+  core.List<core.String>? recipients;
 
   /// CLDR region code of the country/region of the address.
   ///
@@ -2499,13 +2430,13 @@
   /// for details. Example: "CH" for Switzerland.
   ///
   /// Required.
-  core.String regionCode;
+  core.String? regionCode;
 
   /// The schema revision of the `PostalAddress`.
   ///
   /// This must be set to 0, which is the latest revision. All new revisions
   /// **must** be backward compatible with old revisions.
-  core.int revision;
+  core.int? revision;
 
   /// Additional, country-specific, sorting code.
   ///
@@ -2515,14 +2446,14 @@
   /// area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
   ///
   /// Optional.
-  core.String sortingCode;
+  core.String? sortingCode;
 
   /// Sublocality of the address.
   ///
   /// For example, this can be neighborhoods, boroughs, districts.
   ///
   /// Optional.
-  core.String sublocality;
+  core.String? sublocality;
 
   PostalAddress();
 
@@ -2566,19 +2497,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (addressLines != null) 'addressLines': addressLines,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (addressLines != null) 'addressLines': addressLines!,
         if (administrativeArea != null)
-          'administrativeArea': administrativeArea,
-        if (languageCode != null) 'languageCode': languageCode,
-        if (locality != null) 'locality': locality,
-        if (organization != null) 'organization': organization,
-        if (postalCode != null) 'postalCode': postalCode,
-        if (recipients != null) 'recipients': recipients,
-        if (regionCode != null) 'regionCode': regionCode,
-        if (revision != null) 'revision': revision,
-        if (sortingCode != null) 'sortingCode': sortingCode,
-        if (sublocality != null) 'sublocality': sublocality,
+          'administrativeArea': administrativeArea!,
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (locality != null) 'locality': locality!,
+        if (organization != null) 'organization': organization!,
+        if (postalCode != null) 'postalCode': postalCode!,
+        if (recipients != null) 'recipients': recipients!,
+        if (regionCode != null) 'regionCode': regionCode!,
+        if (revision != null) 'revision': revision!,
+        if (sortingCode != null) 'sortingCode': sortingCode!,
+        if (sublocality != null) 'sublocality': sublocality!,
       };
 }
 
@@ -2588,25 +2519,25 @@
   ///
   /// The notices needed here depend on the values specified in
   /// `registration.contact_settings`.
-  core.List<core.String> contactNotices;
+  core.List<core.String>? contactNotices;
 
   /// The list of domain notices that you acknowledge.
   ///
   /// Call `RetrieveRegisterParameters` to see the notices that need
   /// acknowledgement.
-  core.List<core.String> domainNotices;
+  core.List<core.String>? domainNotices;
 
   /// The complete `Registration` resource to be created.
   ///
   /// Required.
-  Registration registration;
+  Registration? registration;
 
   /// When true, only validation will be performed, without actually registering
   /// the domain.
   ///
   /// Follows:
   /// https://cloud.google.com/apis/design/design_patterns#request_validation
-  core.bool validateOnly;
+  core.bool? validateOnly;
 
   /// Yearly price to register or renew the domain.
   ///
@@ -2614,7 +2545,7 @@
   /// RetrieveRegisterParameters or SearchDomains calls.
   ///
   /// Required.
-  Money yearlyPrice;
+  Money? yearlyPrice;
 
   RegisterDomainRequest();
 
@@ -2642,12 +2573,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contactNotices != null) 'contactNotices': contactNotices,
-        if (domainNotices != null) 'domainNotices': domainNotices,
-        if (registration != null) 'registration': registration.toJson(),
-        if (validateOnly != null) 'validateOnly': validateOnly,
-        if (yearlyPrice != null) 'yearlyPrice': yearlyPrice.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contactNotices != null) 'contactNotices': contactNotices!,
+        if (domainNotices != null) 'domainNotices': domainNotices!,
+        if (registration != null) 'registration': registration!.toJson(),
+        if (validateOnly != null) 'validateOnly': validateOnly!,
+        if (yearlyPrice != null) 'yearlyPrice': yearlyPrice!.toJson(),
       };
 }
 
@@ -2667,21 +2598,21 @@
   /// but may be available elsewhere.
   /// - "UNKNOWN" : Cloud Domains is unable to determine domain availability,
   /// generally due to system maintenance at the domain name registry.
-  core.String availability;
+  core.String? availability;
 
   /// The domain name.
   ///
   /// Unicode domain names are expressed in Punycode format.
-  core.String domainName;
+  core.String? domainName;
 
   /// Notices about special properties of the domain.
-  core.List<core.String> domainNotices;
+  core.List<core.String>? domainNotices;
 
   /// Contact privacy options that the domain supports.
-  core.List<core.String> supportedPrivacy;
+  core.List<core.String>? supportedPrivacy;
 
   /// Price to register or renew the domain for one year.
-  Money yearlyPrice;
+  Money? yearlyPrice;
 
   RegisterParameters();
 
@@ -2708,12 +2639,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (availability != null) 'availability': availability,
-        if (domainName != null) 'domainName': domainName,
-        if (domainNotices != null) 'domainNotices': domainNotices,
-        if (supportedPrivacy != null) 'supportedPrivacy': supportedPrivacy,
-        if (yearlyPrice != null) 'yearlyPrice': yearlyPrice.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (availability != null) 'availability': availability!,
+        if (domainName != null) 'domainName': domainName!,
+        if (domainNotices != null) 'domainNotices': domainNotices!,
+        if (supportedPrivacy != null) 'supportedPrivacy': supportedPrivacy!,
+        if (yearlyPrice != null) 'yearlyPrice': yearlyPrice!.toJson(),
       };
 }
 
@@ -2732,51 +2663,51 @@
   /// these settings, use the `ConfigureContactSettings` method.
   ///
   /// Required.
-  ContactSettings contactSettings;
+  ContactSettings? contactSettings;
 
   /// The creation timestamp of the `Registration` resource.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Settings controlling the DNS configuration of the `Registration`.
   ///
   /// You cannot update these with the `UpdateRegistration` method. To update
   /// these settings, use the `ConfigureDnsSettings` method.
-  DnsSettings dnsSettings;
+  DnsSettings? dnsSettings;
 
   /// The domain name.
   ///
   /// Unicode domain names must be expressed in Punycode format.
   ///
   /// Required. Immutable.
-  core.String domainName;
+  core.String? domainName;
 
   /// The expiration timestamp of the `Registration`.
   ///
   /// Output only.
-  core.String expireTime;
+  core.String? expireTime;
 
   /// The set of issues with the `Registration` that require attention.
   ///
   /// Output only.
-  core.List<core.String> issues;
+  core.List<core.String>? issues;
 
   /// Set of labels associated with the `Registration`.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// Settings for management of the `Registration`, including renewal, billing,
   /// and transfer.
   ///
   /// You cannot update these with the `UpdateRegistration` method. To update
   /// these settings, use the `ConfigureManagementSettings` method.
-  ManagementSettings managementSettings;
+  ManagementSettings? managementSettings;
 
   /// Name of the `Registration` resource, in the format `projects / *
   /// /locations / * /registrations/`.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Pending contact settings for the `Registration`.
   ///
@@ -2788,7 +2719,7 @@
   /// the instructions in the email they receive.
   ///
   /// Output only.
-  ContactSettings pendingContactSettings;
+  ContactSettings? pendingContactSettings;
 
   /// The state of the `Registration`
   ///
@@ -2807,13 +2738,13 @@
   /// with this API, and information shown about it may be stale. Without
   /// further action, domains in this state expire at their `expire_time`. You
   /// can delete the resource after the `expire_time` has passed.
-  core.String state;
+  core.String? state;
 
   /// Set of options for the `contact_settings.privacy` field that this
   /// `Registration` supports.
   ///
   /// Output only.
-  core.List<core.String> supportedPrivacy;
+  core.List<core.String>? supportedPrivacy;
 
   Registration();
 
@@ -2871,22 +2802,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (contactSettings != null)
-          'contactSettings': contactSettings.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (dnsSettings != null) 'dnsSettings': dnsSettings.toJson(),
-        if (domainName != null) 'domainName': domainName,
-        if (expireTime != null) 'expireTime': expireTime,
-        if (issues != null) 'issues': issues,
-        if (labels != null) 'labels': labels,
+          'contactSettings': contactSettings!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (dnsSettings != null) 'dnsSettings': dnsSettings!.toJson(),
+        if (domainName != null) 'domainName': domainName!,
+        if (expireTime != null) 'expireTime': expireTime!,
+        if (issues != null) 'issues': issues!,
+        if (labels != null) 'labels': labels!,
         if (managementSettings != null)
-          'managementSettings': managementSettings.toJson(),
-        if (name != null) 'name': name,
+          'managementSettings': managementSettings!.toJson(),
+        if (name != null) 'name': name!,
         if (pendingContactSettings != null)
-          'pendingContactSettings': pendingContactSettings.toJson(),
-        if (state != null) 'state': state,
-        if (supportedPrivacy != null) 'supportedPrivacy': supportedPrivacy,
+          'pendingContactSettings': pendingContactSettings!.toJson(),
+        if (state != null) 'state': state!,
+        if (supportedPrivacy != null) 'supportedPrivacy': supportedPrivacy!,
       };
 }
 
@@ -2898,13 +2829,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Response for the `RetrieveRegisterParameters` method.
 class RetrieveRegisterParametersResponse {
   /// Parameters to use when calling the `RegisterDomain` method.
-  RegisterParameters registerParameters;
+  RegisterParameters? registerParameters;
 
   RetrieveRegisterParametersResponse();
 
@@ -2915,16 +2846,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (registerParameters != null)
-          'registerParameters': registerParameters.toJson(),
+          'registerParameters': registerParameters!.toJson(),
       };
 }
 
 /// Response for the `SearchDomains` method.
 class SearchDomainsResponse {
   /// Results of the domain name search.
-  core.List<RegisterParameters> registerParameters;
+  core.List<RegisterParameters>? registerParameters;
 
   SearchDomainsResponse();
 
@@ -2937,10 +2868,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (registerParameters != null)
           'registerParameters':
-              registerParameters.map((value) => value.toJson()).toList(),
+              registerParameters!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2951,13 +2882,13 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   /// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
   ///
   /// Only the fields in the mask will be modified. If no mask is provided, the
   /// following default mask is used: `paths: "bindings, etag"`
-  core.String updateMask;
+  core.String? updateMask;
 
   SetIamPolicyRequest();
 
@@ -2971,9 +2902,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -2986,7 +2917,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -2994,13 +2925,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -3024,10 +2955,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -3038,7 +2969,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -3050,8 +2981,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -3059,7 +2990,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -3071,7 +3002,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
diff --git a/generated/googleapis_beta/lib/factchecktools/v1alpha1.dart b/generated/googleapis_beta/lib/factchecktools/v1alpha1.dart
index e42c702..6c7733e 100644
--- a/generated/googleapis_beta/lib/factchecktools/v1alpha1.dart
+++ b/generated/googleapis_beta/lib/factchecktools/v1alpha1.dart
@@ -104,14 +104,14 @@
   async.Future<
           GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse>
       search({
-    core.String languageCode,
-    core.int maxAgeDays,
-    core.int offset,
-    core.int pageSize,
-    core.String pageToken,
-    core.String query,
-    core.String reviewPublisherSiteFilter,
-    core.String $fields,
+    core.String? languageCode,
+    core.int? maxAgeDays,
+    core.int? offset,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? query,
+    core.String? reviewPublisherSiteFilter,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (languageCode != null) 'languageCode': [languageCode],
@@ -162,10 +162,9 @@
   async.Future<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage>
       create(
     GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -202,11 +201,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -244,11 +240,8 @@
   async.Future<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage>
       get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -305,12 +298,12 @@
   async.Future<
           GoogleFactcheckingFactchecktoolsV1alpha1ListClaimReviewMarkupPagesResponse>
       list({
-    core.int offset,
-    core.String organization,
-    core.int pageSize,
-    core.String pageToken,
-    core.String url,
-    core.String $fields,
+    core.int? offset,
+    core.String? organization,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? url,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (offset != null) 'offset': ['${offset}'],
@@ -363,13 +356,9 @@
       update(
     GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -390,20 +379,20 @@
 /// Information about the claim.
 class GoogleFactcheckingFactchecktoolsV1alpha1Claim {
   /// The date that the claim was made.
-  core.String claimDate;
+  core.String? claimDate;
 
   /// One or more reviews of this claim (namely, a fact-checking article).
-  core.List<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReview> claimReview;
+  core.List<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReview>? claimReview;
 
   /// A person or organization stating the claim.
   ///
   /// For instance, "John Doe".
-  core.String claimant;
+  core.String? claimant;
 
   /// The claim text.
   ///
   /// For instance, "Crime has doubled in the last 2 years."
-  core.String text;
+  core.String? text;
 
   GoogleFactcheckingFactchecktoolsV1alpha1Claim();
 
@@ -426,31 +415,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (claimDate != null) 'claimDate': claimDate,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (claimDate != null) 'claimDate': claimDate!,
         if (claimReview != null)
-          'claimReview': claimReview.map((value) => value.toJson()).toList(),
-        if (claimant != null) 'claimant': claimant,
-        if (text != null) 'text': text,
+          'claimReview': claimReview!.map((value) => value.toJson()).toList(),
+        if (claimant != null) 'claimant': claimant!,
+        if (text != null) 'text': text!,
       };
 }
 
 /// Information about the claim author.
 class GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor {
   /// Corresponds to `ClaimReview.itemReviewed.author.image`.
-  core.String imageUrl;
+  core.String? imageUrl;
 
   /// Corresponds to `ClaimReview.itemReviewed.author.jobTitle`.
-  core.String jobTitle;
+  core.String? jobTitle;
 
   /// A person or organization stating the claim.
   ///
   /// For instance, "John Doe". Corresponds to
   /// `ClaimReview.itemReviewed.author.name`.
-  core.String name;
+  core.String? name;
 
   /// Corresponds to `ClaimReview.itemReviewed.author.sameAs`.
-  core.String sameAs;
+  core.String? sameAs;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor();
 
@@ -469,11 +458,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (imageUrl != null) 'imageUrl': imageUrl,
-        if (jobTitle != null) 'jobTitle': jobTitle,
-        if (name != null) 'name': name,
-        if (sameAs != null) 'sameAs': sameAs,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (imageUrl != null) 'imageUrl': imageUrl!,
+        if (jobTitle != null) 'jobTitle': jobTitle!,
+        if (name != null) 'name': name!,
+        if (sameAs != null) 'sameAs': sameAs!,
       };
 }
 
@@ -483,30 +472,30 @@
   /// best.
   ///
   /// Corresponds to `ClaimReview.reviewRating.bestRating`.
-  core.int bestRating;
+  core.int? bestRating;
 
   /// Corresponds to `ClaimReview.reviewRating.image`.
-  core.String imageUrl;
+  core.String? imageUrl;
 
   /// Corresponds to `ClaimReview.reviewRating.ratingExplanation`.
-  core.String ratingExplanation;
+  core.String? ratingExplanation;
 
   /// A numeric rating of this claim, in the range worstRating — bestRating
   /// inclusive.
   ///
   /// Corresponds to `ClaimReview.reviewRating.ratingValue`.
-  core.int ratingValue;
+  core.int? ratingValue;
 
   /// The truthfulness rating as a human-readible short word or phrase.
   ///
   /// Corresponds to `ClaimReview.reviewRating.alternateName`.
-  core.String textualRating;
+  core.String? textualRating;
 
   /// For numeric ratings, the worst value possible in the scale from worst to
   /// best.
   ///
   /// Corresponds to `ClaimReview.reviewRating.worstRating`.
-  core.int worstRating;
+  core.int? worstRating;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ClaimRating();
 
@@ -531,13 +520,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bestRating != null) 'bestRating': bestRating,
-        if (imageUrl != null) 'imageUrl': imageUrl,
-        if (ratingExplanation != null) 'ratingExplanation': ratingExplanation,
-        if (ratingValue != null) 'ratingValue': ratingValue,
-        if (textualRating != null) 'textualRating': textualRating,
-        if (worstRating != null) 'worstRating': worstRating,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bestRating != null) 'bestRating': bestRating!,
+        if (imageUrl != null) 'imageUrl': imageUrl!,
+        if (ratingExplanation != null) 'ratingExplanation': ratingExplanation!,
+        if (ratingValue != null) 'ratingValue': ratingValue!,
+        if (textualRating != null) 'textualRating': textualRating!,
+        if (worstRating != null) 'worstRating': worstRating!,
       };
 }
 
@@ -546,24 +535,24 @@
   /// The language this review was written in.
   ///
   /// For instance, "en" or "de".
-  core.String languageCode;
+  core.String? languageCode;
 
   /// The publisher of this claim review.
-  GoogleFactcheckingFactchecktoolsV1alpha1Publisher publisher;
+  GoogleFactcheckingFactchecktoolsV1alpha1Publisher? publisher;
 
   /// The date the claim was reviewed.
-  core.String reviewDate;
+  core.String? reviewDate;
 
   /// Textual rating.
   ///
   /// For instance, "Mostly false".
-  core.String textualRating;
+  core.String? textualRating;
 
   /// The title of this claim review, if it can be determined.
-  core.String title;
+  core.String? title;
 
   /// The URL of this claim review.
-  core.String url;
+  core.String? url;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ClaimReview();
 
@@ -589,25 +578,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (languageCode != null) 'languageCode': languageCode,
-        if (publisher != null) 'publisher': publisher.toJson(),
-        if (reviewDate != null) 'reviewDate': reviewDate,
-        if (textualRating != null) 'textualRating': textualRating,
-        if (title != null) 'title': title,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (languageCode != null) 'languageCode': languageCode!,
+        if (publisher != null) 'publisher': publisher!.toJson(),
+        if (reviewDate != null) 'reviewDate': reviewDate!,
+        if (textualRating != null) 'textualRating': textualRating!,
+        if (title != null) 'title': title!,
+        if (url != null) 'url': url!,
       };
 }
 
 /// Information about the claim review author.
 class GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor {
   /// Corresponds to `ClaimReview.author.image`.
-  core.String imageUrl;
+  core.String? imageUrl;
 
   /// Name of the organization that is publishing the fact check.
   ///
   /// Corresponds to `ClaimReview.author.name`.
-  core.String name;
+  core.String? name;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor();
 
@@ -621,9 +610,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (imageUrl != null) 'imageUrl': imageUrl,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (imageUrl != null) 'imageUrl': imageUrl!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -637,41 +626,41 @@
   /// specified in `claim_first_appearance`.
   ///
   /// Corresponds to `ClaimReview.itemReviewed[@type=Claim].appearance.url`.
-  core.List<core.String> claimAppearances;
+  core.List<core.String>? claimAppearances;
 
   /// Info about the author of this claim.
-  GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor claimAuthor;
+  GoogleFactcheckingFactchecktoolsV1alpha1ClaimAuthor? claimAuthor;
 
   /// The date when the claim was made or entered public discourse.
   ///
   /// Corresponds to `ClaimReview.itemReviewed.datePublished`.
-  core.String claimDate;
+  core.String? claimDate;
 
   /// A link to a work in which this claim first appears.
   ///
   /// Corresponds to
   /// `ClaimReview.itemReviewed[@type=Claim].firstAppearance.url`.
-  core.String claimFirstAppearance;
+  core.String? claimFirstAppearance;
 
   /// The location where this claim was made.
   ///
   /// Corresponds to `ClaimReview.itemReviewed.name`.
-  core.String claimLocation;
+  core.String? claimLocation;
 
   /// A short summary of the claim being evaluated.
   ///
   /// Corresponds to `ClaimReview.claimReviewed`.
-  core.String claimReviewed;
+  core.String? claimReviewed;
 
   /// Info about the rating of this claim review.
-  GoogleFactcheckingFactchecktoolsV1alpha1ClaimRating rating;
+  GoogleFactcheckingFactchecktoolsV1alpha1ClaimRating? rating;
 
   /// This field is optional, and will default to the page URL.
   ///
   /// We provide this field to allow you the override the default value, but the
   /// only permitted override is the page URL plus an optional anchor link
   /// ("page jump"). Corresponds to `ClaimReview.url`
-  core.String url;
+  core.String? url;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkup();
 
@@ -708,16 +697,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (claimAppearances != null) 'claimAppearances': claimAppearances,
-        if (claimAuthor != null) 'claimAuthor': claimAuthor.toJson(),
-        if (claimDate != null) 'claimDate': claimDate,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (claimAppearances != null) 'claimAppearances': claimAppearances!,
+        if (claimAuthor != null) 'claimAuthor': claimAuthor!.toJson(),
+        if (claimDate != null) 'claimDate': claimDate!,
         if (claimFirstAppearance != null)
-          'claimFirstAppearance': claimFirstAppearance,
-        if (claimLocation != null) 'claimLocation': claimLocation,
-        if (claimReviewed != null) 'claimReviewed': claimReviewed,
-        if (rating != null) 'rating': rating.toJson(),
-        if (url != null) 'url': url,
+          'claimFirstAppearance': claimFirstAppearance!,
+        if (claimLocation != null) 'claimLocation': claimLocation!,
+        if (claimReviewed != null) 'claimReviewed': claimReviewed!,
+        if (rating != null) 'rating': rating!.toJson(),
+        if (url != null) 'url': url!,
       };
 }
 
@@ -727,12 +716,12 @@
   ///
   /// Similar to the above, semantically these are page-level fields, and each
   /// `ClaimReview` on this page will contain the same values.
-  GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor claimReviewAuthor;
+  GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewAuthor? claimReviewAuthor;
 
   /// A list of individual claim reviews for this page.
   ///
   /// Each item in the list corresponds to one `ClaimReview` element.
-  core.List<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkup>
+  core.List<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkup>?
       claimReviewMarkups;
 
   /// The name of this `ClaimReview` markup page resource, in the form of
@@ -740,7 +729,7 @@
   ///
   /// Except for update requests, this field is output-only and should not be
   /// set by the user.
-  core.String name;
+  core.String? name;
 
   /// The URL of the page associated with this `ClaimReview` markup.
   ///
@@ -748,20 +737,20 @@
   /// this is a page-level field, and each `ClaimReview` on this page will use
   /// this value unless individually overridden. Corresponds to
   /// `ClaimReview.url`
-  core.String pageUrl;
+  core.String? pageUrl;
 
   /// The date when the fact check was published.
   ///
   /// Similar to the URL, semantically this is a page-level field, and each
   /// `ClaimReview` on this page will contain the same value. Corresponds to
   /// `ClaimReview.datePublished`
-  core.String publishDate;
+  core.String? publishDate;
 
   /// The version ID for this markup.
   ///
   /// Except for update requests, this field is output-only and should not be
   /// set by the user.
-  core.String versionId;
+  core.String? versionId;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage();
 
@@ -795,29 +784,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (claimReviewAuthor != null)
-          'claimReviewAuthor': claimReviewAuthor.toJson(),
+          'claimReviewAuthor': claimReviewAuthor!.toJson(),
         if (claimReviewMarkups != null)
           'claimReviewMarkups':
-              claimReviewMarkups.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
-        if (pageUrl != null) 'pageUrl': pageUrl,
-        if (publishDate != null) 'publishDate': publishDate,
-        if (versionId != null) 'versionId': versionId,
+              claimReviewMarkups!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
+        if (pageUrl != null) 'pageUrl': pageUrl!,
+        if (publishDate != null) 'publishDate': publishDate!,
+        if (versionId != null) 'versionId': versionId!,
       };
 }
 
 /// Response from searching fact-checked claims.
 class GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse {
   /// The list of claims and all of their associated information.
-  core.List<GoogleFactcheckingFactchecktoolsV1alpha1Claim> claims;
+  core.List<GoogleFactcheckingFactchecktoolsV1alpha1Claim>? claims;
 
   /// The next pagination token in the Search response.
   ///
   /// It should be used as the `page_token` for the following request. An empty
   /// value means no more results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse();
 
@@ -835,24 +824,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (claims != null)
-          'claims': claims.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'claims': claims!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response from listing `ClaimReview` markup.
 class GoogleFactcheckingFactchecktoolsV1alpha1ListClaimReviewMarkupPagesResponse {
   /// The result list of pages of `ClaimReview` markup.
-  core.List<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage>
+  core.List<GoogleFactcheckingFactchecktoolsV1alpha1ClaimReviewMarkupPage>?
       claimReviewMarkupPages;
 
   /// The next pagination token in the Search response.
   ///
   /// It should be used as the `page_token` for the following request. An empty
   /// value means no more results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleFactcheckingFactchecktoolsV1alpha1ListClaimReviewMarkupPagesResponse();
 
@@ -871,11 +860,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (claimReviewMarkupPages != null)
           'claimReviewMarkupPages':
-              claimReviewMarkupPages.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+              claimReviewMarkupPages!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -884,13 +873,13 @@
   /// The name of this publisher.
   ///
   /// For instance, "Awesome Fact Checks".
-  core.String name;
+  core.String? name;
 
   /// Host-level site name, without the protocol or "www" prefix.
   ///
   /// For instance, "awesomefactchecks.com". This value of this field is based
   /// purely on the claim review URL.
-  core.String site;
+  core.String? site;
 
   GoogleFactcheckingFactchecktoolsV1alpha1Publisher();
 
@@ -903,9 +892,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (site != null) 'site': site,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (site != null) 'site': site!,
       };
 }
 
@@ -923,5 +912,5 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
diff --git a/generated/googleapis_beta/lib/firebase/v1beta1.dart b/generated/googleapis_beta/lib/firebase/v1beta1.dart
index 6f8fab3..929d645 100644
--- a/generated/googleapis_beta/lib/firebase/v1beta1.dart
+++ b/generated/googleapis_beta/lib/firebase/v1beta1.dart
@@ -117,9 +117,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<ListAvailableProjectsResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -166,11 +166,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -254,13 +251,9 @@
   async.Future<Operation> addFirebase(
     AddFirebaseRequest request,
     core.String project, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -341,13 +334,9 @@
   async.Future<Operation> addGoogleAnalytics(
     AddGoogleAnalyticsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -387,11 +376,8 @@
   /// this method will complete with the same error.
   async.Future<FirebaseProject> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -434,11 +420,8 @@
   /// this method will complete with the same error.
   async.Future<AdminSdkConfig> getAdminSdkConfig(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -480,11 +463,8 @@
   /// this method will complete with the same error.
   async.Future<AnalyticsDetails> getAnalyticsDetails(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -532,9 +512,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<ListFirebaseProjectsResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -588,14 +568,10 @@
   async.Future<FirebaseProject> patch(
     FirebaseProject request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -651,13 +627,9 @@
   async.Future<Empty> removeAnalytics(
     RemoveAnalyticsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -730,14 +702,11 @@
   /// this method will complete with the same error.
   async.Future<SearchFirebaseAppsResponse> searchApps(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -799,13 +768,9 @@
   async.Future<Operation> create(
     AndroidApp request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -847,11 +812,8 @@
   /// this method will complete with the same error.
   async.Future<AndroidApp> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -892,11 +854,8 @@
   /// this method will complete with the same error.
   async.Future<AndroidAppConfig> getConfig(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -946,13 +905,10 @@
   /// this method will complete with the same error.
   async.Future<ListAndroidAppsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1007,14 +963,10 @@
   async.Future<AndroidApp> patch(
     AndroidApp request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1067,13 +1019,9 @@
   async.Future<ShaCertificate> create(
     ShaCertificate request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1118,11 +1066,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1162,11 +1107,8 @@
   /// this method will complete with the same error.
   async.Future<ListShaCertificatesResponse> list(
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1240,13 +1182,10 @@
   /// this method will complete with the same error.
   async.Future<ListAvailableLocationsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1327,13 +1266,9 @@
   async.Future<Operation> finalize(
     FinalizeDefaultLocationRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1387,13 +1322,9 @@
   async.Future<Operation> create(
     IosApp request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1435,11 +1366,8 @@
   /// this method will complete with the same error.
   async.Future<IosApp> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1478,11 +1406,8 @@
   /// this method will complete with the same error.
   async.Future<IosAppConfig> getConfig(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1532,13 +1457,10 @@
   /// this method will complete with the same error.
   async.Future<ListIosAppsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1593,14 +1515,10 @@
   async.Future<IosApp> patch(
     IosApp request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1653,13 +1571,9 @@
   async.Future<Operation> create(
     WebApp request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1701,11 +1615,8 @@
   /// this method will complete with the same error.
   async.Future<WebApp> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1744,11 +1655,8 @@
   /// this method will complete with the same error.
   async.Future<WebAppConfig> getConfig(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1798,13 +1706,10 @@
   /// this method will complete with the same error.
   async.Future<ListWebAppsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1859,14 +1764,10 @@
   async.Future<WebApp> patch(
     WebApp request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1895,7 +1796,7 @@
   /// [GCP resource locations](https://firebase.google.com/docs/projects/locations).
   ///
   /// Deprecated.
-  core.String locationId;
+  core.String? locationId;
 
   /// Instead, to link a Project with a Google Analytics account, call
   /// \[`AddGoogleAnalytics`\](../../v1beta1/projects/addGoogleAnalytics) after
@@ -1906,7 +1807,7 @@
   /// `com.google.i18n.identifiers.RegionCode`.
   ///
   /// Deprecated.
-  core.String regionCode;
+  core.String? regionCode;
 
   /// Instead, to link a Project with a Google Analytics account, call
   /// \[`AddGoogleAnalytics`\](../../v1beta1/projects/addGoogleAnalytics) after
@@ -1916,7 +1817,7 @@
   /// example: America/Los_Angeles or Africa/Abidjan
   ///
   /// Deprecated.
-  core.String timeZone;
+  core.String? timeZone;
 
   AddFirebaseRequest();
 
@@ -1932,10 +1833,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (locationId != null) 'locationId': locationId,
-        if (regionCode != null) 'regionCode': regionCode,
-        if (timeZone != null) 'timeZone': timeZone,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (locationId != null) 'locationId': locationId!,
+        if (regionCode != null) 'regionCode': regionCode!,
+        if (timeZone != null) 'timeZone': timeZone!,
       };
 }
 
@@ -1947,11 +1848,11 @@
   /// Specifying this field will provision a new Google Analytics property in
   /// your Google Analytics account and associate the new property with the
   /// `FirebaseProject`.
-  core.String analyticsAccountId;
+  core.String? analyticsAccountId;
 
   /// The ID for the existing Google Analytics property that you want to
   /// associate with the `FirebaseProject`.
-  core.String analyticsPropertyId;
+  core.String? analyticsPropertyId;
 
   AddGoogleAnalyticsRequest();
 
@@ -1964,17 +1865,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (analyticsAccountId != null)
-          'analyticsAccountId': analyticsAccountId,
+          'analyticsAccountId': analyticsAccountId!,
         if (analyticsPropertyId != null)
-          'analyticsPropertyId': analyticsPropertyId,
+          'analyticsPropertyId': analyticsPropertyId!,
       };
 }
 
 class AdminSdkConfig {
   /// The default Firebase Realtime Database URL.
-  core.String databaseURL;
+  core.String? databaseURL;
 
   /// The ID of the Project's default GCP resource location.
   ///
@@ -1984,7 +1885,7 @@
   /// finalized yet. To set a Project's default GCP resource location, call
   /// \[`FinalizeDefaultLocation`\](../projects.defaultLocation/finalize) after
   /// you add Firebase resources to the Project.
-  core.String locationId;
+  core.String? locationId;
 
   /// A user-assigned unique identifier for the `FirebaseProject`.
   ///
@@ -1993,10 +1894,10 @@
   /// convenience alias to reference the Project.
   ///
   /// Immutable.
-  core.String projectId;
+  core.String? projectId;
 
   /// The default Cloud Storage for Firebase storage bucket name.
-  core.String storageBucket;
+  core.String? storageBucket;
 
   AdminSdkConfig();
 
@@ -2015,11 +1916,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (databaseURL != null) 'databaseURL': databaseURL,
-        if (locationId != null) 'locationId': locationId,
-        if (projectId != null) 'projectId': projectId,
-        if (storageBucket != null) 'storageBucket': storageBucket,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (databaseURL != null) 'databaseURL': databaseURL!,
+        if (locationId != null) 'locationId': locationId!,
+        if (projectId != null) 'projectId': projectId!,
+        if (storageBucket != null) 'storageBucket': storageBucket!,
       };
 }
 
@@ -2029,7 +1930,7 @@
   ///
   /// This object contains the details of the Google Analytics property
   /// associated with the Project.
-  AnalyticsProperty analyticsProperty;
+  AnalyticsProperty? analyticsProperty;
 
   /// - For `AndroidApps` and `IosApps`: a map of `app` to `streamId` for each
   /// Firebase App in the specified `FirebaseProject`.
@@ -2038,7 +1939,7 @@
   /// `app` to `streamId` and `measurementId` for each `WebApp` in the specified
   /// `FirebaseProject`. Each `app`, `streamId`, and `measurementId` appears
   /// only once.
-  core.List<StreamMapping> streamMappings;
+  core.List<StreamMapping>? streamMappings;
 
   AnalyticsDetails();
 
@@ -2055,12 +1956,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (analyticsProperty != null)
-          'analyticsProperty': analyticsProperty.toJson(),
+          'analyticsProperty': analyticsProperty!.toJson(),
         if (streamMappings != null)
           'streamMappings':
-              streamMappings.map((value) => value.toJson()).toList(),
+              streamMappings!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2068,7 +1969,7 @@
 class AnalyticsProperty {
   /// The display name of the Google Analytics property associated with the
   /// specified `FirebaseProject`.
-  core.String displayName;
+  core.String? displayName;
 
   /// The globally unique, Google-assigned identifier of the Google Analytics
   /// property associated with the specified `FirebaseProject`.
@@ -2078,7 +1979,7 @@
   /// link the `FirebaseProject` with a Google Analytics account, the value in
   /// this `id` field is the same as the ID of the property either specified or
   /// provisioned with that call to `AddGoogleAnalytics`.
-  core.String id;
+  core.String? id;
 
   AnalyticsProperty();
 
@@ -2091,9 +1992,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (id != null) 'id': id,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (id != null) 'id': id!,
       };
 }
 
@@ -2105,10 +2006,10 @@
   /// is not specified.
   ///
   /// Immutable.
-  core.String appId;
+  core.String? appId;
 
   /// The user-assigned display name for the `AndroidApp`.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the AndroidApp, in the format: projects/
   /// PROJECT_IDENTIFIER/androidApps/APP_ID * PROJECT_IDENTIFIER: the parent
@@ -2122,19 +2023,19 @@
   /// value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`.
   /// * APP_ID: the globally unique, Firebase-assigned identifier for the App
   /// (see \[`appId`\](../projects.androidApps#AndroidApp.FIELDS.app_id)).
-  core.String name;
+  core.String? name;
 
   /// The canonical package name of the Android app as would appear in the
   /// Google Play Developer Console.
   ///
   /// Immutable.
-  core.String packageName;
+  core.String? packageName;
 
   /// A user-assigned unique identifier of the parent FirebaseProject for the
   /// `AndroidApp`.
   ///
   /// Immutable.
-  core.String projectId;
+  core.String? projectId;
 
   AndroidApp();
 
@@ -2156,21 +2057,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appId != null) 'appId': appId,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (packageName != null) 'packageName': packageName,
-        if (projectId != null) 'projectId': projectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appId != null) 'appId': appId!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (packageName != null) 'packageName': packageName!,
+        if (projectId != null) 'projectId': projectId!,
       };
 }
 
 /// Configuration metadata of a single Firebase App for Android.
 class AndroidAppConfig {
   /// The contents of the JSON configuration file.
-  core.String configFileContents;
+  core.String? configFileContents;
   core.List<core.int> get configFileContentsAsBytes =>
-      convert.base64.decode(configFileContents);
+      convert.base64.decode(configFileContents!);
 
   set configFileContentsAsBytes(core.List<core.int> _bytes) {
     configFileContents =
@@ -2181,7 +2082,7 @@
   /// typically saved as.
   ///
   /// For example: `google-services.json`
-  core.String configFilename;
+  core.String? configFilename;
 
   AndroidAppConfig();
 
@@ -2194,10 +2095,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (configFileContents != null)
-          'configFileContents': configFileContents,
-        if (configFilename != null) 'configFilename': configFilename,
+          'configFileContents': configFileContents!,
+        if (configFilename != null) 'configFilename': configFilename!,
       };
 }
 
@@ -2212,7 +2113,7 @@
   /// alphanumeric characters to create your default Hosting site name. For
   /// example, if your `projectId` is `myproject123`, your default Hosting site
   /// name might be: `myproject123-a5c16`
-  core.String hostingSite;
+  core.String? hostingSite;
 
   /// The ID of the Project's default GCP resource location.
   ///
@@ -2222,7 +2123,7 @@
   /// finalized yet. To set a Project's default GCP resource location, call
   /// \[`FinalizeDefaultLocation`\](../projects.defaultLocation/finalize) after
   /// you add Firebase resources to the Project.
-  core.String locationId;
+  core.String? locationId;
 
   /// The default Firebase Realtime Database instance name, in the format:
   /// PROJECT_ID Though rare, your `projectId` might already be used as the name
@@ -2234,11 +2135,11 @@
   /// alphanumeric characters to create your default Realtime Database instance
   /// name. For example, if your `projectId` is `myproject123`, your default
   /// database instance name might be: `myproject123-a5c16`
-  core.String realtimeDatabaseInstance;
+  core.String? realtimeDatabaseInstance;
 
   /// The default Cloud Storage for Firebase storage bucket, in the format:
   /// PROJECT_ID.appspot.com
-  core.String storageBucket;
+  core.String? storageBucket;
 
   DefaultResources();
 
@@ -2258,12 +2159,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hostingSite != null) 'hostingSite': hostingSite,
-        if (locationId != null) 'locationId': locationId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hostingSite != null) 'hostingSite': hostingSite!,
+        if (locationId != null) 'locationId': locationId!,
         if (realtimeDatabaseInstance != null)
-          'realtimeDatabaseInstance': realtimeDatabaseInstance,
-        if (storageBucket != null) 'storageBucket': storageBucket,
+          'realtimeDatabaseInstance': realtimeDatabaseInstance!,
+        if (storageBucket != null) 'storageBucket': storageBucket!,
       };
 }
 
@@ -2281,7 +2182,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 class FinalizeDefaultLocationRequest {
@@ -2289,7 +2190,7 @@
   ///
   /// The location must be one of the available
   /// [GCP resource locations](https://firebase.google.com/docs/projects/locations).
-  core.String locationId;
+  core.String? locationId;
 
   FinalizeDefaultLocationRequest();
 
@@ -2299,8 +2200,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (locationId != null) 'locationId': locationId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (locationId != null) 'locationId': locationId!,
       };
 }
 
@@ -2312,15 +2213,15 @@
   /// is not specified.
   ///
   /// Output only. Immutable.
-  core.String appId;
+  core.String? appId;
 
   /// The user-assigned display name of the Firebase App.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the Firebase App, in the format: projects/PROJECT_ID
   /// /iosApps/APP_ID or projects/PROJECT_ID/androidApps/APP_ID or projects/
   /// PROJECT_ID/webApps/APP_ID
-  core.String name;
+  core.String? name;
 
   /// The platform-specific identifier of the App.
   ///
@@ -2333,7 +2234,7 @@
   /// and its associated Apps.
   ///
   /// Output only. Immutable.
-  core.String namespace;
+  core.String? namespace;
 
   /// The platform of the Firebase App.
   /// Possible string values are:
@@ -2342,7 +2243,7 @@
   /// - "IOS" : The Firebase App is associated with iOS.
   /// - "ANDROID" : The Firebase App is associated with Android.
   /// - "WEB" : The Firebase App is associated with web.
-  core.String platform;
+  core.String? platform;
 
   FirebaseAppInfo();
 
@@ -2364,12 +2265,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appId != null) 'appId': appId,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (namespace != null) 'namespace': namespace,
-        if (platform != null) 'platform': platform,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appId != null) 'appId': appId!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (namespace != null) 'namespace': namespace!,
+        if (platform != null) 'platform': platform!,
       };
 }
 
@@ -2387,7 +2288,7 @@
 /// allows for easy interop with Google APIs.
 class FirebaseProject {
   /// The user-assigned display name of the Project.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the Project, in the format:
   /// projects/PROJECT_IDENTIFIER PROJECT_IDENTIFIER: the Project's
@@ -2398,7 +2299,7 @@
   /// Learn more about using project identifiers in Google's
   /// [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the
   /// value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`.
-  core.String name;
+  core.String? name;
 
   /// A user-assigned unique identifier for the Project.
   ///
@@ -2407,7 +2308,7 @@
   /// convenience alias to reference the Project.
   ///
   /// Immutable.
-  core.String projectId;
+  core.String? projectId;
 
   /// The globally unique, Google-assigned canonical identifier for the Project.
   ///
@@ -2415,10 +2316,10 @@
   /// to Firebase or third-party services.
   ///
   /// Immutable.
-  core.String projectNumber;
+  core.String? projectNumber;
 
   /// The default Firebase resources associated with the Project.
-  DefaultResources resources;
+  DefaultResources? resources;
 
   /// The lifecycle state of the Project.
   ///
@@ -2431,7 +2332,7 @@
   /// - "STATE_UNSPECIFIED" : Unspecified state.
   /// - "ACTIVE" : The normal and active state.
   /// - "DELETED" : The Project has been marked for deletion by the user.
-  core.String state;
+  core.String? state;
 
   FirebaseProject();
 
@@ -2457,13 +2358,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (projectId != null) 'projectId': projectId,
-        if (projectNumber != null) 'projectNumber': projectNumber,
-        if (resources != null) 'resources': resources.toJson(),
-        if (state != null) 'state': state,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (projectId != null) 'projectId': projectId!,
+        if (projectNumber != null) 'projectNumber': projectNumber!,
+        if (resources != null) 'resources': resources!.toJson(),
+        if (state != null) 'state': state!,
       };
 }
 
@@ -2475,20 +2376,20 @@
   /// is not specified.
   ///
   /// Immutable.
-  core.String appId;
+  core.String? appId;
 
   /// The automatically generated Apple ID assigned to the iOS app by Apple in
   /// the iOS App Store.
-  core.String appStoreId;
+  core.String? appStoreId;
 
   /// The canonical bundle ID of the iOS app as it would appear in the iOS
   /// AppStore.
   ///
   /// Immutable.
-  core.String bundleId;
+  core.String? bundleId;
 
   /// The user-assigned display name for the `IosApp`.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the IosApp, in the format:
   /// projects/PROJECT_IDENTIFIER /iosApps/APP_ID * PROJECT_IDENTIFIER: the
@@ -2502,13 +2403,13 @@
   /// value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`.
   /// * APP_ID: the globally unique, Firebase-assigned identifier for the App
   /// (see \[`appId`\](../projects.iosApps#IosApp.FIELDS.app_id)).
-  core.String name;
+  core.String? name;
 
   /// A user-assigned unique identifier of the parent FirebaseProject for the
   /// `IosApp`.
   ///
   /// Immutable.
-  core.String projectId;
+  core.String? projectId;
 
   IosApp();
 
@@ -2533,22 +2434,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appId != null) 'appId': appId,
-        if (appStoreId != null) 'appStoreId': appStoreId,
-        if (bundleId != null) 'bundleId': bundleId,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (projectId != null) 'projectId': projectId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appId != null) 'appId': appId!,
+        if (appStoreId != null) 'appStoreId': appStoreId!,
+        if (bundleId != null) 'bundleId': bundleId!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (projectId != null) 'projectId': projectId!,
       };
 }
 
 /// Configuration metadata of a single Firebase App for iOS.
 class IosAppConfig {
   /// The content of the XML configuration file.
-  core.String configFileContents;
+  core.String? configFileContents;
   core.List<core.int> get configFileContentsAsBytes =>
-      convert.base64.decode(configFileContents);
+      convert.base64.decode(configFileContents!);
 
   set configFileContentsAsBytes(core.List<core.int> _bytes) {
     configFileContents =
@@ -2559,7 +2460,7 @@
   /// saved as.
   ///
   /// For example: `GoogleService-Info.plist`
-  core.String configFilename;
+  core.String? configFilename;
 
   IosAppConfig();
 
@@ -2572,16 +2473,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (configFileContents != null)
-          'configFileContents': configFileContents,
-        if (configFilename != null) 'configFilename': configFilename,
+          'configFileContents': configFileContents!,
+        if (configFilename != null) 'configFilename': configFilename!,
       };
 }
 
 class ListAndroidAppsResponse {
   /// List of each `AndroidApp` associated with the specified `FirebaseProject`.
-  core.List<AndroidApp> apps;
+  core.List<AndroidApp>? apps;
 
   /// If the result list is too large to fit in a single response, then a token
   /// is returned.
@@ -2590,7 +2491,7 @@
   /// This token can be used in a subsequent call to `ListAndroidApps` to find
   /// the next group of Apps. Page tokens are short-lived and should not be
   /// persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListAndroidAppsResponse();
 
@@ -2606,15 +2507,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apps != null) 'apps': apps.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apps != null) 'apps': apps!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 class ListAvailableLocationsResponse {
   /// One page of results from a call to `ListAvailableLocations`.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// If the result list is too large to fit in a single response, then a token
   /// is returned.
@@ -2623,7 +2524,7 @@
   /// all available locations have been listed. This token can be used in a
   /// subsequent call to `ListAvailableLocations` to find more locations. Page
   /// tokens are short-lived and should not be persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListAvailableLocationsResponse();
 
@@ -2639,10 +2540,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -2654,11 +2555,11 @@
   /// This token can be used in a subsequent calls to `ListAvailableProjects` to
   /// find the next group of Projects. Page tokens are short-lived and should
   /// not be persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of GCP `Projects` which can have Firebase resources added to
   /// them.
-  core.List<ProjectInfo> projectInfo;
+  core.List<ProjectInfo>? projectInfo;
 
   ListAvailableProjectsResponse();
 
@@ -2674,10 +2575,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (projectInfo != null)
-          'projectInfo': projectInfo.map((value) => value.toJson()).toList(),
+          'projectInfo': projectInfo!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2689,10 +2590,10 @@
   /// This token can be used in a subsequent calls to `ListFirebaseProjects` to
   /// find the next group of Projects. Page tokens are short-lived and should
   /// not be persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// One page of the list of Projects that are accessible to the caller.
-  core.List<FirebaseProject> results;
+  core.List<FirebaseProject>? results;
 
   ListFirebaseProjectsResponse();
 
@@ -2708,16 +2609,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (results != null)
-          'results': results.map((value) => value.toJson()).toList(),
+          'results': results!.map((value) => value.toJson()).toList(),
       };
 }
 
 class ListIosAppsResponse {
   /// List of each `IosApp` associated with the specified `FirebaseProject`.
-  core.List<IosApp> apps;
+  core.List<IosApp>? apps;
 
   /// If the result list is too large to fit in a single response, then a token
   /// is returned.
@@ -2726,7 +2627,7 @@
   /// This token can be used in a subsequent call to `ListIosApps` to find the
   /// next group of Apps. Page tokens are short-lived and should not be
   /// persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListIosAppsResponse();
 
@@ -2742,15 +2643,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apps != null) 'apps': apps.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apps != null) 'apps': apps!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 class ListShaCertificatesResponse {
   /// The list of each `ShaCertificate` associated with the `AndroidApp`.
-  core.List<ShaCertificate> certificates;
+  core.List<ShaCertificate>? certificates;
 
   ListShaCertificatesResponse();
 
@@ -2763,15 +2664,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (certificates != null)
-          'certificates': certificates.map((value) => value.toJson()).toList(),
+          'certificates': certificates!.map((value) => value.toJson()).toList(),
       };
 }
 
 class ListWebAppsResponse {
   /// List of each `WebApp` associated with the specified `FirebaseProject`.
-  core.List<WebApp> apps;
+  core.List<WebApp>? apps;
 
   /// If the result list is too large to fit in a single response, then a token
   /// is returned.
@@ -2780,7 +2681,7 @@
   /// This token can be used in a subsequent call to `ListWebApps` to find the
   /// next group of Apps. Page tokens are short-lived and should not be
   /// persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListWebAppsResponse();
 
@@ -2796,22 +2697,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apps != null) 'apps': apps.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apps != null) 'apps': apps!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// A GCP resource location that can be selected for a FirebaseProject.
 class Location {
   /// Products and services that are available in the GCP resource location.
-  core.List<core.String> features;
+  core.List<core.String>? features;
 
   /// The ID of the GCP resource location.
   ///
   /// It will be one of the available
   /// [GCP resource locations](https://firebase.google.com/docs/projects/locations#types).
-  core.String locationId;
+  core.String? locationId;
 
   /// Indicates whether the GCP resource location is a \[regional or
   /// multi-regional
@@ -2825,7 +2726,7 @@
   /// - "MULTI_REGIONAL" : The location is a multi-regional location. Data in a
   /// multi-region location is replicated in multiple regions. Within each
   /// region, data is replicated in multiple zones.
-  core.String type;
+  core.String? type;
 
   Location();
 
@@ -2843,10 +2744,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (features != null) 'features': features,
-        if (locationId != null) 'locationId': locationId,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (features != null) 'features': features!,
+        if (locationId != null) 'locationId': locationId!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -2858,7 +2759,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// This resource represents a long-running operation that is the result of a
@@ -2868,10 +2769,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -2882,14 +2783,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -2902,7 +2803,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -2937,19 +2838,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
 /// A reference to a Google Cloud Platform (GCP) `Project`.
 class ProjectInfo {
   /// The user-assigned display name of the GCP `Project`, for example: `My App`
-  core.String displayName;
+  core.String? displayName;
 
   /// The ID of the Project's default GCP resource location.
   ///
@@ -2960,13 +2861,13 @@
   /// location. To set a Project's default GCP resource location, call
   /// \[`FinalizeDefaultLocation`\](../projects.defaultLocation/finalize) after
   /// you add Firebase resources to the Project.
-  core.String locationId;
+  core.String? locationId;
 
   /// The resource name of the GCP `Project` to which Firebase resources can be
   /// added, in the format: projects/PROJECT_IDENTIFIER Refer to the
   /// `FirebaseProject` \[`name`\](../projects#FirebaseProject.FIELDS.name)
   /// field for details about PROJECT_IDENTIFIER values.
-  core.String project;
+  core.String? project;
 
   ProjectInfo();
 
@@ -2982,10 +2883,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (locationId != null) 'locationId': locationId,
-        if (project != null) 'project': project,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (locationId != null) 'locationId': locationId!,
+        if (project != null) 'project': project!,
       };
 }
 
@@ -3000,7 +2901,7 @@
   /// Failed` error.
   ///
   /// Optional.
-  core.String analyticsPropertyId;
+  core.String? analyticsPropertyId;
 
   RemoveAnalyticsRequest();
 
@@ -3010,15 +2911,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (analyticsPropertyId != null)
-          'analyticsPropertyId': analyticsPropertyId,
+          'analyticsPropertyId': analyticsPropertyId!,
       };
 }
 
 class SearchFirebaseAppsResponse {
   /// One page of results from a call to `SearchFirebaseApps`.
-  core.List<FirebaseAppInfo> apps;
+  core.List<FirebaseAppInfo>? apps;
 
   /// If the result list is too large to fit in a single response, then a token
   /// is returned.
@@ -3026,7 +2927,7 @@
   /// This token can be used in a subsequent calls to `SearchFirebaseApps` to
   /// find the next group of Apps. Page tokens are short-lived and should not be
   /// persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SearchFirebaseAppsResponse();
 
@@ -3042,9 +2943,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apps != null) 'apps': apps.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apps != null) 'apps': apps!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -3056,7 +2957,7 @@
   /// for distinguishing unset values.
   /// - "SHA_1" : Certificate is a SHA-1 type certificate.
   /// - "SHA_256" : Certificate is a SHA-256 type certificate.
-  core.String certType;
+  core.String? certType;
 
   /// The resource name of the ShaCertificate for the AndroidApp, in the format:
   /// projects/PROJECT_IDENTIFIER/androidApps/APP_ID/sha/SHA_HASH *
@@ -3072,10 +2973,10 @@
   /// (see \[`appId`\](../projects.androidApps#AndroidApp.FIELDS.app_id)). *
   /// SHA_HASH: the certificate hash for the App (see
   /// \[`shaHash`\](../projects.androidApps.sha#ShaCertificate.FIELDS.sha_hash)).
-  core.String name;
+  core.String? name;
 
   /// The certificate hash for the `AndroidApp`.
-  core.String shaHash;
+  core.String? shaHash;
 
   ShaCertificate();
 
@@ -3091,10 +2992,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (certType != null) 'certType': certType,
-        if (name != null) 'name': name,
-        if (shaHash != null) 'shaHash': shaHash,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (certType != null) 'certType': certType!,
+        if (name != null) 'name': name!,
+        if (shaHash != null) 'shaHash': shaHash!,
       };
 }
 
@@ -3107,7 +3008,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -3115,13 +3016,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -3145,10 +3046,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -3158,23 +3059,23 @@
   /// to this status.
   ///
   /// May be missing.
-  core.int canonicalCode;
+  core.int? canonicalCode;
 
   /// Numeric code drawn from the space specified below.
   ///
   /// Often, this is the canonical error space, and code is drawn from
   /// google3/util/task/codes.proto
-  core.int code;
+  core.int? code;
 
   /// Detail message
-  core.String message;
+  core.String? message;
 
   /// message_set associates an arbitrary proto message with the status.
-  MessageSet messageSet;
+  MessageSet? messageSet;
 
   /// The following are usually only present when code != 0 Space to which this
   /// status belongs
-  core.String space;
+  core.String? space;
 
   StatusProto();
 
@@ -3197,12 +3098,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (canonicalCode != null) 'canonicalCode': canonicalCode,
-        if (code != null) 'code': code,
-        if (message != null) 'message': message,
-        if (messageSet != null) 'messageSet': messageSet.toJson(),
-        if (space != null) 'space': space,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (canonicalCode != null) 'canonicalCode': canonicalCode!,
+        if (code != null) 'code': code!,
+        if (message != null) 'message': message!,
+        if (messageSet != null) 'messageSet': messageSet!.toJson(),
+        if (space != null) 'space': space!,
       };
 }
 
@@ -3214,7 +3115,7 @@
   /// projects/PROJECT_IDENTIFIER /webApps/APP_ID Refer to the `FirebaseProject`
   /// \[`name`\](../projects#FirebaseProject.FIELDS.name) field for details
   /// about PROJECT_IDENTIFIER values.
-  core.String app;
+  core.String? app;
 
   /// Applicable for Firebase Web Apps only.
   ///
@@ -3223,14 +3124,14 @@
   /// interact with Google Analytics APIs. Learn more about this ID and Google
   /// Analytics web streams in the
   /// [Analytics documentation](https://support.google.com/analytics/topic/9303475).
-  core.String measurementId;
+  core.String? measurementId;
 
   /// The unique Google-assigned identifier of the Google Analytics data stream
   /// associated with the Firebase App.
   ///
   /// Learn more about Google Analytics data streams in the
   /// [Analytics documentation](https://support.google.com/analytics/answer/9303323).
-  core.String streamId;
+  core.String? streamId;
 
   StreamMapping();
 
@@ -3246,10 +3147,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (app != null) 'app': app,
-        if (measurementId != null) 'measurementId': measurementId,
-        if (streamId != null) 'streamId': streamId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (app != null) 'app': app!,
+        if (measurementId != null) 'measurementId': measurementId!,
+        if (streamId != null) 'streamId': streamId!,
       };
 }
 
@@ -3261,13 +3162,13 @@
   /// is not specified.
   ///
   /// Immutable.
-  core.String appId;
+  core.String? appId;
 
   /// The URLs where the `WebApp` is hosted.
-  core.List<core.String> appUrls;
+  core.List<core.String>? appUrls;
 
   /// The user-assigned display name for the `WebApp`.
-  core.String displayName;
+  core.String? displayName;
 
   /// The resource name of the WebApp, in the format:
   /// projects/PROJECT_IDENTIFIER /webApps/APP_ID * PROJECT_IDENTIFIER: the
@@ -3281,13 +3182,13 @@
   /// value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`.
   /// * APP_ID: the globally unique, Firebase-assigned identifier for the App
   /// (see \[`appId`\](../projects.webApps#WebApp.FIELDS.app_id)).
-  core.String name;
+  core.String? name;
 
   /// A user-assigned unique identifier of the parent FirebaseProject for the
   /// `WebApp`.
   ///
   /// Immutable.
-  core.String projectId;
+  core.String? projectId;
 
   /// A unique, Firebase-assigned identifier for the `WebApp`.
   ///
@@ -3297,7 +3198,7 @@
   /// associated Apps.
   ///
   /// Output only. Immutable.
-  core.String webId;
+  core.String? webId;
 
   WebApp();
 
@@ -3324,32 +3225,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appId != null) 'appId': appId,
-        if (appUrls != null) 'appUrls': appUrls,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (projectId != null) 'projectId': projectId,
-        if (webId != null) 'webId': webId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appId != null) 'appId': appId!,
+        if (appUrls != null) 'appUrls': appUrls!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (projectId != null) 'projectId': projectId!,
+        if (webId != null) 'webId': webId!,
       };
 }
 
 /// Configuration metadata of a single Firebase App for the web.
 class WebAppConfig {
   /// The API key associated with the `WebApp`.
-  core.String apiKey;
+  core.String? apiKey;
 
   /// The globally unique, Firebase-assigned identifier for the `WebApp`.
   ///
   /// Immutable.
-  core.String appId;
+  core.String? appId;
 
   /// The domain Firebase Auth configures for OAuth redirects, in the format:
   /// PROJECT_ID.firebaseapp.com
-  core.String authDomain;
+  core.String? authDomain;
 
   /// The default Firebase Realtime Database URL.
-  core.String databaseURL;
+  core.String? databaseURL;
 
   /// The ID of the Project's default GCP resource location.
   ///
@@ -3359,7 +3260,7 @@
   /// finalized yet. To set a Project's default GCP resource location, call
   /// \[`FinalizeDefaultLocation`\](../projects.defaultLocation/finalize) after
   /// you add Firebase resources to the Project.
-  core.String locationId;
+  core.String? locationId;
 
   /// The unique Google-assigned identifier of the Google Analytics web stream
   /// associated with the `WebApp`.
@@ -3376,18 +3277,18 @@
   /// dynamically fetches the `measurementId` when your app initializes
   /// Analytics. Having this ID in your config object is optional, but it does
   /// serve as a fallback in the rare case that the dynamic fetch fails.
-  core.String measurementId;
+  core.String? measurementId;
 
   /// The sender ID for use with Firebase Cloud Messaging.
-  core.String messagingSenderId;
+  core.String? messagingSenderId;
 
   /// A user-assigned unique identifier for the `FirebaseProject`.
   ///
   /// Immutable.
-  core.String projectId;
+  core.String? projectId;
 
   /// The default Cloud Storage for Firebase storage bucket name.
-  core.String storageBucket;
+  core.String? storageBucket;
 
   WebAppConfig();
 
@@ -3421,15 +3322,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiKey != null) 'apiKey': apiKey,
-        if (appId != null) 'appId': appId,
-        if (authDomain != null) 'authDomain': authDomain,
-        if (databaseURL != null) 'databaseURL': databaseURL,
-        if (locationId != null) 'locationId': locationId,
-        if (measurementId != null) 'measurementId': measurementId,
-        if (messagingSenderId != null) 'messagingSenderId': messagingSenderId,
-        if (projectId != null) 'projectId': projectId,
-        if (storageBucket != null) 'storageBucket': storageBucket,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiKey != null) 'apiKey': apiKey!,
+        if (appId != null) 'appId': appId!,
+        if (authDomain != null) 'authDomain': authDomain!,
+        if (databaseURL != null) 'databaseURL': databaseURL!,
+        if (locationId != null) 'locationId': locationId!,
+        if (measurementId != null) 'measurementId': measurementId!,
+        if (messagingSenderId != null) 'messagingSenderId': messagingSenderId!,
+        if (projectId != null) 'projectId': projectId!,
+        if (storageBucket != null) 'storageBucket': storageBucket!,
       };
 }
diff --git a/generated/googleapis_beta/lib/firebasedatabase/v1beta.dart b/generated/googleapis_beta/lib/firebasedatabase/v1beta.dart
index dd5d633..4b8403e 100644
--- a/generated/googleapis_beta/lib/firebasedatabase/v1beta.dart
+++ b/generated/googleapis_beta/lib/firebasedatabase/v1beta.dart
@@ -130,15 +130,11 @@
   async.Future<DatabaseInstance> create(
     DatabaseInstance request,
     core.String parent, {
-    core.String databaseId,
-    core.bool validateOnly,
-    core.String $fields,
+    core.String? databaseId,
+    core.bool? validateOnly,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (databaseId != null) 'databaseId': [databaseId],
       if (validateOnly != null) 'validateOnly': ['${validateOnly}'],
@@ -186,11 +182,8 @@
   /// this method will complete with the same error.
   async.Future<DatabaseInstance> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -235,13 +228,9 @@
   async.Future<DatabaseInstance> disable(
     DisableDatabaseInstanceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -286,11 +275,8 @@
   /// this method will complete with the same error.
   async.Future<DatabaseInstance> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -343,13 +329,10 @@
   /// this method will complete with the same error.
   async.Future<ListDatabaseInstancesResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -398,13 +381,9 @@
   async.Future<DatabaseInstance> reenable(
     ReenableDatabaseInstanceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -432,18 +411,18 @@
   /// The globally unique hostname of the database.
   ///
   /// Immutable.
-  core.String databaseUrl;
+  core.String? databaseUrl;
 
   /// The fully qualified resource name of the database instance, in the form:
   /// `projects/{project-number}/locations/{location-id}/instances/{database-id}`.
   ///
   /// Currently the only supported location is 'us-central1'.
-  core.String name;
+  core.String? name;
 
   /// The resource name of the project this instance belongs to.
   ///
   /// For example: `projects/{project-number}`.
-  core.String project;
+  core.String? project;
 
   /// The database's lifecycle state.
   ///
@@ -456,7 +435,7 @@
   /// - "DISABLED" : The database is in a disabled state. It can be re-enabled
   /// later.
   /// - "DELETED" : The database is in a deleted state.
-  core.String state;
+  core.String? state;
 
   /// The database instance type.
   ///
@@ -469,7 +448,7 @@
   /// - "DEFAULT_DATABASE" : The default database that is provisioned when a
   /// project is created.
   /// - "USER_DATABASE" : A database that the user created.
-  core.String type;
+  core.String? type;
 
   DatabaseInstance();
 
@@ -491,12 +470,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (databaseUrl != null) 'databaseUrl': databaseUrl,
-        if (name != null) 'name': name,
-        if (project != null) 'project': project,
-        if (state != null) 'state': state,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (databaseUrl != null) 'databaseUrl': databaseUrl!,
+        if (name != null) 'name': name!,
+        if (project != null) 'project': project!,
+        if (state != null) 'state': state!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -508,13 +487,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The response from the ListDatabaseInstances method.
 class ListDatabaseInstancesResponse {
   /// List of each DatabaseInstance that is in the parent Firebase project.
-  core.List<DatabaseInstance> instances;
+  core.List<DatabaseInstance>? instances;
 
   /// If the result list is too large to fit in a single response, then a token
   /// is returned.
@@ -523,7 +502,7 @@
   /// This token can be used in a subsequent call to `ListDatabaseInstances` to
   /// find the next group of database instances. Page tokens are short-lived and
   /// should not be persisted.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListDatabaseInstancesResponse();
 
@@ -539,10 +518,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (instances != null)
-          'instances': instances.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'instances': instances!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -554,5 +533,5 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
diff --git a/generated/googleapis_beta/lib/lifesciences/v2beta.dart b/generated/googleapis_beta/lib/lifesciences/v2beta.dart
index eef9d76..56edbbf 100644
--- a/generated/googleapis_beta/lib/lifesciences/v2beta.dart
+++ b/generated/googleapis_beta/lib/lifesciences/v2beta.dart
@@ -97,11 +97,8 @@
   /// this method will complete with the same error.
   async.Future<Location> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -141,14 +138,11 @@
   /// this method will complete with the same error.
   async.Future<ListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -206,13 +200,9 @@
   async.Future<Empty> cancel(
     CancelOperationRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -254,11 +244,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -311,14 +298,11 @@
   /// this method will complete with the same error.
   async.Future<ListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -382,13 +366,9 @@
   async.Future<Operation> run(
     RunPipelineRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -410,7 +390,7 @@
 /// Carries information about an accelerator that can be attached to a VM.
 class Accelerator {
   /// How many accelerators of this type to attach.
-  core.String count;
+  core.String? count;
 
   /// The accelerator type string (for example, "nvidia-tesla-k80").
   ///
@@ -420,7 +400,7 @@
   /// be specified using the NVIDIA driver version parameter on the virtual
   /// machine specification. Note that attaching a GPU increases the worker VM
   /// startup time by a few minutes.
-  core.String type;
+  core.String? type;
 
   Accelerator();
 
@@ -433,9 +413,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (count != null) 'count': count,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (count != null) 'count': count!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -447,17 +427,17 @@
   /// already failed. This is useful for actions that copy output files off of
   /// the VM or for debugging. Note that no actions will be run if image
   /// prefetching fails.
-  core.bool alwaysRun;
+  core.bool? alwaysRun;
 
   /// Prevents the container from accessing the external network.
-  core.bool blockExternalNetwork;
+  core.bool? blockExternalNetwork;
 
   /// If specified, overrides the `CMD` specified in the container.
   ///
   /// If the container also has an `ENTRYPOINT` the values are used as
   /// entrypoint arguments. Otherwise, they are used as a command and arguments
   /// to run inside the container.
-  core.List<core.String> commands;
+  core.List<core.String>? commands;
 
   /// An optional name for the container.
   ///
@@ -465,7 +445,7 @@
   /// inter-container communication. The name must contain only upper and
   /// lowercase alphanumeric characters and hyphens and cannot start with a
   /// hyphen.
-  core.String containerName;
+  core.String? containerName;
 
   /// If the specified image is hosted on a private registry other than Google
   /// Container Registry, the credentials required to pull the image must be
@@ -473,7 +453,7 @@
   ///
   /// The secret must decrypt to a JSON-encoded dictionary containing both
   /// `username` and `password` keys.
-  Secret credentials;
+  Secret? credentials;
 
   /// All container images are typically downloaded before any actions are
   /// executed.
@@ -482,13 +462,13 @@
   /// wasting large amounts of compute resources. If set, this flag prevents the
   /// worker from downloading the image until just before the action is
   /// executed.
-  core.bool disableImagePrefetch;
+  core.bool? disableImagePrefetch;
 
   /// A small portion of the container's standard error stream is typically
   /// captured and returned inside the `ContainerStoppedEvent`.
   ///
   /// Setting this flag disables this functionality.
-  core.bool disableStandardErrorCapture;
+  core.bool? disableStandardErrorCapture;
 
   /// Enable access to the FUSE device for this action.
   ///
@@ -497,10 +477,10 @@
   /// filesystem. This has the effect of causing the container to be executed
   /// with `CAP_SYS_ADMIN` and exposes `/dev/fuse` to the container, so use it
   /// only for containers you trust.
-  core.bool enableFuse;
+  core.bool? enableFuse;
 
   /// If specified, overrides the `ENTRYPOINT` specified in the container.
-  core.String entrypoint;
+  core.String? entrypoint;
 
   /// The environment to pass into the container.
   ///
@@ -515,12 +495,12 @@
   /// `GOOGLE_LAST_EXIT_STATUS` will be set to the exit status of the last
   /// non-background action that executed. This can be used by workflow engine
   /// authors to determine whether an individual action has succeeded or failed.
-  core.Map<core.String, core.String> environment;
+  core.Map<core.String, core.String>? environment;
 
   /// Normally, a non-zero exit status causes the pipeline to fail.
   ///
   /// This flag allows execution of other actions to continue instead.
-  core.bool ignoreExitStatus;
+  core.bool? ignoreExitStatus;
 
   /// The URI to pull the container image from.
   ///
@@ -537,7 +517,7 @@
   /// google.cloud.lifesciences.v2beta.Action.credentials field.
   ///
   /// Required.
-  core.String imageUri;
+  core.String? imageUri;
 
   /// Labels to associate with the action.
   ///
@@ -545,7 +525,7 @@
   /// actions (for example, to indicate what sort of action they perform, such
   /// as localization or debugging). They are returned in the operation
   /// metadata, but are otherwise ignored.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// A list of mounts to make available to the action.
   ///
@@ -557,13 +537,13 @@
   /// /google/logs/action / * /stdout The complete contents of each individual
   /// action's standard output. - /google/logs/action / * /stderr The complete
   /// contents of each individual action's standard error output.
-  core.List<Mount> mounts;
+  core.List<Mount>? mounts;
 
   /// An optional identifier for a PID namespace to run the action inside.
   ///
   /// Multiple actions should use the same string to share a namespace. If
   /// unspecified, a separate isolated namespace is used.
-  core.String pidNamespace;
+  core.String? pidNamespace;
 
   /// A map of containers to host port mappings for this container.
   ///
@@ -572,20 +552,20 @@
   /// than 65536. If it is zero, an unused random port is assigned. To determine
   /// the resulting port number, consult the `ContainerStartedEvent` in the
   /// operation metadata.
-  core.Map<core.String, core.int> portMappings;
+  core.Map<core.String, core.int>? portMappings;
 
   /// Exposes all ports specified by `EXPOSE` statements in the container.
   ///
   /// To discover the host side port numbers, consult the `ACTION_STARTED` event
   /// in the operation metadata.
-  core.bool publishExposedPorts;
+  core.bool? publishExposedPorts;
 
   /// This flag allows an action to continue running in the background while
   /// executing subsequent actions.
   ///
   /// This is useful to provide services to other actions (or to provide
   /// debugging support tools like SSH servers).
-  core.bool runInBackground;
+  core.bool? runInBackground;
 
   /// The maximum amount of time to give the action to complete.
   ///
@@ -593,7 +573,7 @@
   /// and the exit status will be non-zero. The pipeline will continue or
   /// terminate based on the rules defined by the `ALWAYS_RUN` and
   /// `IGNORE_EXIT_STATUS` flags.
-  core.String timeout;
+  core.String? timeout;
 
   Action();
 
@@ -683,31 +663,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alwaysRun != null) 'alwaysRun': alwaysRun,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alwaysRun != null) 'alwaysRun': alwaysRun!,
         if (blockExternalNetwork != null)
-          'blockExternalNetwork': blockExternalNetwork,
-        if (commands != null) 'commands': commands,
-        if (containerName != null) 'containerName': containerName,
-        if (credentials != null) 'credentials': credentials.toJson(),
+          'blockExternalNetwork': blockExternalNetwork!,
+        if (commands != null) 'commands': commands!,
+        if (containerName != null) 'containerName': containerName!,
+        if (credentials != null) 'credentials': credentials!.toJson(),
         if (disableImagePrefetch != null)
-          'disableImagePrefetch': disableImagePrefetch,
+          'disableImagePrefetch': disableImagePrefetch!,
         if (disableStandardErrorCapture != null)
-          'disableStandardErrorCapture': disableStandardErrorCapture,
-        if (enableFuse != null) 'enableFuse': enableFuse,
-        if (entrypoint != null) 'entrypoint': entrypoint,
-        if (environment != null) 'environment': environment,
-        if (ignoreExitStatus != null) 'ignoreExitStatus': ignoreExitStatus,
-        if (imageUri != null) 'imageUri': imageUri,
-        if (labels != null) 'labels': labels,
+          'disableStandardErrorCapture': disableStandardErrorCapture!,
+        if (enableFuse != null) 'enableFuse': enableFuse!,
+        if (entrypoint != null) 'entrypoint': entrypoint!,
+        if (environment != null) 'environment': environment!,
+        if (ignoreExitStatus != null) 'ignoreExitStatus': ignoreExitStatus!,
+        if (imageUri != null) 'imageUri': imageUri!,
+        if (labels != null) 'labels': labels!,
         if (mounts != null)
-          'mounts': mounts.map((value) => value.toJson()).toList(),
-        if (pidNamespace != null) 'pidNamespace': pidNamespace,
-        if (portMappings != null) 'portMappings': portMappings,
+          'mounts': mounts!.map((value) => value.toJson()).toList(),
+        if (pidNamespace != null) 'pidNamespace': pidNamespace!,
+        if (portMappings != null) 'portMappings': portMappings!,
         if (publishExposedPorts != null)
-          'publishExposedPorts': publishExposedPorts,
-        if (runInBackground != null) 'runInBackground': runInBackground,
-        if (timeout != null) 'timeout': timeout,
+          'publishExposedPorts': publishExposedPorts!,
+        if (runInBackground != null) 'runInBackground': runInBackground!,
+        if (timeout != null) 'timeout': timeout!,
       };
 }
 
@@ -719,7 +699,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// An event generated when a container is forcibly terminated by the worker.
@@ -728,7 +708,7 @@
 /// specified by the user.
 class ContainerKilledEvent {
   /// The numeric ID of the action that started the container.
-  core.int actionId;
+  core.int? actionId;
 
   ContainerKilledEvent();
 
@@ -738,28 +718,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (actionId != null) 'actionId': actionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (actionId != null) 'actionId': actionId!,
       };
 }
 
 /// An event generated when a container starts.
 class ContainerStartedEvent {
   /// The numeric ID of the action that started this container.
-  core.int actionId;
+  core.int? actionId;
 
   /// The public IP address that can be used to connect to the container.
   ///
   /// This field is only populated when at least one port mapping is present. If
   /// the instance was created with a private address, this field will be empty
   /// even if port mappings exist.
-  core.String ipAddress;
+  core.String? ipAddress;
 
   /// The container-to-host port mappings installed for this container.
   ///
   /// This set will contain any ports exposed using the `PUBLISH_EXPOSED_PORTS`
   /// flag as well as any specified in the `Action` definition.
-  core.Map<core.String, core.int> portMappings;
+  core.Map<core.String, core.int>? portMappings;
 
   ContainerStartedEvent();
 
@@ -781,20 +761,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (actionId != null) 'actionId': actionId,
-        if (ipAddress != null) 'ipAddress': ipAddress,
-        if (portMappings != null) 'portMappings': portMappings,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (actionId != null) 'actionId': actionId!,
+        if (ipAddress != null) 'ipAddress': ipAddress!,
+        if (portMappings != null) 'portMappings': portMappings!,
       };
 }
 
 /// An event generated when a container exits.
 class ContainerStoppedEvent {
   /// The numeric ID of the action that started this container.
-  core.int actionId;
+  core.int? actionId;
 
   /// The exit status of the container.
-  core.int exitStatus;
+  core.int? exitStatus;
 
   /// The tail end of any content written to standard error by the container.
   ///
@@ -804,7 +784,7 @@
   /// amount of the end of the stream is captured here. The entire stream is
   /// stored in the `/google/logs` directory mounted into each action, and can
   /// be copied off the machine as described elsewhere.
-  core.String stderr;
+  core.String? stderr;
 
   ContainerStoppedEvent();
 
@@ -820,10 +800,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (actionId != null) 'actionId': actionId,
-        if (exitStatus != null) 'exitStatus': exitStatus,
-        if (stderr != null) 'stderr': stderr,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (actionId != null) 'actionId': actionId!,
+        if (exitStatus != null) 'exitStatus': exitStatus!,
+        if (stderr != null) 'stderr': stderr!,
       };
 }
 
@@ -834,7 +814,7 @@
   ///
   /// The string can change without notice because it is often generated by
   /// another service (such as Compute Engine).
-  core.String cause;
+  core.String? cause;
 
   /// If the delay was caused by a resource shortage, this field lists the
   /// Compute Engine metrics that are preventing this operation from running
@@ -842,7 +822,7 @@
   ///
   /// If the particular metric is not known, a single `UNKNOWN` metric will be
   /// present.
-  core.List<core.String> metrics;
+  core.List<core.String>? metrics;
 
   DelayedEvent();
 
@@ -857,9 +837,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cause != null) 'cause': cause,
-        if (metrics != null) 'metrics': metrics,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cause != null) 'cause': cause!,
+        if (metrics != null) 'metrics': metrics!,
       };
 }
 
@@ -874,7 +854,7 @@
   /// Used when mounting the disk into actions. The name must contain only upper
   /// and lowercase alphanumeric characters and hyphens and cannot start with a
   /// hyphen.
-  core.String name;
+  core.String? name;
 
   /// The size, in GB, of the disk to attach.
   ///
@@ -883,15 +863,15 @@
   /// drives are automatically combined to provide the requested size. Note,
   /// however, that each physical SSD is 375GB in size, and no more than 8
   /// drives can be attached to a single instance.
-  core.int sizeGb;
+  core.int? sizeGb;
 
   /// An optional image to put on the disk before attaching it to the VM.
-  core.String sourceImage;
+  core.String? sourceImage;
 
   /// The Compute Engine disk type.
   ///
   /// If unspecified, `pd-standard` is used.
-  core.String type;
+  core.String? type;
 
   Disk();
 
@@ -910,11 +890,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (sizeGb != null) 'sizeGb': sizeGb,
-        if (sourceImage != null) 'sourceImage': sourceImage,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (sizeGb != null) 'sizeGb': sizeGb!,
+        if (sourceImage != null) 'sourceImage': sourceImage!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -932,49 +912,49 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Carries information about events that occur during pipeline execution.
 class Event {
   /// See google.cloud.lifesciences.v2beta.ContainerKilledEvent.
-  ContainerKilledEvent containerKilled;
+  ContainerKilledEvent? containerKilled;
 
   /// See google.cloud.lifesciences.v2beta.ContainerStartedEvent.
-  ContainerStartedEvent containerStarted;
+  ContainerStartedEvent? containerStarted;
 
   /// See google.cloud.lifesciences.v2beta.ContainerStoppedEvent.
-  ContainerStoppedEvent containerStopped;
+  ContainerStoppedEvent? containerStopped;
 
   /// See google.cloud.lifesciences.v2beta.DelayedEvent.
-  DelayedEvent delayed;
+  DelayedEvent? delayed;
 
   /// A human-readable description of the event.
   ///
   /// Note that these strings can change at any time without notice. Any
   /// application logic must use the information in the `details` field.
-  core.String description;
+  core.String? description;
 
   /// See google.cloud.lifesciences.v2beta.FailedEvent.
-  FailedEvent failed;
+  FailedEvent? failed;
 
   /// See google.cloud.lifesciences.v2beta.PullStartedEvent.
-  PullStartedEvent pullStarted;
+  PullStartedEvent? pullStarted;
 
   /// See google.cloud.lifesciences.v2beta.PullStoppedEvent.
-  PullStoppedEvent pullStopped;
+  PullStoppedEvent? pullStopped;
 
   /// The time at which the event occurred.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// See google.cloud.lifesciences.v2beta.UnexpectedExitStatusEvent.
-  UnexpectedExitStatusEvent unexpectedExitStatus;
+  UnexpectedExitStatusEvent? unexpectedExitStatus;
 
   /// See google.cloud.lifesciences.v2beta.WorkerAssignedEvent.
-  WorkerAssignedEvent workerAssigned;
+  WorkerAssignedEvent? workerAssigned;
 
   /// See google.cloud.lifesciences.v2beta.WorkerReleasedEvent.
-  WorkerReleasedEvent workerReleased;
+  WorkerReleasedEvent? workerReleased;
 
   Event();
 
@@ -1027,23 +1007,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (containerKilled != null)
-          'containerKilled': containerKilled.toJson(),
+          'containerKilled': containerKilled!.toJson(),
         if (containerStarted != null)
-          'containerStarted': containerStarted.toJson(),
+          'containerStarted': containerStarted!.toJson(),
         if (containerStopped != null)
-          'containerStopped': containerStopped.toJson(),
-        if (delayed != null) 'delayed': delayed.toJson(),
-        if (description != null) 'description': description,
-        if (failed != null) 'failed': failed.toJson(),
-        if (pullStarted != null) 'pullStarted': pullStarted.toJson(),
-        if (pullStopped != null) 'pullStopped': pullStopped.toJson(),
-        if (timestamp != null) 'timestamp': timestamp,
+          'containerStopped': containerStopped!.toJson(),
+        if (delayed != null) 'delayed': delayed!.toJson(),
+        if (description != null) 'description': description!,
+        if (failed != null) 'failed': failed!.toJson(),
+        if (pullStarted != null) 'pullStarted': pullStarted!.toJson(),
+        if (pullStopped != null) 'pullStopped': pullStopped!.toJson(),
+        if (timestamp != null) 'timestamp': timestamp!,
         if (unexpectedExitStatus != null)
-          'unexpectedExitStatus': unexpectedExitStatus.toJson(),
-        if (workerAssigned != null) 'workerAssigned': workerAssigned.toJson(),
-        if (workerReleased != null) 'workerReleased': workerReleased.toJson(),
+          'unexpectedExitStatus': unexpectedExitStatus!.toJson(),
+        if (workerAssigned != null) 'workerAssigned': workerAssigned!.toJson(),
+        if (workerReleased != null) 'workerReleased': workerReleased!.toJson(),
       };
 }
 
@@ -1059,7 +1039,7 @@
   /// have the `read_only` flag set to true, the disk will be attached in
   /// `read-only` mode and can be shared with other instances. Otherwise, the
   /// disk will be available for writing but cannot be shared.
-  core.String disk;
+  core.String? disk;
 
   ExistingDisk();
 
@@ -1069,8 +1049,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (disk != null) 'disk': disk,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (disk != null) 'disk': disk!,
       };
 }
 
@@ -1079,7 +1059,7 @@
 /// Note that other events can continue to occur after this event.
 class FailedEvent {
   /// The human-readable description of the cause of the failure.
-  core.String cause;
+  core.String? cause;
 
   /// The Google standard error code that best describes this failure.
   /// Possible string values are:
@@ -1162,7 +1142,7 @@
   /// Service Unavailable
   /// - "DATA_LOSS" : Unrecoverable data loss or corruption. HTTP Mapping: 500
   /// Internal Server Error
-  core.String code;
+  core.String? code;
 
   FailedEvent();
 
@@ -1175,19 +1155,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cause != null) 'cause': cause,
-        if (code != null) 'code': code,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cause != null) 'cause': cause!,
+        if (code != null) 'code': code!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class ListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLocationsResponse();
 
@@ -1203,20 +1183,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class ListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   ListOperationsResponse();
 
@@ -1232,10 +1212,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1244,17 +1224,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: `"us-east1"`.
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -1262,12 +1242,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: `"projects/example-project/locations/us-east1"`
-  core.String name;
+  core.String? name;
 
   Location();
 
@@ -1301,12 +1281,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1314,27 +1294,27 @@
 /// long running operation's metadata field.
 class Metadata {
   /// The time at which the operation was created by the API.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time at which execution was completed and resources were cleaned up.
-  core.String endTime;
+  core.String? endTime;
 
   /// The list of events that have happened so far during the execution of this
   /// operation.
-  core.List<Event> events;
+  core.List<Event>? events;
 
   /// The user-defined labels associated with this operation.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The pipeline this operation represents.
-  Pipeline pipeline;
+  Pipeline? pipeline;
 
   /// The name of the Cloud Pub/Sub topic where notifications of operation
   /// status changes are sent.
-  core.String pubSubTopic;
+  core.String? pubSubTopic;
 
   /// The first time at which resources were allocated to execute the pipeline.
-  core.String startTime;
+  core.String? startTime;
 
   Metadata();
 
@@ -1372,28 +1352,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
         if (events != null)
-          'events': events.map((value) => value.toJson()).toList(),
-        if (labels != null) 'labels': labels,
-        if (pipeline != null) 'pipeline': pipeline.toJson(),
-        if (pubSubTopic != null) 'pubSubTopic': pubSubTopic,
-        if (startTime != null) 'startTime': startTime,
+          'events': events!.map((value) => value.toJson()).toList(),
+        if (labels != null) 'labels': labels!,
+        if (pipeline != null) 'pipeline': pipeline!.toJson(),
+        if (pubSubTopic != null) 'pubSubTopic': pubSubTopic!,
+        if (startTime != null) 'startTime': startTime!,
       };
 }
 
 /// Carries information about a particular disk mount inside a container.
 class Mount {
   /// The name of the disk to mount, as specified in the resources section.
-  core.String disk;
+  core.String? disk;
 
   /// The path to mount the disk inside the container.
-  core.String path;
+  core.String? path;
 
   /// If true, the disk is mounted read-only inside the container.
-  core.bool readOnly;
+  core.bool? readOnly;
 
   Mount();
 
@@ -1409,10 +1389,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (disk != null) 'disk': disk,
-        if (path != null) 'path': path,
-        if (readOnly != null) 'readOnly': readOnly,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (disk != null) 'disk': disk!,
+        if (path != null) 'path': path!,
+        if (readOnly != null) 'readOnly': readOnly!,
       };
 }
 
@@ -1421,7 +1401,7 @@
   /// A target NFS mount.
   ///
   /// The target must be specified as \`address:/mount".
-  core.String target;
+  core.String? target;
 
   NFSMount();
 
@@ -1431,8 +1411,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (target != null) 'target': target,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (target != null) 'target': target!,
       };
 }
 
@@ -1443,7 +1423,7 @@
   /// The value will be prefixed with `global/networks/` unless it contains a
   /// `/`, in which case it is assumed to be a fully specified network resource
   /// URL. If unspecified, the global default network is used.
-  core.String network;
+  core.String? network;
 
   /// If the specified network is configured for custom subnet creation, the
   /// name of the subnetwork to attach the instance to must be specified here.
@@ -1452,7 +1432,7 @@
   /// a `/`, in which case it is assumed to be a fully specified subnetwork
   /// resource URL. If the `*` character appears in the value, it is replaced
   /// with the region that the virtual machine has been allocated in.
-  core.String subnetwork;
+  core.String? subnetwork;
 
   /// If set to true, do not attach a public IP address to the VM.
   ///
@@ -1460,7 +1440,7 @@
   /// required to allow the VM to access Google services. See
   /// https://cloud.google.com/vpc/docs/configure-private-google-access for more
   /// information.
-  core.bool usePrivateAddress;
+  core.bool? usePrivateAddress;
 
   Network();
 
@@ -1476,10 +1456,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (network != null) 'network': network,
-        if (subnetwork != null) 'subnetwork': subnetwork,
-        if (usePrivateAddress != null) 'usePrivateAddress': usePrivateAddress,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (network != null) 'network': network!,
+        if (subnetwork != null) 'subnetwork': subnetwork!,
+        if (usePrivateAddress != null) 'usePrivateAddress': usePrivateAddress!,
       };
 }
 
@@ -1490,10 +1470,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// An Metadata object.
   ///
@@ -1501,19 +1481,19 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name for the operation.
   ///
   /// This may be passed to the other operation methods to retrieve information
   /// about the operation's status.
-  core.String name;
+  core.String? name;
 
   /// An Empty object.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -1548,12 +1528,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -1569,15 +1549,15 @@
   /// drives are automatically combined to provide the requested size. Note,
   /// however, that each physical SSD is 375GB in size, and no more than 8
   /// drives can be attached to a single instance.
-  core.int sizeGb;
+  core.int? sizeGb;
 
   /// An image to put on the disk before attaching it to the VM.
-  core.String sourceImage;
+  core.String? sourceImage;
 
   /// The Compute Engine disk type.
   ///
   /// If unspecified, `pd-standard` is used.
-  core.String type;
+  core.String? type;
 
   PersistentDisk();
 
@@ -1593,27 +1573,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (sizeGb != null) 'sizeGb': sizeGb,
-        if (sourceImage != null) 'sourceImage': sourceImage,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (sizeGb != null) 'sizeGb': sizeGb!,
+        if (sourceImage != null) 'sourceImage': sourceImage!,
+        if (type != null) 'type': type!,
       };
 }
 
 /// Specifies a series of actions to execute, expressed as Docker containers.
 class Pipeline {
   /// The list of actions to execute, in the order they are specified.
-  core.List<Action> actions;
+  core.List<Action>? actions;
 
   /// The environment to pass into every action.
   ///
   /// Each action can also specify additional environment variables but cannot
   /// delete an entry from this map (though they can overwrite it with a
   /// different value).
-  core.Map<core.String, core.String> environment;
+  core.Map<core.String, core.String>? environment;
 
   /// The resources required for execution.
-  Resources resources;
+  Resources? resources;
 
   /// The maximum amount of time to give the pipeline to complete.
   ///
@@ -1621,7 +1601,7 @@
   /// pipeline fails to complete before the timeout, it will be cancelled and
   /// the error code will be set to DEADLINE_EXCEEDED. If unspecified, it will
   /// default to 7 days.
-  core.String timeout;
+  core.String? timeout;
 
   Pipeline();
 
@@ -1651,19 +1631,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (actions != null)
-          'actions': actions.map((value) => value.toJson()).toList(),
-        if (environment != null) 'environment': environment,
-        if (resources != null) 'resources': resources.toJson(),
-        if (timeout != null) 'timeout': timeout,
+          'actions': actions!.map((value) => value.toJson()).toList(),
+        if (environment != null) 'environment': environment!,
+        if (resources != null) 'resources': resources!.toJson(),
+        if (timeout != null) 'timeout': timeout!,
       };
 }
 
 /// An event generated when the worker starts pulling an image.
 class PullStartedEvent {
   /// The URI of the image that was pulled.
-  core.String imageUri;
+  core.String? imageUri;
 
   PullStartedEvent();
 
@@ -1673,15 +1653,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (imageUri != null) 'imageUri': imageUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (imageUri != null) 'imageUri': imageUri!,
       };
 }
 
 /// An event generated when the worker stops pulling an image.
 class PullStoppedEvent {
   /// The URI of the image that was pulled.
-  core.String imageUri;
+  core.String? imageUri;
 
   PullStoppedEvent();
 
@@ -1691,8 +1671,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (imageUri != null) 'imageUri': imageUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (imageUri != null) 'imageUri': imageUri!,
       };
 }
 
@@ -1703,15 +1683,15 @@
   /// The list of regions allowed for VM allocation.
   ///
   /// If set, the `zones` field must not be set.
-  core.List<core.String> regions;
+  core.List<core.String>? regions;
 
   /// The virtual machine specification.
-  VirtualMachine virtualMachine;
+  VirtualMachine? virtualMachine;
 
   /// The list of zones allowed for VM allocation.
   ///
   /// If set, the `regions` field must not be set.
-  core.List<core.String> zones;
+  core.List<core.String>? zones;
 
   Resources();
 
@@ -1732,10 +1712,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (regions != null) 'regions': regions,
-        if (virtualMachine != null) 'virtualMachine': virtualMachine.toJson(),
-        if (zones != null) 'zones': zones,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (regions != null) 'regions': regions!,
+        if (virtualMachine != null) 'virtualMachine': virtualMachine!.toJson(),
+        if (zones != null) 'zones': zones!,
       };
 }
 
@@ -1750,12 +1730,12 @@
   /// used by the operation, and can be modified at any time. To associate
   /// labels with resources created while executing the operation, see the
   /// appropriate resource message (for example, `VirtualMachine`).
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The description of the pipeline to run.
   ///
   /// Required.
-  Pipeline pipeline;
+  Pipeline? pipeline;
 
   /// The name of an existing Pub/Sub topic.
   ///
@@ -1763,7 +1743,7 @@
   /// operation changes. The Life Sciences Service Agent account must have
   /// publisher permissions to the specified topic or notifications will not be
   /// sent.
-  core.String pubSubTopic;
+  core.String? pubSubTopic;
 
   RunPipelineRequest();
 
@@ -1786,10 +1766,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (labels != null) 'labels': labels,
-        if (pipeline != null) 'pipeline': pipeline.toJson(),
-        if (pubSubTopic != null) 'pubSubTopic': pubSubTopic,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (labels != null) 'labels': labels!,
+        if (pipeline != null) 'pipeline': pipeline!.toJson(),
+        if (pubSubTopic != null) 'pubSubTopic': pubSubTopic!,
       };
 }
 
@@ -1802,7 +1782,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Holds encrypted information that is only decrypted and stored in RAM by the
@@ -1811,14 +1791,14 @@
   /// The value of the cipherText response from the `encrypt` method.
   ///
   /// This field is intentionally unaudited.
-  core.String cipherText;
+  core.String? cipherText;
 
   /// The name of the Cloud KMS key that will be used to decrypt the secret
   /// value.
   ///
   /// The VM service account must have the required permissions and
   /// authentication scopes to invoke the `decrypt` method on the specified key.
-  core.String keyName;
+  core.String? keyName;
 
   Secret();
 
@@ -1831,9 +1811,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cipherText != null) 'cipherText': cipherText,
-        if (keyName != null) 'keyName': keyName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cipherText != null) 'cipherText': cipherText!,
+        if (keyName != null) 'keyName': keyName!,
       };
 }
 
@@ -1843,11 +1823,11 @@
   ///
   /// If not specified, the default Compute Engine service account for the
   /// project will be used.
-  core.String email;
+  core.String? email;
 
   /// List of scopes to be enabled for this service account on the VM, in
   /// addition to the cloud-platform API scope that will be added by default.
-  core.List<core.String> scopes;
+  core.List<core.String>? scopes;
 
   ServiceAccount();
 
@@ -1862,9 +1842,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (email != null) 'email': email,
-        if (scopes != null) 'scopes': scopes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (email != null) 'email': email!,
+        if (scopes != null) 'scopes': scopes!,
       };
 }
 
@@ -1877,7 +1857,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -1885,13 +1865,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -1915,10 +1895,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -1929,10 +1909,10 @@
 /// will be executed. Other actions will be skipped.
 class UnexpectedExitStatusEvent {
   /// The numeric ID of the action that started the container.
-  core.int actionId;
+  core.int? actionId;
 
   /// The exit status of the container.
-  core.int exitStatus;
+  core.int? exitStatus;
 
   UnexpectedExitStatusEvent();
 
@@ -1945,23 +1925,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (actionId != null) 'actionId': actionId,
-        if (exitStatus != null) 'exitStatus': exitStatus,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (actionId != null) 'actionId': actionId!,
+        if (exitStatus != null) 'exitStatus': exitStatus!,
       };
 }
 
 /// Carries information about a Compute Engine VM resource.
 class VirtualMachine {
   /// The list of accelerators to attach to the VM.
-  core.List<Accelerator> accelerators;
+  core.List<Accelerator>? accelerators;
 
   /// The size of the boot disk, in GB.
   ///
   /// The boot disk must be large enough to accommodate all of the Docker images
   /// from each action in the pipeline at the same time. If not specified, a
   /// small but reasonable default value is used.
-  core.int bootDiskSizeGb;
+  core.int? bootDiskSizeGb;
 
   /// The host operating system image to use.
   ///
@@ -1973,7 +1953,7 @@
   /// production pipelines. To test a pipeline against the beta release of
   /// Container-Optimized OS, use the value
   /// `projects/cos-cloud/global/images/family/cos-beta`.
-  core.String bootImage;
+  core.String? bootImage;
 
   /// The CPU platform to request.
   ///
@@ -1984,12 +1964,12 @@
   /// significant impact. For more information about the effect of this
   /// parameter, see
   /// https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
-  core.String cpuPlatform;
+  core.String? cpuPlatform;
 
   /// The list of disks to create and attach to the VM.
   ///
   /// Specify either the `volumes[]` field or the `disks[]` field, but not both.
-  core.List<Disk> disks;
+  core.List<Disk>? disks;
 
   /// The Compute Engine Disk Images to use as a Docker cache.
   ///
@@ -2001,10 +1981,10 @@
   /// desired Docker images have already been pulled. Any images pulled that are
   /// not cached will be stored on the first cache disk instead of the boot
   /// disk. Only a single image is supported.
-  core.List<core.String> dockerCacheImages;
+  core.List<core.String>? dockerCacheImages;
 
   /// Whether Stackdriver monitoring should be enabled on the VM.
-  core.bool enableStackdriverMonitoring;
+  core.bool? enableStackdriverMonitoring;
 
   /// Optional set of labels to apply to the VM and any attached disk resources.
   ///
@@ -2014,7 +1994,7 @@
   /// 'google-' are reserved for use by Google. Labels applied at creation time
   /// to the VM. Applied on a best-effort basis to attached disk resources
   /// shortly after VM creation.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The machine type of the virtual machine to create.
   ///
@@ -2026,31 +2006,31 @@
   /// for more specifications on creating a custom machine type.
   ///
   /// Required.
-  core.String machineType;
+  core.String? machineType;
 
   /// The VM network configuration.
-  Network network;
+  Network? network;
 
   /// The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator.
   ///
   /// The version specified here must be compatible with the GPU libraries
   /// contained in the container being executed, and must be one of the drivers
   /// hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.
-  core.String nvidiaDriverVersion;
+  core.String? nvidiaDriverVersion;
 
   /// If true, allocate a preemptible VM.
-  core.bool preemptible;
+  core.bool? preemptible;
 
   /// The service account to install on the VM.
   ///
   /// This account does not need any permissions other than those required by
   /// the pipeline.
-  ServiceAccount serviceAccount;
+  ServiceAccount? serviceAccount;
 
   /// The list of disks and other storage to create or attach to the VM.
   ///
   /// Specify either the `volumes[]` field or the `disks[]` field, but not both.
-  core.List<Volume> volumes;
+  core.List<Volume>? volumes;
 
   VirtualMachine();
 
@@ -2119,26 +2099,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (accelerators != null)
-          'accelerators': accelerators.map((value) => value.toJson()).toList(),
-        if (bootDiskSizeGb != null) 'bootDiskSizeGb': bootDiskSizeGb,
-        if (bootImage != null) 'bootImage': bootImage,
-        if (cpuPlatform != null) 'cpuPlatform': cpuPlatform,
+          'accelerators': accelerators!.map((value) => value.toJson()).toList(),
+        if (bootDiskSizeGb != null) 'bootDiskSizeGb': bootDiskSizeGb!,
+        if (bootImage != null) 'bootImage': bootImage!,
+        if (cpuPlatform != null) 'cpuPlatform': cpuPlatform!,
         if (disks != null)
-          'disks': disks.map((value) => value.toJson()).toList(),
-        if (dockerCacheImages != null) 'dockerCacheImages': dockerCacheImages,
+          'disks': disks!.map((value) => value.toJson()).toList(),
+        if (dockerCacheImages != null) 'dockerCacheImages': dockerCacheImages!,
         if (enableStackdriverMonitoring != null)
-          'enableStackdriverMonitoring': enableStackdriverMonitoring,
-        if (labels != null) 'labels': labels,
-        if (machineType != null) 'machineType': machineType,
-        if (network != null) 'network': network.toJson(),
+          'enableStackdriverMonitoring': enableStackdriverMonitoring!,
+        if (labels != null) 'labels': labels!,
+        if (machineType != null) 'machineType': machineType!,
+        if (network != null) 'network': network!.toJson(),
         if (nvidiaDriverVersion != null)
-          'nvidiaDriverVersion': nvidiaDriverVersion,
-        if (preemptible != null) 'preemptible': preemptible,
-        if (serviceAccount != null) 'serviceAccount': serviceAccount.toJson(),
+          'nvidiaDriverVersion': nvidiaDriverVersion!,
+        if (preemptible != null) 'preemptible': preemptible!,
+        if (serviceAccount != null) 'serviceAccount': serviceAccount!.toJson(),
         if (volumes != null)
-          'volumes': volumes.map((value) => value.toJson()).toList(),
+          'volumes': volumes!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2147,20 +2127,20 @@
 /// Specify either `Volume` or `Disk`, but not both.
 class Volume {
   /// Configuration for a existing disk.
-  ExistingDisk existingDisk;
+  ExistingDisk? existingDisk;
 
   /// Configuration for an NFS mount.
-  NFSMount nfsMount;
+  NFSMount? nfsMount;
 
   /// Configuration for a persistent disk.
-  PersistentDisk persistentDisk;
+  PersistentDisk? persistentDisk;
 
   /// A user-supplied name for the volume.
   ///
   /// Used when mounting the volume into `Actions`. The name must contain only
   /// upper and lowercase alphanumeric characters and hyphens and cannot start
   /// with a hyphen.
-  core.String volume;
+  core.String? volume;
 
   Volume();
 
@@ -2182,24 +2162,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (existingDisk != null) 'existingDisk': existingDisk.toJson(),
-        if (nfsMount != null) 'nfsMount': nfsMount.toJson(),
-        if (persistentDisk != null) 'persistentDisk': persistentDisk.toJson(),
-        if (volume != null) 'volume': volume,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (existingDisk != null) 'existingDisk': existingDisk!.toJson(),
+        if (nfsMount != null) 'nfsMount': nfsMount!.toJson(),
+        if (persistentDisk != null) 'persistentDisk': persistentDisk!.toJson(),
+        if (volume != null) 'volume': volume!,
       };
 }
 
 /// An event generated after a worker VM has been assigned to run the pipeline.
 class WorkerAssignedEvent {
   /// The worker's instance name.
-  core.String instance;
+  core.String? instance;
 
   /// The machine type that was assigned for the worker.
-  core.String machineType;
+  core.String? machineType;
 
   /// The zone the worker is running in.
-  core.String zone;
+  core.String? zone;
 
   WorkerAssignedEvent();
 
@@ -2215,10 +2195,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (instance != null) 'instance': instance,
-        if (machineType != null) 'machineType': machineType,
-        if (zone != null) 'zone': zone,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (instance != null) 'instance': instance!,
+        if (machineType != null) 'machineType': machineType!,
+        if (zone != null) 'zone': zone!,
       };
 }
 
@@ -2226,10 +2206,10 @@
 /// been released (deleted).
 class WorkerReleasedEvent {
   /// The worker's instance name.
-  core.String instance;
+  core.String? instance;
 
   /// The zone the worker was running in.
-  core.String zone;
+  core.String? zone;
 
   WorkerReleasedEvent();
 
@@ -2242,8 +2222,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (instance != null) 'instance': instance,
-        if (zone != null) 'zone': zone,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (instance != null) 'instance': instance!,
+        if (zone != null) 'zone': zone!,
       };
 }
diff --git a/generated/googleapis_beta/lib/metastore/v1beta.dart b/generated/googleapis_beta/lib/metastore/v1beta.dart
index 8c53e5e..f2d5606 100644
--- a/generated/googleapis_beta/lib/metastore/v1beta.dart
+++ b/generated/googleapis_beta/lib/metastore/v1beta.dart
@@ -98,11 +98,8 @@
   /// this method will complete with the same error.
   async.Future<Location> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -142,14 +139,11 @@
   /// this method will complete with the same error.
   async.Future<ListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -201,11 +195,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -243,11 +234,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -296,14 +284,11 @@
   /// this method will complete with the same error.
   async.Future<ListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -374,15 +359,11 @@
   async.Future<Operation> create(
     Service request,
     core.String parent, {
-    core.String requestId,
-    core.String serviceId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? serviceId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (serviceId != null) 'serviceId': [serviceId],
@@ -434,12 +415,9 @@
   /// this method will complete with the same error.
   async.Future<Operation> delete(
     core.String name, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -480,13 +458,9 @@
   async.Future<Operation> exportMetadata(
     ExportMetadataRequest request,
     core.String service, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (service == null) {
-      throw core.ArgumentError('Parameter service is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -526,11 +500,8 @@
   /// this method will complete with the same error.
   async.Future<Service> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -578,12 +549,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -641,15 +609,12 @@
   /// this method will complete with the same error.
   async.Future<ListServicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -711,15 +676,11 @@
   async.Future<Operation> patch(
     Service request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -765,13 +726,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -819,13 +776,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -892,15 +845,11 @@
   async.Future<Operation> create(
     MetadataImport request,
     core.String parent, {
-    core.String metadataImportId,
-    core.String requestId,
-    core.String $fields,
+    core.String? metadataImportId,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (metadataImportId != null) 'metadataImportId': [metadataImportId],
       if (requestId != null) 'requestId': [requestId],
@@ -942,11 +891,8 @@
   /// this method will complete with the same error.
   async.Future<MetadataImport> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1002,15 +948,12 @@
   /// this method will complete with the same error.
   async.Future<ListMetadataImportsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -1074,15 +1017,11 @@
   async.Future<Operation> patch(
     MetadataImport request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -1120,13 +1059,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<AuditLogConfig> auditLogConfigs;
+  core.List<AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, storage.googleapis.com, cloudsql.googleapis.com. allServices
   /// is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   AuditConfig();
 
@@ -1142,11 +1081,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -1161,7 +1100,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -1169,7 +1108,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   AuditLogConfig();
 
@@ -1184,9 +1123,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -1201,7 +1140,7 @@
   /// of the members in this binding.To learn which resources support conditions
   /// in their IAM policies, see the IAM documentation
   /// (https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -1233,12 +1172,12 @@
   /// role in the binding. domain:{domain}: The G Suite domain (primary) that
   /// represents all the users of that domain. For example, google.com or
   /// example.com.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to members.
   ///
   /// For example, roles/viewer, roles/editor, or roles/owner.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -1257,10 +1196,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -1272,16 +1211,16 @@
   /// - "DATABASE_TYPE_UNSPECIFIED" : The type of the source database is
   /// unknown.
   /// - "MYSQL" : The type of the source database is MySQL.
-  core.String databaseType;
+  core.String? databaseType;
 
   /// A Cloud Storage object URI that specifies the source from which to import
   /// metadata.
   ///
   /// It must begin with gs://.
-  core.String gcsUri;
+  core.String? gcsUri;
 
   /// The name of the source database.
-  core.String sourceDatabase;
+  core.String? sourceDatabase;
 
   DatabaseDump();
 
@@ -1297,10 +1236,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (databaseType != null) 'databaseType': databaseType,
-        if (gcsUri != null) 'gcsUri': gcsUri,
-        if (sourceDatabase != null) 'sourceDatabase': sourceDatabase,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (databaseType != null) 'databaseType': databaseType!,
+        if (gcsUri != null) 'gcsUri': gcsUri!,
+        if (sourceDatabase != null) 'sourceDatabase': sourceDatabase!,
       };
 }
 
@@ -1318,7 +1257,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message for DataprocMetastore.ExportMetadata.
@@ -1329,7 +1268,7 @@
   /// A sub-folder containing exported files will be created below it.
   ///
   /// Required.
-  core.String destinationGcsFolder;
+  core.String? destinationGcsFolder;
 
   /// A request ID.
   ///
@@ -1343,7 +1282,7 @@
   /// zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   ExportMetadataRequest();
 
@@ -1356,10 +1295,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (destinationGcsFolder != null)
-          'destinationGcsFolder': destinationGcsFolder,
-        if (requestId != null) 'requestId': requestId,
+          'destinationGcsFolder': destinationGcsFolder!,
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -1388,24 +1327,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -1424,11 +1363,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -1439,7 +1378,7 @@
   /// Hive metastore (configured in hive-site.xml).
   ///
   /// The mappings override system defaults (some keys cannot be overridden).
-  core.Map<core.String, core.String> configOverrides;
+  core.Map<core.String, core.String>? configOverrides;
 
   /// Information used to configure the Hive metastore service as a service
   /// principal in a Kerberos realm.
@@ -1447,12 +1386,12 @@
   /// To disable Kerberos, use the UpdateService method and specify this field's
   /// path ("hive_metastore_config.kerberos_config") in the request's
   /// update_mask while omitting this field from the request's service.
-  KerberosConfig kerberosConfig;
+  KerberosConfig? kerberosConfig;
 
   /// The Hive metastore schema version.
   ///
   /// Immutable.
-  core.String version;
+  core.String? version;
 
   HiveMetastoreConfig();
 
@@ -1476,10 +1415,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (configOverrides != null) 'configOverrides': configOverrides,
-        if (kerberosConfig != null) 'kerberosConfig': kerberosConfig.toJson(),
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (configOverrides != null) 'configOverrides': configOverrides!,
+        if (kerberosConfig != null) 'kerberosConfig': kerberosConfig!.toJson(),
+        if (version != null) 'version': version!,
       };
 }
 
@@ -1487,10 +1426,10 @@
 class HiveMetastoreVersion {
   /// Whether version will be chosen by the server if a metastore service is
   /// created with a HiveMetastoreConfig that omits the version.
-  core.bool isDefault;
+  core.bool? isDefault;
 
   /// The semantic version of the Hive Metastore software.
-  core.String version;
+  core.String? version;
 
   HiveMetastoreVersion();
 
@@ -1503,9 +1442,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (isDefault != null) 'isDefault': isDefault,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (isDefault != null) 'isDefault': isDefault!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -1513,20 +1452,20 @@
 class KerberosConfig {
   /// A Kerberos keytab file that can be used to authenticate a service
   /// principal with a Kerberos Key Distribution Center (KDC).
-  Secret keytab;
+  Secret? keytab;
 
   /// A Cloud Storage URI that specifies the path to a krb5.conf file.
   ///
   /// It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file
   /// does not need to be named krb5.conf explicitly.
-  core.String krb5ConfigGcsUri;
+  core.String? krb5ConfigGcsUri;
 
   /// A Kerberos principal that exists in the both the keytab the KDC to
   /// authenticate as.
   ///
   /// A typical principal is of the form "primary/instance@REALM", but there is
   /// no exact format.
-  core.String principal;
+  core.String? principal;
 
   KerberosConfig();
 
@@ -1543,20 +1482,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keytab != null) 'keytab': keytab.toJson(),
-        if (krb5ConfigGcsUri != null) 'krb5ConfigGcsUri': krb5ConfigGcsUri,
-        if (principal != null) 'principal': principal,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keytab != null) 'keytab': keytab!.toJson(),
+        if (krb5ConfigGcsUri != null) 'krb5ConfigGcsUri': krb5ConfigGcsUri!,
+        if (principal != null) 'principal': principal!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class ListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLocationsResponse();
 
@@ -1572,25 +1511,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for DataprocMetastore.ListMetadataImports.
 class ListMetadataImportsResponse {
   /// The imports in the specified service.
-  core.List<MetadataImport> metadataImports;
+  core.List<MetadataImport>? metadataImports;
 
   /// A token that can be sent as page_token to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Locations that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListMetadataImportsResponse();
 
@@ -1611,22 +1550,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (metadataImports != null)
           'metadataImports':
-              metadataImports.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+              metadataImports!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class ListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   ListOperationsResponse();
 
@@ -1642,10 +1581,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1654,13 +1593,13 @@
   /// A token that can be sent as page_token to retrieve the next page.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The services in the specified location.
-  core.List<Service> services;
+  core.List<Service>? services;
 
   /// Locations that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListServicesResponse();
 
@@ -1681,11 +1620,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (services != null)
-          'services': services.map((value) => value.toJson()).toList(),
-        if (unreachable != null) 'unreachable': unreachable,
+          'services': services!.map((value) => value.toJson()).toList(),
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
@@ -1694,17 +1633,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: "us-east1".
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -1712,12 +1651,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: "projects/example-project/locations/us-east1"
-  core.String name;
+  core.String? name;
 
   Location();
 
@@ -1751,12 +1690,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1767,7 +1706,7 @@
   ///
   /// The server guarantees that exactly one HiveMetastoreVersion in the list
   /// will set is_default.
-  core.List<HiveMetastoreVersion> supportedHiveMetastoreVersions;
+  core.List<HiveMetastoreVersion>? supportedHiveMetastoreVersions;
 
   LocationMetadata();
 
@@ -1781,9 +1720,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (supportedHiveMetastoreVersions != null)
-          'supportedHiveMetastoreVersions': supportedHiveMetastoreVersions
+          'supportedHiveMetastoreVersions': supportedHiveMetastoreVersions!
               .map((value) => value.toJson())
               .toList(),
       };
@@ -1804,10 +1743,10 @@
   /// - "FRIDAY" : Friday
   /// - "SATURDAY" : Saturday
   /// - "SUNDAY" : Sunday
-  core.String dayOfWeek;
+  core.String? dayOfWeek;
 
   /// The hour of day (0-23) when the window starts.
-  core.int hourOfDay;
+  core.int? hourOfDay;
 
   MaintenanceWindow();
 
@@ -1820,9 +1759,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dayOfWeek != null) 'dayOfWeek': dayOfWeek,
-        if (hourOfDay != null) 'hourOfDay': hourOfDay,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dayOfWeek != null) 'dayOfWeek': dayOfWeek!,
+        if (hourOfDay != null) 'hourOfDay': hourOfDay!,
       };
 }
 
@@ -1832,17 +1771,17 @@
   /// of gs:////, where \` is automatically generated.
   ///
   /// Output only.
-  core.String destinationGcsUri;
+  core.String? destinationGcsUri;
 
   /// The time when the export ended.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// The time when the export started.
   ///
   /// Output only.
-  core.String startTime;
+  core.String? startTime;
 
   /// The current state of the export.
   ///
@@ -1853,7 +1792,7 @@
   /// - "SUCCEEDED" : The metadata export completed successfully.
   /// - "FAILED" : The metadata export failed.
   /// - "CANCELLED" : The metadata export is cancelled.
-  core.String state;
+  core.String? state;
 
   MetadataExport();
 
@@ -1872,11 +1811,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destinationGcsUri != null) 'destinationGcsUri': destinationGcsUri,
-        if (endTime != null) 'endTime': endTime,
-        if (startTime != null) 'startTime': startTime,
-        if (state != null) 'state': state,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destinationGcsUri != null) 'destinationGcsUri': destinationGcsUri!,
+        if (endTime != null) 'endTime': endTime!,
+        if (startTime != null) 'startTime': startTime!,
+        if (state != null) 'state': state!,
       };
 }
 
@@ -1885,21 +1824,21 @@
   /// The time when the metadata import was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// A database dump from a pre-existing metastore's database.
   ///
   /// Immutable.
-  DatabaseDump databaseDump;
+  DatabaseDump? databaseDump;
 
   /// The description of the metadata import.
-  core.String description;
+  core.String? description;
 
   /// The relative resource name of the metadata import, of the
   /// form:"projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}".
   ///
   /// Immutable.
-  core.String name;
+  core.String? name;
 
   /// The current state of the metadata import.
   ///
@@ -1911,12 +1850,12 @@
   /// - "UPDATING" : The metadata import is being updated.
   /// - "FAILED" : The metadata import failed, and attempted metadata changes
   /// were rolled back.
-  core.String state;
+  core.String? state;
 
   /// The time when the metadata import was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   MetadataImport();
 
@@ -1942,13 +1881,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (databaseDump != null) 'databaseDump': databaseDump.toJson(),
-        if (description != null) 'description': description,
-        if (name != null) 'name': name,
-        if (state != null) 'state': state,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (databaseDump != null) 'databaseDump': databaseDump!.toJson(),
+        if (description != null) 'description': description!,
+        if (name != null) 'name': name!,
+        if (state != null) 'state': state!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -1961,7 +1900,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The metadata management activities of the metastore service.
@@ -1969,12 +1908,12 @@
   /// The latest metadata exports of the metastore service.
   ///
   /// Output only.
-  core.List<MetadataExport> metadataExports;
+  core.List<MetadataExport>? metadataExports;
 
   /// The latest restores of the metastore service.
   ///
   /// Output only.
-  core.List<Restore> restores;
+  core.List<Restore>? restores;
 
   MetadataManagementActivity();
 
@@ -1993,12 +1932,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (metadataExports != null)
           'metadataExports':
-              metadataExports.map((value) => value.toJson()).toList(),
+              metadataExports!.map((value) => value.toJson()).toList(),
         if (restores != null)
-          'restores': restores.map((value) => value.toJson()).toList(),
+          'restores': restores!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2009,10 +1948,10 @@
   ///
   /// If true, the operation is completed, and either error or response is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -2023,14 +1962,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the name should be a resource name
   /// ending with operations/{unique_id}.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -2043,7 +1982,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -2078,12 +2017,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -2119,14 +2058,14 @@
 /// documentation (https://cloud.google.com/iam/docs/).
 class Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<AuditConfig> auditConfigs;
+  core.List<AuditConfig>? auditConfigs;
 
   /// Associates a list of members to a role.
   ///
   /// Optionally, may specify a condition that determines how and when the
   /// bindings are applied. Each of the bindings must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// etag is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -2140,8 +2079,8 @@
   /// field whenever you call setIamPolicy. If you omit this field, then IAM
   /// allows you to overwrite a version 3 policy with a version 1 policy, and
   /// all of the conditions in the version 3 policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -2164,7 +2103,7 @@
   /// valid version or leave the field unset.To learn which resources support
   /// conditions in their IAM policies, see the IAM documentation
   /// (https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -2189,13 +2128,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -2206,17 +2145,17 @@
   /// form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}
   ///
   /// Output only.
-  core.String backup;
+  core.String? backup;
 
   /// The time when the restore ended.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// The time when the restore started.
   ///
   /// Output only.
-  core.String startTime;
+  core.String? startTime;
 
   /// The current state of the restore.
   ///
@@ -2227,7 +2166,7 @@
   /// - "SUCCEEDED" : The metadata restore completed successfully.
   /// - "FAILED" : The metadata restore failed.
   /// - "CANCELLED" : The metadata restore is cancelled.
-  core.String state;
+  core.String? state;
 
   /// The type of restore.
   ///
@@ -2236,7 +2175,7 @@
   /// - "RESTORE_TYPE_UNSPECIFIED" : The restore type is unknown.
   /// - "FULL" : The service's metadata and configuration are restored.
   /// - "METADATA_ONLY" : Only the service's metadata is restored.
-  core.String type;
+  core.String? type;
 
   Restore();
 
@@ -2258,12 +2197,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (backup != null) 'backup': backup,
-        if (endTime != null) 'endTime': endTime,
-        if (startTime != null) 'startTime': startTime,
-        if (state != null) 'state': state,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (backup != null) 'backup': backup!,
+        if (endTime != null) 'endTime': endTime!,
+        if (startTime != null) 'startTime': startTime!,
+        if (state != null) 'state': state!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -2272,7 +2211,7 @@
   /// The relative resource name of a Secret Manager secret version, in the
   /// following
   /// form:"projects/{project_number}/secrets/{secret_id}/versions/{version_id}".
-  core.String cloudSecret;
+  core.String? cloudSecret;
 
   Secret();
 
@@ -2282,8 +2221,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudSecret != null) 'cloudSecret': cloudSecret,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudSecret != null) 'cloudSecret': cloudSecret!,
       };
 }
 
@@ -2293,45 +2232,45 @@
   /// related to the metastore service are stored.
   ///
   /// Output only.
-  core.String artifactGcsUri;
+  core.String? artifactGcsUri;
 
   /// The time when the metastore service was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The URI of the endpoint used to access the metastore service.
   ///
   /// Output only.
-  core.String endpointUri;
+  core.String? endpointUri;
 
   /// Configuration information specific to running Hive metastore software as
   /// the metastore service.
-  HiveMetastoreConfig hiveMetastoreConfig;
+  HiveMetastoreConfig? hiveMetastoreConfig;
 
   /// User-defined labels for the metastore service.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The one hour maintenance window of the metastore service.
   ///
   /// This specifies when the service can be restarted for maintenance purposes
   /// in UTC time.
-  MaintenanceWindow maintenanceWindow;
+  MaintenanceWindow? maintenanceWindow;
 
   /// The setting that defines how metastore metadata should be integrated with
   /// external services and systems.
-  MetadataIntegration metadataIntegration;
+  MetadataIntegration? metadataIntegration;
 
   /// The metadata management activities of the metastore service.
   ///
   /// Output only.
-  MetadataManagementActivity metadataManagementActivity;
+  MetadataManagementActivity? metadataManagementActivity;
 
   /// The relative resource name of the metastore service, of the
   /// form:"projects/{project_number}/locations/{location_id}/services/{service_id}".
   ///
   /// Immutable.
-  core.String name;
+  core.String? name;
 
   /// The relative resource name of the VPC network on which the instance can be
   /// accessed.
@@ -2340,12 +2279,12 @@
   /// form:"projects/{project_number}/global/networks/{network_id}".
   ///
   /// Immutable.
-  core.String network;
+  core.String? network;
 
   /// The TCP port at which the metastore service is reached.
   ///
   /// Default: 9083.
-  core.int port;
+  core.int? port;
 
   /// The current state of the metastore service.
   ///
@@ -2364,13 +2303,13 @@
   /// used.
   /// - "ERROR" : The metastore service has encountered an error and cannot be
   /// used. The metastore service should be deleted.
-  core.String state;
+  core.String? state;
 
   /// Additional information about the current state of the metastore service,
   /// if available.
   ///
   /// Output only.
-  core.String stateMessage;
+  core.String? stateMessage;
 
   /// The tier of the service.
   /// Possible string values are:
@@ -2380,17 +2319,17 @@
   /// - "ENTERPRISE" : The enterprise tier provides multi-zone high
   /// availability, and sufficient scalability for enterprise-level Dataproc
   /// Metastore workloads.
-  core.String tier;
+  core.String? tier;
 
   /// The globally unique resource identifier of the metastore service.
   ///
   /// Output only.
-  core.String uid;
+  core.String? uid;
 
   /// The time when the metastore service was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   Service();
 
@@ -2456,27 +2395,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (artifactGcsUri != null) 'artifactGcsUri': artifactGcsUri,
-        if (createTime != null) 'createTime': createTime,
-        if (endpointUri != null) 'endpointUri': endpointUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (artifactGcsUri != null) 'artifactGcsUri': artifactGcsUri!,
+        if (createTime != null) 'createTime': createTime!,
+        if (endpointUri != null) 'endpointUri': endpointUri!,
         if (hiveMetastoreConfig != null)
-          'hiveMetastoreConfig': hiveMetastoreConfig.toJson(),
-        if (labels != null) 'labels': labels,
+          'hiveMetastoreConfig': hiveMetastoreConfig!.toJson(),
+        if (labels != null) 'labels': labels!,
         if (maintenanceWindow != null)
-          'maintenanceWindow': maintenanceWindow.toJson(),
+          'maintenanceWindow': maintenanceWindow!.toJson(),
         if (metadataIntegration != null)
-          'metadataIntegration': metadataIntegration.toJson(),
+          'metadataIntegration': metadataIntegration!.toJson(),
         if (metadataManagementActivity != null)
-          'metadataManagementActivity': metadataManagementActivity.toJson(),
-        if (name != null) 'name': name,
-        if (network != null) 'network': network,
-        if (port != null) 'port': port,
-        if (state != null) 'state': state,
-        if (stateMessage != null) 'stateMessage': stateMessage,
-        if (tier != null) 'tier': tier,
-        if (uid != null) 'uid': uid,
-        if (updateTime != null) 'updateTime': updateTime,
+          'metadataManagementActivity': metadataManagementActivity!.toJson(),
+        if (name != null) 'name': name!,
+        if (network != null) 'network': network!,
+        if (port != null) 'port': port!,
+        if (state != null) 'state': state!,
+        if (stateMessage != null) 'stateMessage': stateMessage!,
+        if (tier != null) 'tier': tier!,
+        if (uid != null) 'uid': uid!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -2487,13 +2426,13 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   /// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
   ///
   /// Only the fields in the mask will be modified. If no mask is provided, the
   /// following default mask is used:paths: "bindings, etag"
-  core.String updateMask;
+  core.String? updateMask;
 
   SetIamPolicyRequest();
 
@@ -2507,9 +2446,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -2522,7 +2461,7 @@
 /// Design Guide (https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -2530,13 +2469,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -2560,10 +2499,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -2574,7 +2513,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see IAM Overview
   /// (https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -2586,15 +2525,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
 /// Response message for TestIamPermissions method.
 class TestIamPermissionsResponse {
   /// A subset of TestPermissionsRequest.permissions that the caller is allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -2606,7 +2545,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
diff --git a/generated/googleapis_beta/lib/networkconnectivity/v1alpha1.dart b/generated/googleapis_beta/lib/networkconnectivity/v1alpha1.dart
index 2dbd7c9..224ccbd 100644
--- a/generated/googleapis_beta/lib/networkconnectivity/v1alpha1.dart
+++ b/generated/googleapis_beta/lib/networkconnectivity/v1alpha1.dart
@@ -108,11 +108,8 @@
   /// this method will complete with the same error.
   async.Future<Location> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -152,14 +149,11 @@
   /// this method will complete with the same error.
   async.Future<ListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -233,15 +227,11 @@
   async.Future<GoogleLongrunningOperation> create(
     Hub request,
     core.String parent, {
-    core.String hubId,
-    core.String requestId,
-    core.String $fields,
+    core.String? hubId,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (hubId != null) 'hubId': [hubId],
       if (requestId != null) 'requestId': [requestId],
@@ -294,12 +284,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> delete(
     core.String name, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -336,11 +323,8 @@
   /// this method will complete with the same error.
   async.Future<Hub> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -388,12 +372,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -441,15 +422,12 @@
   /// this method will complete with the same error.
   async.Future<ListHubsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -512,15 +490,11 @@
   async.Future<GoogleLongrunningOperation> patch(
     Hub request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -567,13 +541,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -621,13 +591,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -685,13 +651,9 @@
   async.Future<Empty> cancel(
     GoogleLongrunningCancelOperationRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -733,11 +695,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -775,11 +734,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -829,14 +785,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -897,12 +850,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -949,13 +899,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1003,13 +949,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1068,12 +1010,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -1120,13 +1059,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1174,13 +1109,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1242,15 +1173,11 @@
   async.Future<GoogleLongrunningOperation> create(
     Spoke request,
     core.String parent, {
-    core.String requestId,
-    core.String spokeId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? spokeId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (spokeId != null) 'spokeId': [spokeId],
@@ -1303,12 +1230,9 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> delete(
     core.String name, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -1345,11 +1269,8 @@
   /// this method will complete with the same error.
   async.Future<Spoke> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1397,12 +1318,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -1450,15 +1368,12 @@
   /// this method will complete with the same error.
   async.Future<ListSpokesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -1521,15 +1436,11 @@
   async.Future<GoogleLongrunningOperation> patch(
     Spoke request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -1576,13 +1487,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1630,13 +1537,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1659,13 +1562,13 @@
 /// The allowed types for \[VALUE\] in a `[KEY]:[VALUE]` attribute.
 class AttributeValue {
   /// A Boolean value represented by `true` or `false`.
-  core.bool boolValue;
+  core.bool? boolValue;
 
   /// A 64-bit signed integer.
-  core.String intValue;
+  core.String? intValue;
 
   /// A string up to 256 bytes long.
-  TruncatableString stringValue;
+  TruncatableString? stringValue;
 
   AttributeValue();
 
@@ -1682,10 +1585,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolValue != null) 'boolValue': boolValue,
-        if (intValue != null) 'intValue': intValue,
-        if (stringValue != null) 'stringValue': stringValue.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolValue != null) 'boolValue': boolValue!,
+        if (intValue != null) 'intValue': intValue!,
+        if (stringValue != null) 'stringValue': stringValue!.toJson(),
       };
 }
 
@@ -1698,39 +1601,40 @@
   /// `true` and `false`. For example: "/instance_id": "my-instance"
   /// "/http/user_agent": "" "/http/request_bytes": 300 "abc.com/myattribute":
   /// true
-  core.Map<core.String, AttributeValue> attributeMap;
+  core.Map<core.String, AttributeValue>? attributeMap;
 
   /// The number of attributes that were discarded.
   ///
   /// Attributes can be discarded because their keys are too long or because
   /// there are too many attributes. If this value is 0 then all attributes are
   /// valid.
-  core.int droppedAttributesCount;
+  core.int? droppedAttributesCount;
 
   Attributes();
 
   Attributes.fromJson(core.Map _json) {
     if (_json.containsKey('attributeMap')) {
-      attributeMap =
-          (_json['attributeMap'] as core.Map).cast<core.String, core.Map>().map(
-                (key, item) => core.MapEntry(
-                  key,
-                  AttributeValue.fromJson(
-                      item as core.Map<core.String, core.dynamic>),
-                ),
-              );
+      attributeMap = (_json['attributeMap'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
+            (key, item) => core.MapEntry(
+              key,
+              AttributeValue.fromJson(
+                  item as core.Map<core.String, core.dynamic>),
+            ),
+          );
     }
     if (_json.containsKey('droppedAttributesCount')) {
       droppedAttributesCount = _json['droppedAttributesCount'] as core.int;
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (attributeMap != null)
-          'attributeMap': attributeMap
+          'attributeMap': attributeMap!
               .map((key, item) => core.MapEntry(key, item.toJson())),
         if (droppedAttributesCount != null)
-          'droppedAttributesCount': droppedAttributesCount,
+          'droppedAttributesCount': droppedAttributesCount!,
       };
 }
 
@@ -1753,13 +1657,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<AuditLogConfig> auditLogConfigs;
+  core.List<AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   /// `allServices` is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   AuditConfig();
 
@@ -1775,11 +1679,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -1794,7 +1698,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -1802,7 +1706,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   AuditLogConfig();
 
@@ -1817,9 +1721,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -1831,7 +1735,7 @@
   ///
   /// See go/billing-view-construction for documentation on constructing billing
   /// view report requests.
-  core.List<ReportRequest> reportRequests;
+  core.List<ReportRequest>? reportRequests;
 
   BillingView();
 
@@ -1844,10 +1748,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (reportRequests != null)
           'reportRequests':
-              reportRequests.map((value) => value.toJson()).toList(),
+              reportRequests!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1861,7 +1765,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -1893,12 +1797,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -1917,10 +1821,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -1942,48 +1846,48 @@
   /// number of samples in the overflow bucket. See the comments of
   /// \`bucket_option\` below for more details. Any suffix of trailing zeros may
   /// be omitted.
-  core.List<core.String> bucketCounts;
+  core.List<core.String>? bucketCounts;
 
   /// The total number of samples in the distribution.
   ///
   /// Must be >= 0.
-  core.String count;
+  core.String? count;
 
   /// Example points.
   ///
   /// Must be in increasing order of `value` field.
-  core.List<Exemplar> exemplars;
+  core.List<Exemplar>? exemplars;
 
   /// Buckets with arbitrary user-provided width.
-  ExplicitBuckets explicitBuckets;
+  ExplicitBuckets? explicitBuckets;
 
   /// Buckets with exponentially growing width.
-  ExponentialBuckets exponentialBuckets;
+  ExponentialBuckets? exponentialBuckets;
 
   /// Buckets with constant width.
-  LinearBuckets linearBuckets;
+  LinearBuckets? linearBuckets;
 
   /// The maximum of the population of values.
   ///
   /// Ignored if `count` is zero.
-  core.double maximum;
+  core.double? maximum;
 
   /// The arithmetic mean of the samples in the distribution.
   ///
   /// If `count` is zero then this field must be zero.
-  core.double mean;
+  core.double? mean;
 
   /// The minimum of the population of values.
   ///
   /// Ignored if `count` is zero.
-  core.double minimum;
+  core.double? minimum;
 
   /// The sum of squared deviations from the mean: Sum\[i=1..count\]((x_i -
   /// mean)^2) where each x_i is a sample values.
   ///
   /// If `count` is zero then this field must be zero, otherwise validation of
   /// the request fails.
-  core.double sumOfSquaredDeviation;
+  core.double? sumOfSquaredDeviation;
 
   Distribution();
 
@@ -2029,21 +1933,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bucketCounts != null) 'bucketCounts': bucketCounts,
-        if (count != null) 'count': count,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bucketCounts != null) 'bucketCounts': bucketCounts!,
+        if (count != null) 'count': count!,
         if (exemplars != null)
-          'exemplars': exemplars.map((value) => value.toJson()).toList(),
+          'exemplars': exemplars!.map((value) => value.toJson()).toList(),
         if (explicitBuckets != null)
-          'explicitBuckets': explicitBuckets.toJson(),
+          'explicitBuckets': explicitBuckets!.toJson(),
         if (exponentialBuckets != null)
-          'exponentialBuckets': exponentialBuckets.toJson(),
-        if (linearBuckets != null) 'linearBuckets': linearBuckets.toJson(),
-        if (maximum != null) 'maximum': maximum,
-        if (mean != null) 'mean': mean,
-        if (minimum != null) 'minimum': minimum,
+          'exponentialBuckets': exponentialBuckets!.toJson(),
+        if (linearBuckets != null) 'linearBuckets': linearBuckets!.toJson(),
+        if (maximum != null) 'maximum': maximum!,
+        if (mean != null) 'mean': mean!,
+        if (minimum != null) 'minimum': minimum!,
         if (sumOfSquaredDeviation != null)
-          'sumOfSquaredDeviation': sumOfSquaredDeviation,
+          'sumOfSquaredDeviation': sumOfSquaredDeviation!,
       };
 }
 
@@ -2061,7 +1965,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Exemplars are example points that may be used to annotate aggregated
@@ -2083,15 +1987,15 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> attachments;
+  core.List<core.Map<core.String, core.Object>>? attachments;
 
   /// The observation (sampling) time of the above value.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// Value of the exemplar point.
   ///
   /// This value determines to which bucket the exemplar belongs.
-  core.double value;
+  core.double? value;
 
   Exemplar();
 
@@ -2115,10 +2019,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attachments != null) 'attachments': attachments,
-        if (timestamp != null) 'timestamp': timestamp,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attachments != null) 'attachments': attachments!,
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -2135,7 +2039,7 @@
   /// number lower bound upper bound i == 0 (underflow) -inf bound\[i\] 0 < i <
   /// bound_size() bound\[i-1\] bound\[i\] i == bound_size() (overflow)
   /// bound\[i-1\] +inf
-  core.List<core.double> bounds;
+  core.List<core.double>? bounds;
 
   ExplicitBuckets();
 
@@ -2147,8 +2051,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bounds != null) 'bounds': bounds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bounds != null) 'bounds': bounds!,
       };
 }
 
@@ -2159,20 +2063,20 @@
   /// num_finite_buckets inclusive.
   ///
   /// Must be larger than 1.0.
-  core.double growthFactor;
+  core.double? growthFactor;
 
   /// The number of finite buckets.
   ///
   /// With the underflow and overflow buckets, the total number of buckets is
   /// `num_finite_buckets` + 2. See comments on `bucket_options` for details.
-  core.int numFiniteBuckets;
+  core.int? numFiniteBuckets;
 
   /// The i'th exponential bucket covers the interval \[scale *
   /// growth_factor^(i-1), scale * growth_factor^i) where i ranges from 1 to
   /// num_finite_buckets inclusive.
   ///
   /// Must be > 0.
-  core.double scale;
+  core.double? scale;
 
   ExponentialBuckets();
 
@@ -2188,10 +2092,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (growthFactor != null) 'growthFactor': growthFactor,
-        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets,
-        if (scale != null) 'scale': scale,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (growthFactor != null) 'growthFactor': growthFactor!,
+        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets!,
+        if (scale != null) 'scale': scale!,
       };
 }
 
@@ -2220,24 +2124,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -2256,11 +2160,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -2272,16 +2176,16 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The response message for Operations.ListOperations.
 class GoogleLongrunningListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<GoogleLongrunningOperation> operations;
+  core.List<GoogleLongrunningOperation>? operations;
 
   GoogleLongrunningListOperationsResponse();
 
@@ -2298,10 +2202,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2312,10 +2216,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -2326,14 +2230,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -2346,7 +2250,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   GoogleLongrunningOperation();
 
@@ -2381,12 +2285,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -2399,7 +2303,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class GoogleRpcStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -2407,13 +2311,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   GoogleRpcStatus();
 
@@ -2437,10 +2341,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -2452,72 +2356,72 @@
   /// The number of HTTP response bytes inserted into cache.
   ///
   /// Set only when a cache fill was attempted.
-  core.String cacheFillBytes;
+  core.String? cacheFillBytes;
 
   /// Whether or not an entity was served from cache (with or without
   /// validation).
-  core.bool cacheHit;
+  core.bool? cacheHit;
 
   /// Whether or not a cache lookup was attempted.
-  core.bool cacheLookup;
+  core.bool? cacheLookup;
 
   /// Whether or not the response was validated with the origin server before
   /// being served from cache.
   ///
   /// This field is only meaningful if `cache_hit` is True.
-  core.bool cacheValidatedWithOriginServer;
+  core.bool? cacheValidatedWithOriginServer;
 
   /// The request processing latency on the server, from the time the request
   /// was received until the response was sent.
-  core.String latency;
+  core.String? latency;
 
   /// Protocol used for the request.
   ///
   /// Examples: "HTTP/1.1", "HTTP/2", "websocket"
-  core.String protocol;
+  core.String? protocol;
 
   /// The referer URL of the request, as defined in
   /// [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
-  core.String referer;
+  core.String? referer;
 
   /// The IP address (IPv4 or IPv6) of the client that issued the HTTP request.
   ///
   /// Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`.
-  core.String remoteIp;
+  core.String? remoteIp;
 
   /// The request method.
   ///
   /// Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`.
-  core.String requestMethod;
+  core.String? requestMethod;
 
   /// The size of the HTTP request message in bytes, including the request
   /// headers and the request body.
-  core.String requestSize;
+  core.String? requestSize;
 
   /// The scheme (http, https), the host name, the path, and the query portion
   /// of the URL that was requested.
   ///
   /// Example: `"http://example.com/some/info?color=red"`.
-  core.String requestUrl;
+  core.String? requestUrl;
 
   /// The size of the HTTP response message sent back to the client, in bytes,
   /// including the response headers and the response body.
-  core.String responseSize;
+  core.String? responseSize;
 
   /// The IP address (IPv4 or IPv6) of the origin server that the request was
   /// sent to.
-  core.String serverIp;
+  core.String? serverIp;
 
   /// The response code indicating the status of the response.
   ///
   /// Examples: 200, 404.
-  core.int status;
+  core.int? status;
 
   /// The user agent sent by the client.
   ///
   /// Example: `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET
   /// CLR 1.0.3705)"`.
-  core.String userAgent;
+  core.String? userAgent;
 
   HttpRequest();
 
@@ -2570,23 +2474,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cacheFillBytes != null) 'cacheFillBytes': cacheFillBytes,
-        if (cacheHit != null) 'cacheHit': cacheHit,
-        if (cacheLookup != null) 'cacheLookup': cacheLookup,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cacheFillBytes != null) 'cacheFillBytes': cacheFillBytes!,
+        if (cacheHit != null) 'cacheHit': cacheHit!,
+        if (cacheLookup != null) 'cacheLookup': cacheLookup!,
         if (cacheValidatedWithOriginServer != null)
-          'cacheValidatedWithOriginServer': cacheValidatedWithOriginServer,
-        if (latency != null) 'latency': latency,
-        if (protocol != null) 'protocol': protocol,
-        if (referer != null) 'referer': referer,
-        if (remoteIp != null) 'remoteIp': remoteIp,
-        if (requestMethod != null) 'requestMethod': requestMethod,
-        if (requestSize != null) 'requestSize': requestSize,
-        if (requestUrl != null) 'requestUrl': requestUrl,
-        if (responseSize != null) 'responseSize': responseSize,
-        if (serverIp != null) 'serverIp': serverIp,
-        if (status != null) 'status': status,
-        if (userAgent != null) 'userAgent': userAgent,
+          'cacheValidatedWithOriginServer': cacheValidatedWithOriginServer!,
+        if (latency != null) 'latency': latency!,
+        if (protocol != null) 'protocol': protocol!,
+        if (referer != null) 'referer': referer!,
+        if (remoteIp != null) 'remoteIp': remoteIp!,
+        if (requestMethod != null) 'requestMethod': requestMethod!,
+        if (requestSize != null) 'requestSize': requestSize!,
+        if (requestUrl != null) 'requestUrl': requestUrl!,
+        if (responseSize != null) 'responseSize': responseSize!,
+        if (serverIp != null) 'serverIp': serverIp!,
+        if (status != null) 'status': status!,
+        if (userAgent != null) 'userAgent': userAgent!,
       };
 }
 
@@ -2597,23 +2501,23 @@
 /// management model. Following is the resource message of a hub.
 class Hub {
   /// Time when the Hub was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// Short description of the hub resource.
-  core.String description;
+  core.String? description;
 
   /// User-defined labels.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The name of a Hub resource.
   ///
   /// Immutable.
-  core.String name;
+  core.String? name;
 
   /// A list of the URIs of all attached spokes
   ///
   /// Output only.
-  core.List<core.String> spokes;
+  core.List<core.String>? spokes;
 
   /// The current lifecycle state of this Hub.
   ///
@@ -2623,7 +2527,7 @@
   /// - "CREATING" : The resource's create operation is in progress
   /// - "ACTIVE" : The resource is active
   /// - "DELETING" : The resource's Delete operation is in progress
-  core.String state;
+  core.String? state;
 
   /// Google-generated UUID for this resource.
   ///
@@ -2631,10 +2535,10 @@
   /// another with the same name is created, it gets a different unique_id.
   ///
   /// Output only.
-  core.String uniqueId;
+  core.String? uniqueId;
 
   /// Time when the Hub was updated.
-  core.String updateTime;
+  core.String? updateTime;
 
   Hub();
 
@@ -2673,15 +2577,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (labels != null) 'labels': labels,
-        if (name != null) 'name': name,
-        if (spokes != null) 'spokes': spokes,
-        if (state != null) 'state': state,
-        if (uniqueId != null) 'uniqueId': uniqueId,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (labels != null) 'labels': labels!,
+        if (name != null) 'name': name!,
+        if (spokes != null) 'spokes': spokes!,
+        if (state != null) 'state': state!,
+        if (uniqueId != null) 'uniqueId': uniqueId!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -2691,19 +2595,19 @@
   ///
   /// With the underflow and overflow buckets, the total number of buckets is
   /// `num_finite_buckets` + 2. See comments on `bucket_options` for details.
-  core.int numFiniteBuckets;
+  core.int? numFiniteBuckets;
 
   /// The i'th linear bucket covers the interval \[offset + (i-1) * width,
   /// offset + i * width) where i ranges from 1 to num_finite_buckets,
   /// inclusive.
-  core.double offset;
+  core.double? offset;
 
   /// The i'th linear bucket covers the interval \[offset + (i-1) * width,
   /// offset + i * width) where i ranges from 1 to num_finite_buckets,
   /// inclusive.
   ///
   /// Must be strictly positive.
-  core.double width;
+  core.double? width;
 
   LinearBuckets();
 
@@ -2719,26 +2623,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets,
-        if (offset != null) 'offset': offset,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets!,
+        if (offset != null) 'offset': offset!,
+        if (width != null) 'width': width!,
       };
 }
 
 /// Response for HubService.ListHubs method.
 class ListHubsResponse {
   /// Hubs to be returned.
-  core.List<Hub> hubs;
+  core.List<Hub>? hubs;
 
   /// The next pagination token in the List response.
   ///
   /// It should be used as page_token for the following request. An empty value
   /// means no more result.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Locations that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListHubsResponse();
 
@@ -2759,20 +2663,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (hubs != null) 'hubs': hubs.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (hubs != null) 'hubs': hubs!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class ListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLocationsResponse();
 
@@ -2788,10 +2692,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -2801,13 +2705,13 @@
   ///
   /// It should be used as page_token for the following request. An empty value
   /// means no more result.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Spokes to be returned.
-  core.List<Spoke> spokes;
+  core.List<Spoke>? spokes;
 
   /// Locations that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListSpokesResponse();
 
@@ -2828,11 +2732,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (spokes != null)
-          'spokes': spokes.map((value) => value.toJson()).toList(),
-        if (unreachable != null) 'unreachable': unreachable,
+          'spokes': spokes!.map((value) => value.toJson()).toList(),
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
@@ -2841,17 +2745,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: `"us-east1"`.
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -2859,12 +2763,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: `"projects/example-project/locations/us-east1"`
-  core.String name;
+  core.String? name;
 
   Location();
 
@@ -2898,12 +2802,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -2913,29 +2817,29 @@
   /// applicable.
   ///
   /// Optional.
-  HttpRequest httpRequest;
+  HttpRequest? httpRequest;
 
   /// A unique ID for the log entry used for deduplication.
   ///
   /// If omitted, the implementation will generate one based on operation_id.
-  core.String insertId;
+  core.String? insertId;
 
   /// A set of user-defined (key, value) data that provides additional
   /// information about the log entry.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The log to which this log entry belongs.
   ///
   /// Examples: `"syslog"`, `"book_log"`.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// Information about an operation associated with the log entry, if
   /// applicable.
   ///
   /// Optional.
-  LogEntryOperation operation;
+  LogEntryOperation? operation;
 
   /// The log entry payload, represented as a protocol buffer that is expressed
   /// as a JSON object.
@@ -2944,7 +2848,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> protoPayload;
+  core.Map<core.String, core.Object>? protoPayload;
 
   /// The severity of the log entry.
   ///
@@ -2962,27 +2866,27 @@
   /// outages.
   /// - "ALERT" : (700) A person must take an action immediately.
   /// - "EMERGENCY" : (800) One or more systems are unusable.
-  core.String severity;
+  core.String? severity;
 
   /// Source code location information associated with the log entry, if any.
   ///
   /// Optional.
-  LogEntrySourceLocation sourceLocation;
+  LogEntrySourceLocation? sourceLocation;
 
   /// The log entry payload, represented as a structure that is expressed as a
   /// JSON object.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> structPayload;
+  core.Map<core.String, core.Object>? structPayload;
 
   /// The log entry payload, represented as a Unicode string (UTF-8).
-  core.String textPayload;
+  core.String? textPayload;
 
   /// The time the event described by the log entry occurred.
   ///
   /// If omitted, defaults to operation start time.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// Resource name of the trace associated with the log entry, if any.
   ///
@@ -2991,7 +2895,7 @@
   /// `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
   ///
   /// Optional.
-  core.String trace;
+  core.String? trace;
 
   LogEntry();
 
@@ -3057,19 +2961,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (httpRequest != null) 'httpRequest': httpRequest.toJson(),
-        if (insertId != null) 'insertId': insertId,
-        if (labels != null) 'labels': labels,
-        if (name != null) 'name': name,
-        if (operation != null) 'operation': operation.toJson(),
-        if (protoPayload != null) 'protoPayload': protoPayload,
-        if (severity != null) 'severity': severity,
-        if (sourceLocation != null) 'sourceLocation': sourceLocation.toJson(),
-        if (structPayload != null) 'structPayload': structPayload,
-        if (textPayload != null) 'textPayload': textPayload,
-        if (timestamp != null) 'timestamp': timestamp,
-        if (trace != null) 'trace': trace,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (httpRequest != null) 'httpRequest': httpRequest!.toJson(),
+        if (insertId != null) 'insertId': insertId!,
+        if (labels != null) 'labels': labels!,
+        if (name != null) 'name': name!,
+        if (operation != null) 'operation': operation!.toJson(),
+        if (protoPayload != null) 'protoPayload': protoPayload!,
+        if (severity != null) 'severity': severity!,
+        if (sourceLocation != null) 'sourceLocation': sourceLocation!.toJson(),
+        if (structPayload != null) 'structPayload': structPayload!,
+        if (textPayload != null) 'textPayload': textPayload!,
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (trace != null) 'trace': trace!,
       };
 }
 
@@ -3079,7 +2983,7 @@
   /// Set this to True if this is the first log entry in the operation.
   ///
   /// Optional.
-  core.bool first;
+  core.bool? first;
 
   /// An arbitrary operation identifier.
   ///
@@ -3087,12 +2991,12 @@
   /// operation.
   ///
   /// Optional.
-  core.String id;
+  core.String? id;
 
   /// Set this to True if this is the last log entry in the operation.
   ///
   /// Optional.
-  core.bool last;
+  core.bool? last;
 
   /// An arbitrary producer identifier.
   ///
@@ -3101,7 +3005,7 @@
   /// `"github.com/MyProject/MyApplication"`.
   ///
   /// Optional.
-  core.String producer;
+  core.String? producer;
 
   LogEntryOperation();
 
@@ -3120,11 +3024,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (first != null) 'first': first,
-        if (id != null) 'id': id,
-        if (last != null) 'last': last,
-        if (producer != null) 'producer': producer,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (first != null) 'first': first!,
+        if (id != null) 'id': id!,
+        if (last != null) 'last': last!,
+        if (producer != null) 'producer': producer!,
       };
 }
 
@@ -3137,7 +3041,7 @@
   /// fully-qualified name.
   ///
   /// Optional.
-  core.String file;
+  core.String? file;
 
   /// Human-readable name of the function or method being invoked, with optional
   /// context such as the class or package name.
@@ -3148,14 +3052,14 @@
   /// `function` (Python).
   ///
   /// Optional.
-  core.String function;
+  core.String? function;
 
   /// Line within the source file.
   ///
   /// 1-based; 0 indicates no line number available.
   ///
   /// Optional.
-  core.String line;
+  core.String? line;
 
   LogEntrySourceLocation();
 
@@ -3171,43 +3075,43 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (file != null) 'file': file,
-        if (function != null) 'function': function,
-        if (line != null) 'line': line,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (file != null) 'file': file!,
+        if (function != null) 'function': function!,
+        if (line != null) 'line': line!,
       };
 }
 
 /// Represents a single metric value.
 class MetricValue {
   /// A boolean value.
-  core.bool boolValue;
+  core.bool? boolValue;
 
   /// A distribution value.
-  Distribution distributionValue;
+  Distribution? distributionValue;
 
   /// A double precision floating point value.
-  core.double doubleValue;
+  core.double? doubleValue;
 
   /// The end of the time period over which this metric value's measurement
   /// applies.
   ///
   /// If not specified, google.api.servicecontrol.v1.Operation.end_time will be
   /// used.
-  core.String endTime;
+  core.String? endTime;
 
   /// A signed 64-bit integer value.
-  core.String int64Value;
+  core.String? int64Value;
 
   /// The labels describing the metric value.
   ///
   /// See comments on google.api.servicecontrol.v1.Operation.labels for the
   /// overriding relationship. Note that this map must not contain monitored
   /// resource labels.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// A money value.
-  Money moneyValue;
+  Money? moneyValue;
 
   /// The start of the time period over which this metric value's measurement
   /// applies.
@@ -3216,10 +3120,10 @@
   /// (cumulative, delta, and gauge). See the metric definition documentation in
   /// the service configuration for details. If not specified,
   /// google.api.servicecontrol.v1.Operation.start_time will be used.
-  core.String startTime;
+  core.String? startTime;
 
   /// A text string value.
-  core.String stringValue;
+  core.String? stringValue;
 
   MetricValue();
 
@@ -3261,17 +3165,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolValue != null) 'boolValue': boolValue,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolValue != null) 'boolValue': boolValue!,
         if (distributionValue != null)
-          'distributionValue': distributionValue.toJson(),
-        if (doubleValue != null) 'doubleValue': doubleValue,
-        if (endTime != null) 'endTime': endTime,
-        if (int64Value != null) 'int64Value': int64Value,
-        if (labels != null) 'labels': labels,
-        if (moneyValue != null) 'moneyValue': moneyValue.toJson(),
-        if (startTime != null) 'startTime': startTime,
-        if (stringValue != null) 'stringValue': stringValue,
+          'distributionValue': distributionValue!.toJson(),
+        if (doubleValue != null) 'doubleValue': doubleValue!,
+        if (endTime != null) 'endTime': endTime!,
+        if (int64Value != null) 'int64Value': int64Value!,
+        if (labels != null) 'labels': labels!,
+        if (moneyValue != null) 'moneyValue': moneyValue!.toJson(),
+        if (startTime != null) 'startTime': startTime!,
+        if (stringValue != null) 'stringValue': stringValue!,
       };
 }
 
@@ -3281,10 +3185,10 @@
 /// end time, and label values.
 class MetricValueSet {
   /// The metric name defined in the service configuration.
-  core.String metricName;
+  core.String? metricName;
 
   /// The values in this metric.
-  core.List<MetricValue> metricValues;
+  core.List<MetricValue>? metricValues;
 
   MetricValueSet();
 
@@ -3300,17 +3204,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metricName != null) 'metricName': metricName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metricName != null) 'metricName': metricName!,
         if (metricValues != null)
-          'metricValues': metricValues.map((value) => value.toJson()).toList(),
+          'metricValues': metricValues!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Represents an amount of money with its currency type.
 class Money {
   /// The three-letter currency code defined in ISO 4217.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Number of nano (10^-9) units of the amount.
   ///
@@ -3319,12 +3223,12 @@
   /// `nanos` can be positive, zero, or negative. If `units` is negative,
   /// `nanos` must be negative or zero. For example $-1.75 is represented as
   /// `units`=-1 and `nanos`=-750,000,000.
-  core.int nanos;
+  core.int? nanos;
 
   /// The whole units of the amount.
   ///
   /// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-  core.String units;
+  core.String? units;
 
   Money();
 
@@ -3340,10 +3244,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (nanos != null) 'nanos': nanos,
-        if (units != null) 'units': units,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (nanos != null) 'nanos': nanos!,
+        if (units != null) 'units': units!,
       };
 }
 
@@ -3357,19 +3261,19 @@
   /// project:PROJECT_ID, - project`_`number:PROJECT_NUMBER, -
   /// projects/PROJECT_ID or PROJECT_NUMBER, - folders/FOLDER_NUMBER, -
   /// organizations/ORGANIZATION_NUMBER, - api`_`key:API_KEY.
-  core.String consumerId;
+  core.String? consumerId;
 
   /// End time of the operation.
   ///
   /// Required when the operation is used in ServiceController.Report, but
   /// optional when the operation is used in ServiceController.Check.
-  core.String endTime;
+  core.String? endTime;
 
   /// Unimplemented.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> extensions;
+  core.List<core.Map<core.String, core.Object>>? extensions;
 
   /// DO NOT USE.
   ///
@@ -3384,7 +3288,7 @@
   /// additional validation logic. It should only be used during the onboarding
   /// process. It is only available to Google internal services, and the service
   /// must be approved by chemist-dev@google.com in order to use this level.
-  core.String importance;
+  core.String? importance;
 
   /// Labels describing the operation.
   ///
@@ -3399,10 +3303,10 @@
   /// to handle the API request (e.g. ESP), -
   /// `servicecontrol.googleapis.com/platform` describing the platform where the
   /// API is served, such as App Engine, Compute Engine, or Kubernetes Engine.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// Represents information to be logged.
-  core.List<LogEntry> logEntries;
+  core.List<LogEntry>? logEntries;
 
   /// Represents information about this operation.
   ///
@@ -3413,7 +3317,7 @@
   /// that have the same metric names and identical label value combinations. If
   /// a request has such duplicated MetricValue instances, the entire request is
   /// rejected with an invalid argument error.
-  core.List<MetricValueSet> metricValueSets;
+  core.List<MetricValueSet>? metricValueSets;
 
   /// Identity of the operation.
   ///
@@ -3424,28 +3328,28 @@
   /// computed from existing information and an idempotent id is desirable for
   /// deduplication purpose, UUID version 5 is recommended. See RFC 4122 for
   /// details.
-  core.String operationId;
+  core.String? operationId;
 
   /// Fully qualified name of the operation.
   ///
   /// Reserved for future use.
-  core.String operationName;
+  core.String? operationName;
 
   /// Represents the properties needed for quota check.
   ///
   /// Applicable only if this operation is for a quota check request. If this is
   /// not specified, no quota check will be performed.
-  QuotaProperties quotaProperties;
+  QuotaProperties? quotaProperties;
 
   /// The resources that are involved in the operation.
   ///
   /// The maximum supported number of entries in this field is 100.
-  core.List<ResourceInfo> resources;
+  core.List<ResourceInfo>? resources;
 
   /// Start time of the operation.
   ///
   /// Required.
-  core.String startTime;
+  core.String? startTime;
 
   /// A list of Cloud Trace spans.
   ///
@@ -3453,14 +3357,14 @@
   /// be either the produce or the consumer project.
   ///
   /// Unimplemented.
-  core.List<TraceSpan> traceSpans;
+  core.List<TraceSpan>? traceSpans;
 
   /// Private Preview.
   ///
   /// This feature is only available for approved services. User defined labels
   /// for the resource that this operation is associated with. Only a
   /// combination of 1000 user labels per consumer project are allowed.
-  core.Map<core.String, core.String> userLabels;
+  core.Map<core.String, core.String>? userLabels;
 
   Operation();
 
@@ -3543,27 +3447,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (consumerId != null) 'consumerId': consumerId,
-        if (endTime != null) 'endTime': endTime,
-        if (extensions != null) 'extensions': extensions,
-        if (importance != null) 'importance': importance,
-        if (labels != null) 'labels': labels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (consumerId != null) 'consumerId': consumerId!,
+        if (endTime != null) 'endTime': endTime!,
+        if (extensions != null) 'extensions': extensions!,
+        if (importance != null) 'importance': importance!,
+        if (labels != null) 'labels': labels!,
         if (logEntries != null)
-          'logEntries': logEntries.map((value) => value.toJson()).toList(),
+          'logEntries': logEntries!.map((value) => value.toJson()).toList(),
         if (metricValueSets != null)
           'metricValueSets':
-              metricValueSets.map((value) => value.toJson()).toList(),
-        if (operationId != null) 'operationId': operationId,
-        if (operationName != null) 'operationName': operationName,
+              metricValueSets!.map((value) => value.toJson()).toList(),
+        if (operationId != null) 'operationId': operationId!,
+        if (operationName != null) 'operationName': operationName!,
         if (quotaProperties != null)
-          'quotaProperties': quotaProperties.toJson(),
+          'quotaProperties': quotaProperties!.toJson(),
         if (resources != null)
-          'resources': resources.map((value) => value.toJson()).toList(),
-        if (startTime != null) 'startTime': startTime,
+          'resources': resources!.map((value) => value.toJson()).toList(),
+        if (startTime != null) 'startTime': startTime!,
         if (traceSpans != null)
-          'traceSpans': traceSpans.map((value) => value.toJson()).toList(),
-        if (userLabels != null) 'userLabels': userLabels,
+          'traceSpans': traceSpans!.map((value) => value.toJson()).toList(),
+        if (userLabels != null) 'userLabels': userLabels!,
       };
 }
 
@@ -3572,17 +3476,17 @@
   /// API version used to start the operation.
   ///
   /// Output only.
-  core.String apiVersion;
+  core.String? apiVersion;
 
   /// The time the operation was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time the operation finished running.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// Identifies whether the user has requested cancellation of the operation.
   ///
@@ -3591,22 +3495,22 @@
   /// `Code.CANCELLED`.
   ///
   /// Output only.
-  core.bool requestedCancellation;
+  core.bool? requestedCancellation;
 
   /// Human-readable status of the operation, if any.
   ///
   /// Output only.
-  core.String statusMessage;
+  core.String? statusMessage;
 
   /// Server-defined resource path for the target of the operation.
   ///
   /// Output only.
-  core.String target;
+  core.String? target;
 
   /// Name of the verb executed by the operation.
   ///
   /// Output only.
-  core.String verb;
+  core.String? verb;
 
   OperationMetadata();
 
@@ -3634,15 +3538,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiVersion != null) 'apiVersion': apiVersion,
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiVersion != null) 'apiVersion': apiVersion!,
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
         if (requestedCancellation != null)
-          'requestedCancellation': requestedCancellation,
-        if (statusMessage != null) 'statusMessage': statusMessage,
-        if (target != null) 'target': target,
-        if (verb != null) 'verb': verb,
+          'requestedCancellation': requestedCancellation!,
+        if (statusMessage != null) 'statusMessage': statusMessage!,
+        if (target != null) 'target': target!,
+        if (verb != null) 'verb': verb!,
       };
 }
 
@@ -3679,14 +3583,14 @@
 /// [IAM documentation](https://cloud.google.com/iam/docs/).
 class Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<AuditConfig> auditConfigs;
+  core.List<AuditConfig>? auditConfigs;
 
   /// Associates a list of `members` to a `role`.
   ///
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -3700,8 +3604,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -3725,7 +3629,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -3750,13 +3654,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -3774,7 +3678,7 @@
   /// enough quota. No lock is placed on the checked tokens neither.
   /// - "RELEASE" : Increases available quota by the operation cost specified
   /// for the operation.
-  core.String quotaMode;
+  core.String? quotaMode;
 
   QuotaProperties();
 
@@ -3784,8 +3688,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (quotaMode != null) 'quotaMode': quotaMode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (quotaMode != null) 'quotaMode': quotaMode!,
       };
 }
 
@@ -3799,21 +3703,21 @@
   /// report. There is no limit on the number of operations in the same
   /// ReportRequest, however the ReportRequest size should be no larger than
   /// 1MB. See ReportResponse.report_errors for partial failure behavior.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   /// Specifies which version of service config should be used to process the
   /// request.
   ///
   /// If unspecified or no matching version can be found, the latest one will be
   /// used.
-  core.String serviceConfigId;
+  core.String? serviceConfigId;
 
   /// The service name as specified in its service configuration.
   ///
   /// For example, `"pubsub.googleapis.com"`. See
   /// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
   /// for the definition of a service name.
-  core.String serviceName;
+  core.String? serviceName;
 
   ReportRequest();
 
@@ -3832,11 +3736,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
-        if (serviceConfigId != null) 'serviceConfigId': serviceConfigId,
-        if (serviceName != null) 'serviceName': serviceName,
+          'operations': operations!.map((value) => value.toJson()).toList(),
+        if (serviceConfigId != null) 'serviceConfigId': serviceConfigId!,
+        if (serviceName != null) 'serviceName': serviceName!,
       };
 }
 
@@ -3846,19 +3750,19 @@
   ///
   /// Must be in one of the following formats: - `projects/` - `folders/` -
   /// `organizations/`
-  core.String resourceContainer;
+  core.String? resourceContainer;
 
   /// The location of the resource.
   ///
   /// If not empty, the resource will be checked against location policy. The
   /// value must be a valid zone, region or multiregion. For example:
   /// "europe-west4" or "northamerica-northeast1-a"
-  core.String resourceLocation;
+  core.String? resourceLocation;
 
   /// Name of the resource.
   ///
   /// This is used for auditing purposes.
-  core.String resourceName;
+  core.String? resourceName;
 
   ResourceInfo();
 
@@ -3874,10 +3778,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceContainer != null) 'resourceContainer': resourceContainer,
-        if (resourceLocation != null) 'resourceLocation': resourceLocation,
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceContainer != null) 'resourceContainer': resourceContainer!,
+        if (resourceLocation != null) 'resourceLocation': resourceLocation!,
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
 
@@ -3885,11 +3789,11 @@
 /// and a NIC address.
 class RouterApplianceInstance {
   /// The IP address of the network interface to use for peering.
-  core.String ipAddress;
-  core.String networkInterface;
+  core.String? ipAddress;
+  core.String? networkInterface;
 
   /// The URI of the virtual machine resource
-  core.String virtualMachine;
+  core.String? virtualMachine;
 
   RouterApplianceInstance();
 
@@ -3905,10 +3809,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (ipAddress != null) 'ipAddress': ipAddress,
-        if (networkInterface != null) 'networkInterface': networkInterface,
-        if (virtualMachine != null) 'virtualMachine': virtualMachine,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (ipAddress != null) 'ipAddress': ipAddress!,
+        if (networkInterface != null) 'networkInterface': networkInterface!,
+        if (virtualMachine != null) 'virtualMachine': virtualMachine!,
       };
 }
 
@@ -3919,13 +3823,13 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   /// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
   ///
   /// Only the fields in the mask will be modified. If no mask is provided, the
   /// following default mask is used: `paths: "bindings, etag"`
-  core.String updateMask;
+  core.String? updateMask;
 
   SetIamPolicyRequest();
 
@@ -3939,9 +3843,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -3951,30 +3855,30 @@
 /// Router appliance, etc.
 class Spoke {
   /// The time when the Spoke was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// Short description of the spoke resource
-  core.String description;
+  core.String? description;
 
   /// The resource URL of the hub resource that the spoke is attached to
-  core.String hub;
+  core.String? hub;
 
   /// User-defined labels.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The URIs of linked interconnect attachment resources
-  core.List<core.String> linkedInterconnectAttachments;
+  core.List<core.String>? linkedInterconnectAttachments;
 
   /// The URIs of linked Router appliance resources
-  core.List<RouterApplianceInstance> linkedRouterApplianceInstances;
+  core.List<RouterApplianceInstance>? linkedRouterApplianceInstances;
 
   /// The URIs of linked VPN tunnel resources
-  core.List<core.String> linkedVpnTunnels;
+  core.List<core.String>? linkedVpnTunnels;
 
   /// The name of a Spoke resource.
   ///
   /// Immutable.
-  core.String name;
+  core.String? name;
 
   /// The current lifecycle state of this Hub.
   ///
@@ -3984,7 +3888,7 @@
   /// - "CREATING" : The resource's create operation is in progress
   /// - "ACTIVE" : The resource is active
   /// - "DELETING" : The resource's Delete operation is in progress
-  core.String state;
+  core.String? state;
 
   /// Google-generated UUID for this resource.
   ///
@@ -3992,10 +3896,10 @@
   /// and another with the same name is created, it gets a different unique_id.
   ///
   /// Output only.
-  core.String uniqueId;
+  core.String? uniqueId;
 
   /// The time when the Spoke was updated.
-  core.String updateTime;
+  core.String? updateTime;
 
   Spoke();
 
@@ -4051,22 +3955,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (hub != null) 'hub': hub,
-        if (labels != null) 'labels': labels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (hub != null) 'hub': hub!,
+        if (labels != null) 'labels': labels!,
         if (linkedInterconnectAttachments != null)
-          'linkedInterconnectAttachments': linkedInterconnectAttachments,
+          'linkedInterconnectAttachments': linkedInterconnectAttachments!,
         if (linkedRouterApplianceInstances != null)
-          'linkedRouterApplianceInstances': linkedRouterApplianceInstances
+          'linkedRouterApplianceInstances': linkedRouterApplianceInstances!
               .map((value) => value.toJson())
               .toList(),
-        if (linkedVpnTunnels != null) 'linkedVpnTunnels': linkedVpnTunnels,
-        if (name != null) 'name': name,
-        if (state != null) 'state': state,
-        if (uniqueId != null) 'uniqueId': uniqueId,
-        if (updateTime != null) 'updateTime': updateTime,
+        if (linkedVpnTunnels != null) 'linkedVpnTunnels': linkedVpnTunnels!,
+        if (name != null) 'name': name!,
+        if (state != null) 'state': state!,
+        if (uniqueId != null) 'uniqueId': uniqueId!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -4077,7 +3981,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -4089,8 +3993,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -4098,7 +4002,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -4110,8 +4014,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -4126,13 +4030,13 @@
   /// A set of attributes on the span.
   ///
   /// You can have up to 32 attributes per span.
-  Attributes attributes;
+  Attributes? attributes;
 
   /// An optional number of child spans that were generated while this span was
   /// active.
   ///
   /// If set, allows implementation to detect missing child spans.
-  core.int childSpanCount;
+  core.int? childSpanCount;
 
   /// A description of the span's operation (up to 128 bytes).
   ///
@@ -4141,14 +4045,14 @@
   /// file name and a line number where the operation is called. A best practice
   /// is to use the same display name within an application and at the same call
   /// point. This makes it easier to correlate spans in different traces.
-  TruncatableString displayName;
+  TruncatableString? displayName;
 
   /// The end time of the span.
   ///
   /// On the client side, this is the time kept by the local machine where the
   /// span execution ends. On the server side, this is the time when the server
   /// application handler stops running.
-  core.String endTime;
+  core.String? endTime;
 
   /// The resource name of the span in the following format:
   /// projects/\[PROJECT_ID\]/traces/\[TRACE_ID\]/spans/SPAN_ID is a unique
@@ -4157,22 +4061,22 @@
   ///
   /// \[SPAN_ID\] is a unique identifier for a span within a trace; it is a
   /// 16-character hexadecimal encoding of an 8-byte array.
-  core.String name;
+  core.String? name;
 
   /// The \[SPAN_ID\] of this span's parent span.
   ///
   /// If this is a root span, then this field must be empty.
-  core.String parentSpanId;
+  core.String? parentSpanId;
 
   /// (Optional) Set this parameter to indicate whether this span is in the same
   /// process as its parent.
   ///
   /// If you do not set this parameter, Stackdriver Trace is unable to take
   /// advantage of this helpful information.
-  core.bool sameProcessAsParentSpan;
+  core.bool? sameProcessAsParentSpan;
 
   /// The \[SPAN_ID\] portion of the span's resource name.
-  core.String spanId;
+  core.String? spanId;
 
   /// Distinguishes between spans generated in a particular context.
   ///
@@ -4194,17 +4098,17 @@
   /// message from a broker. Unlike client and server, there is no direct
   /// critical path latency relationship between producer and consumer spans
   /// (e.g. receiving a message from a pubsub service subscription).
-  core.String spanKind;
+  core.String? spanKind;
 
   /// The start time of the span.
   ///
   /// On the client side, this is the time kept by the local machine where the
   /// span execution starts. On the server side, this is the time when the
   /// server's application handler starts running.
-  core.String startTime;
+  core.String? startTime;
 
   /// An optional final status for this span.
-  GoogleRpcStatus status;
+  GoogleRpcStatus? status;
 
   TraceSpan();
 
@@ -4247,19 +4151,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attributes != null) 'attributes': attributes.toJson(),
-        if (childSpanCount != null) 'childSpanCount': childSpanCount,
-        if (displayName != null) 'displayName': displayName.toJson(),
-        if (endTime != null) 'endTime': endTime,
-        if (name != null) 'name': name,
-        if (parentSpanId != null) 'parentSpanId': parentSpanId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attributes != null) 'attributes': attributes!.toJson(),
+        if (childSpanCount != null) 'childSpanCount': childSpanCount!,
+        if (displayName != null) 'displayName': displayName!.toJson(),
+        if (endTime != null) 'endTime': endTime!,
+        if (name != null) 'name': name!,
+        if (parentSpanId != null) 'parentSpanId': parentSpanId!,
         if (sameProcessAsParentSpan != null)
-          'sameProcessAsParentSpan': sameProcessAsParentSpan,
-        if (spanId != null) 'spanId': spanId,
-        if (spanKind != null) 'spanKind': spanKind,
-        if (startTime != null) 'startTime': startTime,
-        if (status != null) 'status': status.toJson(),
+          'sameProcessAsParentSpan': sameProcessAsParentSpan!,
+        if (spanId != null) 'spanId': spanId!,
+        if (spanKind != null) 'spanKind': spanKind!,
+        if (startTime != null) 'startTime': startTime!,
+        if (status != null) 'status': status!.toJson(),
       };
 }
 
@@ -4268,7 +4172,7 @@
   /// The number of bytes removed from the original string.
   ///
   /// If this value is 0, then the string was not shortened.
-  core.int truncatedByteCount;
+  core.int? truncatedByteCount;
 
   /// The shortened string.
   ///
@@ -4277,7 +4181,7 @@
   /// 500-byte string. Truncation always happens on a UTF8 character boundary.
   /// If there are multi-byte characters in the string, then the length of the
   /// shortened string might be less than the size limit.
-  core.String value;
+  core.String? value;
 
   TruncatableString();
 
@@ -4290,9 +4194,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (truncatedByteCount != null)
-          'truncatedByteCount': truncatedByteCount,
-        if (value != null) 'value': value,
+          'truncatedByteCount': truncatedByteCount!,
+        if (value != null) 'value': value!,
       };
 }
diff --git a/generated/googleapis_beta/lib/ondemandscanning/v1beta1.dart b/generated/googleapis_beta/lib/ondemandscanning/v1beta1.dart
index 037cd1e..18f8171 100644
--- a/generated/googleapis_beta/lib/ondemandscanning/v1beta1.dart
+++ b/generated/googleapis_beta/lib/ondemandscanning/v1beta1.dart
@@ -114,11 +114,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> cancel(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -158,11 +155,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -200,11 +194,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -253,14 +244,11 @@
   /// this method will complete with the same error.
   async.Future<ListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -315,12 +303,9 @@
   /// this method will complete with the same error.
   async.Future<Operation> wait(
     core.String name, {
-    core.String timeout,
-    core.String $fields,
+    core.String? timeout,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (timeout != null) 'timeout': [timeout],
       if ($fields != null) 'fields': [$fields],
@@ -370,13 +355,9 @@
   async.Future<Operation> analyzePackages(
     AnalyzePackagesRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -428,13 +409,10 @@
   /// this method will complete with the same error.
   async.Future<ListVulnerabilitiesResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -464,10 +442,10 @@
   /// - "MOVABLE" : Git branch.
   /// - "OTHER" : Used to specify non-standard aliases. For example, if a Git
   /// repo has a ref named "refs/foo/bar".
-  core.String kind;
+  core.String? kind;
 
   /// The alias name.
-  core.String name;
+  core.String? name;
 
   AliasContext();
 
@@ -480,9 +458,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -490,10 +468,10 @@
 /// image.
 class AnalyzePackagesMetadata {
   /// When the scan was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// The resource URI of the container image being scanned.
-  core.String resourceUri;
+  core.String? resourceUri;
 
   AnalyzePackagesMetadata();
 
@@ -506,9 +484,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (resourceUri != null) 'resourceUri': resourceUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (resourceUri != null) 'resourceUri': resourceUri!,
       };
 }
 
@@ -516,12 +494,12 @@
 /// create Vulnerability Occurrences for it.
 class AnalyzePackagesRequest {
   /// The packages to analyze.
-  core.List<PackageData> packages;
+  core.List<PackageData>? packages;
 
   /// The resource URI of the container image being scanned.
   ///
   /// Required.
-  core.String resourceUri;
+  core.String? resourceUri;
 
   AnalyzePackagesRequest();
 
@@ -537,10 +515,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (packages != null)
-          'packages': packages.map((value) => value.toJson()).toList(),
-        if (resourceUri != null) 'resourceUri': resourceUri,
+          'packages': packages!.map((value) => value.toJson()).toList(),
+        if (resourceUri != null) 'resourceUri': resourceUri!,
       };
 }
 
@@ -548,7 +526,7 @@
 /// for the given scan.
 class AnalyzePackagesResponse {
   /// The name of the scan resource created by this successful scan.
-  core.String scan;
+  core.String? scan;
 
   AnalyzePackagesResponse();
 
@@ -558,8 +536,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (scan != null) 'scan': scan,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (scan != null) 'scan': scan!,
       };
 }
 
@@ -567,11 +545,11 @@
 class Artifact {
   /// Hash or checksum value of a binary, or Docker Registry 2.0 digest of a
   /// container.
-  core.String checksum;
+  core.String? checksum;
 
   /// Artifact ID, if any; for container images, this will be a URL by digest
   /// like `gcr.io/projectID/imagename@sha256:123456`.
-  core.String id;
+  core.String? id;
 
   /// Related artifact names.
   ///
@@ -580,7 +558,7 @@
   /// Container Registry, as presented to `docker push`. Note that a single
   /// Artifact ID can have multiple names, for example if two tags are applied
   /// to one image.
-  core.List<core.String> names;
+  core.List<core.String>? names;
 
   Artifact();
 
@@ -598,10 +576,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (checksum != null) 'checksum': checksum,
-        if (id != null) 'id': id,
-        if (names != null) 'names': names,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (checksum != null) 'checksum': checksum!,
+        if (id != null) 'id': id!,
+        if (names != null) 'names': names!,
       };
 }
 
@@ -624,14 +602,14 @@
   /// Each JWT SHOULD encode a claim specific to the `resource_uri` of this
   /// Occurrence, but this is not validated by Grafeas metadata API
   /// implementations. The JWT itself is opaque to Grafeas.
-  core.List<Jwt> jwts;
+  core.List<Jwt>? jwts;
 
   /// The serialized payload that is verified by one or more `signatures`.
   ///
   /// Required.
-  core.String serializedPayload;
+  core.String? serializedPayload;
   core.List<core.int> get serializedPayloadAsBytes =>
-      convert.base64.decode(serializedPayload);
+      convert.base64.decode(serializedPayload!);
 
   set serializedPayloadAsBytes(core.List<core.int> _bytes) {
     serializedPayload =
@@ -643,7 +621,7 @@
   /// Verifier implementations should consider this attestation message verified
   /// if at least one `signature` verifies `serialized_payload`. See `Signature`
   /// in common.proto for more details on signature structure and verification.
-  core.List<Signature> signatures;
+  core.List<Signature>? signatures;
 
   AttestationOccurrence();
 
@@ -665,11 +643,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (jwts != null) 'jwts': jwts.map((value) => value.toJson()).toList(),
-        if (serializedPayload != null) 'serializedPayload': serializedPayload,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (jwts != null) 'jwts': jwts!.map((value) => value.toJson()).toList(),
+        if (serializedPayload != null) 'serializedPayload': serializedPayload!,
         if (signatures != null)
-          'signatures': signatures.map((value) => value.toJson()).toList(),
+          'signatures': signatures!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -678,7 +656,7 @@
   /// The actual provenance for the build.
   ///
   /// Required.
-  BuildProvenance provenance;
+  BuildProvenance? provenance;
 
   /// Serialized JSON representation of the provenance, used in generating the
   /// build signature in the corresponding build note.
@@ -690,7 +668,7 @@
   /// format for signature verification. The serialized form is captured both to
   /// avoid ambiguity in how the provenance is marshalled to json as well to
   /// prevent incompatibilities with future changes.
-  core.String provenanceBytes;
+  core.String? provenanceBytes;
 
   BuildOccurrence();
 
@@ -704,9 +682,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (provenance != null) 'provenance': provenance.toJson(),
-        if (provenanceBytes != null) 'provenanceBytes': provenanceBytes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (provenance != null) 'provenance': provenance!.toJson(),
+        if (provenanceBytes != null) 'provenanceBytes': provenanceBytes!,
       };
 }
 
@@ -719,48 +697,48 @@
   ///
   /// This is a catch-all field where build providers can enter any desired
   /// additional details.
-  core.Map<core.String, core.String> buildOptions;
+  core.Map<core.String, core.String>? buildOptions;
 
   /// Version string of the builder at the time this build was executed.
-  core.String builderVersion;
+  core.String? builderVersion;
 
   /// Output of the build.
-  core.List<Artifact> builtArtifacts;
+  core.List<Artifact>? builtArtifacts;
 
   /// Commands requested by the build.
-  core.List<Command> commands;
+  core.List<Command>? commands;
 
   /// Time at which the build was created.
-  core.String createTime;
+  core.String? createTime;
 
   /// E-mail address of the user who initiated this build.
   ///
   /// Note that this was the user's e-mail address at the time the build was
   /// initiated; this address may not represent the same end-user for all time.
-  core.String creator;
+  core.String? creator;
 
   /// Time at which execution of the build was finished.
-  core.String endTime;
+  core.String? endTime;
 
   /// Unique identifier of the build.
   ///
   /// Required.
-  core.String id;
+  core.String? id;
 
   /// URI where any logs for this provenance were written.
-  core.String logsUri;
+  core.String? logsUri;
 
   /// ID of the project.
-  core.String projectId;
+  core.String? projectId;
 
   /// Details of the Source input to the build.
-  Source sourceProvenance;
+  Source? sourceProvenance;
 
   /// Time at which execution of the build was started.
-  core.String startTime;
+  core.String? startTime;
 
   /// Trigger identifier if the build was triggered automatically; empty if not.
-  core.String triggerId;
+  core.String? triggerId;
 
   BuildProvenance();
 
@@ -820,34 +798,34 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (buildOptions != null) 'buildOptions': buildOptions,
-        if (builderVersion != null) 'builderVersion': builderVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (buildOptions != null) 'buildOptions': buildOptions!,
+        if (builderVersion != null) 'builderVersion': builderVersion!,
         if (builtArtifacts != null)
           'builtArtifacts':
-              builtArtifacts.map((value) => value.toJson()).toList(),
+              builtArtifacts!.map((value) => value.toJson()).toList(),
         if (commands != null)
-          'commands': commands.map((value) => value.toJson()).toList(),
-        if (createTime != null) 'createTime': createTime,
-        if (creator != null) 'creator': creator,
-        if (endTime != null) 'endTime': endTime,
-        if (id != null) 'id': id,
-        if (logsUri != null) 'logsUri': logsUri,
-        if (projectId != null) 'projectId': projectId,
+          'commands': commands!.map((value) => value.toJson()).toList(),
+        if (createTime != null) 'createTime': createTime!,
+        if (creator != null) 'creator': creator!,
+        if (endTime != null) 'endTime': endTime!,
+        if (id != null) 'id': id!,
+        if (logsUri != null) 'logsUri': logsUri!,
+        if (projectId != null) 'projectId': projectId!,
         if (sourceProvenance != null)
-          'sourceProvenance': sourceProvenance.toJson(),
-        if (startTime != null) 'startTime': startTime,
-        if (triggerId != null) 'triggerId': triggerId,
+          'sourceProvenance': sourceProvenance!.toJson(),
+        if (startTime != null) 'startTime': startTime!,
+        if (triggerId != null) 'triggerId': triggerId!,
       };
 }
 
 /// The category to which the update belongs.
 class Category {
   /// The identifier of the category.
-  core.String categoryId;
+  core.String? categoryId;
 
   /// The localized name of the category.
-  core.String name;
+  core.String? name;
 
   Category();
 
@@ -860,9 +838,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (categoryId != null) 'categoryId': categoryId,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (categoryId != null) 'categoryId': categoryId!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -870,13 +848,13 @@
 /// Source Repo.
 class CloudRepoSourceContext {
   /// An alias, which may be a branch or tag.
-  AliasContext aliasContext;
+  AliasContext? aliasContext;
 
   /// The ID of the repo.
-  RepoId repoId;
+  RepoId? repoId;
 
   /// A revision ID.
-  core.String revisionId;
+  core.String? revisionId;
 
   CloudRepoSourceContext();
 
@@ -894,37 +872,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (aliasContext != null) 'aliasContext': aliasContext.toJson(),
-        if (repoId != null) 'repoId': repoId.toJson(),
-        if (revisionId != null) 'revisionId': revisionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (aliasContext != null) 'aliasContext': aliasContext!.toJson(),
+        if (repoId != null) 'repoId': repoId!.toJson(),
+        if (revisionId != null) 'revisionId': revisionId!,
       };
 }
 
 /// Command describes a step performed as part of the build pipeline.
 class Command {
   /// Command-line arguments used when executing this command.
-  core.List<core.String> args;
+  core.List<core.String>? args;
 
   /// Working directory (relative to project source root) used when running this
   /// command.
-  core.String dir;
+  core.String? dir;
 
   /// Environment variables set before running this command.
-  core.List<core.String> env;
+  core.List<core.String>? env;
 
   /// Optional unique identifier for this command, used in wait_for to reference
   /// this command as a dependency.
-  core.String id;
+  core.String? id;
 
   /// Name of the command, as presented on the command line, or if the command
   /// is packaged as a Docker container, as presented to `docker pull`.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// The ID(s) of the command(s) that this command depends on.
-  core.List<core.String> waitFor;
+  core.List<core.String>? waitFor;
 
   Command();
 
@@ -955,28 +933,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (args != null) 'args': args,
-        if (dir != null) 'dir': dir,
-        if (env != null) 'env': env,
-        if (id != null) 'id': id,
-        if (name != null) 'name': name,
-        if (waitFor != null) 'waitFor': waitFor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (args != null) 'args': args!,
+        if (dir != null) 'dir': dir!,
+        if (env != null) 'env': env!,
+        if (id != null) 'id': id!,
+        if (name != null) 'name': name!,
+        if (waitFor != null) 'waitFor': waitFor!,
       };
 }
 
 /// The period during which some deployable was active in a runtime.
 class DeploymentOccurrence {
   /// Address of the runtime element hosting this deployment.
-  core.String address;
+  core.String? address;
 
   /// Configuration used to create this deployment.
-  core.String config;
+  core.String? config;
 
   /// Beginning of the lifetime of this deployment.
   ///
   /// Required.
-  core.String deployTime;
+  core.String? deployTime;
 
   /// Platform hosting this deployment.
   /// Possible string values are:
@@ -984,19 +962,19 @@
   /// - "GKE" : Google Container Engine.
   /// - "FLEX" : Google App Engine: Flexible Environment.
   /// - "CUSTOM" : Custom user-defined platform.
-  core.String platform;
+  core.String? platform;
 
   /// Resource URI for the artifact being deployed taken from the deployable
   /// field with the same name.
   ///
   /// Output only.
-  core.List<core.String> resourceUri;
+  core.List<core.String>? resourceUri;
 
   /// End of the lifetime of this deployment.
-  core.String undeployTime;
+  core.String? undeployTime;
 
   /// Identity of the user that triggered this deployment.
-  core.String userEmail;
+  core.String? userEmail;
 
   DeploymentOccurrence();
 
@@ -1026,14 +1004,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (address != null) 'address': address,
-        if (config != null) 'config': config,
-        if (deployTime != null) 'deployTime': deployTime,
-        if (platform != null) 'platform': platform,
-        if (resourceUri != null) 'resourceUri': resourceUri,
-        if (undeployTime != null) 'undeployTime': undeployTime,
-        if (userEmail != null) 'userEmail': userEmail,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (address != null) 'address': address!,
+        if (config != null) 'config': config!,
+        if (deployTime != null) 'deployTime': deployTime!,
+        if (platform != null) 'platform': platform!,
+        if (resourceUri != null) 'resourceUri': resourceUri!,
+        if (undeployTime != null) 'undeployTime': undeployTime!,
+        if (userEmail != null) 'userEmail': userEmail!,
       };
 }
 
@@ -1048,26 +1026,26 @@
   /// - "FINISHED_FAILED" : Analysis has finished unsuccessfully, the analysis
   /// itself is in a bad state.
   /// - "FINISHED_UNSUPPORTED" : The resource is known not to be supported
-  core.String analysisStatus;
+  core.String? analysisStatus;
 
   /// When an error is encountered this will contain a LocalizedMessage under
   /// details to show to the user.
   ///
   /// The LocalizedMessage is output only and populated by the API.
-  Status analysisStatusError;
+  Status? analysisStatusError;
 
   /// Whether the resource is continuously analyzed.
   /// Possible string values are:
   /// - "CONTINUOUS_ANALYSIS_UNSPECIFIED" : Unknown.
   /// - "ACTIVE" : The resource is continuously analyzed.
   /// - "INACTIVE" : The resource is ignored for continuous analysis.
-  core.String continuousAnalysis;
+  core.String? continuousAnalysis;
 
   /// The CPE of the resource being scanned.
-  core.String cpe;
+  core.String? cpe;
 
   /// The last time this resource was scanned.
-  core.String lastScanTime;
+  core.String? lastScanTime;
 
   DiscoveryOccurrence();
 
@@ -1090,14 +1068,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (analysisStatus != null) 'analysisStatus': analysisStatus,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (analysisStatus != null) 'analysisStatus': analysisStatus!,
         if (analysisStatusError != null)
-          'analysisStatusError': analysisStatusError.toJson(),
+          'analysisStatusError': analysisStatusError!.toJson(),
         if (continuousAnalysis != null)
-          'continuousAnalysis': continuousAnalysis,
-        if (cpe != null) 'cpe': cpe,
-        if (lastScanTime != null) 'lastScanTime': lastScanTime,
+          'continuousAnalysis': continuousAnalysis!,
+        if (cpe != null) 'cpe': cpe!,
+        if (lastScanTime != null) 'lastScanTime': lastScanTime!,
       };
 }
 
@@ -1115,7 +1093,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Container message for hashes of byte content of files, used in source
@@ -1124,7 +1102,7 @@
   /// Collection of file hashes.
   ///
   /// Required.
-  core.List<Hash> fileHash;
+  core.List<Hash>? fileHash;
 
   FileHashes();
 
@@ -1137,9 +1115,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (fileHash != null)
-          'fileHash': fileHash.map((value) => value.toJson()).toList(),
+          'fileHash': fileHash!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1148,19 +1126,19 @@
   /// The layer ID of the final layer in the Docker image's v1 representation.
   ///
   /// Required.
-  core.String v1Name;
+  core.String? v1Name;
 
   /// The ordered list of v2 blobs that represent a given image.
   ///
   /// Required.
-  core.List<core.String> v2Blob;
+  core.List<core.String>? v2Blob;
 
   /// The name of the image's v2 blobs computed via: \[bottom\] := v2_blobbottom
   /// := sha256(v2_blob\[N\] + " " + v2_name\[N+1\]) Only the name of the final
   /// blob is kept.
   ///
   /// Output only.
-  core.String v2Name;
+  core.String? v2Name;
 
   Fingerprint();
 
@@ -1178,29 +1156,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (v1Name != null) 'v1Name': v1Name,
-        if (v2Blob != null) 'v2Blob': v2Blob,
-        if (v2Name != null) 'v2Name': v2Name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (v1Name != null) 'v1Name': v1Name!,
+        if (v2Blob != null) 'v2Blob': v2Blob!,
+        if (v2Name != null) 'v2Name': v2Name!,
       };
 }
 
 /// A SourceContext referring to a Gerrit project.
 class GerritSourceContext {
   /// An alias, which may be a branch or tag.
-  AliasContext aliasContext;
+  AliasContext? aliasContext;
 
   /// The full project name within the host.
   ///
   /// Projects may be nested, so "project/subproject" is a valid project name.
   /// The "repo name" is the hostURI/project.
-  core.String gerritProject;
+  core.String? gerritProject;
 
   /// The URI of a running Gerrit instance.
-  core.String hostUri;
+  core.String? hostUri;
 
   /// A revision (commit) ID.
-  core.String revisionId;
+  core.String? revisionId;
 
   GerritSourceContext();
 
@@ -1220,11 +1198,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (aliasContext != null) 'aliasContext': aliasContext.toJson(),
-        if (gerritProject != null) 'gerritProject': gerritProject,
-        if (hostUri != null) 'hostUri': hostUri,
-        if (revisionId != null) 'revisionId': revisionId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (aliasContext != null) 'aliasContext': aliasContext!.toJson(),
+        if (gerritProject != null) 'gerritProject': gerritProject!,
+        if (hostUri != null) 'hostUri': hostUri!,
+        if (revisionId != null) 'revisionId': revisionId!,
       };
 }
 
@@ -1232,10 +1210,10 @@
 /// repository (e.g., GitHub).
 class GitSourceContext {
   /// Git commit hash.
-  core.String revisionId;
+  core.String? revisionId;
 
   /// Git repository URL.
-  core.String url;
+  core.String? url;
 
   GitSourceContext();
 
@@ -1248,9 +1226,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (revisionId != null) 'revisionId': revisionId,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (revisionId != null) 'revisionId': revisionId!,
+        if (url != null) 'url': url!,
       };
 }
 
@@ -1259,13 +1237,13 @@
   /// The type of hash that was performed, e.g. "SHA-256".
   ///
   /// Required.
-  core.String type;
+  core.String? type;
 
   /// The hash value.
   ///
   /// Required.
-  core.String value;
-  core.List<core.int> get valueAsBytes => convert.base64.decode(value);
+  core.String? value;
+  core.List<core.int> get valueAsBytes => convert.base64.decode(value!);
 
   set valueAsBytes(core.List<core.int> _bytes) {
     value =
@@ -1283,19 +1261,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (type != null) 'type': type,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (type != null) 'type': type!,
+        if (value != null) 'value': value!,
       };
 }
 
 /// The unique identifier of the update.
 class Identity {
   /// The revision number of the update.
-  core.int revision;
+  core.int? revision;
 
   /// The revision independent identifier of the update.
-  core.String updateId;
+  core.String? updateId;
 
   Identity();
 
@@ -1308,9 +1286,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (revision != null) 'revision': revision,
-        if (updateId != null) 'updateId': updateId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (revision != null) 'revision': revision!,
+        if (updateId != null) 'updateId': updateId!,
       };
 }
 
@@ -1321,23 +1299,23 @@
   /// This contains the base image URL for the derived image occurrence.
   ///
   /// Output only.
-  core.String baseResourceUrl;
+  core.String? baseResourceUrl;
 
   /// The number of layers by which this image differs from the associated image
   /// basis.
   ///
   /// Output only.
-  core.int distance;
+  core.int? distance;
 
   /// The fingerprint of the derived image.
   ///
   /// Required.
-  Fingerprint fingerprint;
+  Fingerprint? fingerprint;
 
   /// This contains layer-specific metadata, if populated it has length
   /// "distance" and is ordered with \[distance\] being the layer immediately
   /// following the base image and \[1\] being the final layer.
-  core.List<Layer> layerInfo;
+  core.List<Layer>? layerInfo;
 
   ImageOccurrence();
 
@@ -1360,12 +1338,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (baseResourceUrl != null) 'baseResourceUrl': baseResourceUrl,
-        if (distance != null) 'distance': distance,
-        if (fingerprint != null) 'fingerprint': fingerprint.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (baseResourceUrl != null) 'baseResourceUrl': baseResourceUrl!,
+        if (distance != null) 'distance': distance!,
+        if (fingerprint != null) 'fingerprint': fingerprint!.toJson(),
         if (layerInfo != null)
-          'layerInfo': layerInfo.map((value) => value.toJson()).toList(),
+          'layerInfo': layerInfo!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1374,7 +1352,7 @@
   /// strings joined by periods.
   ///
   /// For details, see: https://tools.ietf.org/html/rfc7515.html#section-3.1
-  core.String compactJwt;
+  core.String? compactJwt;
 
   Jwt();
 
@@ -1384,15 +1362,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (compactJwt != null) 'compactJwt': compactJwt,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (compactJwt != null) 'compactJwt': compactJwt!,
       };
 }
 
 /// Layer holds metadata specific to a layer of a Docker image.
 class Layer {
   /// The recovered arguments to the Dockerfile directive.
-  core.String arguments;
+  core.String? arguments;
 
   /// The recovered Dockerfile directive used to construct this layer.
   ///
@@ -1400,7 +1378,7 @@
   /// information.
   ///
   /// Required.
-  core.String directive;
+  core.String? directive;
 
   Layer();
 
@@ -1413,19 +1391,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (arguments != null) 'arguments': arguments,
-        if (directive != null) 'directive': directive,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (arguments != null) 'arguments': arguments!,
+        if (directive != null) 'directive': directive!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class ListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   ListOperationsResponse();
 
@@ -1441,10 +1419,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1453,10 +1431,10 @@
 class ListVulnerabilitiesResponse {
   /// A page token that can be used in a subsequent call to ListVulnerabilities
   /// to continue retrieving results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of Vulnerability Occurrences resulting from a scan.
-  core.List<Occurrence> occurrences;
+  core.List<Occurrence>? occurrences;
 
   ListVulnerabilitiesResponse();
 
@@ -1472,10 +1450,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (occurrences != null)
-          'occurrences': occurrences.map((value) => value.toJson()).toList(),
+          'occurrences': occurrences!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1488,13 +1466,13 @@
   /// the package manager version distributing a package.
   ///
   /// Required.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The path from which we gathered that this package/version is installed.
-  core.String path;
+  core.String? path;
 
   /// The version installed at this location.
-  Version version;
+  Version? version;
 
   Location();
 
@@ -1511,34 +1489,34 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (path != null) 'path': path,
-        if (version != null) 'version': version.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (path != null) 'path': path!,
+        if (version != null) 'version': version!.toJson(),
       };
 }
 
 /// An instance of an analysis type that has been found on a resource.
 class Occurrence {
   /// Describes an attestation of an artifact.
-  AttestationOccurrence attestation;
+  AttestationOccurrence? attestation;
 
   /// Describes a verifiable build.
-  BuildOccurrence build;
+  BuildOccurrence? build;
 
   /// The time this occurrence was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Describes the deployment of an artifact on a runtime.
-  DeploymentOccurrence deployment;
+  DeploymentOccurrence? deployment;
 
   /// Describes when a resource was discovered.
-  DiscoveryOccurrence discovery;
+  DiscoveryOccurrence? discovery;
 
   /// Describes how this resource derives from the basis in the associated note.
-  ImageOccurrence image;
+  ImageOccurrence? image;
 
   /// This explicitly denotes which of the occurrence details are specified.
   ///
@@ -1558,13 +1536,13 @@
   /// - "ATTESTATION" : This represents a logical "role" that can attest to
   /// artifacts.
   /// - "UPGRADE" : This represents an available package upgrade.
-  core.String kind;
+  core.String? kind;
 
   /// The name of the occurrence in the form of
   /// `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The analysis note associated with this occurrence, in the form of
   /// `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
@@ -1572,13 +1550,13 @@
   /// This field can be used as a filter in list requests.
   ///
   /// Required. Immutable.
-  core.String noteName;
+  core.String? noteName;
 
   /// Describes the installation of a package on the linked resource.
-  PackageOccurrence package;
+  PackageOccurrence? package;
 
   /// A description of actions that can be taken to remedy the note.
-  core.String remediation;
+  core.String? remediation;
 
   /// A URI that represents the resource for which the occurrence applies.
   ///
@@ -1586,18 +1564,18 @@
   /// image.
   ///
   /// Required. Immutable.
-  core.String resourceUri;
+  core.String? resourceUri;
 
   /// The time this occurrence was last updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// Describes an available package upgrade on the linked resource.
-  UpgradeOccurrence upgrade;
+  UpgradeOccurrence? upgrade;
 
   /// Describes a security vulnerability.
-  VulnerabilityOccurrence vulnerability;
+  VulnerabilityOccurrence? vulnerability;
 
   Occurrence();
 
@@ -1657,22 +1635,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attestation != null) 'attestation': attestation.toJson(),
-        if (build != null) 'build': build.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (deployment != null) 'deployment': deployment.toJson(),
-        if (discovery != null) 'discovery': discovery.toJson(),
-        if (image != null) 'image': image.toJson(),
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (noteName != null) 'noteName': noteName,
-        if (package != null) 'package': package.toJson(),
-        if (remediation != null) 'remediation': remediation,
-        if (resourceUri != null) 'resourceUri': resourceUri,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (upgrade != null) 'upgrade': upgrade.toJson(),
-        if (vulnerability != null) 'vulnerability': vulnerability.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attestation != null) 'attestation': attestation!.toJson(),
+        if (build != null) 'build': build!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (deployment != null) 'deployment': deployment!.toJson(),
+        if (discovery != null) 'discovery': discovery!.toJson(),
+        if (image != null) 'image': image!.toJson(),
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (noteName != null) 'noteName': noteName!,
+        if (package != null) 'package': package!.toJson(),
+        if (remediation != null) 'remediation': remediation!,
+        if (resourceUri != null) 'resourceUri': resourceUri!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (upgrade != null) 'upgrade': upgrade!.toJson(),
+        if (vulnerability != null) 'vulnerability': vulnerability!.toJson(),
       };
 }
 
@@ -1683,10 +1661,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -1697,14 +1675,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -1717,7 +1695,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -1752,12 +1730,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -1766,21 +1744,21 @@
   /// the vulnerability may manifest.
   ///
   /// Examples include distro or storage location for vulnerable jar.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The OS affected by a vulnerability This field is deprecated and the
   /// information is in cpe_uri
-  core.String os;
+  core.String? os;
 
   /// The version of the OS This field is deprecated and the information is in
   /// cpe_uri
-  core.String osVersion;
+  core.String? osVersion;
 
   /// The package being analysed for vulnerabilities
-  core.String package;
+  core.String? package;
 
   /// The version of the package being analysed
-  core.String version;
+  core.String? version;
 
   PackageData();
 
@@ -1802,12 +1780,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (os != null) 'os': os,
-        if (osVersion != null) 'osVersion': osVersion,
-        if (package != null) 'package': package,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (os != null) 'os': os!,
+        if (osVersion != null) 'osVersion': osVersion!,
+        if (package != null) 'package': package!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -1818,41 +1796,41 @@
   /// found in.
   ///
   /// Required.
-  core.String affectedCpeUri;
+  core.String? affectedCpeUri;
 
   /// The package this vulnerability was found in.
   ///
   /// Required.
-  core.String affectedPackage;
+  core.String? affectedPackage;
 
   /// The version of the package that is installed on the resource affected by
   /// this vulnerability.
   ///
   /// Required.
-  Version affectedVersion;
+  Version? affectedVersion;
 
   /// Whether a fix is available for this package.
   ///
   /// Output only.
-  core.bool fixAvailable;
+  core.bool? fixAvailable;
 
   /// The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was
   /// fixed in.
   ///
   /// It is possible for this to be different from the affected_cpe_uri.
-  core.String fixedCpeUri;
+  core.String? fixedCpeUri;
 
   /// The package this vulnerability was fixed in.
   ///
   /// It is possible for this to be different from the affected_package.
-  core.String fixedPackage;
+  core.String? fixedPackage;
 
   /// The version of the package this vulnerability was fixed in.
   ///
   /// Setting this to VersionKind.MAXIMUM means no fix is yet available.
   ///
   /// Required.
-  Version fixedVersion;
+  Version? fixedVersion;
 
   PackageIssue();
 
@@ -1882,15 +1860,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (affectedCpeUri != null) 'affectedCpeUri': affectedCpeUri,
-        if (affectedPackage != null) 'affectedPackage': affectedPackage,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (affectedCpeUri != null) 'affectedCpeUri': affectedCpeUri!,
+        if (affectedPackage != null) 'affectedPackage': affectedPackage!,
         if (affectedVersion != null)
-          'affectedVersion': affectedVersion.toJson(),
-        if (fixAvailable != null) 'fixAvailable': fixAvailable,
-        if (fixedCpeUri != null) 'fixedCpeUri': fixedCpeUri,
-        if (fixedPackage != null) 'fixedPackage': fixedPackage,
-        if (fixedVersion != null) 'fixedVersion': fixedVersion.toJson(),
+          'affectedVersion': affectedVersion!.toJson(),
+        if (fixAvailable != null) 'fixAvailable': fixAvailable!,
+        if (fixedCpeUri != null) 'fixedCpeUri': fixedCpeUri!,
+        if (fixedPackage != null) 'fixedPackage': fixedPackage!,
+        if (fixedVersion != null) 'fixedVersion': fixedVersion!.toJson(),
       };
 }
 
@@ -1900,12 +1878,12 @@
   /// found.
   ///
   /// Required.
-  core.List<Location> location;
+  core.List<Location>? location;
 
   /// The name of the installed package.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   PackageOccurrence();
 
@@ -1921,10 +1899,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (location != null)
-          'location': location.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'location': location!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1932,12 +1910,12 @@
 /// winged-cargo-31) and a repo name within that project.
 class ProjectRepoId {
   /// The ID of the project.
-  core.String projectId;
+  core.String? projectId;
 
   /// The name of the repo.
   ///
   /// Leave empty for the default repo.
-  core.String repoName;
+  core.String? repoName;
 
   ProjectRepoId();
 
@@ -1950,19 +1928,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (projectId != null) 'projectId': projectId,
-        if (repoName != null) 'repoName': repoName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (projectId != null) 'projectId': projectId!,
+        if (repoName != null) 'repoName': repoName!,
       };
 }
 
 /// Metadata for any related URL information.
 class RelatedUrl {
   /// Label to describe usage of the URL.
-  core.String label;
+  core.String? label;
 
   /// Specific URL associated with the resource.
-  core.String url;
+  core.String? url;
 
   RelatedUrl();
 
@@ -1975,19 +1953,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (label != null) 'label': label,
-        if (url != null) 'url': url,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (label != null) 'label': label!,
+        if (url != null) 'url': url!,
       };
 }
 
 /// A unique identifier for a Cloud Repo.
 class RepoId {
   /// A combination of a project ID and a repo name.
-  ProjectRepoId projectRepoId;
+  ProjectRepoId? projectRepoId;
 
   /// A server-assigned, globally unique identifier.
-  core.String uid;
+  core.String? uid;
 
   RepoId();
 
@@ -2001,9 +1979,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (projectRepoId != null) 'projectRepoId': projectRepoId.toJson(),
-        if (uid != null) 'uid': uid,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (projectRepoId != null) 'projectRepoId': projectRepoId!.toJson(),
+        if (uid != null) 'uid': uid!,
       };
 }
 
@@ -2039,7 +2017,7 @@
   /// of the DER serialization): *
   /// "ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU" *
   /// "nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5"
-  core.String publicKeyId;
+  core.String? publicKeyId;
 
   /// The content of the signature, an opaque bytestring.
   ///
@@ -2048,8 +2026,8 @@
   /// the payload explicitly. Alternatively, a message might have a canonical
   /// serialization that can always be unambiguously computed to derive the
   /// payload.
-  core.String signature;
-  core.List<core.int> get signatureAsBytes => convert.base64.decode(signature);
+  core.String? signature;
+  core.List<core.int> get signatureAsBytes => convert.base64.decode(signature!);
 
   set signatureAsBytes(core.List<core.int> _bytes) {
     signature =
@@ -2067,9 +2045,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (publicKeyId != null) 'publicKeyId': publicKeyId,
-        if (signature != null) 'signature': signature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (publicKeyId != null) 'publicKeyId': publicKeyId!,
+        if (signature != null) 'signature': signature!,
       };
 }
 
@@ -2080,14 +2058,14 @@
   /// remotes or submodules.
   ///
   /// This list will not include the context specified in the context field.
-  core.List<SourceContext> additionalContexts;
+  core.List<SourceContext>? additionalContexts;
 
   /// If provided, the input binary artifacts for the build came from this
   /// location.
-  core.String artifactStorageSourceUri;
+  core.String? artifactStorageSourceUri;
 
   /// If provided, the source code used for the build came from this location.
-  SourceContext context;
+  SourceContext? context;
 
   /// Hash(es) of the build source, which can be used to verify that the
   /// original source integrity was maintained in the build.
@@ -2096,7 +2074,7 @@
   /// contain the hash values for those files. If the build source came in a
   /// single package such as a gzipped tarfile (.tar.gz), the FileHash will be
   /// for the single path to that file.
-  core.Map<core.String, FileHashes> fileHashes;
+  core.Map<core.String, FileHashes>? fileHashes;
 
   Source();
 
@@ -2117,7 +2095,7 @@
     }
     if (_json.containsKey('fileHashes')) {
       fileHashes = (_json['fileHashes'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -2127,16 +2105,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (additionalContexts != null)
           'additionalContexts':
-              additionalContexts.map((value) => value.toJson()).toList(),
+              additionalContexts!.map((value) => value.toJson()).toList(),
         if (artifactStorageSourceUri != null)
-          'artifactStorageSourceUri': artifactStorageSourceUri,
-        if (context != null) 'context': context.toJson(),
+          'artifactStorageSourceUri': artifactStorageSourceUri!,
+        if (context != null) 'context': context!.toJson(),
         if (fileHashes != null)
           'fileHashes':
-              fileHashes.map((key, item) => core.MapEntry(key, item.toJson())),
+              fileHashes!.map((key, item) => core.MapEntry(key, item.toJson())),
       };
 }
 
@@ -2146,16 +2124,16 @@
 /// file or directory.
 class SourceContext {
   /// A SourceContext referring to a revision in a Google Cloud Source Repo.
-  CloudRepoSourceContext cloudRepo;
+  CloudRepoSourceContext? cloudRepo;
 
   /// A SourceContext referring to a Gerrit project.
-  GerritSourceContext gerrit;
+  GerritSourceContext? gerrit;
 
   /// A SourceContext referring to any third party Git repo (e.g., GitHub).
-  GitSourceContext git;
+  GitSourceContext? git;
 
   /// Labels with user defined metadata.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   SourceContext();
 
@@ -2183,11 +2161,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloudRepo != null) 'cloudRepo': cloudRepo.toJson(),
-        if (gerrit != null) 'gerrit': gerrit.toJson(),
-        if (git != null) 'git': git.toJson(),
-        if (labels != null) 'labels': labels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloudRepo != null) 'cloudRepo': cloudRepo!.toJson(),
+        if (gerrit != null) 'gerrit': gerrit!.toJson(),
+        if (git != null) 'git': git!.toJson(),
+        if (labels != null) 'labels': labels!,
       };
 }
 
@@ -2200,7 +2178,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -2208,13 +2186,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -2238,10 +2216,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -2256,18 +2234,18 @@
   ///
   /// For Windows the classification is one of the category_ids listed at
   /// https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85)
-  core.String classification;
+  core.String? classification;
 
   /// Required - The specific operating system this metadata applies to.
   ///
   /// See https://cpe.mitre.org/specification/.
-  core.String cpeUri;
+  core.String? cpeUri;
 
   /// The cve tied to this Upgrade.
-  core.List<core.String> cve;
+  core.List<core.String>? cve;
 
   /// The severity as specified by the upstream operating system.
-  core.String severity;
+  core.String? severity;
 
   UpgradeDistribution();
 
@@ -2288,11 +2266,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (classification != null) 'classification': classification,
-        if (cpeUri != null) 'cpeUri': cpeUri,
-        if (cve != null) 'cve': cve,
-        if (severity != null) 'severity': severity,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (classification != null) 'classification': classification!,
+        if (cpeUri != null) 'cpeUri': cpeUri!,
+        if (cve != null) 'cve': cve!,
+        if (severity != null) 'severity': severity!,
       };
 }
 
@@ -2309,22 +2287,22 @@
   ///
   /// This allows efficient filtering, as well as making it easier to use the
   /// occurrence.
-  UpgradeDistribution distribution;
+  UpgradeDistribution? distribution;
 
   /// Required for non-Windows OS.
   ///
   /// The package this Upgrade is for.
-  core.String package;
+  core.String? package;
 
   /// Required for non-Windows OS.
   ///
   /// The version of the package in a machine + human readable form.
-  Version parsedVersion;
+  Version? parsedVersion;
 
   /// Required for Windows OS.
   ///
   /// Represents the metadata about the Windows update.
-  WindowsUpdate windowsUpdate;
+  WindowsUpdate? windowsUpdate;
 
   UpgradeOccurrence();
 
@@ -2346,23 +2324,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (distribution != null) 'distribution': distribution.toJson(),
-        if (package != null) 'package': package,
-        if (parsedVersion != null) 'parsedVersion': parsedVersion.toJson(),
-        if (windowsUpdate != null) 'windowsUpdate': windowsUpdate.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (distribution != null) 'distribution': distribution!.toJson(),
+        if (package != null) 'package': package!,
+        if (parsedVersion != null) 'parsedVersion': parsedVersion!.toJson(),
+        if (windowsUpdate != null) 'windowsUpdate': windowsUpdate!.toJson(),
       };
 }
 
 /// Version contains structured information about the version of a package.
 class Version {
   /// Used to correct mistakes in the version numbering scheme.
-  core.int epoch;
+  core.int? epoch;
 
   /// Human readable version string.
   ///
   /// This string is of the form :- and is only set when kind is NORMAL.
-  core.String fullName;
+  core.String? fullName;
 
   /// Whether this version is specifying part of an inclusive range.
   ///
@@ -2371,7 +2349,7 @@
   /// insufficient - we also need to specify whether the version is included in
   /// the range or is excluded from the range. This boolean is expected to be
   /// set to true when the version is included in a range.
-  core.bool inclusive;
+  core.bool? inclusive;
 
   /// Distinguishes between sentinel MIN/MAX versions and normal versions.
   ///
@@ -2381,15 +2359,15 @@
   /// - "NORMAL" : A standard package version.
   /// - "MINIMUM" : A special version representing negative infinity.
   /// - "MAXIMUM" : A special version representing positive infinity.
-  core.String kind;
+  core.String? kind;
 
   /// Required only when version kind is NORMAL.
   ///
   /// The main part of the version name.
-  core.String name;
+  core.String? name;
 
   /// The iteration of the package build from the above version.
-  core.String revision;
+  core.String? revision;
 
   Version();
 
@@ -2414,13 +2392,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (epoch != null) 'epoch': epoch,
-        if (fullName != null) 'fullName': fullName,
-        if (inclusive != null) 'inclusive': inclusive,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (revision != null) 'revision': revision,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (epoch != null) 'epoch': epoch!,
+        if (fullName != null) 'fullName': fullName!,
+        if (inclusive != null) 'inclusive': inclusive!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (revision != null) 'revision': revision!,
       };
 }
 
@@ -2432,7 +2410,7 @@
   /// indicates high severity.
   ///
   /// Output only.
-  core.double cvssScore;
+  core.double? cvssScore;
 
   /// The distro assigned severity for this vulnerability when it is available,
   /// otherwise this is the note provider assigned severity.
@@ -2443,28 +2421,28 @@
   /// - "MEDIUM" : Medium severity.
   /// - "HIGH" : High severity.
   /// - "CRITICAL" : Critical severity.
-  core.String effectiveSeverity;
+  core.String? effectiveSeverity;
 
   /// Whether at least one of the affected packages has a fix available.
   ///
   /// Output only.
-  core.bool fixAvailable;
+  core.bool? fixAvailable;
 
   /// A detailed description of this vulnerability.
   ///
   /// Output only.
-  core.String longDescription;
+  core.String? longDescription;
 
   /// The set of affected locations and their fixes (if available) within the
   /// associated resource.
   ///
   /// Required.
-  core.List<PackageIssue> packageIssue;
+  core.List<PackageIssue>? packageIssue;
 
   /// URLs related to this vulnerability.
   ///
   /// Output only.
-  core.List<RelatedUrl> relatedUrls;
+  core.List<RelatedUrl>? relatedUrls;
 
   /// The note provider assigned severity of this vulnerability.
   ///
@@ -2476,16 +2454,16 @@
   /// - "MEDIUM" : Medium severity.
   /// - "HIGH" : High severity.
   /// - "CRITICAL" : Critical severity.
-  core.String severity;
+  core.String? severity;
 
   /// A one sentence description of this vulnerability.
   ///
   /// Output only.
-  core.String shortDescription;
+  core.String? shortDescription;
 
   /// The type of package; whether native or non native (e.g., ruby gems,
   /// node.js packages, etc.).
-  core.String type;
+  core.String? type;
 
   VulnerabilityOccurrence();
 
@@ -2525,18 +2503,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cvssScore != null) 'cvssScore': cvssScore,
-        if (effectiveSeverity != null) 'effectiveSeverity': effectiveSeverity,
-        if (fixAvailable != null) 'fixAvailable': fixAvailable,
-        if (longDescription != null) 'longDescription': longDescription,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cvssScore != null) 'cvssScore': cvssScore!,
+        if (effectiveSeverity != null) 'effectiveSeverity': effectiveSeverity!,
+        if (fixAvailable != null) 'fixAvailable': fixAvailable!,
+        if (longDescription != null) 'longDescription': longDescription!,
         if (packageIssue != null)
-          'packageIssue': packageIssue.map((value) => value.toJson()).toList(),
+          'packageIssue': packageIssue!.map((value) => value.toJson()).toList(),
         if (relatedUrls != null)
-          'relatedUrls': relatedUrls.map((value) => value.toJson()).toList(),
-        if (severity != null) 'severity': severity,
-        if (shortDescription != null) 'shortDescription': shortDescription,
-        if (type != null) 'type': type,
+          'relatedUrls': relatedUrls!.map((value) => value.toJson()).toList(),
+        if (severity != null) 'severity': severity!,
+        if (shortDescription != null) 'shortDescription': shortDescription!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -2547,26 +2525,26 @@
 /// https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate.
 class WindowsUpdate {
   /// The list of categories to which the update belongs.
-  core.List<Category> categories;
+  core.List<Category>? categories;
 
   /// The localized description of the update.
-  core.String description;
+  core.String? description;
 
   /// Required - The unique identifier for the update.
-  Identity identity;
+  Identity? identity;
 
   /// The Microsoft Knowledge Base article IDs that are associated with the
   /// update.
-  core.List<core.String> kbArticleIds;
+  core.List<core.String>? kbArticleIds;
 
   /// The last published timestamp of the update.
-  core.String lastPublishedTimestamp;
+  core.String? lastPublishedTimestamp;
 
   /// The hyperlink to the support information for the update.
-  core.String supportUrl;
+  core.String? supportUrl;
 
   /// The localized title of the update.
-  core.String title;
+  core.String? title;
 
   WindowsUpdate();
 
@@ -2600,15 +2578,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (categories != null)
-          'categories': categories.map((value) => value.toJson()).toList(),
-        if (description != null) 'description': description,
-        if (identity != null) 'identity': identity.toJson(),
-        if (kbArticleIds != null) 'kbArticleIds': kbArticleIds,
+          'categories': categories!.map((value) => value.toJson()).toList(),
+        if (description != null) 'description': description!,
+        if (identity != null) 'identity': identity!.toJson(),
+        if (kbArticleIds != null) 'kbArticleIds': kbArticleIds!,
         if (lastPublishedTimestamp != null)
-          'lastPublishedTimestamp': lastPublishedTimestamp,
-        if (supportUrl != null) 'supportUrl': supportUrl,
-        if (title != null) 'title': title,
+          'lastPublishedTimestamp': lastPublishedTimestamp!,
+        if (supportUrl != null) 'supportUrl': supportUrl!,
+        if (title != null) 'title': title!,
       };
 }
diff --git a/generated/googleapis_beta/lib/policysimulator/v1beta1.dart b/generated/googleapis_beta/lib/policysimulator/v1beta1.dart
index c07bc21..19f413b 100644
--- a/generated/googleapis_beta/lib/policysimulator/v1beta1.dart
+++ b/generated/googleapis_beta/lib/policysimulator/v1beta1.dart
@@ -135,13 +135,9 @@
   async.Future<GoogleLongrunningOperation> create(
     GoogleCloudPolicysimulatorV1beta1Replay request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -187,11 +183,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudPolicysimulatorV1beta1Replay> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -249,13 +242,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudPolicysimulatorV1beta1ListReplayResultsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -303,11 +293,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -355,11 +342,11 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningListOperationsResponse> list({
-    core.String filter,
-    core.String name,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? name,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
@@ -433,13 +420,9 @@
   async.Future<GoogleLongrunningOperation> create(
     GoogleCloudPolicysimulatorV1beta1Replay request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -485,11 +468,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudPolicysimulatorV1beta1Replay> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -547,13 +527,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudPolicysimulatorV1beta1ListReplayResultsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -625,13 +602,9 @@
   async.Future<GoogleLongrunningOperation> create(
     GoogleCloudPolicysimulatorV1beta1Replay request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -677,11 +650,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudPolicysimulatorV1beta1Replay> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -739,13 +709,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudPolicysimulatorV1beta1ListReplayResultsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -795,19 +762,19 @@
   /// (`NOT_GRANTED`), but their access after the proposed changes is `UNKNOWN`.
   /// * The member's access under the current policies is `UNKNOWN`, but they
   /// will have access after the proposed changes (`GRANTED`).
-  core.String accessChange;
+  core.String? accessChange;
 
   /// The results of evaluating the access tuple under the current (baseline)
   /// policies.
   ///
   /// If the AccessState couldn't be fully evaluated, this field explains why.
-  GoogleCloudPolicysimulatorV1beta1ExplainedAccess baseline;
+  GoogleCloudPolicysimulatorV1beta1ExplainedAccess? baseline;
 
   /// The results of evaluating the access tuple under the proposed (simulated)
   /// policies.
   ///
   /// If the AccessState couldn't be fully evaluated, this field explains why.
-  GoogleCloudPolicysimulatorV1beta1ExplainedAccess simulated;
+  GoogleCloudPolicysimulatorV1beta1ExplainedAccess? simulated;
 
   GoogleCloudPolicysimulatorV1beta1AccessStateDiff();
 
@@ -825,10 +792,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessChange != null) 'accessChange': accessChange,
-        if (baseline != null) 'baseline': baseline.toJson(),
-        if (simulated != null) 'simulated': simulated.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessChange != null) 'accessChange': accessChange!,
+        if (baseline != null) 'baseline': baseline!.toJson(),
+        if (simulated != null) 'simulated': simulated!.toJson(),
       };
 }
 
@@ -842,7 +809,7 @@
   /// https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
   ///
   /// Required.
-  core.String fullResourceName;
+  core.String? fullResourceName;
 
   /// The IAM permission to check for the specified member and resource.
   ///
@@ -852,7 +819,7 @@
   /// https://cloud.google.com/iam/help/roles/reference.
   ///
   /// Required.
-  core.String permission;
+  core.String? permission;
 
   /// The member, or principal, whose access you want to check, in the form of
   /// the email address that represents that member.
@@ -863,7 +830,7 @@
   /// supported.
   ///
   /// Required.
-  core.String principal;
+  core.String? principal;
 
   GoogleCloudPolicysimulatorV1beta1AccessTuple();
 
@@ -879,10 +846,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fullResourceName != null) 'fullResourceName': fullResourceName,
-        if (permission != null) 'permission': permission,
-        if (principal != null) 'principal': principal,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fullResourceName != null) 'fullResourceName': fullResourceName!,
+        if (permission != null) 'permission': permission!,
+        if (principal != null) 'principal': principal!,
       };
 }
 
@@ -906,14 +873,14 @@
   /// condition expression evaluates to `true`.
   /// - "UNKNOWN_INFO_DENIED" : The user who created the Replay does not have
   /// access to all of the policies that Policy Simulator needs to evaluate.
-  core.String access;
+  core.String? access;
 
   /// A condition expression that prevents this binding from granting access
   /// unless the expression evaluates to `true`.
   ///
   /// To learn about IAM Conditions, see
   /// https://cloud.google.com/iam/docs/conditions-overview.
-  GoogleTypeExpr condition;
+  GoogleTypeExpr? condition;
 
   /// Indicates whether each member in the binding includes the member specified
   /// in the request, either directly or indirectly.
@@ -929,7 +896,7 @@
   /// the binding, the key is `group:product-eng@example.com`, and the
   /// `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
   core.Map<core.String,
-          GoogleCloudPolicysimulatorV1beta1BindingExplanationAnnotatedMembership>
+          GoogleCloudPolicysimulatorV1beta1BindingExplanationAnnotatedMembership>?
       memberships;
 
   /// The relevance of this binding to the overall determination for the entire
@@ -940,14 +907,14 @@
   /// the data point is unlikely to affect the overall determination.
   /// - "HIGH" : The data point has a strong effect on the result. Changing the
   /// data point is likely to affect the overall determination.
-  core.String relevance;
+  core.String? relevance;
 
   /// The role that this binding grants.
   ///
   /// For example, `roles/compute.serviceAgent`. For a complete list of
   /// predefined IAM roles, as well as the permissions in each role, see
   /// https://cloud.google.com/iam/help/roles/reference.
-  core.String role;
+  core.String? role;
 
   /// Indicates whether the role granted by this binding contains the specified
   /// permission.
@@ -959,7 +926,7 @@
   /// role.
   /// - "ROLE_PERMISSION_UNKNOWN_INFO_DENIED" : The user who created the Replay
   /// is not allowed to access the binding.
-  core.String rolePermission;
+  core.String? rolePermission;
 
   /// The relevance of the permission's existence, or nonexistence, in the role
   /// to the overall determination for the entire policy.
@@ -969,7 +936,7 @@
   /// the data point is unlikely to affect the overall determination.
   /// - "HIGH" : The data point has a strong effect on the result. Changing the
   /// data point is likely to affect the overall determination.
-  core.String rolePermissionRelevance;
+  core.String? rolePermissionRelevance;
 
   GoogleCloudPolicysimulatorV1beta1BindingExplanation();
 
@@ -982,14 +949,15 @@
           _json['condition'] as core.Map<core.String, core.dynamic>);
     }
     if (_json.containsKey('memberships')) {
-      memberships =
-          (_json['memberships'] as core.Map).cast<core.String, core.Map>().map(
-                (key, item) => core.MapEntry(
-                  key,
-                  GoogleCloudPolicysimulatorV1beta1BindingExplanationAnnotatedMembership
-                      .fromJson(item as core.Map<core.String, core.dynamic>),
-                ),
-              );
+      memberships = (_json['memberships'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
+            (key, item) => core.MapEntry(
+              key,
+              GoogleCloudPolicysimulatorV1beta1BindingExplanationAnnotatedMembership
+                  .fromJson(item as core.Map<core.String, core.dynamic>),
+            ),
+          );
     }
     if (_json.containsKey('relevance')) {
       relevance = _json['relevance'] as core.String;
@@ -1005,17 +973,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (access != null) 'access': access,
-        if (condition != null) 'condition': condition.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (access != null) 'access': access!,
+        if (condition != null) 'condition': condition!.toJson(),
         if (memberships != null)
-          'memberships':
-              memberships.map((key, item) => core.MapEntry(key, item.toJson())),
-        if (relevance != null) 'relevance': relevance,
-        if (role != null) 'role': role,
-        if (rolePermission != null) 'rolePermission': rolePermission,
+          'memberships': memberships!
+              .map((key, item) => core.MapEntry(key, item.toJson())),
+        if (relevance != null) 'relevance': relevance!,
+        if (role != null) 'role': role!,
+        if (rolePermission != null) 'rolePermission': rolePermission!,
         if (rolePermissionRelevance != null)
-          'rolePermissionRelevance': rolePermissionRelevance,
+          'rolePermissionRelevance': rolePermissionRelevance!,
       };
 }
 
@@ -1034,7 +1002,7 @@
   /// not allowed to access the binding.
   /// - "MEMBERSHIP_UNKNOWN_UNSUPPORTED" : The member is an unsupported type.
   /// Only Google Accounts and service accounts are supported.
-  core.String membership;
+  core.String? membership;
 
   /// The relevance of the member's status to the overall determination for the
   /// binding.
@@ -1044,7 +1012,7 @@
   /// the data point is unlikely to affect the overall determination.
   /// - "HIGH" : The data point has a strong effect on the result. Changing the
   /// data point is likely to affect the overall determination.
-  core.String relevance;
+  core.String? relevance;
 
   GoogleCloudPolicysimulatorV1beta1BindingExplanationAnnotatedMembership();
 
@@ -1058,9 +1026,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (membership != null) 'membership': membership,
-        if (relevance != null) 'relevance': relevance,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (membership != null) 'membership': membership!,
+        if (relevance != null) 'relevance': relevance!,
       };
 }
 
@@ -1077,19 +1045,19 @@
   /// condition expression evaluates to `true`.
   /// - "UNKNOWN_INFO_DENIED" : The user who created the Replay does not have
   /// access to all of the policies that Policy Simulator needs to evaluate.
-  core.String accessState;
+  core.String? accessState;
 
   /// If the AccessState is `UNKNOWN`, this field contains a list of errors
   /// explaining why the result is `UNKNOWN`.
   ///
   /// If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
-  core.List<GoogleRpcStatus> errors;
+  core.List<GoogleRpcStatus>? errors;
 
   /// If the AccessState is `UNKNOWN`, this field contains the policies that led
   /// to that result.
   ///
   /// If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
-  core.List<GoogleCloudPolicysimulatorV1beta1ExplainedPolicy> policies;
+  core.List<GoogleCloudPolicysimulatorV1beta1ExplainedPolicy>? policies;
 
   GoogleCloudPolicysimulatorV1beta1ExplainedAccess();
 
@@ -1112,12 +1080,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessState != null) 'accessState': accessState,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessState != null) 'accessState': accessState!,
         if (errors != null)
-          'errors': errors.map((value) => value.toJson()).toList(),
+          'errors': errors!.map((value) => value.toJson()).toList(),
         if (policies != null)
-          'policies': policies.map((value) => value.toJson()).toList(),
+          'policies': policies!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1138,14 +1106,14 @@
   /// condition expression evaluates to `true`.
   /// - "UNKNOWN_INFO_DENIED" : The user who created the Replay does not have
   /// access to all of the policies that Policy Simulator needs to evaluate.
-  core.String access;
+  core.String? access;
 
   /// Details about how each binding in the policy affects the member's ability,
   /// or inability, to use the permission for the resource.
   ///
   /// If the user who created the Replay does not have access to the policy,
   /// this field is omitted.
-  core.List<GoogleCloudPolicysimulatorV1beta1BindingExplanation>
+  core.List<GoogleCloudPolicysimulatorV1beta1BindingExplanation>?
       bindingExplanations;
 
   /// The full resource name that identifies the resource.
@@ -1156,13 +1124,13 @@
   /// this field is omitted. For examples of full resource names for Google
   /// Cloud services, see
   /// https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
-  core.String fullResourceName;
+  core.String? fullResourceName;
 
   /// The IAM policy attached to the resource.
   ///
   /// If the user who created the Replay does not have access to the policy,
   /// this field is empty.
-  GoogleIamV1Policy policy;
+  GoogleIamV1Policy? policy;
 
   /// The relevance of this policy to the overall determination in the
   /// TroubleshootIamPolicyResponse.
@@ -1175,7 +1143,7 @@
   /// the data point is unlikely to affect the overall determination.
   /// - "HIGH" : The data point has a strong effect on the result. Changing the
   /// data point is likely to affect the overall determination.
-  core.String relevance;
+  core.String? relevance;
 
   GoogleCloudPolicysimulatorV1beta1ExplainedPolicy();
 
@@ -1202,14 +1170,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (access != null) 'access': access,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (access != null) 'access': access!,
         if (bindingExplanations != null)
           'bindingExplanations':
-              bindingExplanations.map((value) => value.toJson()).toList(),
-        if (fullResourceName != null) 'fullResourceName': fullResourceName,
-        if (policy != null) 'policy': policy.toJson(),
-        if (relevance != null) 'relevance': relevance,
+              bindingExplanations!.map((value) => value.toJson()).toList(),
+        if (fullResourceName != null) 'fullResourceName': fullResourceName!,
+        if (policy != null) 'policy': policy!.toJson(),
+        if (relevance != null) 'relevance': relevance!,
       };
 }
 
@@ -1219,10 +1187,10 @@
   /// objects.
   ///
   /// If this field is omitted, there are no subsequent pages.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The results of running a Replay.
-  core.List<GoogleCloudPolicysimulatorV1beta1ReplayResult> replayResults;
+  core.List<GoogleCloudPolicysimulatorV1beta1ReplayResult>? replayResults;
 
   GoogleCloudPolicysimulatorV1beta1ListReplayResultsResponse();
 
@@ -1240,11 +1208,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (replayResults != null)
           'replayResults':
-              replayResults.map((value) => value.toJson()).toList(),
+              replayResults!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1253,7 +1221,7 @@
   /// The configuration used for the `Replay`.
   ///
   /// Required.
-  GoogleCloudPolicysimulatorV1beta1ReplayConfig config;
+  GoogleCloudPolicysimulatorV1beta1ReplayConfig? config;
 
   /// The resource name of the `Replay`, which has the following format:
   /// `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`,
@@ -1264,12 +1232,12 @@
   /// `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Summary statistics about the replayed log entries.
   ///
   /// Output only.
-  GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary resultsSummary;
+  GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary? resultsSummary;
 
   /// The current state of the `Replay`.
   ///
@@ -1280,7 +1248,7 @@
   /// - "RUNNING" : The `Replay` is currently running.
   /// - "SUCCEEDED" : The `Replay` has successfully completed.
   /// - "FAILED" : The `Replay` has finished with an error.
-  core.String state;
+  core.String? state;
 
   GoogleCloudPolicysimulatorV1beta1Replay();
 
@@ -1302,11 +1270,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (config != null) 'config': config.toJson(),
-        if (name != null) 'name': name,
-        if (resultsSummary != null) 'resultsSummary': resultsSummary.toJson(),
-        if (state != null) 'state': state,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (config != null) 'config': config!.toJson(),
+        if (name != null) 'name': name!,
+        if (resultsSummary != null) 'resultsSummary': resultsSummary!.toJson(),
+        if (state != null) 'state': state!,
       };
 }
 
@@ -1318,7 +1286,7 @@
   /// is unspecified, the Replay defaults to using `RECENT_ACCESSES`.
   /// - "RECENT_ACCESSES" : All access logs from the last 90 days. These logs
   /// may not include logs from the most recent 7 days.
-  core.String logSource;
+  core.String? logSource;
 
   /// A mapping of the resources that you want to simulate policies for and the
   /// policies that you want to simulate.
@@ -1332,7 +1300,7 @@
   /// inherited through the resource hierarchy, and any policies set on
   /// descendant resources. You do not need to include these policies in the
   /// policy overlay.
-  core.Map<core.String, GoogleIamV1Policy> policyOverlay;
+  core.Map<core.String, GoogleIamV1Policy>? policyOverlay;
 
   GoogleCloudPolicysimulatorV1beta1ReplayConfig();
 
@@ -1342,7 +1310,7 @@
     }
     if (_json.containsKey('policyOverlay')) {
       policyOverlay = (_json['policyOverlay'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -1353,10 +1321,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (logSource != null) 'logSource': logSource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (logSource != null) 'logSource': logSource!,
         if (policyOverlay != null)
-          'policyOverlay': policyOverlay
+          'policyOverlay': policyOverlay!
               .map((key, item) => core.MapEntry(key, item.toJson())),
       };
 }
@@ -1373,7 +1341,7 @@
   ///
   /// The evaluation of the member's access is reported in the AccessState
   /// field.
-  GoogleCloudPolicysimulatorV1beta1AccessStateDiff accessDiff;
+  GoogleCloudPolicysimulatorV1beta1AccessStateDiff? accessDiff;
 
   GoogleCloudPolicysimulatorV1beta1ReplayDiff();
 
@@ -1384,15 +1352,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessDiff != null) 'accessDiff': accessDiff.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessDiff != null) 'accessDiff': accessDiff!.toJson(),
       };
 }
 
 /// Metadata about a Replay operation.
 class GoogleCloudPolicysimulatorV1beta1ReplayOperationMetadata {
   /// Time when the request was received.
-  core.String startTime;
+  core.String? startTime;
 
   GoogleCloudPolicysimulatorV1beta1ReplayOperationMetadata();
 
@@ -1403,8 +1371,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (startTime != null) 'startTime': startTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (startTime != null) 'startTime': startTime!,
       };
 }
 
@@ -1414,7 +1382,7 @@
   ///
   /// This field includes information about the member, resource, and permission
   /// that were involved in the access attempt.
-  GoogleCloudPolicysimulatorV1beta1AccessTuple accessTuple;
+  GoogleCloudPolicysimulatorV1beta1AccessTuple? accessTuple;
 
   /// The difference between the member's access under the current (baseline)
   /// policies and the member's access under the proposed (simulated) policies.
@@ -1422,16 +1390,16 @@
   /// This field is only included for access tuples that were successfully
   /// replayed and had different results under the current policies and the
   /// proposed policies.
-  GoogleCloudPolicysimulatorV1beta1ReplayDiff diff;
+  GoogleCloudPolicysimulatorV1beta1ReplayDiff? diff;
 
   /// The error that caused the access tuple replay to fail.
   ///
   /// This field is only included for access tuples that were not replayed
   /// successfully.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// The latest date this access tuple was seen in the logs.
-  GoogleTypeDate lastSeenDate;
+  GoogleTypeDate? lastSeenDate;
 
   /// The resource name of the `ReplayResult`, in the following format:
   /// `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`,
@@ -1440,10 +1408,10 @@
   ///
   /// Example:
   /// `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
-  core.String name;
+  core.String? name;
 
   /// The Replay that the access tuple was included in.
-  core.String parent;
+  core.String? parent;
 
   GoogleCloudPolicysimulatorV1beta1ReplayResult();
 
@@ -1472,13 +1440,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessTuple != null) 'accessTuple': accessTuple.toJson(),
-        if (diff != null) 'diff': diff.toJson(),
-        if (error != null) 'error': error.toJson(),
-        if (lastSeenDate != null) 'lastSeenDate': lastSeenDate.toJson(),
-        if (name != null) 'name': name,
-        if (parent != null) 'parent': parent,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessTuple != null) 'accessTuple': accessTuple!.toJson(),
+        if (diff != null) 'diff': diff!.toJson(),
+        if (error != null) 'error': error!.toJson(),
+        if (lastSeenDate != null) 'lastSeenDate': lastSeenDate!.toJson(),
+        if (name != null) 'name': name!,
+        if (parent != null) 'parent': parent!,
       };
 }
 
@@ -1486,23 +1454,23 @@
 class GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary {
   /// The number of replayed log entries with a difference between baseline and
   /// simulated policies.
-  core.int differenceCount;
+  core.int? differenceCount;
 
   /// The number of log entries that could not be replayed.
-  core.int errorCount;
+  core.int? errorCount;
 
   /// The total number of log entries replayed.
-  core.int logCount;
+  core.int? logCount;
 
   /// The date of the newest log entry replayed.
-  GoogleTypeDate newestDate;
+  GoogleTypeDate? newestDate;
 
   /// The date of the oldest log entry replayed.
-  GoogleTypeDate oldestDate;
+  GoogleTypeDate? oldestDate;
 
   /// The number of replayed log entries with no difference between baseline and
   /// simulated policies.
-  core.int unchangedCount;
+  core.int? unchangedCount;
 
   GoogleCloudPolicysimulatorV1beta1ReplayResultsSummary();
 
@@ -1530,13 +1498,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (differenceCount != null) 'differenceCount': differenceCount,
-        if (errorCount != null) 'errorCount': errorCount,
-        if (logCount != null) 'logCount': logCount,
-        if (newestDate != null) 'newestDate': newestDate.toJson(),
-        if (oldestDate != null) 'oldestDate': oldestDate.toJson(),
-        if (unchangedCount != null) 'unchangedCount': unchangedCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (differenceCount != null) 'differenceCount': differenceCount!,
+        if (errorCount != null) 'errorCount': errorCount!,
+        if (logCount != null) 'logCount': logCount!,
+        if (newestDate != null) 'newestDate': newestDate!.toJson(),
+        if (oldestDate != null) 'oldestDate': oldestDate!.toJson(),
+        if (unchangedCount != null) 'unchangedCount': unchangedCount!,
       };
 }
 
@@ -1559,13 +1527,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class GoogleIamV1AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<GoogleIamV1AuditLogConfig> auditLogConfigs;
+  core.List<GoogleIamV1AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   /// `allServices` is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   GoogleIamV1AuditConfig();
 
@@ -1582,11 +1550,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -1601,7 +1569,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -1609,7 +1577,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   GoogleIamV1AuditLogConfig();
 
@@ -1624,9 +1592,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -1640,7 +1608,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  GoogleTypeExpr condition;
+  GoogleTypeExpr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -1672,12 +1640,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   GoogleIamV1Binding();
 
@@ -1696,10 +1664,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -1736,14 +1704,14 @@
 /// [IAM documentation](https://cloud.google.com/iam/docs/).
 class GoogleIamV1Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<GoogleIamV1AuditConfig> auditConfigs;
+  core.List<GoogleIamV1AuditConfig>? auditConfigs;
 
   /// Associates a list of `members` to a `role`.
   ///
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<GoogleIamV1Binding> bindings;
+  core.List<GoogleIamV1Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -1757,8 +1725,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -1782,7 +1750,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   GoogleIamV1Policy();
 
@@ -1808,23 +1776,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class GoogleLongrunningListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<GoogleLongrunningOperation> operations;
+  core.List<GoogleLongrunningOperation>? operations;
 
   GoogleLongrunningListOperationsResponse();
 
@@ -1841,10 +1809,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1855,10 +1823,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -1869,14 +1837,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -1889,7 +1857,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   GoogleLongrunningOperation();
 
@@ -1924,12 +1892,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -1942,7 +1910,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class GoogleRpcStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -1950,13 +1918,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   GoogleRpcStatus();
 
@@ -1980,10 +1948,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -2001,17 +1969,17 @@
   ///
   /// Must be from 1 to 31 and valid for the year and month, or 0 to specify a
   /// year by itself or a year and month where the day isn't significant.
-  core.int day;
+  core.int? day;
 
   /// Month of a year.
   ///
   /// Must be from 1 to 12, or 0 to specify a year without a month and day.
-  core.int month;
+  core.int? month;
 
   /// Year of the date.
   ///
   /// Must be from 1 to 9999, or 0 to specify a date without a year.
-  core.int year;
+  core.int? year;
 
   GoogleTypeDate();
 
@@ -2027,10 +1995,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (day != null) 'day': day,
-        if (month != null) 'month': month,
-        if (year != null) 'year': year,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (day != null) 'day': day!,
+        if (month != null) 'month': month!,
+        if (year != null) 'year': year!,
       };
 }
 
@@ -2059,24 +2027,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   GoogleTypeExpr();
 
@@ -2095,10 +2063,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
diff --git a/generated/googleapis_beta/lib/privateca/v1beta1.dart b/generated/googleapis_beta/lib/privateca/v1beta1.dart
index 456540d..d36e0fb 100644
--- a/generated/googleapis_beta/lib/privateca/v1beta1.dart
+++ b/generated/googleapis_beta/lib/privateca/v1beta1.dart
@@ -108,11 +108,8 @@
   /// this method will complete with the same error.
   async.Future<Location> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -152,14 +149,11 @@
   /// this method will complete with the same error.
   async.Future<ListLocationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -225,13 +219,9 @@
   async.Future<Operation> activate(
     ActivateCertificateAuthorityRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -287,15 +277,11 @@
   async.Future<Operation> create(
     CertificateAuthority request,
     core.String parent, {
-    core.String certificateAuthorityId,
-    core.String requestId,
-    core.String $fields,
+    core.String? certificateAuthorityId,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (certificateAuthorityId != null)
         'certificateAuthorityId': [certificateAuthorityId],
@@ -340,13 +326,9 @@
   async.Future<Operation> disable(
     DisableCertificateAuthorityRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -388,13 +370,9 @@
   async.Future<Operation> enable(
     EnableCertificateAuthorityRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -437,11 +415,8 @@
   /// this method will complete with the same error.
   async.Future<FetchCertificateAuthorityCsrResponse> fetch(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -478,11 +453,8 @@
   /// this method will complete with the same error.
   async.Future<CertificateAuthority> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -531,12 +503,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -589,15 +558,12 @@
   /// this method will complete with the same error.
   async.Future<ListCertificateAuthoritiesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -657,15 +623,11 @@
   async.Future<Operation> patch(
     CertificateAuthority request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -707,13 +669,9 @@
   async.Future<Operation> restore(
     RestoreCertificateAuthorityRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -755,13 +713,9 @@
   async.Future<Operation> scheduleDelete(
     ScheduleDeleteCertificateAuthorityRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -807,13 +761,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -861,13 +811,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -914,11 +860,8 @@
   /// this method will complete with the same error.
   async.Future<CertificateRevocationList> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -967,12 +910,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -1027,15 +967,12 @@
   /// this method will complete with the same error.
   async.Future<ListCertificateRevocationListsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -1096,15 +1033,11 @@
   async.Future<Operation> patch(
     CertificateRevocationList request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -1150,13 +1083,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1204,13 +1133,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1280,15 +1205,11 @@
   async.Future<Certificate> create(
     Certificate request,
     core.String parent, {
-    core.String certificateId,
-    core.String requestId,
-    core.String $fields,
+    core.String? certificateId,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (certificateId != null) 'certificateId': [certificateId],
       if (requestId != null) 'requestId': [requestId],
@@ -1329,11 +1250,8 @@
   /// this method will complete with the same error.
   async.Future<Certificate> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1387,15 +1305,12 @@
   /// this method will complete with the same error.
   async.Future<ListCertificatesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -1458,15 +1373,11 @@
   async.Future<Certificate> patch(
     Certificate request,
     core.String name, {
-    core.String requestId,
-    core.String updateMask,
-    core.String $fields,
+    core.String? requestId,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if (updateMask != null) 'updateMask': [updateMask],
@@ -1510,13 +1421,9 @@
   async.Future<Certificate> revoke(
     RevokeCertificateRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1573,13 +1480,9 @@
   async.Future<Empty> cancel(
     CancelOperationRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1620,11 +1523,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1662,11 +1562,8 @@
   /// this method will complete with the same error.
   async.Future<Operation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1715,14 +1612,11 @@
   /// this method will complete with the same error.
   async.Future<ListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1770,11 +1664,8 @@
   /// this method will complete with the same error.
   async.Future<ReusableConfig> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1823,12 +1714,9 @@
   /// this method will complete with the same error.
   async.Future<Policy> getIamPolicy(
     core.String resource, {
-    core.int options_requestedPolicyVersion,
-    core.String $fields,
+    core.int? options_requestedPolicyVersion,
+    core.String? $fields,
   }) async {
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (options_requestedPolicyVersion != null)
         'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'],
@@ -1880,15 +1768,12 @@
   /// this method will complete with the same error.
   async.Future<ListReusableConfigsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.String orderBy,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.String? orderBy,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (orderBy != null) 'orderBy': [orderBy],
@@ -1938,13 +1823,9 @@
   async.Future<Policy> setIamPolicy(
     SetIamPolicyRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1992,13 +1873,9 @@
   async.Future<TestIamPermissionsResponse> testIamPermissions(
     TestIamPermissionsRequest request,
     core.String resource, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (resource == null) {
-      throw core.ArgumentError('Parameter resource is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2023,12 +1900,12 @@
   /// The URL where this CertificateAuthority's CA certificate is published.
   ///
   /// This will only be set for CAs that have been activated.
-  core.String caCertificateAccessUrl;
+  core.String? caCertificateAccessUrl;
 
   /// The URL where this CertificateAuthority's CRLs are published.
   ///
   /// This will only be set for CAs that have been activated.
-  core.String crlAccessUrl;
+  core.String? crlAccessUrl;
 
   AccessUrls();
 
@@ -2041,10 +1918,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (caCertificateAccessUrl != null)
-          'caCertificateAccessUrl': caCertificateAccessUrl,
-        if (crlAccessUrl != null) 'crlAccessUrl': crlAccessUrl,
+          'caCertificateAccessUrl': caCertificateAccessUrl!,
+        if (crlAccessUrl != null) 'crlAccessUrl': crlAccessUrl!,
       };
 }
 
@@ -2055,7 +1932,7 @@
   /// FetchCertificateAuthorityCsrResponse.pem_csr.
   ///
   /// Required.
-  core.String pemCaCertificate;
+  core.String? pemCaCertificate;
 
   /// An ID to identify requests.
   ///
@@ -2071,13 +1948,13 @@
   /// supported (00000000-0000-0000-0000-000000000000).
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   /// Must include information about the issuer of 'pem_ca_certificate', and any
   /// further issuers until the self-signed CA.
   ///
   /// Required.
-  SubordinateConfig subordinateConfig;
+  SubordinateConfig? subordinateConfig;
 
   ActivateCertificateAuthorityRequest();
 
@@ -2094,11 +1971,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (pemCaCertificate != null) 'pemCaCertificate': pemCaCertificate,
-        if (requestId != null) 'requestId': requestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (pemCaCertificate != null) 'pemCaCertificate': pemCaCertificate!,
+        if (requestId != null) 'requestId': requestId!,
         if (subordinateConfig != null)
-          'subordinateConfig': subordinateConfig.toJson(),
+          'subordinateConfig': subordinateConfig!.toJson(),
       };
 }
 
@@ -2110,7 +1987,7 @@
   /// for that field.
   ///
   /// Required.
-  core.List<ReusableConfigWrapper> allowedConfigValues;
+  core.List<ReusableConfigWrapper>? allowedConfigValues;
 
   AllowedConfigList();
 
@@ -2123,10 +2000,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (allowedConfigValues != null)
           'allowedConfigValues':
-              allowedConfigValues.map((value) => value.toJson()).toList(),
+              allowedConfigValues!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2136,7 +2013,7 @@
   /// Specifies if to allow custom X509Extension values.
   ///
   /// Optional.
-  core.bool allowCustomSans;
+  core.bool? allowCustomSans;
 
   /// Specifies if glob patterns used for allowed_dns_names allow wildcard
   /// certificates.
@@ -2147,7 +2024,7 @@
   /// only if allowed_dns_names contains a literal wildcard.
   ///
   /// Optional.
-  core.bool allowGlobbingDnsWildcards;
+  core.bool? allowGlobbingDnsWildcards;
 
   /// Contains valid, fully-qualified host names.
   ///
@@ -2158,14 +2035,14 @@
   /// '\*.bar.com' will allow '*.bar.com', but not 'foo.bar.com'.
   ///
   /// Optional.
-  core.List<core.String> allowedDnsNames;
+  core.List<core.String>? allowedDnsNames;
 
   /// Contains valid RFC 2822 E-mail addresses.
   ///
   /// Glob patterns are also supported.
   ///
   /// Optional.
-  core.List<core.String> allowedEmailAddresses;
+  core.List<core.String>? allowedEmailAddresses;
 
   /// Contains valid 32-bit IPv4 addresses and subnet ranges or RFC 4291 IPv6
   /// addresses and subnet ranges.
@@ -2175,7 +2052,7 @@
   /// entries (i.e. not for subnet ranges).
   ///
   /// Optional.
-  core.List<core.String> allowedIps;
+  core.List<core.String>? allowedIps;
 
   /// Contains valid RFC 3986 URIs.
   ///
@@ -2183,7 +2060,7 @@
   /// '/') use the double star glob pattern (i.e. '**').
   ///
   /// Optional.
-  core.List<core.String> allowedUris;
+  core.List<core.String>? allowedUris;
 
   AllowedSubjectAltNames();
 
@@ -2217,15 +2094,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowCustomSans != null) 'allowCustomSans': allowCustomSans,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowCustomSans != null) 'allowCustomSans': allowCustomSans!,
         if (allowGlobbingDnsWildcards != null)
-          'allowGlobbingDnsWildcards': allowGlobbingDnsWildcards,
-        if (allowedDnsNames != null) 'allowedDnsNames': allowedDnsNames,
+          'allowGlobbingDnsWildcards': allowGlobbingDnsWildcards!,
+        if (allowedDnsNames != null) 'allowedDnsNames': allowedDnsNames!,
         if (allowedEmailAddresses != null)
-          'allowedEmailAddresses': allowedEmailAddresses,
-        if (allowedIps != null) 'allowedIps': allowedIps,
-        if (allowedUris != null) 'allowedUris': allowedUris,
+          'allowedEmailAddresses': allowedEmailAddresses!,
+        if (allowedIps != null) 'allowedIps': allowedIps!,
+        if (allowedUris != null) 'allowedUris': allowedUris!,
       };
 }
 
@@ -2248,13 +2125,13 @@
 /// aliya@example.com from DATA_WRITE logging.
 class AuditConfig {
   /// The configuration for logging of each type of permission.
-  core.List<AuditLogConfig> auditLogConfigs;
+  core.List<AuditLogConfig>? auditLogConfigs;
 
   /// Specifies a service that will be enabled for audit logging.
   ///
   /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   /// `allServices` is a special value that covers all services.
-  core.String service;
+  core.String? service;
 
   AuditConfig();
 
@@ -2270,11 +2147,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditLogConfigs != null)
           'auditLogConfigs':
-              auditLogConfigs.map((value) => value.toJson()).toList(),
-        if (service != null) 'service': service,
+              auditLogConfigs!.map((value) => value.toJson()).toList(),
+        if (service != null) 'service': service!,
       };
 }
 
@@ -2289,7 +2166,7 @@
   /// permission.
   ///
   /// Follows the same format of Binding.members.
-  core.List<core.String> exemptedMembers;
+  core.List<core.String>? exemptedMembers;
 
   /// The log type that this config enables.
   /// Possible string values are:
@@ -2297,7 +2174,7 @@
   /// - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
   /// - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
   /// - "DATA_READ" : Data reads. Example: CloudSQL Users list
-  core.String logType;
+  core.String? logType;
 
   AuditLogConfig();
 
@@ -2312,9 +2189,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exemptedMembers != null) 'exemptedMembers': exemptedMembers!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -2326,7 +2203,7 @@
   ///
   /// See go/billing-view-construction for documentation on constructing billing
   /// view report requests.
-  core.List<GoogleApiServicecontrolV1ReportRequest> reportRequests;
+  core.List<GoogleApiServicecontrolV1ReportRequest>? reportRequests;
 
   BillingView();
 
@@ -2340,10 +2217,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (reportRequests != null)
           'reportRequests':
-              reportRequests.map((value) => value.toJson()).toList(),
+              reportRequests!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2357,7 +2234,7 @@
   /// might grant the same role to one or more of the members in this binding.
   /// To learn which resources support conditions in their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  Expr condition;
+  Expr? condition;
 
   /// Specifies the identities requesting access for a Cloud Platform resource.
   ///
@@ -2389,12 +2266,12 @@
   /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary)
   /// that represents all the users of that domain. For example, `google.com` or
   /// `example.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-  core.String role;
+  core.String? role;
 
   Binding();
 
@@ -2413,10 +2290,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (condition != null) 'condition': condition.toJson(),
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (condition != null) 'condition': condition!.toJson(),
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -2428,7 +2305,7 @@
   /// certificate.
   ///
   /// Optional.
-  core.bool isCa;
+  core.bool? isCa;
 
   /// Refers to the path length restriction X.509 extension.
   ///
@@ -2438,7 +2315,7 @@
   /// from the CA certificate.
   ///
   /// Optional.
-  core.int maxIssuerPathLength;
+  core.int? maxIssuerPathLength;
 
   CaOptions();
 
@@ -2451,10 +2328,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (isCa != null) 'isCa': isCa,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (isCa != null) 'isCa': isCa!,
         if (maxIssuerPathLength != null)
-          'maxIssuerPathLength': maxIssuerPathLength,
+          'maxIssuerPathLength': maxIssuerPathLength!,
       };
 }
 
@@ -2466,7 +2343,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A Certificate corresponds to a signed X.509 certificate issued by a
@@ -2475,23 +2352,23 @@
   /// A structured description of the issued X.509 certificate.
   ///
   /// Output only.
-  CertificateDescription certificateDescription;
+  CertificateDescription? certificateDescription;
 
   /// A description of the certificate and key that does not require X.509 or
   /// ASN.1.
   ///
   /// Immutable.
-  CertificateConfig config;
+  CertificateConfig? config;
 
   /// The time at which this Certificate was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Labels with user-defined metadata.
   ///
   /// Optional.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The desired lifetime of a certificate.
   ///
@@ -2500,30 +2377,30 @@
   /// extend past the life of any certificate authority in the issuing chain.
   ///
   /// Required. Immutable.
-  core.String lifetime;
+  core.String? lifetime;
 
   /// The resource path for this Certificate in the format `projects / *
   /// /locations / * /certificateAuthorities / * /certificates / * `.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The pem-encoded, signed X.509 certificate.
   ///
   /// Output only.
-  core.String pemCertificate;
+  core.String? pemCertificate;
 
   /// The chain that may be used to verify the X.509 certificate.
   ///
   /// Expected to be in issuer-to-root order according to RFC 5246.
   ///
   /// Output only.
-  core.List<core.String> pemCertificateChain;
+  core.List<core.String>? pemCertificateChain;
 
   /// A pem-encoded X.509 certificate signing request (CSR).
   ///
   /// Immutable.
-  core.String pemCsr;
+  core.String? pemCsr;
 
   /// Details regarding the revocation of this Certificate.
   ///
@@ -2531,12 +2408,12 @@
   /// present.
   ///
   /// Output only.
-  RevocationDetails revocationDetails;
+  RevocationDetails? revocationDetails;
 
   /// The time at which this Certificate was updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   Certificate();
 
@@ -2588,21 +2465,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (certificateDescription != null)
-          'certificateDescription': certificateDescription.toJson(),
-        if (config != null) 'config': config.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (labels != null) 'labels': labels,
-        if (lifetime != null) 'lifetime': lifetime,
-        if (name != null) 'name': name,
-        if (pemCertificate != null) 'pemCertificate': pemCertificate,
+          'certificateDescription': certificateDescription!.toJson(),
+        if (config != null) 'config': config!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (labels != null) 'labels': labels!,
+        if (lifetime != null) 'lifetime': lifetime!,
+        if (name != null) 'name': name!,
+        if (pemCertificate != null) 'pemCertificate': pemCertificate!,
         if (pemCertificateChain != null)
-          'pemCertificateChain': pemCertificateChain,
-        if (pemCsr != null) 'pemCsr': pemCsr,
+          'pemCertificateChain': pemCertificateChain!,
+        if (pemCsr != null) 'pemCsr': pemCsr!,
         if (revocationDetails != null)
-          'revocationDetails': revocationDetails.toJson(),
-        if (updateTime != null) 'updateTime': updateTime,
+          'revocationDetails': revocationDetails!.toJson(),
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -2614,7 +2491,7 @@
   /// certificate and CRLs.
   ///
   /// Output only.
-  AccessUrls accessUrls;
+  AccessUrls? accessUrls;
 
   /// A structured description of this CertificateAuthority's CA certificate and
   /// its issuers.
@@ -2622,29 +2499,29 @@
   /// Ordered as self-to-root.
   ///
   /// Output only.
-  core.List<CertificateDescription> caCertificateDescriptions;
+  core.List<CertificateDescription>? caCertificateDescriptions;
 
   /// The CertificateAuthorityPolicy to enforce when issuing Certificates from
   /// this CertificateAuthority.
   ///
   /// Optional.
-  CertificateAuthorityPolicy certificatePolicy;
+  CertificateAuthorityPolicy? certificatePolicy;
 
   /// The config used to create a self-signed X.509 certificate or CSR.
   ///
   /// Required. Immutable.
-  CertificateConfig config;
+  CertificateConfig? config;
 
   /// The time at which this CertificateAuthority was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time at which this CertificateAuthority will be deleted, if scheduled
   /// for deletion.
   ///
   /// Output only.
-  core.String deleteTime;
+  core.String? deleteTime;
 
   /// The name of a Cloud Storage bucket where this CertificateAuthority will
   /// publish content, such as the CA certificate and CRLs.
@@ -2655,13 +2532,13 @@
   /// managed bucket will be created.
   ///
   /// Immutable.
-  core.String gcsBucket;
+  core.String? gcsBucket;
 
   /// The IssuingOptions to follow when issuing Certificates from this
   /// CertificateAuthority.
   ///
   /// Optional.
-  IssuingOptions issuingOptions;
+  IssuingOptions? issuingOptions;
 
   /// Used when issuing certificates for this CertificateAuthority.
   ///
@@ -2670,12 +2547,12 @@
   /// used to sign a CSR.
   ///
   /// Required. Immutable.
-  KeyVersionSpec keySpec;
+  KeyVersionSpec? keySpec;
 
   /// Labels with user-defined metadata.
   ///
   /// Optional.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The desired lifetime of the CA certificate.
   ///
@@ -2683,13 +2560,13 @@
   /// X.509 certificate.
   ///
   /// Required.
-  core.String lifetime;
+  core.String? lifetime;
 
   /// The resource name for this CertificateAuthority in the format `projects /
   /// * /locations / * /certificateAuthorities / * `.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// This CertificateAuthority's certificate chain, including the current
   /// CertificateAuthority's certificate.
@@ -2699,7 +2576,7 @@
   /// CertificateAuthority's certificate.
   ///
   /// Output only.
-  core.List<core.String> pemCaCertificates;
+  core.List<core.String>? pemCaCertificates;
 
   /// The State for this CertificateAuthority.
   ///
@@ -2714,7 +2591,7 @@
   /// will not be generated.
   /// - "PENDING_DELETION" : Certificates cannot be issued from this CA. CRLs
   /// will not be generated.
-  core.String state;
+  core.String? state;
 
   /// If this is a subordinate CertificateAuthority, this field will be set with
   /// the subordinate configuration, which describes its issuers.
@@ -2723,7 +2600,7 @@
   /// validate.
   ///
   /// Optional.
-  SubordinateConfig subordinateConfig;
+  SubordinateConfig? subordinateConfig;
 
   /// The Tier of this CertificateAuthority.
   ///
@@ -2732,7 +2609,7 @@
   /// - "TIER_UNSPECIFIED" : Not specified.
   /// - "ENTERPRISE" : Enterprise tier.
   /// - "DEVOPS" : DevOps tier.
-  core.String tier;
+  core.String? tier;
 
   /// The Type of this CertificateAuthority.
   ///
@@ -2742,12 +2619,12 @@
   /// - "SELF_SIGNED" : Self-signed CA.
   /// - "SUBORDINATE" : Subordinate CA. Could be issued by a Private CA
   /// CertificateAuthority or an unmanaged CA.
-  core.String type;
+  core.String? type;
 
   /// The time at which this CertificateAuthority was updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   CertificateAuthority();
 
@@ -2827,29 +2704,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessUrls != null) 'accessUrls': accessUrls.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessUrls != null) 'accessUrls': accessUrls!.toJson(),
         if (caCertificateDescriptions != null)
-          'caCertificateDescriptions':
-              caCertificateDescriptions.map((value) => value.toJson()).toList(),
+          'caCertificateDescriptions': caCertificateDescriptions!
+              .map((value) => value.toJson())
+              .toList(),
         if (certificatePolicy != null)
-          'certificatePolicy': certificatePolicy.toJson(),
-        if (config != null) 'config': config.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (deleteTime != null) 'deleteTime': deleteTime,
-        if (gcsBucket != null) 'gcsBucket': gcsBucket,
-        if (issuingOptions != null) 'issuingOptions': issuingOptions.toJson(),
-        if (keySpec != null) 'keySpec': keySpec.toJson(),
-        if (labels != null) 'labels': labels,
-        if (lifetime != null) 'lifetime': lifetime,
-        if (name != null) 'name': name,
-        if (pemCaCertificates != null) 'pemCaCertificates': pemCaCertificates,
-        if (state != null) 'state': state,
+          'certificatePolicy': certificatePolicy!.toJson(),
+        if (config != null) 'config': config!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (deleteTime != null) 'deleteTime': deleteTime!,
+        if (gcsBucket != null) 'gcsBucket': gcsBucket!,
+        if (issuingOptions != null) 'issuingOptions': issuingOptions!.toJson(),
+        if (keySpec != null) 'keySpec': keySpec!.toJson(),
+        if (labels != null) 'labels': labels!,
+        if (lifetime != null) 'lifetime': lifetime!,
+        if (name != null) 'name': name!,
+        if (pemCaCertificates != null) 'pemCaCertificates': pemCaCertificates!,
+        if (state != null) 'state': state!,
         if (subordinateConfig != null)
-          'subordinateConfig': subordinateConfig.toJson(),
-        if (tier != null) 'tier': tier,
-        if (type != null) 'type': type,
-        if (updateTime != null) 'updateTime': updateTime,
+          'subordinateConfig': subordinateConfig!.toJson(),
+        if (tier != null) 'tier': tier!,
+        if (type != null) 'type': type!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -2865,19 +2743,19 @@
   /// patterns are also supported.
   ///
   /// Optional.
-  core.List<core.String> allowedCommonNames;
+  core.List<core.String>? allowedCommonNames;
 
   /// All Certificates issued by the CertificateAuthority must match at least
   /// one listed ReusableConfigWrapper in the list.
   ///
   /// Optional.
-  AllowedConfigList allowedConfigList;
+  AllowedConfigList? allowedConfigList;
 
   /// If specified, then only methods allowed in the IssuanceModes may be used
   /// to issue Certificates.
   ///
   /// Optional.
-  IssuanceModes allowedIssuanceModes;
+  IssuanceModes? allowedIssuanceModes;
 
   /// If any Subject is specified here, then all Certificates issued by the
   /// CertificateAuthority must match at least one listed Subject.
@@ -2885,7 +2763,7 @@
   /// If a Subject has an empty field, any value will be allowed for that field.
   ///
   /// Optional.
-  core.List<Subject> allowedLocationsAndOrganizations;
+  core.List<Subject>? allowedLocationsAndOrganizations;
 
   /// If a AllowedSubjectAltNames is specified here, then all Certificates
   /// issued by the CertificateAuthority must match AllowedSubjectAltNames.
@@ -2894,7 +2772,7 @@
   /// the SubjectAltNames field.
   ///
   /// Optional.
-  AllowedSubjectAltNames allowedSans;
+  AllowedSubjectAltNames? allowedSans;
 
   /// The maximum lifetime allowed by the CertificateAuthority.
   ///
@@ -2903,13 +2781,13 @@
   /// explicitly truncated.
   ///
   /// Optional.
-  core.String maximumLifetime;
+  core.String? maximumLifetime;
 
   /// All Certificates issued by the CertificateAuthority will use the provided
   /// configuration values, overwriting any requested configuration values.
   ///
   /// Optional.
-  ReusableConfigWrapper overwriteConfigValues;
+  ReusableConfigWrapper? overwriteConfigValues;
 
   CertificateAuthorityPolicy();
 
@@ -2948,21 +2826,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (allowedCommonNames != null)
-          'allowedCommonNames': allowedCommonNames,
+          'allowedCommonNames': allowedCommonNames!,
         if (allowedConfigList != null)
-          'allowedConfigList': allowedConfigList.toJson(),
+          'allowedConfigList': allowedConfigList!.toJson(),
         if (allowedIssuanceModes != null)
-          'allowedIssuanceModes': allowedIssuanceModes.toJson(),
+          'allowedIssuanceModes': allowedIssuanceModes!.toJson(),
         if (allowedLocationsAndOrganizations != null)
-          'allowedLocationsAndOrganizations': allowedLocationsAndOrganizations
+          'allowedLocationsAndOrganizations': allowedLocationsAndOrganizations!
               .map((value) => value.toJson())
               .toList(),
-        if (allowedSans != null) 'allowedSans': allowedSans.toJson(),
-        if (maximumLifetime != null) 'maximumLifetime': maximumLifetime,
+        if (allowedSans != null) 'allowedSans': allowedSans!.toJson(),
+        if (maximumLifetime != null) 'maximumLifetime': maximumLifetime!,
         if (overwriteConfigValues != null)
-          'overwriteConfigValues': overwriteConfigValues.toJson(),
+          'overwriteConfigValues': overwriteConfigValues!.toJson(),
       };
 }
 
@@ -2975,19 +2853,19 @@
   /// creating a self-signed CertificateAuthority or CertificateAuthority CSR.
   ///
   /// Optional.
-  PublicKey publicKey;
+  PublicKey? publicKey;
 
   /// Describes how some of the technical fields in a certificate should be
   /// populated.
   ///
   /// Required.
-  ReusableConfigWrapper reusableConfig;
+  ReusableConfigWrapper? reusableConfig;
 
   /// Specifies some of the values in a certificate that are related to the
   /// subject.
   ///
   /// Required.
-  SubjectConfig subjectConfig;
+  SubjectConfig? subjectConfig;
 
   CertificateConfig();
 
@@ -3006,10 +2884,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (publicKey != null) 'publicKey': publicKey.toJson(),
-        if (reusableConfig != null) 'reusableConfig': reusableConfig.toJson(),
-        if (subjectConfig != null) 'subjectConfig': subjectConfig.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (publicKey != null) 'publicKey': publicKey!.toJson(),
+        if (reusableConfig != null) 'reusableConfig': reusableConfig!.toJson(),
+        if (subjectConfig != null) 'subjectConfig': subjectConfig!.toJson(),
       };
 }
 
@@ -3018,33 +2896,33 @@
 class CertificateDescription {
   /// Describes lists of issuer CA certificate URLs that appear in the
   /// "Authority Information Access" extension in the certificate.
-  core.List<core.String> aiaIssuingCertificateUrls;
+  core.List<core.String>? aiaIssuingCertificateUrls;
 
   /// Identifies the subject_key_id of the parent certificate, per
   /// https://tools.ietf.org/html/rfc5280#section-4.2.1.1
-  KeyId authorityKeyId;
+  KeyId? authorityKeyId;
 
   /// The hash of the x.509 certificate.
-  CertificateFingerprint certFingerprint;
+  CertificateFingerprint? certFingerprint;
 
   /// Describes some of the technical fields in a certificate.
-  ReusableConfigValues configValues;
+  ReusableConfigValues? configValues;
 
   /// Describes a list of locations to obtain CRL information, i.e. the
   /// DistributionPoint.fullName described by
   /// https://tools.ietf.org/html/rfc5280#section-4.2.1.13
-  core.List<core.String> crlDistributionPoints;
+  core.List<core.String>? crlDistributionPoints;
 
   /// The public key that corresponds to an issued certificate.
-  PublicKey publicKey;
+  PublicKey? publicKey;
 
   /// Describes some of the values in a certificate that are related to the
   /// subject and lifetime.
-  SubjectDescription subjectDescription;
+  SubjectDescription? subjectDescription;
 
   /// Provides a means of identifiying certificates that contain a particular
   /// public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
-  KeyId subjectKeyId;
+  KeyId? subjectKeyId;
 
   CertificateDescription();
 
@@ -3086,26 +2964,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (aiaIssuingCertificateUrls != null)
-          'aiaIssuingCertificateUrls': aiaIssuingCertificateUrls,
-        if (authorityKeyId != null) 'authorityKeyId': authorityKeyId.toJson(),
+          'aiaIssuingCertificateUrls': aiaIssuingCertificateUrls!,
+        if (authorityKeyId != null) 'authorityKeyId': authorityKeyId!.toJson(),
         if (certFingerprint != null)
-          'certFingerprint': certFingerprint.toJson(),
-        if (configValues != null) 'configValues': configValues.toJson(),
+          'certFingerprint': certFingerprint!.toJson(),
+        if (configValues != null) 'configValues': configValues!.toJson(),
         if (crlDistributionPoints != null)
-          'crlDistributionPoints': crlDistributionPoints,
-        if (publicKey != null) 'publicKey': publicKey.toJson(),
+          'crlDistributionPoints': crlDistributionPoints!,
+        if (publicKey != null) 'publicKey': publicKey!.toJson(),
         if (subjectDescription != null)
-          'subjectDescription': subjectDescription.toJson(),
-        if (subjectKeyId != null) 'subjectKeyId': subjectKeyId.toJson(),
+          'subjectDescription': subjectDescription!.toJson(),
+        if (subjectKeyId != null) 'subjectKeyId': subjectKeyId!.toJson(),
       };
 }
 
 /// A group of fingerprints for the x509 certificate.
 class CertificateFingerprint {
   /// The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
-  core.String sha256Hash;
+  core.String? sha256Hash;
 
   CertificateFingerprint();
 
@@ -3115,8 +2993,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (sha256Hash != null) 'sha256Hash': sha256Hash,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (sha256Hash != null) 'sha256Hash': sha256Hash!,
       };
 }
 
@@ -3129,39 +3007,39 @@
   /// The location where 'pem_crl' can be accessed.
   ///
   /// Output only.
-  core.String accessUrl;
+  core.String? accessUrl;
 
   /// The time at which this CertificateRevocationList was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// Labels with user-defined metadata.
   ///
   /// Optional.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The resource path for this CertificateRevocationList in the format
   /// `projects / * /locations / * /certificateAuthorities / * /
   /// certificateRevocationLists / * `.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The PEM-encoded X.509 CRL.
   ///
   /// Output only.
-  core.String pemCrl;
+  core.String? pemCrl;
 
   /// The revoked serial numbers that appear in pem_crl.
   ///
   /// Output only.
-  core.List<RevokedCertificate> revokedCertificates;
+  core.List<RevokedCertificate>? revokedCertificates;
 
   /// The CRL sequence number that appears in pem_crl.
   ///
   /// Output only.
-  core.String sequenceNumber;
+  core.String? sequenceNumber;
 
   /// The State for this CertificateRevocationList.
   ///
@@ -3170,12 +3048,12 @@
   /// - "STATE_UNSPECIFIED" : Not specified.
   /// - "ACTIVE" : The CertificateRevocationList is up to date.
   /// - "SUPERSEDED" : The CertificateRevocationList is no longer current.
-  core.String state;
+  core.String? state;
 
   /// The time at which this CertificateRevocationList was updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   CertificateRevocationList();
 
@@ -3218,18 +3096,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessUrl != null) 'accessUrl': accessUrl,
-        if (createTime != null) 'createTime': createTime,
-        if (labels != null) 'labels': labels,
-        if (name != null) 'name': name,
-        if (pemCrl != null) 'pemCrl': pemCrl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessUrl != null) 'accessUrl': accessUrl!,
+        if (createTime != null) 'createTime': createTime!,
+        if (labels != null) 'labels': labels!,
+        if (name != null) 'name': name!,
+        if (pemCrl != null) 'pemCrl': pemCrl!,
         if (revokedCertificates != null)
           'revokedCertificates':
-              revokedCertificates.map((value) => value.toJson()).toList(),
-        if (sequenceNumber != null) 'sequenceNumber': sequenceNumber,
-        if (state != null) 'state': state,
-        if (updateTime != null) 'updateTime': updateTime,
+              revokedCertificates!.map((value) => value.toJson()).toList(),
+        if (sequenceNumber != null) 'sequenceNumber': sequenceNumber!,
+        if (state != null) 'state': state!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -3249,7 +3127,7 @@
   /// supported (00000000-0000-0000-0000-000000000000).
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   DisableCertificateAuthorityRequest();
 
@@ -3259,8 +3137,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (requestId != null) 'requestId': requestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -3278,7 +3156,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message for CertificateAuthorityService.EnableCertificateAuthority.
@@ -3297,7 +3175,7 @@
   /// supported (00000000-0000-0000-0000-000000000000).
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   EnableCertificateAuthorityRequest();
 
@@ -3307,8 +3185,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (requestId != null) 'requestId': requestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -3331,15 +3209,15 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> attachments;
+  core.List<core.Map<core.String, core.Object>>? attachments;
 
   /// The observation (sampling) time of the above value.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// Value of the exemplar point.
   ///
   /// This value determines to which bucket the exemplar belongs.
-  core.double value;
+  core.double? value;
 
   Exemplar();
 
@@ -3363,10 +3241,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attachments != null) 'attachments': attachments,
-        if (timestamp != null) 'timestamp': timestamp,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attachments != null) 'attachments': attachments!,
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -3395,24 +3273,24 @@
   /// over it in a UI.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Textual representation of an expression in Common Expression Language
   /// syntax.
-  core.String expression;
+  core.String? expression;
 
   /// String indicating the location of the expression for error reporting, e.g.
   /// a file name and a position in the file.
   ///
   /// Optional.
-  core.String location;
+  core.String? location;
 
   /// Title for the expression, i.e. a short string describing its purpose.
   ///
   /// This can be used e.g. in UIs which allow to enter the expression.
   ///
   /// Optional.
-  core.String title;
+  core.String? title;
 
   Expr();
 
@@ -3431,11 +3309,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
-        if (expression != null) 'expression': expression,
-        if (location != null) 'location': location,
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
+        if (expression != null) 'expression': expression!,
+        if (location != null) 'location': location!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -3446,34 +3324,34 @@
   ///
   /// Officially described as "TLS WWW client authentication", though regularly
   /// used for non-WWW TLS.
-  core.bool clientAuth;
+  core.bool? clientAuth;
 
   /// Corresponds to OID 1.3.6.1.5.5.7.3.3.
   ///
   /// Officially described as "Signing of downloadable executable code client
   /// authentication".
-  core.bool codeSigning;
+  core.bool? codeSigning;
 
   /// Corresponds to OID 1.3.6.1.5.5.7.3.4.
   ///
   /// Officially described as "Email protection".
-  core.bool emailProtection;
+  core.bool? emailProtection;
 
   /// Corresponds to OID 1.3.6.1.5.5.7.3.9.
   ///
   /// Officially described as "Signing OCSP responses".
-  core.bool ocspSigning;
+  core.bool? ocspSigning;
 
   /// Corresponds to OID 1.3.6.1.5.5.7.3.1.
   ///
   /// Officially described as "TLS WWW server authentication", though regularly
   /// used for non-WWW TLS.
-  core.bool serverAuth;
+  core.bool? serverAuth;
 
   /// Corresponds to OID 1.3.6.1.5.5.7.3.8.
   ///
   /// Officially described as "Binding the hash of an object to a time".
-  core.bool timeStamping;
+  core.bool? timeStamping;
 
   ExtendedKeyUsageOptions();
 
@@ -3498,13 +3376,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (clientAuth != null) 'clientAuth': clientAuth,
-        if (codeSigning != null) 'codeSigning': codeSigning,
-        if (emailProtection != null) 'emailProtection': emailProtection,
-        if (ocspSigning != null) 'ocspSigning': ocspSigning,
-        if (serverAuth != null) 'serverAuth': serverAuth,
-        if (timeStamping != null) 'timeStamping': timeStamping,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (clientAuth != null) 'clientAuth': clientAuth!,
+        if (codeSigning != null) 'codeSigning': codeSigning!,
+        if (emailProtection != null) 'emailProtection': emailProtection!,
+        if (ocspSigning != null) 'ocspSigning': ocspSigning!,
+        if (serverAuth != null) 'serverAuth': serverAuth!,
+        if (timeStamping != null) 'timeStamping': timeStamping!,
       };
 }
 
@@ -3514,7 +3392,7 @@
   /// The PEM-encoded signed certificate signing request (CSR).
   ///
   /// Output only.
-  core.String pemCsr;
+  core.String? pemCsr;
 
   FetchCertificateAuthorityCsrResponse();
 
@@ -3524,21 +3402,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (pemCsr != null) 'pemCsr': pemCsr,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (pemCsr != null) 'pemCsr': pemCsr!,
       };
 }
 
 /// The allowed types for \[VALUE\] in a `[KEY]:[VALUE]` attribute.
 class GoogleApiServicecontrolV1AttributeValue {
   /// A Boolean value represented by `true` or `false`.
-  core.bool boolValue;
+  core.bool? boolValue;
 
   /// A 64-bit signed integer.
-  core.String intValue;
+  core.String? intValue;
 
   /// A string up to 256 bytes long.
-  GoogleApiServicecontrolV1TruncatableString stringValue;
+  GoogleApiServicecontrolV1TruncatableString? stringValue;
 
   GoogleApiServicecontrolV1AttributeValue();
 
@@ -3555,10 +3433,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolValue != null) 'boolValue': boolValue,
-        if (intValue != null) 'intValue': intValue,
-        if (stringValue != null) 'stringValue': stringValue.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolValue != null) 'boolValue': boolValue!,
+        if (intValue != null) 'intValue': intValue!,
+        if (stringValue != null) 'stringValue': stringValue!.toJson(),
       };
 }
 
@@ -3571,39 +3449,40 @@
   /// `true` and `false`. For example: "/instance_id": "my-instance"
   /// "/http/user_agent": "" "/http/request_bytes": 300 "abc.com/myattribute":
   /// true
-  core.Map<core.String, GoogleApiServicecontrolV1AttributeValue> attributeMap;
+  core.Map<core.String, GoogleApiServicecontrolV1AttributeValue>? attributeMap;
 
   /// The number of attributes that were discarded.
   ///
   /// Attributes can be discarded because their keys are too long or because
   /// there are too many attributes. If this value is 0 then all attributes are
   /// valid.
-  core.int droppedAttributesCount;
+  core.int? droppedAttributesCount;
 
   GoogleApiServicecontrolV1Attributes();
 
   GoogleApiServicecontrolV1Attributes.fromJson(core.Map _json) {
     if (_json.containsKey('attributeMap')) {
-      attributeMap =
-          (_json['attributeMap'] as core.Map).cast<core.String, core.Map>().map(
-                (key, item) => core.MapEntry(
-                  key,
-                  GoogleApiServicecontrolV1AttributeValue.fromJson(
-                      item as core.Map<core.String, core.dynamic>),
-                ),
-              );
+      attributeMap = (_json['attributeMap'] as core.Map)
+          .cast<core.String, core.Map<core.String, core.Object?>>()
+          .map(
+            (key, item) => core.MapEntry(
+              key,
+              GoogleApiServicecontrolV1AttributeValue.fromJson(
+                  item as core.Map<core.String, core.dynamic>),
+            ),
+          );
     }
     if (_json.containsKey('droppedAttributesCount')) {
       droppedAttributesCount = _json['droppedAttributesCount'] as core.int;
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (attributeMap != null)
-          'attributeMap': attributeMap
+          'attributeMap': attributeMap!
               .map((key, item) => core.MapEntry(key, item.toJson())),
         if (droppedAttributesCount != null)
-          'droppedAttributesCount': droppedAttributesCount,
+          'droppedAttributesCount': droppedAttributesCount!,
       };
 }
 
@@ -3625,48 +3504,48 @@
   /// number of samples in the overflow bucket. See the comments of
   /// \`bucket_option\` below for more details. Any suffix of trailing zeros may
   /// be omitted.
-  core.List<core.String> bucketCounts;
+  core.List<core.String>? bucketCounts;
 
   /// The total number of samples in the distribution.
   ///
   /// Must be >= 0.
-  core.String count;
+  core.String? count;
 
   /// Example points.
   ///
   /// Must be in increasing order of `value` field.
-  core.List<Exemplar> exemplars;
+  core.List<Exemplar>? exemplars;
 
   /// Buckets with arbitrary user-provided width.
-  GoogleApiServicecontrolV1ExplicitBuckets explicitBuckets;
+  GoogleApiServicecontrolV1ExplicitBuckets? explicitBuckets;
 
   /// Buckets with exponentially growing width.
-  GoogleApiServicecontrolV1ExponentialBuckets exponentialBuckets;
+  GoogleApiServicecontrolV1ExponentialBuckets? exponentialBuckets;
 
   /// Buckets with constant width.
-  GoogleApiServicecontrolV1LinearBuckets linearBuckets;
+  GoogleApiServicecontrolV1LinearBuckets? linearBuckets;
 
   /// The maximum of the population of values.
   ///
   /// Ignored if `count` is zero.
-  core.double maximum;
+  core.double? maximum;
 
   /// The arithmetic mean of the samples in the distribution.
   ///
   /// If `count` is zero then this field must be zero.
-  core.double mean;
+  core.double? mean;
 
   /// The minimum of the population of values.
   ///
   /// Ignored if `count` is zero.
-  core.double minimum;
+  core.double? minimum;
 
   /// The sum of squared deviations from the mean: Sum\[i=1..count\]((x_i -
   /// mean)^2) where each x_i is a sample values.
   ///
   /// If `count` is zero then this field must be zero, otherwise validation of
   /// the request fails.
-  core.double sumOfSquaredDeviation;
+  core.double? sumOfSquaredDeviation;
 
   GoogleApiServicecontrolV1Distribution();
 
@@ -3712,21 +3591,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bucketCounts != null) 'bucketCounts': bucketCounts,
-        if (count != null) 'count': count,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bucketCounts != null) 'bucketCounts': bucketCounts!,
+        if (count != null) 'count': count!,
         if (exemplars != null)
-          'exemplars': exemplars.map((value) => value.toJson()).toList(),
+          'exemplars': exemplars!.map((value) => value.toJson()).toList(),
         if (explicitBuckets != null)
-          'explicitBuckets': explicitBuckets.toJson(),
+          'explicitBuckets': explicitBuckets!.toJson(),
         if (exponentialBuckets != null)
-          'exponentialBuckets': exponentialBuckets.toJson(),
-        if (linearBuckets != null) 'linearBuckets': linearBuckets.toJson(),
-        if (maximum != null) 'maximum': maximum,
-        if (mean != null) 'mean': mean,
-        if (minimum != null) 'minimum': minimum,
+          'exponentialBuckets': exponentialBuckets!.toJson(),
+        if (linearBuckets != null) 'linearBuckets': linearBuckets!.toJson(),
+        if (maximum != null) 'maximum': maximum!,
+        if (mean != null) 'mean': mean!,
+        if (minimum != null) 'minimum': minimum!,
         if (sumOfSquaredDeviation != null)
-          'sumOfSquaredDeviation': sumOfSquaredDeviation,
+          'sumOfSquaredDeviation': sumOfSquaredDeviation!,
       };
 }
 
@@ -3743,7 +3622,7 @@
   /// number lower bound upper bound i == 0 (underflow) -inf bound\[i\] 0 < i <
   /// bound_size() bound\[i-1\] bound\[i\] i == bound_size() (overflow)
   /// bound\[i-1\] +inf
-  core.List<core.double> bounds;
+  core.List<core.double>? bounds;
 
   GoogleApiServicecontrolV1ExplicitBuckets();
 
@@ -3755,8 +3634,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bounds != null) 'bounds': bounds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bounds != null) 'bounds': bounds!,
       };
 }
 
@@ -3767,20 +3646,20 @@
   /// num_finite_buckets inclusive.
   ///
   /// Must be larger than 1.0.
-  core.double growthFactor;
+  core.double? growthFactor;
 
   /// The number of finite buckets.
   ///
   /// With the underflow and overflow buckets, the total number of buckets is
   /// `num_finite_buckets` + 2. See comments on `bucket_options` for details.
-  core.int numFiniteBuckets;
+  core.int? numFiniteBuckets;
 
   /// The i'th exponential bucket covers the interval \[scale *
   /// growth_factor^(i-1), scale * growth_factor^i) where i ranges from 1 to
   /// num_finite_buckets inclusive.
   ///
   /// Must be > 0.
-  core.double scale;
+  core.double? scale;
 
   GoogleApiServicecontrolV1ExponentialBuckets();
 
@@ -3796,10 +3675,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (growthFactor != null) 'growthFactor': growthFactor,
-        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets,
-        if (scale != null) 'scale': scale,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (growthFactor != null) 'growthFactor': growthFactor!,
+        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets!,
+        if (scale != null) 'scale': scale!,
       };
 }
 
@@ -3811,72 +3690,72 @@
   /// The number of HTTP response bytes inserted into cache.
   ///
   /// Set only when a cache fill was attempted.
-  core.String cacheFillBytes;
+  core.String? cacheFillBytes;
 
   /// Whether or not an entity was served from cache (with or without
   /// validation).
-  core.bool cacheHit;
+  core.bool? cacheHit;
 
   /// Whether or not a cache lookup was attempted.
-  core.bool cacheLookup;
+  core.bool? cacheLookup;
 
   /// Whether or not the response was validated with the origin server before
   /// being served from cache.
   ///
   /// This field is only meaningful if `cache_hit` is True.
-  core.bool cacheValidatedWithOriginServer;
+  core.bool? cacheValidatedWithOriginServer;
 
   /// The request processing latency on the server, from the time the request
   /// was received until the response was sent.
-  core.String latency;
+  core.String? latency;
 
   /// Protocol used for the request.
   ///
   /// Examples: "HTTP/1.1", "HTTP/2", "websocket"
-  core.String protocol;
+  core.String? protocol;
 
   /// The referer URL of the request, as defined in
   /// [HTTP/1.1 Header Field Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
-  core.String referer;
+  core.String? referer;
 
   /// The IP address (IPv4 or IPv6) of the client that issued the HTTP request.
   ///
   /// Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`.
-  core.String remoteIp;
+  core.String? remoteIp;
 
   /// The request method.
   ///
   /// Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`.
-  core.String requestMethod;
+  core.String? requestMethod;
 
   /// The size of the HTTP request message in bytes, including the request
   /// headers and the request body.
-  core.String requestSize;
+  core.String? requestSize;
 
   /// The scheme (http, https), the host name, the path, and the query portion
   /// of the URL that was requested.
   ///
   /// Example: `"http://example.com/some/info?color=red"`.
-  core.String requestUrl;
+  core.String? requestUrl;
 
   /// The size of the HTTP response message sent back to the client, in bytes,
   /// including the response headers and the response body.
-  core.String responseSize;
+  core.String? responseSize;
 
   /// The IP address (IPv4 or IPv6) of the origin server that the request was
   /// sent to.
-  core.String serverIp;
+  core.String? serverIp;
 
   /// The response code indicating the status of the response.
   ///
   /// Examples: 200, 404.
-  core.int status;
+  core.int? status;
 
   /// The user agent sent by the client.
   ///
   /// Example: `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET
   /// CLR 1.0.3705)"`.
-  core.String userAgent;
+  core.String? userAgent;
 
   GoogleApiServicecontrolV1HttpRequest();
 
@@ -3929,23 +3808,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cacheFillBytes != null) 'cacheFillBytes': cacheFillBytes,
-        if (cacheHit != null) 'cacheHit': cacheHit,
-        if (cacheLookup != null) 'cacheLookup': cacheLookup,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cacheFillBytes != null) 'cacheFillBytes': cacheFillBytes!,
+        if (cacheHit != null) 'cacheHit': cacheHit!,
+        if (cacheLookup != null) 'cacheLookup': cacheLookup!,
         if (cacheValidatedWithOriginServer != null)
-          'cacheValidatedWithOriginServer': cacheValidatedWithOriginServer,
-        if (latency != null) 'latency': latency,
-        if (protocol != null) 'protocol': protocol,
-        if (referer != null) 'referer': referer,
-        if (remoteIp != null) 'remoteIp': remoteIp,
-        if (requestMethod != null) 'requestMethod': requestMethod,
-        if (requestSize != null) 'requestSize': requestSize,
-        if (requestUrl != null) 'requestUrl': requestUrl,
-        if (responseSize != null) 'responseSize': responseSize,
-        if (serverIp != null) 'serverIp': serverIp,
-        if (status != null) 'status': status,
-        if (userAgent != null) 'userAgent': userAgent,
+          'cacheValidatedWithOriginServer': cacheValidatedWithOriginServer!,
+        if (latency != null) 'latency': latency!,
+        if (protocol != null) 'protocol': protocol!,
+        if (referer != null) 'referer': referer!,
+        if (remoteIp != null) 'remoteIp': remoteIp!,
+        if (requestMethod != null) 'requestMethod': requestMethod!,
+        if (requestSize != null) 'requestSize': requestSize!,
+        if (requestUrl != null) 'requestUrl': requestUrl!,
+        if (responseSize != null) 'responseSize': responseSize!,
+        if (serverIp != null) 'serverIp': serverIp!,
+        if (status != null) 'status': status!,
+        if (userAgent != null) 'userAgent': userAgent!,
       };
 }
 
@@ -3955,19 +3834,19 @@
   ///
   /// With the underflow and overflow buckets, the total number of buckets is
   /// `num_finite_buckets` + 2. See comments on `bucket_options` for details.
-  core.int numFiniteBuckets;
+  core.int? numFiniteBuckets;
 
   /// The i'th linear bucket covers the interval \[offset + (i-1) * width,
   /// offset + i * width) where i ranges from 1 to num_finite_buckets,
   /// inclusive.
-  core.double offset;
+  core.double? offset;
 
   /// The i'th linear bucket covers the interval \[offset + (i-1) * width,
   /// offset + i * width) where i ranges from 1 to num_finite_buckets,
   /// inclusive.
   ///
   /// Must be strictly positive.
-  core.double width;
+  core.double? width;
 
   GoogleApiServicecontrolV1LinearBuckets();
 
@@ -3983,10 +3862,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets,
-        if (offset != null) 'offset': offset,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (numFiniteBuckets != null) 'numFiniteBuckets': numFiniteBuckets!,
+        if (offset != null) 'offset': offset!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -3996,29 +3875,29 @@
   /// applicable.
   ///
   /// Optional.
-  GoogleApiServicecontrolV1HttpRequest httpRequest;
+  GoogleApiServicecontrolV1HttpRequest? httpRequest;
 
   /// A unique ID for the log entry used for deduplication.
   ///
   /// If omitted, the implementation will generate one based on operation_id.
-  core.String insertId;
+  core.String? insertId;
 
   /// A set of user-defined (key, value) data that provides additional
   /// information about the log entry.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The log to which this log entry belongs.
   ///
   /// Examples: `"syslog"`, `"book_log"`.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// Information about an operation associated with the log entry, if
   /// applicable.
   ///
   /// Optional.
-  GoogleApiServicecontrolV1LogEntryOperation operation;
+  GoogleApiServicecontrolV1LogEntryOperation? operation;
 
   /// The log entry payload, represented as a protocol buffer that is expressed
   /// as a JSON object.
@@ -4027,7 +3906,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> protoPayload;
+  core.Map<core.String, core.Object>? protoPayload;
 
   /// The severity of the log entry.
   ///
@@ -4045,27 +3924,27 @@
   /// outages.
   /// - "ALERT" : (700) A person must take an action immediately.
   /// - "EMERGENCY" : (800) One or more systems are unusable.
-  core.String severity;
+  core.String? severity;
 
   /// Source code location information associated with the log entry, if any.
   ///
   /// Optional.
-  GoogleApiServicecontrolV1LogEntrySourceLocation sourceLocation;
+  GoogleApiServicecontrolV1LogEntrySourceLocation? sourceLocation;
 
   /// The log entry payload, represented as a structure that is expressed as a
   /// JSON object.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> structPayload;
+  core.Map<core.String, core.Object>? structPayload;
 
   /// The log entry payload, represented as a Unicode string (UTF-8).
-  core.String textPayload;
+  core.String? textPayload;
 
   /// The time the event described by the log entry occurred.
   ///
   /// If omitted, defaults to operation start time.
-  core.String timestamp;
+  core.String? timestamp;
 
   /// Resource name of the trace associated with the log entry, if any.
   ///
@@ -4074,7 +3953,7 @@
   /// `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
   ///
   /// Optional.
-  core.String trace;
+  core.String? trace;
 
   GoogleApiServicecontrolV1LogEntry();
 
@@ -4140,19 +4019,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (httpRequest != null) 'httpRequest': httpRequest.toJson(),
-        if (insertId != null) 'insertId': insertId,
-        if (labels != null) 'labels': labels,
-        if (name != null) 'name': name,
-        if (operation != null) 'operation': operation.toJson(),
-        if (protoPayload != null) 'protoPayload': protoPayload,
-        if (severity != null) 'severity': severity,
-        if (sourceLocation != null) 'sourceLocation': sourceLocation.toJson(),
-        if (structPayload != null) 'structPayload': structPayload,
-        if (textPayload != null) 'textPayload': textPayload,
-        if (timestamp != null) 'timestamp': timestamp,
-        if (trace != null) 'trace': trace,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (httpRequest != null) 'httpRequest': httpRequest!.toJson(),
+        if (insertId != null) 'insertId': insertId!,
+        if (labels != null) 'labels': labels!,
+        if (name != null) 'name': name!,
+        if (operation != null) 'operation': operation!.toJson(),
+        if (protoPayload != null) 'protoPayload': protoPayload!,
+        if (severity != null) 'severity': severity!,
+        if (sourceLocation != null) 'sourceLocation': sourceLocation!.toJson(),
+        if (structPayload != null) 'structPayload': structPayload!,
+        if (textPayload != null) 'textPayload': textPayload!,
+        if (timestamp != null) 'timestamp': timestamp!,
+        if (trace != null) 'trace': trace!,
       };
 }
 
@@ -4162,7 +4041,7 @@
   /// Set this to True if this is the first log entry in the operation.
   ///
   /// Optional.
-  core.bool first;
+  core.bool? first;
 
   /// An arbitrary operation identifier.
   ///
@@ -4170,12 +4049,12 @@
   /// operation.
   ///
   /// Optional.
-  core.String id;
+  core.String? id;
 
   /// Set this to True if this is the last log entry in the operation.
   ///
   /// Optional.
-  core.bool last;
+  core.bool? last;
 
   /// An arbitrary producer identifier.
   ///
@@ -4184,7 +4063,7 @@
   /// `"github.com/MyProject/MyApplication"`.
   ///
   /// Optional.
-  core.String producer;
+  core.String? producer;
 
   GoogleApiServicecontrolV1LogEntryOperation();
 
@@ -4203,11 +4082,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (first != null) 'first': first,
-        if (id != null) 'id': id,
-        if (last != null) 'last': last,
-        if (producer != null) 'producer': producer,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (first != null) 'first': first!,
+        if (id != null) 'id': id!,
+        if (last != null) 'last': last!,
+        if (producer != null) 'producer': producer!,
       };
 }
 
@@ -4220,7 +4099,7 @@
   /// fully-qualified name.
   ///
   /// Optional.
-  core.String file;
+  core.String? file;
 
   /// Human-readable name of the function or method being invoked, with optional
   /// context such as the class or package name.
@@ -4231,14 +4110,14 @@
   /// `function` (Python).
   ///
   /// Optional.
-  core.String function;
+  core.String? function;
 
   /// Line within the source file.
   ///
   /// 1-based; 0 indicates no line number available.
   ///
   /// Optional.
-  core.String line;
+  core.String? line;
 
   GoogleApiServicecontrolV1LogEntrySourceLocation();
 
@@ -4254,43 +4133,43 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (file != null) 'file': file,
-        if (function != null) 'function': function,
-        if (line != null) 'line': line,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (file != null) 'file': file!,
+        if (function != null) 'function': function!,
+        if (line != null) 'line': line!,
       };
 }
 
 /// Represents a single metric value.
 class GoogleApiServicecontrolV1MetricValue {
   /// A boolean value.
-  core.bool boolValue;
+  core.bool? boolValue;
 
   /// A distribution value.
-  GoogleApiServicecontrolV1Distribution distributionValue;
+  GoogleApiServicecontrolV1Distribution? distributionValue;
 
   /// A double precision floating point value.
-  core.double doubleValue;
+  core.double? doubleValue;
 
   /// The end of the time period over which this metric value's measurement
   /// applies.
   ///
   /// If not specified, google.api.servicecontrol.v1.Operation.end_time will be
   /// used.
-  core.String endTime;
+  core.String? endTime;
 
   /// A signed 64-bit integer value.
-  core.String int64Value;
+  core.String? int64Value;
 
   /// The labels describing the metric value.
   ///
   /// See comments on google.api.servicecontrol.v1.Operation.labels for the
   /// overriding relationship. Note that this map must not contain monitored
   /// resource labels.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// A money value.
-  Money moneyValue;
+  Money? moneyValue;
 
   /// The start of the time period over which this metric value's measurement
   /// applies.
@@ -4299,10 +4178,10 @@
   /// (cumulative, delta, and gauge). See the metric definition documentation in
   /// the service configuration for details. If not specified,
   /// google.api.servicecontrol.v1.Operation.start_time will be used.
-  core.String startTime;
+  core.String? startTime;
 
   /// A text string value.
-  core.String stringValue;
+  core.String? stringValue;
 
   GoogleApiServicecontrolV1MetricValue();
 
@@ -4344,17 +4223,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (boolValue != null) 'boolValue': boolValue,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (boolValue != null) 'boolValue': boolValue!,
         if (distributionValue != null)
-          'distributionValue': distributionValue.toJson(),
-        if (doubleValue != null) 'doubleValue': doubleValue,
-        if (endTime != null) 'endTime': endTime,
-        if (int64Value != null) 'int64Value': int64Value,
-        if (labels != null) 'labels': labels,
-        if (moneyValue != null) 'moneyValue': moneyValue.toJson(),
-        if (startTime != null) 'startTime': startTime,
-        if (stringValue != null) 'stringValue': stringValue,
+          'distributionValue': distributionValue!.toJson(),
+        if (doubleValue != null) 'doubleValue': doubleValue!,
+        if (endTime != null) 'endTime': endTime!,
+        if (int64Value != null) 'int64Value': int64Value!,
+        if (labels != null) 'labels': labels!,
+        if (moneyValue != null) 'moneyValue': moneyValue!.toJson(),
+        if (startTime != null) 'startTime': startTime!,
+        if (stringValue != null) 'stringValue': stringValue!,
       };
 }
 
@@ -4364,10 +4243,10 @@
 /// end time, and label values.
 class GoogleApiServicecontrolV1MetricValueSet {
   /// The metric name defined in the service configuration.
-  core.String metricName;
+  core.String? metricName;
 
   /// The values in this metric.
-  core.List<GoogleApiServicecontrolV1MetricValue> metricValues;
+  core.List<GoogleApiServicecontrolV1MetricValue>? metricValues;
 
   GoogleApiServicecontrolV1MetricValueSet();
 
@@ -4384,10 +4263,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (metricName != null) 'metricName': metricName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (metricName != null) 'metricName': metricName!,
         if (metricValues != null)
-          'metricValues': metricValues.map((value) => value.toJson()).toList(),
+          'metricValues': metricValues!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4401,19 +4280,19 @@
   /// project:PROJECT_ID, - project`_`number:PROJECT_NUMBER, -
   /// projects/PROJECT_ID or PROJECT_NUMBER, - folders/FOLDER_NUMBER, -
   /// organizations/ORGANIZATION_NUMBER, - api`_`key:API_KEY.
-  core.String consumerId;
+  core.String? consumerId;
 
   /// End time of the operation.
   ///
   /// Required when the operation is used in ServiceController.Report, but
   /// optional when the operation is used in ServiceController.Check.
-  core.String endTime;
+  core.String? endTime;
 
   /// Unimplemented.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> extensions;
+  core.List<core.Map<core.String, core.Object>>? extensions;
 
   /// DO NOT USE.
   ///
@@ -4428,7 +4307,7 @@
   /// additional validation logic. It should only be used during the onboarding
   /// process. It is only available to Google internal services, and the service
   /// must be approved by chemist-dev@google.com in order to use this level.
-  core.String importance;
+  core.String? importance;
 
   /// Labels describing the operation.
   ///
@@ -4443,10 +4322,10 @@
   /// to handle the API request (e.g. ESP), -
   /// `servicecontrol.googleapis.com/platform` describing the platform where the
   /// API is served, such as App Engine, Compute Engine, or Kubernetes Engine.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// Represents information to be logged.
-  core.List<GoogleApiServicecontrolV1LogEntry> logEntries;
+  core.List<GoogleApiServicecontrolV1LogEntry>? logEntries;
 
   /// Represents information about this operation.
   ///
@@ -4457,7 +4336,7 @@
   /// that have the same metric names and identical label value combinations. If
   /// a request has such duplicated MetricValue instances, the entire request is
   /// rejected with an invalid argument error.
-  core.List<GoogleApiServicecontrolV1MetricValueSet> metricValueSets;
+  core.List<GoogleApiServicecontrolV1MetricValueSet>? metricValueSets;
 
   /// Identity of the operation.
   ///
@@ -4468,28 +4347,28 @@
   /// computed from existing information and an idempotent id is desirable for
   /// deduplication purpose, UUID version 5 is recommended. See RFC 4122 for
   /// details.
-  core.String operationId;
+  core.String? operationId;
 
   /// Fully qualified name of the operation.
   ///
   /// Reserved for future use.
-  core.String operationName;
+  core.String? operationName;
 
   /// Represents the properties needed for quota check.
   ///
   /// Applicable only if this operation is for a quota check request. If this is
   /// not specified, no quota check will be performed.
-  GoogleApiServicecontrolV1QuotaProperties quotaProperties;
+  GoogleApiServicecontrolV1QuotaProperties? quotaProperties;
 
   /// The resources that are involved in the operation.
   ///
   /// The maximum supported number of entries in this field is 100.
-  core.List<GoogleApiServicecontrolV1ResourceInfo> resources;
+  core.List<GoogleApiServicecontrolV1ResourceInfo>? resources;
 
   /// Start time of the operation.
   ///
   /// Required.
-  core.String startTime;
+  core.String? startTime;
 
   /// A list of Cloud Trace spans.
   ///
@@ -4497,13 +4376,13 @@
   /// be either the produce or the consumer project.
   ///
   /// Unimplemented.
-  core.List<GoogleApiServicecontrolV1TraceSpan> traceSpans;
+  core.List<GoogleApiServicecontrolV1TraceSpan>? traceSpans;
 
   /// Private Preview.
   ///
   /// This feature is only available for approved services. User defined labels
   /// for the resource that this operation is associated with.
-  core.Map<core.String, core.String> userLabels;
+  core.Map<core.String, core.String>? userLabels;
 
   GoogleApiServicecontrolV1Operation();
 
@@ -4590,27 +4469,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (consumerId != null) 'consumerId': consumerId,
-        if (endTime != null) 'endTime': endTime,
-        if (extensions != null) 'extensions': extensions,
-        if (importance != null) 'importance': importance,
-        if (labels != null) 'labels': labels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (consumerId != null) 'consumerId': consumerId!,
+        if (endTime != null) 'endTime': endTime!,
+        if (extensions != null) 'extensions': extensions!,
+        if (importance != null) 'importance': importance!,
+        if (labels != null) 'labels': labels!,
         if (logEntries != null)
-          'logEntries': logEntries.map((value) => value.toJson()).toList(),
+          'logEntries': logEntries!.map((value) => value.toJson()).toList(),
         if (metricValueSets != null)
           'metricValueSets':
-              metricValueSets.map((value) => value.toJson()).toList(),
-        if (operationId != null) 'operationId': operationId,
-        if (operationName != null) 'operationName': operationName,
+              metricValueSets!.map((value) => value.toJson()).toList(),
+        if (operationId != null) 'operationId': operationId!,
+        if (operationName != null) 'operationName': operationName!,
         if (quotaProperties != null)
-          'quotaProperties': quotaProperties.toJson(),
+          'quotaProperties': quotaProperties!.toJson(),
         if (resources != null)
-          'resources': resources.map((value) => value.toJson()).toList(),
-        if (startTime != null) 'startTime': startTime,
+          'resources': resources!.map((value) => value.toJson()).toList(),
+        if (startTime != null) 'startTime': startTime!,
         if (traceSpans != null)
-          'traceSpans': traceSpans.map((value) => value.toJson()).toList(),
-        if (userLabels != null) 'userLabels': userLabels,
+          'traceSpans': traceSpans!.map((value) => value.toJson()).toList(),
+        if (userLabels != null) 'userLabels': userLabels!,
       };
 }
 
@@ -4628,7 +4507,7 @@
   /// enough quota. No lock is placed on the checked tokens neither.
   /// - "RELEASE" : Increases available quota by the operation cost specified
   /// for the operation.
-  core.String quotaMode;
+  core.String? quotaMode;
 
   GoogleApiServicecontrolV1QuotaProperties();
 
@@ -4638,8 +4517,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (quotaMode != null) 'quotaMode': quotaMode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (quotaMode != null) 'quotaMode': quotaMode!,
       };
 }
 
@@ -4653,21 +4532,21 @@
   /// report. There is no limit on the number of operations in the same
   /// ReportRequest, however the ReportRequest size should be no larger than
   /// 1MB. See ReportResponse.report_errors for partial failure behavior.
-  core.List<GoogleApiServicecontrolV1Operation> operations;
+  core.List<GoogleApiServicecontrolV1Operation>? operations;
 
   /// Specifies which version of service config should be used to process the
   /// request.
   ///
   /// If unspecified or no matching version can be found, the latest one will be
   /// used.
-  core.String serviceConfigId;
+  core.String? serviceConfigId;
 
   /// The service name as specified in its service configuration.
   ///
   /// For example, `"pubsub.googleapis.com"`. See
   /// [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service)
   /// for the definition of a service name.
-  core.String serviceName;
+  core.String? serviceName;
 
   GoogleApiServicecontrolV1ReportRequest();
 
@@ -4687,11 +4566,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
-        if (serviceConfigId != null) 'serviceConfigId': serviceConfigId,
-        if (serviceName != null) 'serviceName': serviceName,
+          'operations': operations!.map((value) => value.toJson()).toList(),
+        if (serviceConfigId != null) 'serviceConfigId': serviceConfigId!,
+        if (serviceName != null) 'serviceName': serviceName!,
       };
 }
 
@@ -4701,19 +4580,19 @@
   ///
   /// Must be in one of the following formats: - `projects/` - `folders/` -
   /// `organizations/`
-  core.String resourceContainer;
+  core.String? resourceContainer;
 
   /// The location of the resource.
   ///
   /// If not empty, the resource will be checked against location policy. The
   /// value must be a valid zone, region or multiregion. For example:
   /// "europe-west4" or "northamerica-northeast1-a"
-  core.String resourceLocation;
+  core.String? resourceLocation;
 
   /// Name of the resource.
   ///
   /// This is used for auditing purposes.
-  core.String resourceName;
+  core.String? resourceName;
 
   GoogleApiServicecontrolV1ResourceInfo();
 
@@ -4729,10 +4608,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceContainer != null) 'resourceContainer': resourceContainer,
-        if (resourceLocation != null) 'resourceLocation': resourceLocation,
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceContainer != null) 'resourceContainer': resourceContainer!,
+        if (resourceLocation != null) 'resourceLocation': resourceLocation!,
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
 
@@ -4747,13 +4626,13 @@
   /// A set of attributes on the span.
   ///
   /// You can have up to 32 attributes per span.
-  GoogleApiServicecontrolV1Attributes attributes;
+  GoogleApiServicecontrolV1Attributes? attributes;
 
   /// An optional number of child spans that were generated while this span was
   /// active.
   ///
   /// If set, allows implementation to detect missing child spans.
-  core.int childSpanCount;
+  core.int? childSpanCount;
 
   /// A description of the span's operation (up to 128 bytes).
   ///
@@ -4762,14 +4641,14 @@
   /// file name and a line number where the operation is called. A best practice
   /// is to use the same display name within an application and at the same call
   /// point. This makes it easier to correlate spans in different traces.
-  GoogleApiServicecontrolV1TruncatableString displayName;
+  GoogleApiServicecontrolV1TruncatableString? displayName;
 
   /// The end time of the span.
   ///
   /// On the client side, this is the time kept by the local machine where the
   /// span execution ends. On the server side, this is the time when the server
   /// application handler stops running.
-  core.String endTime;
+  core.String? endTime;
 
   /// The resource name of the span in the following format:
   /// projects/\[PROJECT_ID\]/traces/\[TRACE_ID\]/spans/SPAN_ID is a unique
@@ -4778,22 +4657,22 @@
   ///
   /// \[SPAN_ID\] is a unique identifier for a span within a trace; it is a
   /// 16-character hexadecimal encoding of an 8-byte array.
-  core.String name;
+  core.String? name;
 
   /// The \[SPAN_ID\] of this span's parent span.
   ///
   /// If this is a root span, then this field must be empty.
-  core.String parentSpanId;
+  core.String? parentSpanId;
 
   /// (Optional) Set this parameter to indicate whether this span is in the same
   /// process as its parent.
   ///
   /// If you do not set this parameter, Stackdriver Trace is unable to take
   /// advantage of this helpful information.
-  core.bool sameProcessAsParentSpan;
+  core.bool? sameProcessAsParentSpan;
 
   /// The \[SPAN_ID\] portion of the span's resource name.
-  core.String spanId;
+  core.String? spanId;
 
   /// Distinguishes between spans generated in a particular context.
   ///
@@ -4815,17 +4694,17 @@
   /// message from a broker. Unlike client and server, there is no direct
   /// critical path latency relationship between producer and consumer spans
   /// (e.g. receiving a message from a pubsub service subscription).
-  core.String spanKind;
+  core.String? spanKind;
 
   /// The start time of the span.
   ///
   /// On the client side, this is the time kept by the local machine where the
   /// span execution starts. On the server side, this is the time when the
   /// server's application handler starts running.
-  core.String startTime;
+  core.String? startTime;
 
   /// An optional final status for this span.
-  Status status;
+  Status? status;
 
   GoogleApiServicecontrolV1TraceSpan();
 
@@ -4868,19 +4747,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (attributes != null) 'attributes': attributes.toJson(),
-        if (childSpanCount != null) 'childSpanCount': childSpanCount,
-        if (displayName != null) 'displayName': displayName.toJson(),
-        if (endTime != null) 'endTime': endTime,
-        if (name != null) 'name': name,
-        if (parentSpanId != null) 'parentSpanId': parentSpanId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (attributes != null) 'attributes': attributes!.toJson(),
+        if (childSpanCount != null) 'childSpanCount': childSpanCount!,
+        if (displayName != null) 'displayName': displayName!.toJson(),
+        if (endTime != null) 'endTime': endTime!,
+        if (name != null) 'name': name!,
+        if (parentSpanId != null) 'parentSpanId': parentSpanId!,
         if (sameProcessAsParentSpan != null)
-          'sameProcessAsParentSpan': sameProcessAsParentSpan,
-        if (spanId != null) 'spanId': spanId,
-        if (spanKind != null) 'spanKind': spanKind,
-        if (startTime != null) 'startTime': startTime,
-        if (status != null) 'status': status.toJson(),
+          'sameProcessAsParentSpan': sameProcessAsParentSpan!,
+        if (spanId != null) 'spanId': spanId!,
+        if (spanKind != null) 'spanKind': spanKind!,
+        if (startTime != null) 'startTime': startTime!,
+        if (status != null) 'status': status!.toJson(),
       };
 }
 
@@ -4889,7 +4768,7 @@
   /// The number of bytes removed from the original string.
   ///
   /// If this value is 0, then the string was not shortened.
-  core.int truncatedByteCount;
+  core.int? truncatedByteCount;
 
   /// The shortened string.
   ///
@@ -4898,7 +4777,7 @@
   /// 500-byte string. Truncation always happens on a UTF8 character boundary.
   /// If there are multi-byte characters in the string, then the length of the
   /// shortened string might be less than the size limit.
-  core.String value;
+  core.String? value;
 
   GoogleApiServicecontrolV1TruncatableString();
 
@@ -4911,10 +4790,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (truncatedByteCount != null)
-          'truncatedByteCount': truncatedByteCount,
-        if (value != null) 'value': value,
+          'truncatedByteCount': truncatedByteCount!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -4925,12 +4804,12 @@
   /// CertificateConfig.
   ///
   /// Required.
-  core.bool allowConfigBasedIssuance;
+  core.bool? allowConfigBasedIssuance;
 
   /// When true, allows callers to create Certificates by specifying a CSR.
   ///
   /// Required.
-  core.bool allowCsrBasedIssuance;
+  core.bool? allowCsrBasedIssuance;
 
   IssuanceModes();
 
@@ -4943,11 +4822,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (allowConfigBasedIssuance != null)
-          'allowConfigBasedIssuance': allowConfigBasedIssuance,
+          'allowConfigBasedIssuance': allowConfigBasedIssuance!,
         if (allowCsrBasedIssuance != null)
-          'allowCsrBasedIssuance': allowCsrBasedIssuance,
+          'allowCsrBasedIssuance': allowCsrBasedIssuance!,
       };
 }
 
@@ -4957,7 +4836,7 @@
   /// information access" X.509 extension.
   ///
   /// Required.
-  core.bool includeCaCertUrl;
+  core.bool? includeCaCertUrl;
 
   /// When true, includes a URL to the CRL corresponding to certificates issued
   /// from a CertificateAuthority.
@@ -4966,7 +4845,7 @@
   /// daily. CRLs are also rebuilt shortly after a certificate is revoked.
   ///
   /// Required.
-  core.bool includeCrlAccessUrl;
+  core.bool? includeCrlAccessUrl;
 
   IssuingOptions();
 
@@ -4979,10 +4858,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (includeCaCertUrl != null) 'includeCaCertUrl': includeCaCertUrl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (includeCaCertUrl != null) 'includeCaCertUrl': includeCaCertUrl!,
         if (includeCrlAccessUrl != null)
-          'includeCrlAccessUrl': includeCrlAccessUrl,
+          'includeCrlAccessUrl': includeCrlAccessUrl!,
       };
 }
 
@@ -4993,7 +4872,7 @@
   /// This is most likely the 160 bit SHA-1 hash of the public key.
   ///
   /// Optional.
-  core.String keyId;
+  core.String? keyId;
 
   KeyId();
 
@@ -5003,8 +4882,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyId != null) 'keyId': keyId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyId != null) 'keyId': keyId!,
       };
 }
 
@@ -5012,14 +4891,14 @@
 /// certificate.
 class KeyUsage {
   /// Describes high-level ways in which a key may be used.
-  KeyUsageOptions baseKeyUsage;
+  KeyUsageOptions? baseKeyUsage;
 
   /// Detailed scenarios in which a key may be used.
-  ExtendedKeyUsageOptions extendedKeyUsage;
+  ExtendedKeyUsageOptions? extendedKeyUsage;
 
   /// Used to describe extended key usages that are not listed in the
   /// KeyUsage.ExtendedKeyUsageOptions message.
-  core.List<ObjectId> unknownExtendedKeyUsages;
+  core.List<ObjectId>? unknownExtendedKeyUsages;
 
   KeyUsage();
 
@@ -5041,13 +4920,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (baseKeyUsage != null) 'baseKeyUsage': baseKeyUsage.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (baseKeyUsage != null) 'baseKeyUsage': baseKeyUsage!.toJson(),
         if (extendedKeyUsage != null)
-          'extendedKeyUsage': extendedKeyUsage.toJson(),
+          'extendedKeyUsage': extendedKeyUsage!.toJson(),
         if (unknownExtendedKeyUsages != null)
           'unknownExtendedKeyUsages':
-              unknownExtendedKeyUsages.map((value) => value.toJson()).toList(),
+              unknownExtendedKeyUsages!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5055,33 +4934,33 @@
 /// https://tools.ietf.org/html/rfc5280#section-4.2.1.3.
 class KeyUsageOptions {
   /// The key may be used to sign certificates.
-  core.bool certSign;
+  core.bool? certSign;
 
   /// The key may be used for cryptographic commitments.
   ///
   /// Note that this may also be referred to as "non-repudiation".
-  core.bool contentCommitment;
+  core.bool? contentCommitment;
 
   /// The key may be used sign certificate revocation lists.
-  core.bool crlSign;
+  core.bool? crlSign;
 
   /// The key may be used to encipher data.
-  core.bool dataEncipherment;
+  core.bool? dataEncipherment;
 
   /// The key may be used to decipher only.
-  core.bool decipherOnly;
+  core.bool? decipherOnly;
 
   /// The key may be used for digital signatures.
-  core.bool digitalSignature;
+  core.bool? digitalSignature;
 
   /// The key may be used to encipher only.
-  core.bool encipherOnly;
+  core.bool? encipherOnly;
 
   /// The key may be used in a key agreement protocol.
-  core.bool keyAgreement;
+  core.bool? keyAgreement;
 
   /// The key may be used to encipher other keys.
-  core.bool keyEncipherment;
+  core.bool? keyEncipherment;
 
   KeyUsageOptions();
 
@@ -5115,16 +4994,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (certSign != null) 'certSign': certSign,
-        if (contentCommitment != null) 'contentCommitment': contentCommitment,
-        if (crlSign != null) 'crlSign': crlSign,
-        if (dataEncipherment != null) 'dataEncipherment': dataEncipherment,
-        if (decipherOnly != null) 'decipherOnly': decipherOnly,
-        if (digitalSignature != null) 'digitalSignature': digitalSignature,
-        if (encipherOnly != null) 'encipherOnly': encipherOnly,
-        if (keyAgreement != null) 'keyAgreement': keyAgreement,
-        if (keyEncipherment != null) 'keyEncipherment': keyEncipherment,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (certSign != null) 'certSign': certSign!,
+        if (contentCommitment != null) 'contentCommitment': contentCommitment!,
+        if (crlSign != null) 'crlSign': crlSign!,
+        if (dataEncipherment != null) 'dataEncipherment': dataEncipherment!,
+        if (decipherOnly != null) 'decipherOnly': decipherOnly!,
+        if (digitalSignature != null) 'digitalSignature': digitalSignature!,
+        if (encipherOnly != null) 'encipherOnly': encipherOnly!,
+        if (keyAgreement != null) 'keyAgreement': keyAgreement!,
+        if (keyEncipherment != null) 'keyEncipherment': keyEncipherment!,
       };
 }
 
@@ -5152,7 +5031,7 @@
   /// CryptoKeyVersionAlgorithm.RSA_SIGN_PKCS1_4096_SHA256
   /// - "EC_P256_SHA256" : maps to CryptoKeyVersionAlgorithm.EC_SIGN_P256_SHA256
   /// - "EC_P384_SHA384" : maps to CryptoKeyVersionAlgorithm.EC_SIGN_P384_SHA384
-  core.String algorithm;
+  core.String? algorithm;
 
   /// The resource name for an existing Cloud KMS CryptoKeyVersion in the format
   /// `projects / * /locations / * /keyRings / * /cryptoKeys / *
@@ -5162,7 +5041,7 @@
   /// properties.
   ///
   /// Required.
-  core.String cloudKmsKeyVersion;
+  core.String? cloudKmsKeyVersion;
 
   KeyVersionSpec();
 
@@ -5175,26 +5054,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (algorithm != null) 'algorithm': algorithm,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (algorithm != null) 'algorithm': algorithm!,
         if (cloudKmsKeyVersion != null)
-          'cloudKmsKeyVersion': cloudKmsKeyVersion,
+          'cloudKmsKeyVersion': cloudKmsKeyVersion!,
       };
 }
 
 /// Response message for CertificateAuthorityService.ListCertificateAuthorities.
 class ListCertificateAuthoritiesResponse {
   /// The list of CertificateAuthorities.
-  core.List<CertificateAuthority> certificateAuthorities;
+  core.List<CertificateAuthority>? certificateAuthorities;
 
   /// A token to retrieve next page of results.
   ///
   /// Pass this value in ListCertificateAuthoritiesRequest.next_page_token to
   /// retrieve the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of locations (e.g. "us-west1") that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListCertificateAuthoritiesResponse();
 
@@ -5215,12 +5094,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (certificateAuthorities != null)
           'certificateAuthorities':
-              certificateAuthorities.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+              certificateAuthorities!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
@@ -5228,16 +5107,16 @@
 /// CertificateAuthorityService.ListCertificateRevocationLists.
 class ListCertificateRevocationListsResponse {
   /// The list of CertificateRevocationLists.
-  core.List<CertificateRevocationList> certificateRevocationLists;
+  core.List<CertificateRevocationList>? certificateRevocationLists;
 
   /// A token to retrieve next page of results.
   ///
   /// Pass this value in ListCertificateRevocationListsRequest.next_page_token
   /// to retrieve the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of locations (e.g. "us-west1") that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListCertificateRevocationListsResponse();
 
@@ -5260,29 +5139,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (certificateRevocationLists != null)
-          'certificateRevocationLists': certificateRevocationLists
+          'certificateRevocationLists': certificateRevocationLists!
               .map((value) => value.toJson())
               .toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
 /// Response message for CertificateAuthorityService.ListCertificates.
 class ListCertificatesResponse {
   /// The list of Certificates.
-  core.List<Certificate> certificates;
+  core.List<Certificate>? certificates;
 
   /// A token to retrieve next page of results.
   ///
   /// Pass this value in ListCertificatesRequest.next_page_token to retrieve the
   /// next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of locations (e.g. "us-west1") that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListCertificatesResponse();
 
@@ -5303,21 +5182,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (certificates != null)
-          'certificates': certificates.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (unreachable != null) 'unreachable': unreachable,
+          'certificates': certificates!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
 /// The response message for Locations.ListLocations.
 class ListLocationsResponse {
   /// A list of locations that matches the specified filter in the request.
-  core.List<Location> locations;
+  core.List<Location>? locations;
 
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListLocationsResponse();
 
@@ -5333,20 +5212,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (locations != null)
-          'locations': locations.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'locations': locations!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class ListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<Operation> operations;
+  core.List<Operation>? operations;
 
   ListOperationsResponse();
 
@@ -5362,10 +5241,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5375,13 +5254,13 @@
   ///
   /// Pass this value in ListReusableConfigsRequest.next_page_token to retrieve
   /// the next page of results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of ReusableConfigs.
-  core.List<ReusableConfig> reusableConfigs;
+  core.List<ReusableConfig>? reusableConfigs;
 
   /// A list of locations (e.g. "us-west1") that could not be reached.
-  core.List<core.String> unreachable;
+  core.List<core.String>? unreachable;
 
   ListReusableConfigsResponse();
 
@@ -5402,12 +5281,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (reusableConfigs != null)
           'reusableConfigs':
-              reusableConfigs.map((value) => value.toJson()).toList(),
-        if (unreachable != null) 'unreachable': unreachable,
+              reusableConfigs!.map((value) => value.toJson()).toList(),
+        if (unreachable != null) 'unreachable': unreachable!,
       };
 }
 
@@ -5416,17 +5295,17 @@
   /// The friendly name for this location, typically a nearby city name.
   ///
   /// For example, "Tokyo".
-  core.String displayName;
+  core.String? displayName;
 
   /// Cross-service attributes for the location.
   ///
   /// For example {"cloud.googleapis.com/region": "us-east1"}
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The canonical id for this location.
   ///
   /// For example: `"us-east1"`.
-  core.String locationId;
+  core.String? locationId;
 
   /// Service-specific metadata.
   ///
@@ -5434,12 +5313,12 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// Resource name for the location, which may vary between implementations.
   ///
   /// For example: `"projects/example-project/locations/us-east1"`
-  core.String name;
+  core.String? name;
 
   Location();
 
@@ -5473,19 +5352,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (labels != null) 'labels': labels,
-        if (locationId != null) 'locationId': locationId,
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (labels != null) 'labels': labels!,
+        if (locationId != null) 'locationId': locationId!,
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
       };
 }
 
 /// Represents an amount of money with its currency type.
 class Money {
   /// The three-letter currency code defined in ISO 4217.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Number of nano (10^-9) units of the amount.
   ///
@@ -5494,12 +5373,12 @@
   /// `nanos` can be positive, zero, or negative. If `units` is negative,
   /// `nanos` must be negative or zero. For example $-1.75 is represented as
   /// `units`=-1 and `nanos`=-750,000,000.
-  core.int nanos;
+  core.int? nanos;
 
   /// The whole units of the amount.
   ///
   /// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-  core.String units;
+  core.String? units;
 
   Money();
 
@@ -5515,10 +5394,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (nanos != null) 'nanos': nanos,
-        if (units != null) 'units': units,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (nanos != null) 'nanos': nanos!,
+        if (units != null) 'units': units!,
       };
 }
 
@@ -5531,7 +5410,7 @@
   /// The most significant parts of the path come first.
   ///
   /// Required.
-  core.List<core.int> objectIdPath;
+  core.List<core.int>? objectIdPath;
 
   ObjectId();
 
@@ -5543,8 +5422,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (objectIdPath != null) 'objectIdPath': objectIdPath,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (objectIdPath != null) 'objectIdPath': objectIdPath!,
       };
 }
 
@@ -5555,10 +5434,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  Status error;
+  Status? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -5569,14 +5448,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -5589,7 +5468,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   Operation();
 
@@ -5624,12 +5503,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -5638,17 +5517,17 @@
   /// API version used to start the operation.
   ///
   /// Output only.
-  core.String apiVersion;
+  core.String? apiVersion;
 
   /// The time the operation was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time the operation finished running.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// Identifies whether the user has requested cancellation of the operation.
   ///
@@ -5657,22 +5536,22 @@
   /// `Code.CANCELLED`.
   ///
   /// Output only.
-  core.bool requestedCancellation;
+  core.bool? requestedCancellation;
 
   /// Human-readable status of the operation, if any.
   ///
   /// Output only.
-  core.String statusMessage;
+  core.String? statusMessage;
 
   /// Server-defined resource path for the target of the operation.
   ///
   /// Output only.
-  core.String target;
+  core.String? target;
 
   /// Name of the verb executed by the operation.
   ///
   /// Output only.
-  core.String verb;
+  core.String? verb;
 
   OperationMetadata();
 
@@ -5700,15 +5579,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiVersion != null) 'apiVersion': apiVersion,
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiVersion != null) 'apiVersion': apiVersion!,
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
         if (requestedCancellation != null)
-          'requestedCancellation': requestedCancellation,
-        if (statusMessage != null) 'statusMessage': statusMessage,
-        if (target != null) 'target': target,
-        if (verb != null) 'verb': verb,
+          'requestedCancellation': requestedCancellation!,
+        if (statusMessage != null) 'statusMessage': statusMessage!,
+        if (target != null) 'target': target!,
+        if (verb != null) 'verb': verb!,
       };
 }
 
@@ -5745,14 +5624,14 @@
 /// [IAM documentation](https://cloud.google.com/iam/docs/).
 class Policy {
   /// Specifies cloud audit logging configuration for this policy.
-  core.List<AuditConfig> auditConfigs;
+  core.List<AuditConfig>? auditConfigs;
 
   /// Associates a list of `members` to a `role`.
   ///
   /// Optionally, may specify a `condition` that determines how and when the
   /// `bindings` are applied. Each of the `bindings` must contain at least one
   /// member.
-  core.List<Binding> bindings;
+  core.List<Binding>? bindings;
 
   /// `etag` is used for optimistic concurrency control as a way to help prevent
   /// simultaneous updates of a policy from overwriting each other.
@@ -5766,8 +5645,8 @@
   /// `etag` field whenever you call `setIamPolicy`. If you omit this field,
   /// then IAM allows you to overwrite a version `3` policy with a version `1`
   /// policy, and all of the conditions in the version `3` policy are lost.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -5791,7 +5670,7 @@
   /// leave the field unset. To learn which resources support conditions in
   /// their IAM policies, see the
   /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
-  core.int version;
+  core.int? version;
 
   Policy();
 
@@ -5816,13 +5695,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (auditConfigs != null)
-          'auditConfigs': auditConfigs.map((value) => value.toJson()).toList(),
+          'auditConfigs': auditConfigs!.map((value) => value.toJson()).toList(),
         if (bindings != null)
-          'bindings': bindings.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
-        if (version != null) 'version': version,
+          'bindings': bindings!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
+        if (version != null) 'version': version!,
       };
 }
 
@@ -5837,8 +5716,8 @@
   /// structure containing an algorithm identifier and a key.
   ///
   /// Required.
-  core.String key;
-  core.List<core.int> get keyAsBytes => convert.base64.decode(key);
+  core.String? key;
+  core.List<core.int> get keyAsBytes => convert.base64.decode(key!);
 
   set keyAsBytes(core.List<core.int> _bytes) {
     key =
@@ -5860,7 +5739,7 @@
   /// [SubjectPublicKeyInfo](https://tools.ietf.org/html/rfc5280#section-4.1)
   /// structure containing a PEM-encoded compressed NIST
   /// P-256/secp256r1/prime256v1 or P-384 key.
-  core.String type;
+  core.String? type;
 
   PublicKey();
 
@@ -5873,9 +5752,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -5895,7 +5774,7 @@
   /// supported (00000000-0000-0000-0000-000000000000).
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   RestoreCertificateAuthorityRequest();
 
@@ -5905,8 +5784,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (requestId != null) 'requestId': requestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -5919,34 +5798,34 @@
   /// The time at which this ReusableConfig was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// A human-readable description of scenarios these ReusableConfigValues may
   /// be compatible with.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Labels with user-defined metadata.
   ///
   /// Optional.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// The resource path for this ReusableConfig in the format `projects / *
   /// /locations / * /reusableConfigs / * `.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// The time at which this ReusableConfig was updated.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The config values.
   ///
   /// Required.
-  ReusableConfigValues values;
+  ReusableConfigValues? values;
 
   ReusableConfig();
 
@@ -5978,13 +5857,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (description != null) 'description': description,
-        if (labels != null) 'labels': labels,
-        if (name != null) 'name': name,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (values != null) 'values': values.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (description != null) 'description': description!,
+        if (labels != null) 'labels': labels!,
+        if (name != null) 'name': name!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (values != null) 'values': values!.toJson(),
       };
 }
 
@@ -5995,31 +5874,31 @@
   /// Describes custom X.509 extensions.
   ///
   /// Optional.
-  core.List<X509Extension> additionalExtensions;
+  core.List<X509Extension>? additionalExtensions;
 
   /// Describes Online Certificate Status Protocol (OCSP) endpoint addresses
   /// that appear in the "Authority Information Access" extension in the
   /// certificate.
   ///
   /// Optional.
-  core.List<core.String> aiaOcspServers;
+  core.List<core.String>? aiaOcspServers;
 
   /// Describes options in this ReusableConfigValues that are relevant in a CA
   /// certificate.
   ///
   /// Optional.
-  CaOptions caOptions;
+  CaOptions? caOptions;
 
   /// Indicates the intended use for keys that correspond to a certificate.
   ///
   /// Optional.
-  KeyUsage keyUsage;
+  KeyUsage? keyUsage;
 
   /// Describes the X.509 certificate policy object identifiers, per
   /// https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
   ///
   /// Optional.
-  core.List<ObjectId> policyIds;
+  core.List<ObjectId>? policyIds;
 
   ReusableConfigValues();
 
@@ -6051,15 +5930,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (additionalExtensions != null)
           'additionalExtensions':
-              additionalExtensions.map((value) => value.toJson()).toList(),
-        if (aiaOcspServers != null) 'aiaOcspServers': aiaOcspServers,
-        if (caOptions != null) 'caOptions': caOptions.toJson(),
-        if (keyUsage != null) 'keyUsage': keyUsage.toJson(),
+              additionalExtensions!.map((value) => value.toJson()).toList(),
+        if (aiaOcspServers != null) 'aiaOcspServers': aiaOcspServers!,
+        if (caOptions != null) 'caOptions': caOptions!.toJson(),
+        if (keyUsage != null) 'keyUsage': keyUsage!.toJson(),
         if (policyIds != null)
-          'policyIds': policyIds.map((value) => value.toJson()).toList(),
+          'policyIds': policyIds!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6070,12 +5949,12 @@
   /// / * /reusableConfigs / * `.
   ///
   /// Required.
-  core.String reusableConfig;
+  core.String? reusableConfig;
 
   /// A user-specified inline ReusableConfigValues.
   ///
   /// Required.
-  ReusableConfigValues reusableConfigValues;
+  ReusableConfigValues? reusableConfigValues;
 
   ReusableConfigWrapper();
 
@@ -6089,10 +5968,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (reusableConfig != null) 'reusableConfig': reusableConfig,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (reusableConfig != null) 'reusableConfig': reusableConfig!,
         if (reusableConfigValues != null)
-          'reusableConfigValues': reusableConfigValues.toJson(),
+          'reusableConfigValues': reusableConfigValues!.toJson(),
       };
 }
 
@@ -6117,10 +5996,10 @@
   /// assert the listed attributes.
   /// - "ATTRIBUTE_AUTHORITY_COMPROMISE" : The authority which determines
   /// appropriate attributes for a Certificate may have been compromised.
-  core.String revocationState;
+  core.String? revocationState;
 
   /// The time at which this Certificate was revoked.
-  core.String revocationTime;
+  core.String? revocationTime;
 
   RevocationDetails();
 
@@ -6133,9 +6012,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (revocationState != null) 'revocationState': revocationState,
-        if (revocationTime != null) 'revocationTime': revocationTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (revocationState != null) 'revocationState': revocationState!,
+        if (revocationTime != null) 'revocationTime': revocationTime!,
       };
 }
 
@@ -6162,7 +6041,7 @@
   /// assert the listed attributes.
   /// - "ATTRIBUTE_AUTHORITY_COMPROMISE" : The authority which determines
   /// appropriate attributes for a Certificate may have been compromised.
-  core.String reason;
+  core.String? reason;
 
   /// An ID to identify requests.
   ///
@@ -6178,7 +6057,7 @@
   /// supported (00000000-0000-0000-0000-000000000000).
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   RevokeCertificateRequest();
 
@@ -6191,9 +6070,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (reason != null) 'reason': reason,
-        if (requestId != null) 'requestId': requestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (reason != null) 'reason': reason!,
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -6201,10 +6080,10 @@
 class RevokedCertificate {
   /// The resource path for the Certificate in the format `projects / *
   /// /locations / * /certificateAuthorities / * /certificates / * `.
-  core.String certificate;
+  core.String? certificate;
 
   /// The serial number of the Certificate.
-  core.String hexSerialNumber;
+  core.String? hexSerialNumber;
 
   /// The reason the Certificate was revoked.
   /// Possible string values are:
@@ -6225,7 +6104,7 @@
   /// assert the listed attributes.
   /// - "ATTRIBUTE_AUTHORITY_COMPROMISE" : The authority which determines
   /// appropriate attributes for a Certificate may have been compromised.
-  core.String revocationReason;
+  core.String? revocationReason;
 
   RevokedCertificate();
 
@@ -6241,10 +6120,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (certificate != null) 'certificate': certificate,
-        if (hexSerialNumber != null) 'hexSerialNumber': hexSerialNumber,
-        if (revocationReason != null) 'revocationReason': revocationReason,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (certificate != null) 'certificate': certificate!,
+        if (hexSerialNumber != null) 'hexSerialNumber': hexSerialNumber!,
+        if (revocationReason != null) 'revocationReason': revocationReason!,
       };
 }
 
@@ -6257,7 +6136,7 @@
   /// Active certs include both unrevoked and unexpired certs.
   ///
   /// Optional.
-  core.bool ignoreActiveCertificates;
+  core.bool? ignoreActiveCertificates;
 
   /// An ID to identify requests.
   ///
@@ -6273,7 +6152,7 @@
   /// supported (00000000-0000-0000-0000-000000000000).
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   ScheduleDeleteCertificateAuthorityRequest();
 
@@ -6286,10 +6165,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (ignoreActiveCertificates != null)
-          'ignoreActiveCertificates': ignoreActiveCertificates,
-        if (requestId != null) 'requestId': requestId,
+          'ignoreActiveCertificates': ignoreActiveCertificates!,
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -6300,13 +6179,13 @@
   /// The size of the policy is limited to a few 10s of KB. An empty policy is a
   /// valid policy but certain Cloud Platform services (such as Projects) might
   /// reject them.
-  Policy policy;
+  Policy? policy;
 
   /// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
   ///
   /// Only the fields in the mask will be modified. If no mask is provided, the
   /// following default mask is used: `paths: "bindings, etag"`
-  core.String updateMask;
+  core.String? updateMask;
 
   SetIamPolicyRequest();
 
@@ -6320,9 +6199,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -6335,7 +6214,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -6343,13 +6222,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -6373,10 +6252,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -6384,25 +6263,25 @@
 /// subject of the certificate.
 class Subject {
   /// The country code of the subject.
-  core.String countryCode;
+  core.String? countryCode;
 
   /// The locality or city of the subject.
-  core.String locality;
+  core.String? locality;
 
   /// The organization of the subject.
-  core.String organization;
+  core.String? organization;
 
   /// The organizational_unit of the subject.
-  core.String organizationalUnit;
+  core.String? organizationalUnit;
 
   /// The postal code of the subject.
-  core.String postalCode;
+  core.String? postalCode;
 
   /// The province, territory, or regional state of the subject.
-  core.String province;
+  core.String? province;
 
   /// The street address of the subject.
-  core.String streetAddress;
+  core.String? streetAddress;
 
   Subject();
 
@@ -6430,15 +6309,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (countryCode != null) 'countryCode': countryCode,
-        if (locality != null) 'locality': locality,
-        if (organization != null) 'organization': organization,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (countryCode != null) 'countryCode': countryCode!,
+        if (locality != null) 'locality': locality!,
+        if (organization != null) 'organization': organization!,
         if (organizationalUnit != null)
-          'organizationalUnit': organizationalUnit,
-        if (postalCode != null) 'postalCode': postalCode,
-        if (province != null) 'province': province,
-        if (streetAddress != null) 'streetAddress': streetAddress,
+          'organizationalUnit': organizationalUnit!,
+        if (postalCode != null) 'postalCode': postalCode!,
+        if (province != null) 'province': province!,
+        if (streetAddress != null) 'streetAddress': streetAddress!,
       };
 }
 
@@ -6447,19 +6326,19 @@
 /// in the distinguished name).
 class SubjectAltNames {
   /// Contains additional subject alternative name values.
-  core.List<X509Extension> customSans;
+  core.List<X509Extension>? customSans;
 
   /// Contains only valid, fully-qualified host names.
-  core.List<core.String> dnsNames;
+  core.List<core.String>? dnsNames;
 
   /// Contains only valid RFC 2822 E-mail addresses.
-  core.List<core.String> emailAddresses;
+  core.List<core.String>? emailAddresses;
 
   /// Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
-  core.List<core.String> ipAddresses;
+  core.List<core.String>? ipAddresses;
 
   /// Contains only valid RFC 3986 URIs.
-  core.List<core.String> uris;
+  core.List<core.String>? uris;
 
   SubjectAltNames();
 
@@ -6492,13 +6371,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (customSans != null)
-          'customSans': customSans.map((value) => value.toJson()).toList(),
-        if (dnsNames != null) 'dnsNames': dnsNames,
-        if (emailAddresses != null) 'emailAddresses': emailAddresses,
-        if (ipAddresses != null) 'ipAddresses': ipAddresses,
-        if (uris != null) 'uris': uris,
+          'customSans': customSans!.map((value) => value.toJson()).toList(),
+        if (dnsNames != null) 'dnsNames': dnsNames!,
+        if (emailAddresses != null) 'emailAddresses': emailAddresses!,
+        if (ipAddresses != null) 'ipAddresses': ipAddresses!,
+        if (uris != null) 'uris': uris!,
       };
 }
 
@@ -6508,17 +6387,17 @@
   /// The "common name" of the distinguished name.
   ///
   /// Optional.
-  core.String commonName;
+  core.String? commonName;
 
   /// Contains distinguished name fields such as the location and organization.
   ///
   /// Required.
-  Subject subject;
+  Subject? subject;
 
   /// The subject alternative name fields.
   ///
   /// Optional.
-  SubjectAltNames subjectAltName;
+  SubjectAltNames? subjectAltName;
 
   SubjectConfig();
 
@@ -6536,10 +6415,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonName != null) 'commonName': commonName,
-        if (subject != null) 'subject': subject.toJson(),
-        if (subjectAltName != null) 'subjectAltName': subjectAltName.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonName != null) 'commonName': commonName!,
+        if (subject != null) 'subject': subject!.toJson(),
+        if (subjectAltName != null) 'subjectAltName': subjectAltName!.toJson(),
       };
 }
 
@@ -6547,27 +6426,27 @@
 /// distinguished name, subject alternative names, serial number, and lifetime.
 class SubjectDescription {
   /// The "common name" of the distinguished name.
-  core.String commonName;
+  core.String? commonName;
 
   /// The serial number encoded in lowercase hexadecimal.
-  core.String hexSerialNumber;
+  core.String? hexSerialNumber;
 
   /// For convenience, the actual lifetime of an issued certificate.
   ///
   /// Corresponds to 'not_after_time' - 'not_before_time'.
-  core.String lifetime;
+  core.String? lifetime;
 
   /// The time at which the certificate expires.
-  core.String notAfterTime;
+  core.String? notAfterTime;
 
   /// The time at which the certificate becomes valid.
-  core.String notBeforeTime;
+  core.String? notBeforeTime;
 
   /// Contains distinguished name fields such as the location and organization.
-  Subject subject;
+  Subject? subject;
 
   /// The subject alternative name fields.
-  SubjectAltNames subjectAltName;
+  SubjectAltNames? subjectAltName;
 
   SubjectDescription();
 
@@ -6597,14 +6476,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonName != null) 'commonName': commonName,
-        if (hexSerialNumber != null) 'hexSerialNumber': hexSerialNumber,
-        if (lifetime != null) 'lifetime': lifetime,
-        if (notAfterTime != null) 'notAfterTime': notAfterTime,
-        if (notBeforeTime != null) 'notBeforeTime': notBeforeTime,
-        if (subject != null) 'subject': subject.toJson(),
-        if (subjectAltName != null) 'subjectAltName': subjectAltName.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonName != null) 'commonName': commonName!,
+        if (hexSerialNumber != null) 'hexSerialNumber': hexSerialNumber!,
+        if (lifetime != null) 'lifetime': lifetime!,
+        if (notAfterTime != null) 'notAfterTime': notAfterTime!,
+        if (notBeforeTime != null) 'notBeforeTime': notBeforeTime!,
+        if (subject != null) 'subject': subject!.toJson(),
+        if (subjectAltName != null) 'subjectAltName': subjectAltName!.toJson(),
       };
 }
 
@@ -6621,13 +6500,13 @@
   /// /certificateAuthorities / * `.
   ///
   /// Required.
-  core.String certificateAuthority;
+  core.String? certificateAuthority;
 
   /// Contains the PEM certificate chain for the issuers of this
   /// CertificateAuthority, but not pem certificate for this CA itself.
   ///
   /// Required.
-  SubordinateConfigChain pemIssuerChain;
+  SubordinateConfigChain? pemIssuerChain;
 
   SubordinateConfig();
 
@@ -6641,10 +6520,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (certificateAuthority != null)
-          'certificateAuthority': certificateAuthority,
-        if (pemIssuerChain != null) 'pemIssuerChain': pemIssuerChain.toJson(),
+          'certificateAuthority': certificateAuthority!,
+        if (pemIssuerChain != null) 'pemIssuerChain': pemIssuerChain!.toJson(),
       };
 }
 
@@ -6655,7 +6534,7 @@
   /// Expected to be in leaf-to-root order according to RFC 5246.
   ///
   /// Required.
-  core.List<core.String> pemCertificates;
+  core.List<core.String>? pemCertificates;
 
   SubordinateConfigChain();
 
@@ -6667,8 +6546,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (pemCertificates != null) 'pemCertificates': pemCertificates,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (pemCertificates != null) 'pemCertificates': pemCertificates!,
       };
 }
 
@@ -6679,7 +6558,7 @@
   /// Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
   /// For more information see
   /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsRequest();
 
@@ -6691,8 +6570,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -6700,7 +6579,7 @@
 class TestIamPermissionsResponse {
   /// A subset of `TestPermissionsRequest.permissions` that the caller is
   /// allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   TestIamPermissionsResponse();
 
@@ -6712,8 +6591,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -6725,18 +6604,18 @@
   /// this to be an error).
   ///
   /// Required.
-  core.bool critical;
+  core.bool? critical;
 
   /// The OID for this X.509 extension.
   ///
   /// Required.
-  ObjectId objectId;
+  ObjectId? objectId;
 
   /// The value of this X.509 extension.
   ///
   /// Required.
-  core.String value;
-  core.List<core.int> get valueAsBytes => convert.base64.decode(value);
+  core.String? value;
+  core.List<core.int> get valueAsBytes => convert.base64.decode(value!);
 
   set valueAsBytes(core.List<core.int> _bytes) {
     value =
@@ -6758,9 +6637,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (critical != null) 'critical': critical,
-        if (objectId != null) 'objectId': objectId.toJson(),
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (critical != null) 'critical': critical!,
+        if (objectId != null) 'objectId': objectId!.toJson(),
+        if (value != null) 'value': value!,
       };
 }
diff --git a/generated/googleapis_beta/lib/prod_tt_sasportal/v1alpha1.dart b/generated/googleapis_beta/lib/prod_tt_sasportal/v1alpha1.dart
index ef0505c..1a355f5 100644
--- a/generated/googleapis_beta/lib/prod_tt_sasportal/v1alpha1.dart
+++ b/generated/googleapis_beta/lib/prod_tt_sasportal/v1alpha1.dart
@@ -104,11 +104,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalCustomer> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -144,9 +141,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<SasPortalListCustomersResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -189,14 +186,10 @@
   async.Future<SasPortalCustomer> patch(
     SasPortalCustomer request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -247,13 +240,9 @@
   async.Future<SasPortalDeployment> create(
     SasPortalDeployment request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -291,11 +280,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -330,11 +316,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDeployment> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -379,14 +362,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -429,13 +409,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeploymentRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -477,14 +453,10 @@
   async.Future<SasPortalDeployment> patch(
     SasPortalDeployment request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -531,13 +503,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -578,13 +546,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -633,14 +597,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -689,13 +650,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -736,13 +693,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -780,11 +733,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -819,11 +769,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDevice> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -869,14 +816,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -919,13 +863,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -967,14 +907,10 @@
   async.Future<SasPortalDevice> patch(
     SasPortalDevice request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1014,13 +950,9 @@
   async.Future<SasPortalEmpty> signDevice(
     SasPortalSignDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1061,13 +993,9 @@
   async.Future<SasPortalDevice> updateSigned(
     SasPortalUpdateSignedDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1122,13 +1050,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1166,11 +1090,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1205,11 +1126,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalNode> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1253,14 +1171,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1303,13 +1218,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveNodeRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1351,14 +1262,10 @@
   async.Future<SasPortalNode> patch(
     SasPortalNode request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1406,13 +1313,9 @@
   async.Future<SasPortalDeployment> create(
     SasPortalDeployment request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1460,14 +1363,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1517,13 +1417,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1564,13 +1460,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1619,14 +1511,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1677,13 +1566,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1730,14 +1615,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1786,11 +1668,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDeployment> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1831,11 +1710,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1870,11 +1746,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDevice> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1912,13 +1785,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1960,14 +1829,10 @@
   async.Future<SasPortalDevice> patch(
     SasPortalDevice request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2007,13 +1872,9 @@
   async.Future<SasPortalEmpty> signDevice(
     SasPortalSignDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2054,13 +1915,9 @@
   async.Future<SasPortalDevice> updateSigned(
     SasPortalUpdateSignedDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2103,10 +1960,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalGenerateSecretResponse> generateSecret(
     SasPortalGenerateSecretRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2141,10 +1997,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalValidateInstallerResponse> validate(
     SasPortalValidateInstallerRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2191,11 +2046,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalNode> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2239,11 +2091,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2278,11 +2127,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDeployment> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2327,14 +2173,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2377,13 +2220,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeploymentRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2425,14 +2264,10 @@
   async.Future<SasPortalDeployment> patch(
     SasPortalDeployment request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2479,13 +2314,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2526,13 +2357,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2581,14 +2408,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2637,13 +2461,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2684,13 +2504,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2728,11 +2544,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2767,11 +2580,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDevice> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2817,14 +2627,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2867,13 +2674,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2915,14 +2718,10 @@
   async.Future<SasPortalDevice> patch(
     SasPortalDevice request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2962,13 +2761,9 @@
   async.Future<SasPortalEmpty> signDevice(
     SasPortalSignDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3009,13 +2804,9 @@
   async.Future<SasPortalDevice> updateSigned(
     SasPortalUpdateSignedDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3069,13 +2860,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3113,11 +2900,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3152,11 +2936,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalNode> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3200,14 +2981,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3250,13 +3028,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveNodeRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3298,14 +3072,10 @@
   async.Future<SasPortalNode> patch(
     SasPortalNode request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -3353,13 +3123,9 @@
   async.Future<SasPortalDeployment> create(
     SasPortalDeployment request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3407,14 +3173,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3463,13 +3226,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3510,13 +3269,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3565,14 +3320,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3622,13 +3374,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3675,14 +3423,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3730,10 +3475,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalPolicy> get(
     SasPortalGetPolicyRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3770,10 +3514,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalPolicy> set(
     SasPortalSetPolicyRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3808,10 +3551,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalTestPermissionsResponse> test(
     SasPortalTestPermissionsRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3837,12 +3579,12 @@
   /// represents a specific Google account. For example: `alice@gmail.com`. *
   /// `{group_email}`: An email address that represents a Google group. For
   /// example, `viewers@gmail.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// Required.
-  core.String role;
+  core.String? role;
 
   SasPortalAssignment();
 
@@ -3857,9 +3599,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -3871,9 +3613,9 @@
   /// set.
   ///
   /// Required.
-  core.String encodedDevice;
+  core.String? encodedDevice;
   core.List<core.int> get encodedDeviceAsBytes =>
-      convert.base64.decode(encodedDevice);
+      convert.base64.decode(encodedDevice!);
 
   set encodedDeviceAsBytes(core.List<core.int> _bytes) {
     encodedDevice =
@@ -3884,7 +3626,7 @@
   /// database.
   ///
   /// Required.
-  core.String installerId;
+  core.String? installerId;
 
   SasPortalCreateSignedDeviceRequest();
 
@@ -3897,9 +3639,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (encodedDevice != null) 'encodedDevice': encodedDevice,
-        if (installerId != null) 'installerId': installerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (encodedDevice != null) 'encodedDevice': encodedDevice!,
+        if (installerId != null) 'installerId': installerId!,
       };
 }
 
@@ -3908,15 +3650,15 @@
   /// Name of the organization that the customer entity represents.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of the customer.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// User IDs used by the devices belonging to this customer.
-  core.List<core.String> sasUserIds;
+  core.List<core.String>? sasUserIds;
 
   SasPortalCustomer();
 
@@ -3934,17 +3676,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (sasUserIds != null) 'sasUserIds': sasUserIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (sasUserIds != null) 'sasUserIds': sasUserIds!,
       };
 }
 
 /// The Deployment.
 class SasPortalDeployment {
   /// The allowed billing modes under this deployment.
-  core.List<core.String> allowedBillingModes;
+  core.List<core.String>? allowedBillingModes;
 
   /// Default billing mode for the deployment and devices under it.
   /// Possible string values are:
@@ -3952,20 +3694,20 @@
   /// - "MOBILE" : Price is based on category of CBSD: Category A, Category B
   /// registered with SAS.
   /// - "FIXED_WIRELESS" : Price is based on type of CBSD: Base station or CPE.
-  core.String defaultBillingMode;
+  core.String? defaultBillingMode;
 
   /// The deployment's display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// User ID used by the devices belonging to this deployment.
   ///
   /// Each deployment should be associated with one unique user ID.
-  core.List<core.String> sasUserIds;
+  core.List<core.String>? sasUserIds;
 
   SasPortalDeployment();
 
@@ -3991,14 +3733,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (allowedBillingModes != null)
-          'allowedBillingModes': allowedBillingModes,
+          'allowedBillingModes': allowedBillingModes!,
         if (defaultBillingMode != null)
-          'defaultBillingMode': defaultBillingMode,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (sasUserIds != null) 'sasUserIds': sasUserIds,
+          'defaultBillingMode': defaultBillingMode!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (sasUserIds != null) 'sasUserIds': sasUserIds!,
       };
 }
 
@@ -4006,36 +3748,36 @@
   /// Current configuration of the device as registered to the SAS.
   ///
   /// Output only.
-  SasPortalDeviceConfig activeConfig;
+  SasPortalDeviceConfig? activeConfig;
 
   /// Device parameters that can be overridden by both SAS Portal and SAS
   /// registration requests.
-  SasPortalDeviceMetadata deviceMetadata;
+  SasPortalDeviceMetadata? deviceMetadata;
 
   /// Device display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// The FCC identifier of the device.
-  core.String fccId;
+  core.String? fccId;
 
   /// Only ranges within the allowlists are available for new grants.
-  core.List<SasPortalFrequencyRange> grantRangeAllowlists;
+  core.List<SasPortalFrequencyRange>? grantRangeAllowlists;
 
   /// Grants held by the device.
   ///
   /// Output only.
-  core.List<SasPortalDeviceGrant> grants;
+  core.List<SasPortalDeviceGrant>? grants;
 
   /// The resource path name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Configuration of the device, as specified via SAS Portal API.
-  SasPortalDeviceConfig preloadedConfig;
+  SasPortalDeviceConfig? preloadedConfig;
 
   /// A serial number assigned to the device by the device manufacturer.
-  core.String serialNumber;
+  core.String? serialNumber;
 
   /// Device state.
   ///
@@ -4046,7 +3788,7 @@
   /// registered with SAS.
   /// - "REGISTERED" : Device registered with SAS.
   /// - "DEREGISTERED" : Device de-registered with SAS.
-  core.String state;
+  core.String? state;
 
   SasPortalDevice();
 
@@ -4093,21 +3835,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (activeConfig != null) 'activeConfig': activeConfig.toJson(),
-        if (deviceMetadata != null) 'deviceMetadata': deviceMetadata.toJson(),
-        if (displayName != null) 'displayName': displayName,
-        if (fccId != null) 'fccId': fccId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (activeConfig != null) 'activeConfig': activeConfig!.toJson(),
+        if (deviceMetadata != null) 'deviceMetadata': deviceMetadata!.toJson(),
+        if (displayName != null) 'displayName': displayName!,
+        if (fccId != null) 'fccId': fccId!,
         if (grantRangeAllowlists != null)
           'grantRangeAllowlists':
-              grantRangeAllowlists.map((value) => value.toJson()).toList(),
+              grantRangeAllowlists!.map((value) => value.toJson()).toList(),
         if (grants != null)
-          'grants': grants.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'grants': grants!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
         if (preloadedConfig != null)
-          'preloadedConfig': preloadedConfig.toJson(),
-        if (serialNumber != null) 'serialNumber': serialNumber,
-        if (state != null) 'state': state,
+          'preloadedConfig': preloadedConfig!.toJson(),
+        if (serialNumber != null) 'serialNumber': serialNumber!,
+        if (state != null) 'state': state!,
       };
 }
 
@@ -4127,14 +3869,14 @@
   /// - "CW"
   /// - "REDLINE"
   /// - "TARANA_WIRELESS"
-  core.String radioTechnology;
+  core.String? radioTechnology;
 
   /// This field is related to the `radioTechnology` and provides the air
   /// interface specification that the CBSD is compliant with at the time of
   /// registration.
   ///
   /// Optional.
-  core.String supportedSpec;
+  core.String? supportedSpec;
 
   SasPortalDeviceAirInterface();
 
@@ -4147,55 +3889,55 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (radioTechnology != null) 'radioTechnology': radioTechnology,
-        if (supportedSpec != null) 'supportedSpec': supportedSpec,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (radioTechnology != null) 'radioTechnology': radioTechnology!,
+        if (supportedSpec != null) 'supportedSpec': supportedSpec!,
       };
 }
 
 /// Information about the device configuration.
 class SasPortalDeviceConfig {
   /// Information about this device's air interface.
-  SasPortalDeviceAirInterface airInterface;
+  SasPortalDeviceAirInterface? airInterface;
 
   /// The call sign of the device operator.
-  core.String callSign;
+  core.String? callSign;
 
   /// FCC category of the device.
   /// Possible string values are:
   /// - "DEVICE_CATEGORY_UNSPECIFIED" : Unspecified device category.
   /// - "DEVICE_CATEGORY_A" : Category A.
   /// - "DEVICE_CATEGORY_B" : Category B.
-  core.String category;
+  core.String? category;
 
   /// Installation parameters for the device.
-  SasPortalInstallationParams installationParams;
+  SasPortalInstallationParams? installationParams;
 
   /// Whether the configuration has been signed by a CPI.
   ///
   /// Output only.
-  core.bool isSigned;
+  core.bool? isSigned;
 
   /// Measurement reporting capabilities of the device.
-  core.List<core.String> measurementCapabilities;
+  core.List<core.String>? measurementCapabilities;
 
   /// Information about this device model.
-  SasPortalDeviceModel model;
+  SasPortalDeviceModel? model;
 
   /// State of the configuration.
   /// Possible string values are:
   /// - "DEVICE_CONFIG_STATE_UNSPECIFIED"
   /// - "DRAFT"
   /// - "FINAL"
-  core.String state;
+  core.String? state;
 
   /// The last time the device configuration was edited.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The identifier of a device user.
-  core.String userId;
+  core.String? userId;
 
   SasPortalDeviceConfig();
 
@@ -4237,19 +3979,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (airInterface != null) 'airInterface': airInterface.toJson(),
-        if (callSign != null) 'callSign': callSign,
-        if (category != null) 'category': category,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (airInterface != null) 'airInterface': airInterface!.toJson(),
+        if (callSign != null) 'callSign': callSign!,
+        if (category != null) 'category': category!,
         if (installationParams != null)
-          'installationParams': installationParams.toJson(),
-        if (isSigned != null) 'isSigned': isSigned,
+          'installationParams': installationParams!.toJson(),
+        if (isSigned != null) 'isSigned': isSigned!,
         if (measurementCapabilities != null)
-          'measurementCapabilities': measurementCapabilities,
-        if (model != null) 'model': model.toJson(),
-        if (state != null) 'state': state,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (userId != null) 'userId': userId,
+          'measurementCapabilities': measurementCapabilities!,
+        if (model != null) 'model': model!.toJson(),
+        if (state != null) 'state': state!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (userId != null) 'userId': userId!,
       };
 }
 
@@ -4264,16 +4006,16 @@
   /// - "CHANNEL_TYPE_UNSPECIFIED"
   /// - "CHANNEL_TYPE_GAA"
   /// - "CHANNEL_TYPE_PAL"
-  core.String channelType;
+  core.String? channelType;
 
   /// The expiration time of the grant.
-  core.String expireTime;
+  core.String? expireTime;
 
   /// The transmission frequency range.
-  SasPortalFrequencyRange frequencyRange;
+  SasPortalFrequencyRange? frequencyRange;
 
   /// Grant Id.
-  core.String grantId;
+  core.String? grantId;
 
   /// Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the
   /// grant.
@@ -4281,10 +4023,10 @@
   /// The maximum EIRP is in units of dBm/MHz. The value of `maxEirp` represents
   /// the average (RMS) EIRP that would be measured by the procedure defined in
   /// FCC part 96.41(e)(3).
-  core.double maxEirp;
+  core.double? maxEirp;
 
   /// The DPA move lists on which this grant appears.
-  core.List<SasPortalDpaMoveList> moveList;
+  core.List<SasPortalDpaMoveList>? moveList;
 
   /// State of the grant.
   /// Possible string values are:
@@ -4295,10 +4037,10 @@
   /// - "GRANT_STATE_SUSPENDED" : The grant has been suspended by the SAS.
   /// - "GRANT_STATE_AUTHORIZED" : The device is currently transmitting.
   /// - "GRANT_STATE_EXPIRED" : The grant has expired.
-  core.String state;
+  core.String? state;
 
   /// If the grant is suspended, the reason(s) for suspension.
-  core.List<core.String> suspensionReason;
+  core.List<core.String>? suspensionReason;
 
   SasPortalDeviceGrant();
 
@@ -4335,16 +4077,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (channelType != null) 'channelType': channelType,
-        if (expireTime != null) 'expireTime': expireTime,
-        if (frequencyRange != null) 'frequencyRange': frequencyRange.toJson(),
-        if (grantId != null) 'grantId': grantId,
-        if (maxEirp != null) 'maxEirp': maxEirp,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (channelType != null) 'channelType': channelType!,
+        if (expireTime != null) 'expireTime': expireTime!,
+        if (frequencyRange != null) 'frequencyRange': frequencyRange!.toJson(),
+        if (grantId != null) 'grantId': grantId!,
+        if (maxEirp != null) 'maxEirp': maxEirp!,
         if (moveList != null)
-          'moveList': moveList.map((value) => value.toJson()).toList(),
-        if (state != null) 'state': state,
-        if (suspensionReason != null) 'suspensionReason': suspensionReason,
+          'moveList': moveList!.map((value) => value.toJson()).toList(),
+        if (state != null) 'state': state!,
+        if (suspensionReason != null) 'suspensionReason': suspensionReason!,
       };
 }
 
@@ -4356,25 +4098,25 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Information about the model of the device.
 class SasPortalDeviceModel {
   /// The firmware version of the device.
-  core.String firmwareVersion;
+  core.String? firmwareVersion;
 
   /// The hardware version of the device.
-  core.String hardwareVersion;
+  core.String? hardwareVersion;
 
   /// The name of the device model.
-  core.String name;
+  core.String? name;
 
   /// The software version of the device.
-  core.String softwareVersion;
+  core.String? softwareVersion;
 
   /// The name of the device vendor.
-  core.String vendor;
+  core.String? vendor;
 
   SasPortalDeviceModel();
 
@@ -4396,22 +4138,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (firmwareVersion != null) 'firmwareVersion': firmwareVersion,
-        if (hardwareVersion != null) 'hardwareVersion': hardwareVersion,
-        if (name != null) 'name': name,
-        if (softwareVersion != null) 'softwareVersion': softwareVersion,
-        if (vendor != null) 'vendor': vendor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (firmwareVersion != null) 'firmwareVersion': firmwareVersion!,
+        if (hardwareVersion != null) 'hardwareVersion': hardwareVersion!,
+        if (name != null) 'name': name!,
+        if (softwareVersion != null) 'softwareVersion': softwareVersion!,
+        if (vendor != null) 'vendor': vendor!,
       };
 }
 
 /// An entry in a DPA's move list.
 class SasPortalDpaMoveList {
   /// The ID of the DPA.
-  core.String dpaId;
+  core.String? dpaId;
 
   /// The frequency range that the move list affects.
-  SasPortalFrequencyRange frequencyRange;
+  SasPortalFrequencyRange? frequencyRange;
 
   SasPortalDpaMoveList();
 
@@ -4425,9 +4167,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dpaId != null) 'dpaId': dpaId,
-        if (frequencyRange != null) 'frequencyRange': frequencyRange.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dpaId != null) 'dpaId': dpaId!,
+        if (frequencyRange != null) 'frequencyRange': frequencyRange!.toJson(),
       };
 }
 
@@ -4445,16 +4187,16 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Frequency range from `low_frequency` to `high_frequency`.
 class SasPortalFrequencyRange {
   /// The highest frequency of the frequency range in MHz.
-  core.double highFrequencyMhz;
+  core.double? highFrequencyMhz;
 
   /// The lowest frequency of the frequency range in MHz.
-  core.double lowFrequencyMhz;
+  core.double? lowFrequencyMhz;
 
   SasPortalFrequencyRange();
 
@@ -4467,9 +4209,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (highFrequencyMhz != null) 'highFrequencyMhz': highFrequencyMhz,
-        if (lowFrequencyMhz != null) 'lowFrequencyMhz': lowFrequencyMhz,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (highFrequencyMhz != null) 'highFrequencyMhz': highFrequencyMhz!,
+        if (lowFrequencyMhz != null) 'lowFrequencyMhz': lowFrequencyMhz!,
       };
 }
 
@@ -4481,13 +4223,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Response for GenerateSecret.
 class SasPortalGenerateSecretResponse {
   /// The secret generated by the string and used by ValidateInstaller.
-  core.String secret;
+  core.String? secret;
 
   SasPortalGenerateSecretResponse();
 
@@ -4497,8 +4239,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (secret != null) 'secret': secret,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (secret != null) 'secret': secret!,
       };
 }
 
@@ -4507,7 +4249,7 @@
   /// The resource for which the policy is being requested.
   ///
   /// Required.
-  core.String resource;
+  core.String? resource;
 
   SasPortalGetPolicyRequest();
 
@@ -4517,8 +4259,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resource != null) 'resource': resource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resource != null) 'resource': resource!,
       };
 }
 
@@ -4531,14 +4273,14 @@
   /// inclusive. A value of 0 degrees means true north; a value of 90 degrees
   /// means east. This parameter is optional for Category A devices and
   /// conditional for Category B devices.
-  core.int antennaAzimuth;
+  core.int? antennaAzimuth;
 
   /// 3-dB antenna beamwidth of the antenna in the horizontal-plane in degrees.
   ///
   /// This parameter is an unsigned integer having a value between 0 and 360
   /// (degrees) inclusive; it is optional for Category A devices and conditional
   /// for Category B devices.
-  core.int antennaBeamwidth;
+  core.int? antennaBeamwidth;
 
   /// Antenna downtilt in degrees and is an integer with a value between -90 and
   /// +90 inclusive; a negative value means the antenna is tilted up (above
@@ -4546,37 +4288,37 @@
   ///
   /// This parameter is optional for Category A devices and conditional for
   /// Category B devices.
-  core.int antennaDowntilt;
+  core.int? antennaDowntilt;
 
   /// Peak antenna gain in dBi.
   ///
   /// This parameter is an integer with a value between -127 and +128 (dBi)
   /// inclusive.
-  core.int antennaGain;
+  core.int? antennaGain;
 
   /// If an external antenna is used, the antenna model is optionally provided
   /// in this field.
   ///
   /// The string has a maximum length of 128 octets.
-  core.String antennaModel;
+  core.String? antennaModel;
 
   /// If present, this parameter specifies whether the CBSD is a CPE-CBSD or
   /// not.
-  core.bool cpeCbsdIndication;
+  core.bool? cpeCbsdIndication;
 
   /// This parameter is the maximum device EIRP in units of dBm/10MHz and is an
   /// integer with a value between -127 and +47 (dBm/10 MHz) inclusive.
   ///
   /// If not included, SAS interprets it as maximum allowable EIRP in units of
   /// dBm/10MHz for device category.
-  core.int eirpCapability;
+  core.int? eirpCapability;
 
   /// Device antenna height in meters.
   ///
   /// When the `heightType` parameter value is "AGL", the antenna height should
   /// be given relative to ground level. When the `heightType` parameter value
   /// is "AMSL", it is given with respect to WGS84 datum.
-  core.double height;
+  core.double? height;
 
   /// Specifies how the height is measured.
   /// Possible string values are:
@@ -4584,19 +4326,19 @@
   /// - "HEIGHT_TYPE_AGL" : AGL height is measured relative to the ground level.
   /// - "HEIGHT_TYPE_AMSL" : AMSL height is measured relative to the mean sea
   /// level.
-  core.String heightType;
+  core.String? heightType;
 
   /// A positive number in meters to indicate accuracy of the device antenna
   /// horizontal location.
   ///
   /// This optional parameter should only be present if its value is less than
   /// the FCC requirement of 50 meters.
-  core.double horizontalAccuracy;
+  core.double? horizontalAccuracy;
 
   /// Whether the device antenna is indoor or not.
   ///
   /// `true`: indoor. `false`: outdoor.
-  core.bool indoorDeployment;
+  core.bool? indoorDeployment;
 
   /// Latitude of the device antenna location in degrees relative to the WGS 84
   /// datum.
@@ -4604,7 +4346,7 @@
   /// The allowed range is from -90.000000 to +90.000000. Positive values
   /// represent latitudes north of the equator; negative values south of the
   /// equator.
-  core.double latitude;
+  core.double? latitude;
 
   /// Longitude of the device antenna location in degrees relative to the WGS 84
   /// datum.
@@ -4612,14 +4354,14 @@
   /// The allowed range is from -180.000000 to +180.000000. Positive values
   /// represent longitudes east of the prime meridian; negative values west of
   /// the prime meridian.
-  core.double longitude;
+  core.double? longitude;
 
   /// A positive number in meters to indicate accuracy of the device antenna
   /// vertical location.
   ///
   /// This optional parameter should only be present if its value is less than
   /// the FCC requirement of 3 meters.
-  core.double verticalAccuracy;
+  core.double? verticalAccuracy;
 
   SasPortalInstallationParams();
 
@@ -4668,35 +4410,35 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (antennaAzimuth != null) 'antennaAzimuth': antennaAzimuth,
-        if (antennaBeamwidth != null) 'antennaBeamwidth': antennaBeamwidth,
-        if (antennaDowntilt != null) 'antennaDowntilt': antennaDowntilt,
-        if (antennaGain != null) 'antennaGain': antennaGain,
-        if (antennaModel != null) 'antennaModel': antennaModel,
-        if (cpeCbsdIndication != null) 'cpeCbsdIndication': cpeCbsdIndication,
-        if (eirpCapability != null) 'eirpCapability': eirpCapability,
-        if (height != null) 'height': height,
-        if (heightType != null) 'heightType': heightType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (antennaAzimuth != null) 'antennaAzimuth': antennaAzimuth!,
+        if (antennaBeamwidth != null) 'antennaBeamwidth': antennaBeamwidth!,
+        if (antennaDowntilt != null) 'antennaDowntilt': antennaDowntilt!,
+        if (antennaGain != null) 'antennaGain': antennaGain!,
+        if (antennaModel != null) 'antennaModel': antennaModel!,
+        if (cpeCbsdIndication != null) 'cpeCbsdIndication': cpeCbsdIndication!,
+        if (eirpCapability != null) 'eirpCapability': eirpCapability!,
+        if (height != null) 'height': height!,
+        if (heightType != null) 'heightType': heightType!,
         if (horizontalAccuracy != null)
-          'horizontalAccuracy': horizontalAccuracy,
-        if (indoorDeployment != null) 'indoorDeployment': indoorDeployment,
-        if (latitude != null) 'latitude': latitude,
-        if (longitude != null) 'longitude': longitude,
-        if (verticalAccuracy != null) 'verticalAccuracy': verticalAccuracy,
+          'horizontalAccuracy': horizontalAccuracy!,
+        if (indoorDeployment != null) 'indoorDeployment': indoorDeployment!,
+        if (latitude != null) 'latitude': latitude!,
+        if (longitude != null) 'longitude': longitude!,
+        if (verticalAccuracy != null) 'verticalAccuracy': verticalAccuracy!,
       };
 }
 
 /// Response for `ListCustomers`.
 class SasPortalListCustomersResponse {
   /// The list of customers that match the request.
-  core.List<SasPortalCustomer> customers;
+  core.List<SasPortalCustomer>? customers;
 
   /// A pagination token returned from a previous call to ListCustomers that
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there are no more customers.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SasPortalListCustomersResponse();
 
@@ -4712,23 +4454,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (customers != null)
-          'customers': customers.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'customers': customers!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response for ListDeployments.
 class SasPortalListDeploymentsResponse {
   /// The deployments that match the request.
-  core.List<SasPortalDeployment> deployments;
+  core.List<SasPortalDeployment>? deployments;
 
   /// A pagination token returned from a previous call to ListDeployments that
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there are no more deployments.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SasPortalListDeploymentsResponse();
 
@@ -4744,23 +4486,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (deployments != null)
-          'deployments': deployments.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'deployments': deployments!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response for ListDevices.
 class SasPortalListDevicesResponse {
   /// The devices that match the request.
-  core.List<SasPortalDevice> devices;
+  core.List<SasPortalDevice>? devices;
 
   /// A pagination token returned from a previous call to ListDevices that
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there is no more devices.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SasPortalListDevicesResponse();
 
@@ -4776,10 +4518,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (devices != null)
-          'devices': devices.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'devices': devices!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4789,10 +4531,10 @@
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there is no more nodes.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The nodes that match the request.
-  core.List<SasPortalNode> nodes;
+  core.List<SasPortalNode>? nodes;
 
   SasPortalListNodesResponse();
 
@@ -4808,10 +4550,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (nodes != null)
-          'nodes': nodes.map((value) => value.toJson()).toList(),
+          'nodes': nodes!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4821,7 +4563,7 @@
   /// deployment under.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   SasPortalMoveDeploymentRequest();
 
@@ -4831,8 +4573,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destination != null) 'destination': destination!,
       };
 }
 
@@ -4842,7 +4584,7 @@
   /// device under.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   SasPortalMoveDeviceRequest();
 
@@ -4852,8 +4594,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destination != null) 'destination': destination!,
       };
 }
 
@@ -4863,7 +4605,7 @@
   /// under.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   SasPortalMoveNodeRequest();
 
@@ -4873,23 +4615,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destination != null) 'destination': destination!,
       };
 }
 
 /// The Node.
 class SasPortalNode {
   /// The node's display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// User ids used by the devices belonging to this node.
-  core.List<core.String> sasUserIds;
+  core.List<core.String>? sasUserIds;
 
   SasPortalNode();
 
@@ -4907,10 +4649,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (sasUserIds != null) 'sasUserIds': sasUserIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (sasUserIds != null) 'sasUserIds': sasUserIds!,
       };
 }
 
@@ -4921,10 +4663,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  SasPortalStatus error;
+  SasPortalStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -4935,14 +4677,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -4955,7 +4697,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   SasPortalOperation();
 
@@ -4990,19 +4732,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
 /// Defines an access control policy to the resources.
 class SasPortalPolicy {
   /// List of assignments
-  core.List<SasPortalAssignment> assignments;
+  core.List<SasPortalAssignment>? assignments;
 
   /// The etag is used for optimistic concurrency control as a way to help
   /// prevent simultaneous updates of a policy from overwriting each other.
@@ -5014,8 +4756,8 @@
   /// their change will be applied to the same version of the policy. If no etag
   /// is provided in the call to GetPolicy, then the existing policy is
   /// overwritten blindly.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -5036,10 +4778,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (assignments != null)
-          'assignments': assignments.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
+          'assignments': assignments!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
       };
 }
 
@@ -5048,14 +4790,14 @@
   /// The policy to be applied to the `resource`.
   ///
   /// Required.
-  SasPortalPolicy policy;
+  SasPortalPolicy? policy;
 
   /// The resource for which the policy is being specified.
   ///
   /// This policy replaces any existing policy.
   ///
   /// Required.
-  core.String resource;
+  core.String? resource;
 
   SasPortalSetPolicyRequest();
 
@@ -5069,9 +4811,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (resource != null) 'resource': resource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (resource != null) 'resource': resource!,
       };
 }
 
@@ -5083,7 +4825,7 @@
   /// field must be set.
   ///
   /// Required.
-  SasPortalDevice device;
+  SasPortalDevice? device;
 
   SasPortalSignDeviceRequest();
 
@@ -5094,8 +4836,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (device != null) 'device': device.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (device != null) 'device': device!.toJson(),
       };
 }
 
@@ -5108,7 +4850,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class SasPortalStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -5116,13 +4858,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   SasPortalStatus();
 
@@ -5146,22 +4888,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
 /// Request message for `TestPermissions` method.
 class SasPortalTestPermissionsRequest {
   /// The set of permissions to check for the `resource`.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   /// The resource for which the permissions are being requested.
   ///
   /// Required.
-  core.String resource;
+  core.String? resource;
 
   SasPortalTestPermissionsRequest();
 
@@ -5176,16 +4918,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
-        if (resource != null) 'resource': resource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
+        if (resource != null) 'resource': resource!,
       };
 }
 
 /// Response message for `TestPermissions` method.
 class SasPortalTestPermissionsResponse {
   /// A set of permissions that the caller is allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   SasPortalTestPermissionsResponse();
 
@@ -5197,8 +4939,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -5210,9 +4952,9 @@
   /// set.
   ///
   /// Required.
-  core.String encodedDevice;
+  core.String? encodedDevice;
   core.List<core.int> get encodedDeviceAsBytes =>
-      convert.base64.decode(encodedDevice);
+      convert.base64.decode(encodedDevice!);
 
   set encodedDeviceAsBytes(core.List<core.int> _bytes) {
     encodedDevice =
@@ -5223,7 +4965,7 @@
   /// database.
   ///
   /// Required.
-  core.String installerId;
+  core.String? installerId;
 
   SasPortalUpdateSignedDeviceRequest();
 
@@ -5236,9 +4978,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (encodedDevice != null) 'encodedDevice': encodedDevice,
-        if (installerId != null) 'installerId': installerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (encodedDevice != null) 'encodedDevice': encodedDevice!,
+        if (installerId != null) 'installerId': installerId!,
       };
 }
 
@@ -5249,18 +4991,18 @@
   /// Payload must include a "secret" claim whose value is the secret.
   ///
   /// Required.
-  core.String encodedSecret;
+  core.String? encodedSecret;
 
   /// Unique installer id (CPI ID) from the Certified Professional Installers
   /// database.
   ///
   /// Required.
-  core.String installerId;
+  core.String? installerId;
 
   /// Secret returned by the GenerateSecret.
   ///
   /// Required.
-  core.String secret;
+  core.String? secret;
 
   SasPortalValidateInstallerRequest();
 
@@ -5276,10 +5018,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (encodedSecret != null) 'encodedSecret': encodedSecret,
-        if (installerId != null) 'installerId': installerId,
-        if (secret != null) 'secret': secret,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (encodedSecret != null) 'encodedSecret': encodedSecret!,
+        if (installerId != null) 'installerId': installerId!,
+        if (secret != null) 'secret': secret!,
       };
 }
 
@@ -5291,5 +5033,5 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
diff --git a/generated/googleapis_beta/lib/recommendationengine/v1beta1.dart b/generated/googleapis_beta/lib/recommendationengine/v1beta1.dart
index c8122a9..32b24a0 100644
--- a/generated/googleapis_beta/lib/recommendationengine/v1beta1.dart
+++ b/generated/googleapis_beta/lib/recommendationengine/v1beta1.dart
@@ -135,13 +135,10 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudRecommendationengineV1beta1ListCatalogsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -189,14 +186,10 @@
   async.Future<GoogleCloudRecommendationengineV1beta1Catalog> patch(
     GoogleCloudRecommendationengineV1beta1Catalog request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -245,13 +238,9 @@
   async.Future<GoogleCloudRecommendationengineV1beta1CatalogItem> create(
     GoogleCloudRecommendationengineV1beta1CatalogItem request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -292,11 +281,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -334,11 +320,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleCloudRecommendationengineV1beta1CatalogItem> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -385,13 +368,9 @@
   async.Future<GoogleLongrunningOperation> import(
     GoogleCloudRecommendationengineV1beta1ImportCatalogItemsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -441,14 +420,11 @@
   async.Future<GoogleCloudRecommendationengineV1beta1ListCatalogItemsResponse>
       list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -499,14 +475,10 @@
   async.Future<GoogleCloudRecommendationengineV1beta1CatalogItem> patch(
     GoogleCloudRecommendationengineV1beta1CatalogItem request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -573,11 +545,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -628,14 +597,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -711,13 +677,9 @@
   async.Future<GoogleCloudRecommendationengineV1beta1PredictResponse> predict(
     GoogleCloudRecommendationengineV1beta1PredictRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -772,13 +734,9 @@
     GoogleCloudRecommendationengineV1beta1CreatePredictionApiKeyRegistrationRequest
         request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -819,11 +777,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleProtobufEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -869,13 +824,10 @@
           GoogleCloudRecommendationengineV1beta1ListPredictionApiKeyRegistrationsResponse>
       list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -939,14 +891,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleApiHttpBody> collect(
     core.String parent, {
-    core.String ets,
-    core.String uri,
-    core.String userEvent,
-    core.String $fields,
+    core.String? ets,
+    core.String? uri,
+    core.String? userEvent,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (ets != null) 'ets': [ets],
       if (uri != null) 'uri': [uri],
@@ -997,13 +946,9 @@
   async.Future<GoogleLongrunningOperation> import(
     GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1080,14 +1025,11 @@
   async.Future<GoogleCloudRecommendationengineV1beta1ListUserEventsResponse>
       list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1137,13 +1079,9 @@
   async.Future<GoogleLongrunningOperation> purge(
     GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1194,13 +1132,9 @@
   async.Future<GoogleLongrunningOperation> rejoin(
     GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1243,13 +1177,9 @@
   async.Future<GoogleCloudRecommendationengineV1beta1UserEvent> write(
     GoogleCloudRecommendationengineV1beta1UserEvent request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1298,11 +1228,8 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningOperation> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1353,14 +1280,11 @@
   /// this method will complete with the same error.
   async.Future<GoogleLongrunningListOperationsResponse> list(
     core.String name, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1403,11 +1327,11 @@
 class GoogleApiHttpBody {
   /// The HTTP Content-Type header value specifying the content type of the
   /// body.
-  core.String contentType;
+  core.String? contentType;
 
   /// The HTTP request/response body as raw binary.
-  core.String data;
-  core.List<core.int> get dataAsBytes => convert.base64.decode(data);
+  core.String? data;
+  core.List<core.int> get dataAsBytes => convert.base64.decode(data!);
 
   set dataAsBytes(core.List<core.int> _bytes) {
     data =
@@ -1420,7 +1344,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> extensions;
+  core.List<core.Map<core.String, core.Object>>? extensions;
 
   GoogleApiHttpBody();
 
@@ -1444,10 +1368,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contentType != null) 'contentType': contentType,
-        if (data != null) 'data': data,
-        if (extensions != null) 'extensions': extensions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contentType != null) 'contentType': contentType!,
+        if (data != null) 'data': data!,
+        if (extensions != null) 'extensions': extensions!,
       };
 }
 
@@ -1459,13 +1383,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Response message for TriggerCatalogRejoin method.
 class GoogleCloudRecommendationengineV1alphaRejoinCatalogResponse {
   /// Number of user events that were joined with latest catalog items.
-  core.String rejoinedUserEventsCount;
+  core.String? rejoinedUserEventsCount;
 
   GoogleCloudRecommendationengineV1alphaRejoinCatalogResponse();
 
@@ -1476,9 +1400,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (rejoinedUserEventsCount != null)
-          'rejoinedUserEventsCount': rejoinedUserEventsCount,
+          'rejoinedUserEventsCount': rejoinedUserEventsCount!,
       };
 }
 
@@ -1488,7 +1412,7 @@
   ///
   /// Format:
   /// projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/eventStores/{event_store_id}/recommendationModels/{recommendation_model_id}
-  core.String recommendationModel;
+  core.String? recommendationModel;
 
   GoogleCloudRecommendationengineV1alphaTuningMetadata();
 
@@ -1499,9 +1423,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (recommendationModel != null)
-          'recommendationModel': recommendationModel,
+          'recommendationModel': recommendationModel!,
       };
 }
 
@@ -1513,7 +1437,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// BigQuery source import data from.
@@ -1531,12 +1455,12 @@
   /// https://support.google.com/analytics/answer/3437719?hl=en
   ///
   /// Optional.
-  core.String dataSchema;
+  core.String? dataSchema;
 
   /// The BigQuery data set to copy the data from.
   ///
   /// Required.
-  core.String datasetId;
+  core.String? datasetId;
 
   /// Intermediate Cloud Storage directory used for the import.
   ///
@@ -1544,19 +1468,19 @@
   /// Cloud Storage directory.
   ///
   /// Optional.
-  core.String gcsStagingDir;
+  core.String? gcsStagingDir;
 
   /// The project id (can be project # or id) that the BigQuery source is in.
   ///
   /// If not specified, inherits the project id from the parent request.
   ///
   /// Optional.
-  core.String projectId;
+  core.String? projectId;
 
   /// The BigQuery table to copy the data from.
   ///
   /// Required.
-  core.String tableId;
+  core.String? tableId;
 
   GoogleCloudRecommendationengineV1beta1BigQuerySource();
 
@@ -1579,12 +1503,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dataSchema != null) 'dataSchema': dataSchema,
-        if (datasetId != null) 'datasetId': datasetId,
-        if (gcsStagingDir != null) 'gcsStagingDir': gcsStagingDir,
-        if (projectId != null) 'projectId': projectId,
-        if (tableId != null) 'tableId': tableId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dataSchema != null) 'dataSchema': dataSchema!,
+        if (datasetId != null) 'datasetId': datasetId!,
+        if (gcsStagingDir != null) 'gcsStagingDir': gcsStagingDir!,
+        if (projectId != null) 'projectId': projectId!,
+        if (tableId != null) 'tableId': tableId!,
       };
 }
 
@@ -1595,21 +1519,21 @@
   /// The catalog item level configuration.
   ///
   /// Required.
-  GoogleCloudRecommendationengineV1beta1CatalogItemLevelConfig
+  GoogleCloudRecommendationengineV1beta1CatalogItemLevelConfig?
       catalogItemLevelConfig;
 
   /// The ID of the default event store.
   ///
   /// Required.
-  core.String defaultEventStoreId;
+  core.String? defaultEventStoreId;
 
   /// The catalog display name.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// The fully qualified resource name of the catalog.
-  core.String name;
+  core.String? name;
 
   GoogleCloudRecommendationengineV1beta1Catalog();
 
@@ -1631,13 +1555,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (catalogItemLevelConfig != null)
-          'catalogItemLevelConfig': catalogItemLevelConfig.toJson(),
+          'catalogItemLevelConfig': catalogItemLevelConfig!.toJson(),
         if (defaultEventStoreId != null)
-          'defaultEventStoreId': defaultEventStoreId,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
+          'defaultEventStoreId': defaultEventStoreId!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -1648,7 +1572,7 @@
   /// Recommended max of 10k items.
   ///
   /// Optional.
-  core.List<GoogleCloudRecommendationengineV1beta1CatalogItem> catalogItems;
+  core.List<GoogleCloudRecommendationengineV1beta1CatalogItem>? catalogItems;
 
   GoogleCloudRecommendationengineV1beta1CatalogInlineSource();
 
@@ -1663,9 +1587,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (catalogItems != null)
-          'catalogItems': catalogItems.map((value) => value.toJson()).toList(),
+          'catalogItems': catalogItems!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -1682,7 +1606,7 @@
   /// "Shoes"\] } \]
   ///
   /// Required.
-  core.List<GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy>
+  core.List<GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy>?
       categoryHierarchies;
 
   /// Catalog item description.
@@ -1690,7 +1614,7 @@
   /// UTF-8 encoded string with a length limit of 5 KiB.
   ///
   /// Optional.
-  core.String description;
+  core.String? description;
 
   /// Catalog item identifier.
   ///
@@ -1700,7 +1624,7 @@
   /// with the Catalog.
   ///
   /// Required.
-  core.String id;
+  core.String? id;
 
   /// Highly encouraged.
   ///
@@ -1711,7 +1635,7 @@
   /// attributes here.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1FeatureMap itemAttributes;
+  GoogleCloudRecommendationengineV1beta1FeatureMap? itemAttributes;
 
   /// Variant group identifier for prediction results.
   ///
@@ -1720,7 +1644,7 @@
   /// more\](/recommendations-ai/docs/catalog#item-group-id).
   ///
   /// Optional.
-  core.String itemGroupId;
+  core.String? itemGroupId;
 
   /// The model automatically detects the text language.
   ///
@@ -1729,12 +1653,12 @@
   /// model performance.
   ///
   /// Optional. Deprecated.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// Metadata specific to retail products.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1ProductCatalogItem productMetadata;
+  GoogleCloudRecommendationengineV1beta1ProductCatalogItem? productMetadata;
 
   /// Filtering tags associated with the catalog item.
   ///
@@ -1743,14 +1667,14 @@
   /// tag as part of the predict request filter.
   ///
   /// Optional.
-  core.List<core.String> tags;
+  core.List<core.String>? tags;
 
   /// Catalog item title.
   ///
   /// UTF-8 encoded string with a length limit of 1 KiB.
   ///
   /// Required.
-  core.String title;
+  core.String? title;
 
   GoogleCloudRecommendationengineV1beta1CatalogItem();
 
@@ -1795,19 +1719,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (categoryHierarchies != null)
           'categoryHierarchies':
-              categoryHierarchies.map((value) => value.toJson()).toList(),
-        if (description != null) 'description': description,
-        if (id != null) 'id': id,
-        if (itemAttributes != null) 'itemAttributes': itemAttributes.toJson(),
-        if (itemGroupId != null) 'itemGroupId': itemGroupId,
-        if (languageCode != null) 'languageCode': languageCode,
+              categoryHierarchies!.map((value) => value.toJson()).toList(),
+        if (description != null) 'description': description!,
+        if (id != null) 'id': id!,
+        if (itemAttributes != null) 'itemAttributes': itemAttributes!.toJson(),
+        if (itemGroupId != null) 'itemGroupId': itemGroupId!,
+        if (languageCode != null) 'languageCode': languageCode!,
         if (productMetadata != null)
-          'productMetadata': productMetadata.toJson(),
-        if (tags != null) 'tags': tags,
-        if (title != null) 'title': title,
+          'productMetadata': productMetadata!.toJson(),
+        if (tags != null) 'tags': tags!,
+        if (title != null) 'title': title!,
       };
 }
 
@@ -1820,7 +1744,7 @@
   /// to most specific).
   ///
   /// Required.
-  core.List<core.String> categories;
+  core.List<core.String>? categories;
 
   GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy();
 
@@ -1833,8 +1757,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (categories != null) 'categories': categories,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (categories != null) 'categories': categories!,
       };
 }
 
@@ -1852,7 +1776,7 @@
   /// - "CATALOG_ITEM_LEVEL_UNSPECIFIED" : Unknown value - should never be used.
   /// - "VARIANT" : Catalog items are at variant level.
   /// - "MASTER" : Catalog items are at master level.
-  core.String eventItemLevel;
+  core.String? eventItemLevel;
 
   /// Level of the catalog at which predictions are made.
   ///
@@ -1865,7 +1789,7 @@
   /// - "CATALOG_ITEM_LEVEL_UNSPECIFIED" : Unknown value - should never be used.
   /// - "VARIANT" : Catalog items are at variant level.
   /// - "MASTER" : Catalog items are at master level.
-  core.String predictItemLevel;
+  core.String? predictItemLevel;
 
   GoogleCloudRecommendationengineV1beta1CatalogItemLevelConfig();
 
@@ -1879,9 +1803,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (eventItemLevel != null) 'eventItemLevel': eventItemLevel,
-        if (predictItemLevel != null) 'predictItemLevel': predictItemLevel,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (eventItemLevel != null) 'eventItemLevel': eventItemLevel!,
+        if (predictItemLevel != null) 'predictItemLevel': predictItemLevel!,
       };
 }
 
@@ -1890,7 +1814,7 @@
   /// The prediction API key registration.
   ///
   /// Required.
-  GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration
+  GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration?
       predictionApiKeyRegistration;
 
   GoogleCloudRecommendationengineV1beta1CreatePredictionApiKeyRegistrationRequest();
@@ -1905,9 +1829,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (predictionApiKeyRegistration != null)
-          'predictionApiKeyRegistration': predictionApiKeyRegistration.toJson(),
+          'predictionApiKeyRegistration':
+              predictionApiKeyRegistration!.toJson(),
       };
 }
 
@@ -1921,7 +1846,7 @@
   /// and etc.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1FeatureMap eventAttributes;
+  GoogleCloudRecommendationengineV1beta1FeatureMap? eventAttributes;
 
   /// A list of identifiers for the independent experiment groups this user
   /// event belongs to.
@@ -1931,7 +1856,7 @@
   /// different recommendation models).
   ///
   /// Optional.
-  core.List<core.String> experimentIds;
+  core.List<core.String>? experimentIds;
 
   /// A unique id of a web page view.
   ///
@@ -1943,7 +1868,7 @@
   /// JavaScript pixel.
   ///
   /// Optional.
-  core.String pageViewId;
+  core.String? pageViewId;
 
   /// Recommendation token included in the recommendation prediction response.
   ///
@@ -1958,14 +1883,14 @@
   /// of a recommendation prediction query.
   ///
   /// Optional.
-  core.String recommendationToken;
+  core.String? recommendationToken;
 
   /// The referrer url of the current page.
   ///
   /// When using the JavaScript pixel, this value is filled in automatically.
   ///
   /// Optional.
-  core.String referrerUri;
+  core.String? referrerUri;
 
   /// Complete url (window.location.href) of the user's current page.
   ///
@@ -1973,7 +1898,7 @@
   /// Maximum length 5KB.
   ///
   /// Optional.
-  core.String uri;
+  core.String? uri;
 
   GoogleCloudRecommendationengineV1beta1EventDetail();
 
@@ -2002,15 +1927,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (eventAttributes != null)
-          'eventAttributes': eventAttributes.toJson(),
-        if (experimentIds != null) 'experimentIds': experimentIds,
-        if (pageViewId != null) 'pageViewId': pageViewId,
+          'eventAttributes': eventAttributes!.toJson(),
+        if (experimentIds != null) 'experimentIds': experimentIds!,
+        if (pageViewId != null) 'pageViewId': pageViewId!,
         if (recommendationToken != null)
-          'recommendationToken': recommendationToken,
-        if (referrerUri != null) 'referrerUri': referrerUri,
-        if (uri != null) 'uri': uri,
+          'recommendationToken': recommendationToken!,
+        if (referrerUri != null) 'referrerUri': referrerUri!,
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -2026,7 +1951,7 @@
   /// example: `{ "colors": {"value": ["yellow", "green"]}, "sizes":
   /// {"value":["S", "M"]}`
   core.Map<core.String,
-          GoogleCloudRecommendationengineV1beta1FeatureMapStringList>
+          GoogleCloudRecommendationengineV1beta1FeatureMapStringList>?
       categoricalFeatures;
 
   /// Numerical features.
@@ -2035,7 +1960,7 @@
   /// customer. Feature names must be UTF-8 encoded strings. For example: `{
   /// "lengths_cm": {"value":[2.3, 15.4]}, "heights_cm": {"value":[8.1, 6.4]} }`
   core.Map<core.String,
-          GoogleCloudRecommendationengineV1beta1FeatureMapFloatList>
+          GoogleCloudRecommendationengineV1beta1FeatureMapFloatList>?
       numericalFeatures;
 
   GoogleCloudRecommendationengineV1beta1FeatureMap();
@@ -2043,7 +1968,7 @@
   GoogleCloudRecommendationengineV1beta1FeatureMap.fromJson(core.Map _json) {
     if (_json.containsKey('categoricalFeatures')) {
       categoricalFeatures = (_json['categoricalFeatures'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -2054,7 +1979,7 @@
     }
     if (_json.containsKey('numericalFeatures')) {
       numericalFeatures = (_json['numericalFeatures'] as core.Map)
-          .cast<core.String, core.Map>()
+          .cast<core.String, core.Map<core.String, core.Object?>>()
           .map(
             (key, item) => core.MapEntry(
               key,
@@ -2065,12 +1990,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (categoricalFeatures != null)
-          'categoricalFeatures': categoricalFeatures
+          'categoricalFeatures': categoricalFeatures!
               .map((key, item) => core.MapEntry(key, item.toJson())),
         if (numericalFeatures != null)
-          'numericalFeatures': numericalFeatures
+          'numericalFeatures': numericalFeatures!
               .map((key, item) => core.MapEntry(key, item.toJson())),
       };
 }
@@ -2078,7 +2003,7 @@
 /// A list of float features.
 class GoogleCloudRecommendationengineV1beta1FeatureMapFloatList {
   /// Float feature value.
-  core.List<core.double> value;
+  core.List<core.double>? value;
 
   GoogleCloudRecommendationengineV1beta1FeatureMapFloatList();
 
@@ -2091,15 +2016,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (value != null) 'value': value!,
       };
 }
 
 /// A list of string features.
 class GoogleCloudRecommendationengineV1beta1FeatureMapStringList {
   /// String feature value with a length limit of 128 bytes.
-  core.List<core.String> value;
+  core.List<core.String>? value;
 
   GoogleCloudRecommendationengineV1beta1FeatureMapStringList();
 
@@ -2112,8 +2037,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (value != null) 'value': value!,
       };
 }
 
@@ -2131,7 +2056,7 @@
   /// for the expected file format and setup instructions.
   ///
   /// Required.
-  core.List<core.String> inputUris;
+  core.List<core.String>? inputUris;
 
   /// The schema to use when parsing the data from the source.
   ///
@@ -2146,7 +2071,7 @@
   /// https://support.google.com/analytics/answer/3437719?hl=en
   ///
   /// Optional.
-  core.String jsonSchema;
+  core.String? jsonSchema;
 
   GoogleCloudRecommendationengineV1beta1GcsSource();
 
@@ -2161,9 +2086,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (inputUris != null) 'inputUris': inputUris,
-        if (jsonSchema != null) 'jsonSchema': jsonSchema,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (inputUris != null) 'inputUris': inputUris!,
+        if (jsonSchema != null) 'jsonSchema': jsonSchema!,
       };
 }
 
@@ -2172,17 +2097,17 @@
   /// Height of the image in number of pixels.
   ///
   /// Optional.
-  core.int height;
+  core.int? height;
 
   /// URL of the image with a length limit of 5 KiB.
   ///
   /// Required.
-  core.String uri;
+  core.String? uri;
 
   /// Width of the image in number of pixels.
   ///
   /// Optional.
-  core.int width;
+  core.int? width;
 
   GoogleCloudRecommendationengineV1beta1Image();
 
@@ -2198,10 +2123,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (height != null) 'height': height,
-        if (uri != null) 'uri': uri,
-        if (width != null) 'width': width,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (height != null) 'height': height!,
+        if (uri != null) 'uri': uri!,
+        if (width != null) 'width': width!,
       };
 }
 
@@ -2210,12 +2135,12 @@
   /// The desired location of errors incurred during the Import.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig errorsConfig;
+  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig? errorsConfig;
 
   /// The desired input location of the data.
   ///
   /// Required.
-  GoogleCloudRecommendationengineV1beta1InputConfig inputConfig;
+  GoogleCloudRecommendationengineV1beta1InputConfig? inputConfig;
 
   /// Unique identifier provided by client, within the ancestor dataset scope.
   ///
@@ -2224,14 +2149,14 @@
   /// google.longrunning.Operation.name in the response.
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   /// Indicates which fields in the provided imported 'items' to update.
   ///
   /// If not set, will by default update all fields.
   ///
   /// Optional.
-  core.String updateMask;
+  core.String? updateMask;
 
   GoogleCloudRecommendationengineV1beta1ImportCatalogItemsRequest();
 
@@ -2254,11 +2179,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (errorsConfig != null) 'errorsConfig': errorsConfig.toJson(),
-        if (inputConfig != null) 'inputConfig': inputConfig.toJson(),
-        if (requestId != null) 'requestId': requestId,
-        if (updateMask != null) 'updateMask': updateMask,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (errorsConfig != null) 'errorsConfig': errorsConfig!.toJson(),
+        if (inputConfig != null) 'inputConfig': inputConfig!.toJson(),
+        if (requestId != null) 'requestId': requestId!,
+        if (updateMask != null) 'updateMask': updateMask!,
       };
 }
 
@@ -2269,10 +2194,10 @@
 /// successful.
 class GoogleCloudRecommendationengineV1beta1ImportCatalogItemsResponse {
   /// A sample of errors encountered while processing the request.
-  core.List<GoogleRpcStatus> errorSamples;
+  core.List<GoogleRpcStatus>? errorSamples;
 
   /// Echoes the destination for the complete errors in the request if set.
-  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig errorsConfig;
+  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig? errorsConfig;
 
   GoogleCloudRecommendationengineV1beta1ImportCatalogItemsResponse();
 
@@ -2291,10 +2216,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (errorSamples != null)
-          'errorSamples': errorSamples.map((value) => value.toJson()).toList(),
-        if (errorsConfig != null) 'errorsConfig': errorsConfig.toJson(),
+          'errorSamples': errorSamples!.map((value) => value.toJson()).toList(),
+        if (errorsConfig != null) 'errorsConfig': errorsConfig!.toJson(),
       };
 }
 
@@ -2305,7 +2230,7 @@
   /// This must be an empty, existing Cloud Storage bucket. Import errors will
   /// be written to a file in this bucket, one per line, as a JSON-encoded
   /// `google.rpc.Status` message.
-  core.String gcsPrefix;
+  core.String? gcsPrefix;
 
   GoogleCloudRecommendationengineV1beta1ImportErrorsConfig();
 
@@ -2316,8 +2241,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (gcsPrefix != null) 'gcsPrefix': gcsPrefix,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (gcsPrefix != null) 'gcsPrefix': gcsPrefix!,
       };
 }
 
@@ -2326,26 +2251,26 @@
 /// This will be returned by the google.longrunning.Operation.metadata field.
 class GoogleCloudRecommendationengineV1beta1ImportMetadata {
   /// Operation create time.
-  core.String createTime;
+  core.String? createTime;
 
   /// Count of entries that encountered errors while processing.
-  core.String failureCount;
+  core.String? failureCount;
 
   /// Name of the operation.
-  core.String operationName;
+  core.String? operationName;
 
   /// Id of the request / operation.
   ///
   /// This is parroting back the requestId that was passed in the request.
-  core.String requestId;
+  core.String? requestId;
 
   /// Count of entries that were processed successfully.
-  core.String successCount;
+  core.String? successCount;
 
   /// Operation last update time.
   ///
   /// If the operation is done, this is also the finish time.
-  core.String updateTime;
+  core.String? updateTime;
 
   GoogleCloudRecommendationengineV1beta1ImportMetadata();
 
@@ -2371,13 +2296,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (failureCount != null) 'failureCount': failureCount,
-        if (operationName != null) 'operationName': operationName,
-        if (requestId != null) 'requestId': requestId,
-        if (successCount != null) 'successCount': successCount,
-        if (updateTime != null) 'updateTime': updateTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (failureCount != null) 'failureCount': failureCount!,
+        if (operationName != null) 'operationName': operationName!,
+        if (requestId != null) 'requestId': requestId!,
+        if (successCount != null) 'successCount': successCount!,
+        if (updateTime != null) 'updateTime': updateTime!,
       };
 }
 
@@ -2386,12 +2311,12 @@
   /// The desired location of errors incurred during the Import.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig errorsConfig;
+  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig? errorsConfig;
 
   /// The desired input location of the data.
   ///
   /// Required.
-  GoogleCloudRecommendationengineV1beta1InputConfig inputConfig;
+  GoogleCloudRecommendationengineV1beta1InputConfig? inputConfig;
 
   /// Unique identifier provided by client, within the ancestor dataset scope.
   ///
@@ -2402,7 +2327,7 @@
   /// catalog_inline_source.
   ///
   /// Optional.
-  core.String requestId;
+  core.String? requestId;
 
   GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest();
 
@@ -2422,10 +2347,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (errorsConfig != null) 'errorsConfig': errorsConfig.toJson(),
-        if (inputConfig != null) 'inputConfig': inputConfig.toJson(),
-        if (requestId != null) 'requestId': requestId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (errorsConfig != null) 'errorsConfig': errorsConfig!.toJson(),
+        if (inputConfig != null) 'inputConfig': inputConfig!.toJson(),
+        if (requestId != null) 'requestId': requestId!,
       };
 }
 
@@ -2436,14 +2361,14 @@
 /// successful.
 class GoogleCloudRecommendationengineV1beta1ImportUserEventsResponse {
   /// A sample of errors encountered while processing the request.
-  core.List<GoogleRpcStatus> errorSamples;
+  core.List<GoogleRpcStatus>? errorSamples;
 
   /// Echoes the destination for the complete errors if this field was set in
   /// the request.
-  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig errorsConfig;
+  GoogleCloudRecommendationengineV1beta1ImportErrorsConfig? errorsConfig;
 
   /// Aggregated statistics of user event import status.
-  GoogleCloudRecommendationengineV1beta1UserEventImportSummary importSummary;
+  GoogleCloudRecommendationengineV1beta1UserEventImportSummary? importSummary;
 
   GoogleCloudRecommendationengineV1beta1ImportUserEventsResponse();
 
@@ -2467,27 +2392,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (errorSamples != null)
-          'errorSamples': errorSamples.map((value) => value.toJson()).toList(),
-        if (errorsConfig != null) 'errorsConfig': errorsConfig.toJson(),
-        if (importSummary != null) 'importSummary': importSummary.toJson(),
+          'errorSamples': errorSamples!.map((value) => value.toJson()).toList(),
+        if (errorsConfig != null) 'errorsConfig': errorsConfig!.toJson(),
+        if (importSummary != null) 'importSummary': importSummary!.toJson(),
       };
 }
 
 /// The input config source.
 class GoogleCloudRecommendationengineV1beta1InputConfig {
   /// BigQuery input source.
-  GoogleCloudRecommendationengineV1beta1BigQuerySource bigQuerySource;
+  GoogleCloudRecommendationengineV1beta1BigQuerySource? bigQuerySource;
 
   /// The Inline source for the input content for Catalog items.
-  GoogleCloudRecommendationengineV1beta1CatalogInlineSource catalogInlineSource;
+  GoogleCloudRecommendationengineV1beta1CatalogInlineSource?
+      catalogInlineSource;
 
   /// Google Cloud Storage location for the input content.
-  GoogleCloudRecommendationengineV1beta1GcsSource gcsSource;
+  GoogleCloudRecommendationengineV1beta1GcsSource? gcsSource;
 
   /// The Inline source for the input content for UserEvents.
-  GoogleCloudRecommendationengineV1beta1UserEventInlineSource
+  GoogleCloudRecommendationengineV1beta1UserEventInlineSource?
       userEventInlineSource;
 
   GoogleCloudRecommendationengineV1beta1InputConfig();
@@ -2516,26 +2442,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bigQuerySource != null) 'bigQuerySource': bigQuerySource.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bigQuerySource != null) 'bigQuerySource': bigQuerySource!.toJson(),
         if (catalogInlineSource != null)
-          'catalogInlineSource': catalogInlineSource.toJson(),
-        if (gcsSource != null) 'gcsSource': gcsSource.toJson(),
+          'catalogInlineSource': catalogInlineSource!.toJson(),
+        if (gcsSource != null) 'gcsSource': gcsSource!.toJson(),
         if (userEventInlineSource != null)
-          'userEventInlineSource': userEventInlineSource.toJson(),
+          'userEventInlineSource': userEventInlineSource!.toJson(),
       };
 }
 
 /// Response message for ListCatalogItems method.
 class GoogleCloudRecommendationengineV1beta1ListCatalogItemsResponse {
   /// The catalog items.
-  core.List<GoogleCloudRecommendationengineV1beta1CatalogItem> catalogItems;
+  core.List<GoogleCloudRecommendationengineV1beta1CatalogItem>? catalogItems;
 
   /// If empty, the list is complete.
   ///
   /// If nonempty, the token to pass to the next request's
   /// ListCatalogItemRequest.page_token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudRecommendationengineV1beta1ListCatalogItemsResponse();
 
@@ -2553,10 +2479,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (catalogItems != null)
-          'catalogItems': catalogItems.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'catalogItems': catalogItems!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -2565,10 +2491,10 @@
   /// All the customer's catalogs.
   ///
   /// Output only.
-  core.List<GoogleCloudRecommendationengineV1beta1Catalog> catalogs;
+  core.List<GoogleCloudRecommendationengineV1beta1Catalog>? catalogs;
 
   /// Pagination token, if not returned indicates the last page.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   GoogleCloudRecommendationengineV1beta1ListCatalogsResponse();
 
@@ -2586,10 +2512,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (catalogs != null)
-          'catalogs': catalogs.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'catalogs': catalogs!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -2599,10 +2525,10 @@
   ///
   /// If nonempty, pass the token to the next request's
   /// `ListPredictionApiKeysRegistrationsRequest.pageToken`.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The list of registered API keys.
-  core.List<GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration>
+  core.List<GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration>?
       predictionApiKeyRegistrations;
 
   GoogleCloudRecommendationengineV1beta1ListPredictionApiKeyRegistrationsResponse();
@@ -2623,10 +2549,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (predictionApiKeyRegistrations != null)
-          'predictionApiKeyRegistrations': predictionApiKeyRegistrations
+          'predictionApiKeyRegistrations': predictionApiKeyRegistrations!
               .map((value) => value.toJson())
               .toList(),
       };
@@ -2638,10 +2564,10 @@
   ///
   /// If nonempty, the token to pass to the next request's
   /// ListUserEvents.page_token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The user events.
-  core.List<GoogleCloudRecommendationengineV1beta1UserEvent> userEvents;
+  core.List<GoogleCloudRecommendationengineV1beta1UserEvent>? userEvents;
 
   GoogleCloudRecommendationengineV1beta1ListUserEventsResponse();
 
@@ -2659,10 +2585,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (userEvents != null)
-          'userEvents': userEvents.map((value) => value.toJson()).toList(),
+          'userEvents': userEvents!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2675,7 +2601,7 @@
   /// or if the model is not ready.
   ///
   /// Optional.
-  core.bool dryRun;
+  core.bool? dryRun;
 
   /// Filter for restricting prediction results.
   ///
@@ -2694,7 +2620,7 @@
   /// `strictFiltering` to false in `PredictRequest.params`.
   ///
   /// Optional.
-  core.String filter;
+  core.String? filter;
 
   /// The labels for the predict request.
   ///
@@ -2706,7 +2632,7 @@
   /// information on and examples of labels.
   ///
   /// Optional.
-  core.Map<core.String, core.String> labels;
+  core.Map<core.String, core.String>? labels;
 
   /// Maximum number of results to return per page.
   ///
@@ -2714,12 +2640,12 @@
   /// the service will choose a reasonable default.
   ///
   /// Optional.
-  core.int pageSize;
+  core.int? pageSize;
 
   /// The previous PredictResponse.next_page_token.
   ///
   /// Optional.
-  core.String pageToken;
+  core.String? pageToken;
 
   /// Additional domain specific parameters for the predictions.
   ///
@@ -2738,7 +2664,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> params;
+  core.Map<core.String, core.Object>? params;
 
   /// Context about the user, what they are looking at and what action they took
   /// to trigger the predict request.
@@ -2747,7 +2673,7 @@
   /// Thus, a separate userEvent write request is required for event logging.
   ///
   /// Required.
-  GoogleCloudRecommendationengineV1beta1UserEvent userEvent;
+  GoogleCloudRecommendationengineV1beta1UserEvent? userEvent;
 
   GoogleCloudRecommendationengineV1beta1PredictRequest();
 
@@ -2789,50 +2715,50 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dryRun != null) 'dryRun': dryRun,
-        if (filter != null) 'filter': filter,
-        if (labels != null) 'labels': labels,
-        if (pageSize != null) 'pageSize': pageSize,
-        if (pageToken != null) 'pageToken': pageToken,
-        if (params != null) 'params': params,
-        if (userEvent != null) 'userEvent': userEvent.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dryRun != null) 'dryRun': dryRun!,
+        if (filter != null) 'filter': filter!,
+        if (labels != null) 'labels': labels!,
+        if (pageSize != null) 'pageSize': pageSize!,
+        if (pageToken != null) 'pageToken': pageToken!,
+        if (params != null) 'params': params!,
+        if (userEvent != null) 'userEvent': userEvent!.toJson(),
       };
 }
 
 /// Response message for predict method.
 class GoogleCloudRecommendationengineV1beta1PredictResponse {
   /// True if the dryRun property was set in the request.
-  core.bool dryRun;
+  core.bool? dryRun;
 
   /// IDs of items in the request that were missing from the catalog.
-  core.List<core.String> itemsMissingInCatalog;
+  core.List<core.String>? itemsMissingInCatalog;
 
   /// Additional domain specific prediction response metadata.
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// If empty, the list is complete.
   ///
   /// If nonempty, the token to pass to the next request's
   /// PredictRequest.page_token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A unique recommendation token.
   ///
   /// This should be included in the user event logs resulting from this
   /// recommendation, which enables accurate attribution of recommendation model
   /// performance.
-  core.String recommendationToken;
+  core.String? recommendationToken;
 
   /// A list of recommended items.
   ///
   /// The order represents the ranking (from the most relevant item to the
   /// least).
   core.List<
-          GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult>
+          GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult>?
       results;
 
   GoogleCloudRecommendationengineV1beta1PredictResponse();
@@ -2872,23 +2798,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dryRun != null) 'dryRun': dryRun,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dryRun != null) 'dryRun': dryRun!,
         if (itemsMissingInCatalog != null)
-          'itemsMissingInCatalog': itemsMissingInCatalog,
-        if (metadata != null) 'metadata': metadata,
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'itemsMissingInCatalog': itemsMissingInCatalog!,
+        if (metadata != null) 'metadata': metadata!,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (recommendationToken != null)
-          'recommendationToken': recommendationToken,
+          'recommendationToken': recommendationToken!,
         if (results != null)
-          'results': results.map((value) => value.toJson()).toList(),
+          'results': results!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// PredictionResult represents the recommendation prediction results.
 class GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult {
   /// ID of the recommended catalog item
-  core.String id;
+  core.String? id;
 
   /// Additional item metadata / annotations.
   ///
@@ -2899,7 +2825,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> itemMetadata;
+  core.Map<core.String, core.Object>? itemMetadata;
 
   GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult();
 
@@ -2920,16 +2846,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (id != null) 'id': id,
-        if (itemMetadata != null) 'itemMetadata': itemMetadata,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (id != null) 'id': id!,
+        if (itemMetadata != null) 'itemMetadata': itemMetadata!,
       };
 }
 
 /// Registered Api Key.
 class GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration {
   /// The API key.
-  core.String apiKey;
+  core.String? apiKey;
 
   GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration();
 
@@ -2940,8 +2866,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiKey != null) 'apiKey': apiKey,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiKey != null) 'apiKey': apiKey!,
       };
 }
 
@@ -2950,13 +2876,13 @@
   /// The available quantity of the item.
   ///
   /// Optional.
-  core.String availableQuantity;
+  core.String? availableQuantity;
 
   /// Canonical URL directly linking to the item detail page with a length limit
   /// of 5 KiB..
   ///
   /// Optional.
-  core.String canonicalProductUri;
+  core.String? canonicalProductUri;
 
   /// A map to pass the costs associated with the product.
   ///
@@ -2965,29 +2891,31 @@
   /// sum(costs) * If 'priceRange' is provided, profit = minPrice - sum(costs)
   ///
   /// Optional.
-  core.Map<core.String, core.double> costs;
+  core.Map<core.String, core.double>? costs;
 
   /// Only required if the price is set.
   ///
   /// Currency code for price/costs. Use three-character ISO-4217 code.
   ///
   /// Optional.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// The exact product price.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPrice exactPrice;
+  GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPrice?
+      exactPrice;
 
   /// Product images for the catalog item.
   ///
   /// Optional.
-  core.List<GoogleCloudRecommendationengineV1beta1Image> images;
+  core.List<GoogleCloudRecommendationengineV1beta1Image>? images;
 
   /// The product price range.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRange priceRange;
+  GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRange?
+      priceRange;
 
   /// Online stock state of the catalog item.
   ///
@@ -3001,7 +2929,7 @@
   /// - "OUT_OF_STOCK" : Item out of stock.
   /// - "PREORDER" : Item that is in pre-order state.
   /// - "BACKORDER" : Item that is back-ordered (i.e. temporarily out of stock).
-  core.String stockState;
+  core.String? stockState;
 
   GoogleCloudRecommendationengineV1beta1ProductCatalogItem();
 
@@ -3014,7 +2942,7 @@
       canonicalProductUri = _json['canonicalProductUri'] as core.String;
     }
     if (_json.containsKey('costs')) {
-      costs = (_json['costs'] as core.Map).cast<core.String, core.num>().map(
+      costs = (_json['costs'] as core.Map).cast<core.String, core.double>().map(
             (key, item) => core.MapEntry(
               key,
               (item as core.num).toDouble(),
@@ -3048,17 +2976,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (availableQuantity != null) 'availableQuantity': availableQuantity,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (availableQuantity != null) 'availableQuantity': availableQuantity!,
         if (canonicalProductUri != null)
-          'canonicalProductUri': canonicalProductUri,
-        if (costs != null) 'costs': costs,
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (exactPrice != null) 'exactPrice': exactPrice.toJson(),
+          'canonicalProductUri': canonicalProductUri!,
+        if (costs != null) 'costs': costs!,
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (exactPrice != null) 'exactPrice': exactPrice!.toJson(),
         if (images != null)
-          'images': images.map((value) => value.toJson()).toList(),
-        if (priceRange != null) 'priceRange': priceRange.toJson(),
-        if (stockState != null) 'stockState': stockState,
+          'images': images!.map((value) => value.toJson()).toList(),
+        if (priceRange != null) 'priceRange': priceRange!.toJson(),
+        if (stockState != null) 'stockState': stockState!,
       };
 }
 
@@ -3067,14 +2995,14 @@
   /// Display price of the product.
   ///
   /// Optional.
-  core.double displayPrice;
+  core.double? displayPrice;
 
   /// Price of the product without any discount.
   ///
   /// If zero, by default set to be the 'displayPrice'.
   ///
   /// Optional.
-  core.double originalPrice;
+  core.double? originalPrice;
 
   GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPrice();
 
@@ -3088,9 +3016,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayPrice != null) 'displayPrice': displayPrice,
-        if (originalPrice != null) 'originalPrice': originalPrice,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayPrice != null) 'displayPrice': displayPrice!,
+        if (originalPrice != null) 'originalPrice': originalPrice!,
       };
 }
 
@@ -3100,12 +3028,12 @@
   /// The maximum product price.
   ///
   /// Required.
-  core.double max;
+  core.double? max;
 
   /// The minimum product price.
   ///
   /// Required.
-  core.double min;
+  core.double? min;
 
   GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRange();
 
@@ -3119,9 +3047,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (max != null) 'max': max,
-        if (min != null) 'min': min,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (max != null) 'max': max!,
+        if (min != null) 'min': min!,
       };
 }
 
@@ -3136,7 +3064,7 @@
   /// as zero is not sufficient to mark the item out of stock.
   ///
   /// Optional.
-  core.int availableQuantity;
+  core.int? availableQuantity;
 
   /// Currency code for price/costs.
   ///
@@ -3144,7 +3072,7 @@
   /// displayPrice is set.
   ///
   /// Optional.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// Display price of the product (e.g. discounted price).
   ///
@@ -3152,19 +3080,19 @@
   /// product.
   ///
   /// Optional.
-  core.double displayPrice;
+  core.double? displayPrice;
 
   /// Catalog item ID.
   ///
   /// UTF-8 encoded string with a length limit of 128 characters.
   ///
   /// Required.
-  core.String id;
+  core.String? id;
 
   /// Extra features associated with a product in the user event.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1FeatureMap itemAttributes;
+  GoogleCloudRecommendationengineV1beta1FeatureMap? itemAttributes;
 
   /// Original price of the product.
   ///
@@ -3172,7 +3100,7 @@
   /// product.
   ///
   /// Optional.
-  core.double originalPrice;
+  core.double? originalPrice;
 
   /// Quantity of the product associated with the user event.
   ///
@@ -3182,7 +3110,7 @@
   /// `refund` event types.
   ///
   /// Optional.
-  core.int quantity;
+  core.int? quantity;
 
   /// Item stock state.
   ///
@@ -3197,7 +3125,7 @@
   /// - "OUT_OF_STOCK" : Item out of stock.
   /// - "PREORDER" : Item that is in pre-order state.
   /// - "BACKORDER" : Item that is back-ordered (i.e. temporarily out of stock).
-  core.String stockState;
+  core.String? stockState;
 
   GoogleCloudRecommendationengineV1beta1ProductDetail();
 
@@ -3230,15 +3158,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (availableQuantity != null) 'availableQuantity': availableQuantity,
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (displayPrice != null) 'displayPrice': displayPrice,
-        if (id != null) 'id': id,
-        if (itemAttributes != null) 'itemAttributes': itemAttributes.toJson(),
-        if (originalPrice != null) 'originalPrice': originalPrice,
-        if (quantity != null) 'quantity': quantity,
-        if (stockState != null) 'stockState': stockState,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (availableQuantity != null) 'availableQuantity': availableQuantity!,
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (displayPrice != null) 'displayPrice': displayPrice!,
+        if (id != null) 'id': id!,
+        if (itemAttributes != null) 'itemAttributes': itemAttributes!.toJson(),
+        if (originalPrice != null) 'originalPrice': originalPrice!,
+        if (quantity != null) 'quantity': quantity!,
+        if (stockState != null) 'stockState': stockState!,
       };
 }
 
@@ -3253,13 +3181,13 @@
   /// `shopping-cart-page-view` events.
   ///
   /// Optional.
-  core.String cartId;
+  core.String? cartId;
 
   /// Required for `add-to-list` and `remove-from-list` events.
   ///
   /// The id or name of the list that the item is being added to or removed
   /// from. Other event types should not set this field.
-  core.String listId;
+  core.String? listId;
 
   /// Required for `category-page-view` events.
   ///
@@ -3268,7 +3196,7 @@
   /// associated with a category page. Category pages include special pages such
   /// as sales or promotions. For instance, a special sale page may have the
   /// category hierarchy: categories : \["Sales", "2017 Black Friday Deals"\].
-  core.List<GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy>
+  core.List<GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy>?
       pageCategories;
 
   /// The main product details related to the event.
@@ -3286,7 +3214,8 @@
   /// with different product_details is desired. The end user may have not
   /// finished broswing the whole page yet. This field is not allowed for the
   /// following event types: * `category-page-view` * `home-page-view`
-  core.List<GoogleCloudRecommendationengineV1beta1ProductDetail> productDetails;
+  core.List<GoogleCloudRecommendationengineV1beta1ProductDetail>?
+      productDetails;
 
   /// A transaction represents the entire purchase transaction.
   ///
@@ -3294,14 +3223,15 @@
   /// events. Other event types should not set this field.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1PurchaseTransaction purchaseTransaction;
+  GoogleCloudRecommendationengineV1beta1PurchaseTransaction?
+      purchaseTransaction;
 
   /// At least one of search_query or page_categories is required for `search`
   /// events.
   ///
   /// Other event types should not set this field. The user's search query as
   /// UTF-8 encoded text with a length limit of 5 KiB.
-  core.String searchQuery;
+  core.String? searchQuery;
 
   GoogleCloudRecommendationengineV1beta1ProductEventDetail();
 
@@ -3339,18 +3269,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cartId != null) 'cartId': cartId,
-        if (listId != null) 'listId': listId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cartId != null) 'cartId': cartId!,
+        if (listId != null) 'listId': listId!,
         if (pageCategories != null)
           'pageCategories':
-              pageCategories.map((value) => value.toJson()).toList(),
+              pageCategories!.map((value) => value.toJson()).toList(),
         if (productDetails != null)
           'productDetails':
-              productDetails.map((value) => value.toJson()).toList(),
+              productDetails!.map((value) => value.toJson()).toList(),
         if (purchaseTransaction != null)
-          'purchaseTransaction': purchaseTransaction.toJson(),
-        if (searchQuery != null) 'searchQuery': searchQuery,
+          'purchaseTransaction': purchaseTransaction!.toJson(),
+        if (searchQuery != null) 'searchQuery': searchQuery!,
       };
 }
 
@@ -3366,7 +3296,7 @@
   /// be calculated for this Transaction.
   ///
   /// Optional.
-  core.Map<core.String, core.double> costs;
+  core.Map<core.String, core.double>? costs;
 
   /// Currency code.
   ///
@@ -3374,12 +3304,12 @@
   /// type is `refund`.
   ///
   /// Required.
-  core.String currencyCode;
+  core.String? currencyCode;
 
   /// The transaction ID with a length limit of 128 bytes.
   ///
   /// Optional.
-  core.String id;
+  core.String? id;
 
   /// Total revenue or grand total associated with the transaction.
   ///
@@ -3388,19 +3318,19 @@
   /// is not required if the event type is `refund`.
   ///
   /// Required.
-  core.double revenue;
+  core.double? revenue;
 
   /// All the taxes associated with the transaction.
   ///
   /// Optional.
-  core.Map<core.String, core.double> taxes;
+  core.Map<core.String, core.double>? taxes;
 
   GoogleCloudRecommendationengineV1beta1PurchaseTransaction();
 
   GoogleCloudRecommendationengineV1beta1PurchaseTransaction.fromJson(
       core.Map _json) {
     if (_json.containsKey('costs')) {
-      costs = (_json['costs'] as core.Map).cast<core.String, core.num>().map(
+      costs = (_json['costs'] as core.Map).cast<core.String, core.double>().map(
             (key, item) => core.MapEntry(
               key,
               (item as core.num).toDouble(),
@@ -3417,7 +3347,7 @@
       revenue = (_json['revenue'] as core.num).toDouble();
     }
     if (_json.containsKey('taxes')) {
-      taxes = (_json['taxes'] as core.Map).cast<core.String, core.num>().map(
+      taxes = (_json['taxes'] as core.Map).cast<core.String, core.double>().map(
             (key, item) => core.MapEntry(
               key,
               (item as core.num).toDouble(),
@@ -3426,12 +3356,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (costs != null) 'costs': costs,
-        if (currencyCode != null) 'currencyCode': currencyCode,
-        if (id != null) 'id': id,
-        if (revenue != null) 'revenue': revenue,
-        if (taxes != null) 'taxes': taxes,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (costs != null) 'costs': costs!,
+        if (currencyCode != null) 'currencyCode': currencyCode!,
+        if (id != null) 'id': id!,
+        if (revenue != null) 'revenue': revenue!,
+        if (taxes != null) 'taxes': taxes!,
       };
 }
 
@@ -3440,10 +3370,10 @@
 /// This will be returned by the google.longrunning.Operation.metadata field.
 class GoogleCloudRecommendationengineV1beta1PurgeUserEventsMetadata {
   /// Operation create time.
-  core.String createTime;
+  core.String? createTime;
 
   /// The ID of the request / operation.
-  core.String operationName;
+  core.String? operationName;
 
   GoogleCloudRecommendationengineV1beta1PurgeUserEventsMetadata();
 
@@ -3457,9 +3387,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (createTime != null) 'createTime': createTime,
-        if (operationName != null) 'operationName': operationName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (createTime != null) 'createTime': createTime!,
+        if (operationName != null) 'operationName': operationName!,
       };
 }
 
@@ -3480,7 +3410,7 @@
   /// fields are assumed to have an implicit AND.
   ///
   /// Required.
-  core.String filter;
+  core.String? filter;
 
   /// The default value is false.
   ///
@@ -3488,7 +3418,7 @@
   /// not set to true, a sampling of events to be deleted will be returned.
   ///
   /// Optional.
-  core.bool force;
+  core.bool? force;
 
   GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest();
 
@@ -3502,9 +3432,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (filter != null) 'filter': filter,
-        if (force != null) 'force': force,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (filter != null) 'filter': filter!,
+        if (force != null) 'force': force!,
       };
 }
 
@@ -3514,13 +3444,13 @@
 /// returned by the google.longrunning.Operations.response field.
 class GoogleCloudRecommendationengineV1beta1PurgeUserEventsResponse {
   /// The total count of events purged as a result of the operation.
-  core.String purgedEventsCount;
+  core.String? purgedEventsCount;
 
   /// A sampling of events deleted (or will be deleted) depending on the `force`
   /// property in the request.
   ///
   /// Max of 500 items will be returned.
-  core.List<GoogleCloudRecommendationengineV1beta1UserEvent> userEventsSample;
+  core.List<GoogleCloudRecommendationengineV1beta1UserEvent>? userEventsSample;
 
   GoogleCloudRecommendationengineV1beta1PurgeUserEventsResponse();
 
@@ -3538,11 +3468,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (purgedEventsCount != null) 'purgedEventsCount': purgedEventsCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (purgedEventsCount != null) 'purgedEventsCount': purgedEventsCount!,
         if (userEventsSample != null)
           'userEventsSample':
-              userEventsSample.map((value) => value.toJson()).toList(),
+              userEventsSample!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3554,7 +3484,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Request message for CatalogRejoin method.
@@ -3568,7 +3498,7 @@
   /// including both joined events and unjoined events.
   /// - "JOINED_EVENTS" : Only rejoin catalogs with joined events.
   /// - "UNJOINED_EVENTS" : Only rejoin catalogs with unjoined events.
-  core.String userEventRejoinScope;
+  core.String? userEventRejoinScope;
 
   GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest();
 
@@ -3579,16 +3509,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (userEventRejoinScope != null)
-          'userEventRejoinScope': userEventRejoinScope,
+          'userEventRejoinScope': userEventRejoinScope!,
       };
 }
 
 /// Response message for RejoinUserEvents method.
 class GoogleCloudRecommendationengineV1beta1RejoinUserEventsResponse {
   /// Number of user events that were joined with latest catalog items.
-  core.String rejoinedUserEventsCount;
+  core.String? rejoinedUserEventsCount;
 
   GoogleCloudRecommendationengineV1beta1RejoinUserEventsResponse();
 
@@ -3599,9 +3529,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (rejoinedUserEventsCount != null)
-          'rejoinedUserEventsCount': rejoinedUserEventsCount,
+          'rejoinedUserEventsCount': rejoinedUserEventsCount!,
       };
 }
 
@@ -3612,7 +3542,7 @@
   /// types.
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1EventDetail eventDetail;
+  GoogleCloudRecommendationengineV1beta1EventDetail? eventDetail;
 
   /// This field should *not* be set when using JavaScript pixel or the
   /// Recommendations AI Tag.
@@ -3627,14 +3557,14 @@
   /// - "ECOMMERCE" : The event is ingested via Recommendations AI Tag through
   /// Enhanced Ecommerce datalayer.
   /// - "BATCH_UPLOAD" : The event is ingested via Import user events API.
-  core.String eventSource;
+  core.String? eventSource;
 
   /// Only required for ImportUserEvents method.
   ///
   /// Timestamp of user event created.
   ///
   /// Optional.
-  core.String eventTime;
+  core.String? eventTime;
 
   /// User event type.
   ///
@@ -3652,7 +3582,7 @@
   /// Google Tag Manager.
   ///
   /// Required.
-  core.String eventType;
+  core.String? eventType;
 
   /// Retail product specific user event metadata.
   ///
@@ -3666,12 +3596,12 @@
   /// `home-page-view`
   ///
   /// Optional.
-  GoogleCloudRecommendationengineV1beta1ProductEventDetail productEventDetail;
+  GoogleCloudRecommendationengineV1beta1ProductEventDetail? productEventDetail;
 
   /// User information.
   ///
   /// Required.
-  GoogleCloudRecommendationengineV1beta1UserInfo userInfo;
+  GoogleCloudRecommendationengineV1beta1UserInfo? userInfo;
 
   GoogleCloudRecommendationengineV1beta1UserEvent();
 
@@ -3701,14 +3631,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (eventDetail != null) 'eventDetail': eventDetail.toJson(),
-        if (eventSource != null) 'eventSource': eventSource,
-        if (eventTime != null) 'eventTime': eventTime,
-        if (eventType != null) 'eventType': eventType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (eventDetail != null) 'eventDetail': eventDetail!.toJson(),
+        if (eventSource != null) 'eventSource': eventSource!,
+        if (eventTime != null) 'eventTime': eventTime!,
+        if (eventType != null) 'eventType': eventType!,
         if (productEventDetail != null)
-          'productEventDetail': productEventDetail.toJson(),
-        if (userInfo != null) 'userInfo': userInfo.toJson(),
+          'productEventDetail': productEventDetail!.toJson(),
+        if (userInfo != null) 'userInfo': userInfo!.toJson(),
       };
 }
 
@@ -3717,11 +3647,11 @@
 /// The UserEventImportSummary summarizes the import status for user events.
 class GoogleCloudRecommendationengineV1beta1UserEventImportSummary {
   /// Count of user events imported with complete existing catalog information.
-  core.String joinedEventsCount;
+  core.String? joinedEventsCount;
 
   /// Count of user events imported, but with catalog information not found in
   /// the imported catalog.
-  core.String unjoinedEventsCount;
+  core.String? unjoinedEventsCount;
 
   GoogleCloudRecommendationengineV1beta1UserEventImportSummary();
 
@@ -3735,10 +3665,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (joinedEventsCount != null) 'joinedEventsCount': joinedEventsCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (joinedEventsCount != null) 'joinedEventsCount': joinedEventsCount!,
         if (unjoinedEventsCount != null)
-          'unjoinedEventsCount': unjoinedEventsCount,
+          'unjoinedEventsCount': unjoinedEventsCount!,
       };
 }
 
@@ -3749,7 +3679,7 @@
   /// Recommended max of 10k items.
   ///
   /// Optional.
-  core.List<GoogleCloudRecommendationengineV1beta1UserEvent> userEvents;
+  core.List<GoogleCloudRecommendationengineV1beta1UserEvent>? userEvents;
 
   GoogleCloudRecommendationengineV1beta1UserEventInlineSource();
 
@@ -3764,9 +3694,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (userEvents != null)
-          'userEvents': userEvents.map((value) => value.toJson()).toList(),
+          'userEvents': userEvents!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3782,7 +3712,7 @@
   /// the user events).
   ///
   /// Optional.
-  core.bool directUserRequest;
+  core.bool? directUserRequest;
 
   /// IP address of the user.
   ///
@@ -3792,7 +3722,7 @@
   /// extract location information for personalization.
   ///
   /// Optional.
-  core.String ipAddress;
+  core.String? ipAddress;
 
   /// User agent as included in the HTTP header.
   ///
@@ -3800,14 +3730,14 @@
   /// set when using the JavaScript pixel or if `directUserRequest` is set.
   ///
   /// Optional.
-  core.String userAgent;
+  core.String? userAgent;
 
   /// Unique identifier for logged-in user with a length limit of 128 bytes.
   ///
   /// Required only for logged-in users.
   ///
   /// Optional.
-  core.String userId;
+  core.String? userId;
 
   /// A unique identifier for tracking visitors with a length limit of 128
   /// bytes.
@@ -3818,7 +3748,7 @@
   /// Maximum length 128 bytes. Cannot be empty.
   ///
   /// Required.
-  core.String visitorId;
+  core.String? visitorId;
 
   GoogleCloudRecommendationengineV1beta1UserInfo();
 
@@ -3840,22 +3770,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (directUserRequest != null) 'directUserRequest': directUserRequest,
-        if (ipAddress != null) 'ipAddress': ipAddress,
-        if (userAgent != null) 'userAgent': userAgent,
-        if (userId != null) 'userId': userId,
-        if (visitorId != null) 'visitorId': visitorId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (directUserRequest != null) 'directUserRequest': directUserRequest!,
+        if (ipAddress != null) 'ipAddress': ipAddress!,
+        if (userAgent != null) 'userAgent': userAgent!,
+        if (userId != null) 'userId': userId!,
+        if (visitorId != null) 'visitorId': visitorId!,
       };
 }
 
 /// The response message for Operations.ListOperations.
 class GoogleLongrunningListOperationsResponse {
   /// The standard List next-page token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of operations that matches the specified filter in the request.
-  core.List<GoogleLongrunningOperation> operations;
+  core.List<GoogleLongrunningOperation>? operations;
 
   GoogleLongrunningListOperationsResponse();
 
@@ -3872,10 +3802,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (operations != null)
-          'operations': operations.map((value) => value.toJson()).toList(),
+          'operations': operations!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3886,10 +3816,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  GoogleRpcStatus error;
+  GoogleRpcStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -3900,14 +3830,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -3920,7 +3850,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   GoogleLongrunningOperation();
 
@@ -3955,12 +3885,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
@@ -3978,7 +3908,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// The `Status` type defines a logical error model that is suitable for
@@ -3990,7 +3920,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class GoogleRpcStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -3998,13 +3928,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   GoogleRpcStatus();
 
@@ -4028,9 +3958,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
diff --git a/generated/googleapis_beta/lib/sasportal/v1alpha1.dart b/generated/googleapis_beta/lib/sasportal/v1alpha1.dart
index 14cf16f..9c3b79e 100644
--- a/generated/googleapis_beta/lib/sasportal/v1alpha1.dart
+++ b/generated/googleapis_beta/lib/sasportal/v1alpha1.dart
@@ -104,11 +104,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalCustomer> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -144,9 +141,9 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<SasPortalListCustomersResponse> list({
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -189,14 +186,10 @@
   async.Future<SasPortalCustomer> patch(
     SasPortalCustomer request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -247,13 +240,9 @@
   async.Future<SasPortalDeployment> create(
     SasPortalDeployment request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -291,11 +280,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -330,11 +316,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDeployment> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -379,14 +362,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -429,13 +409,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeploymentRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -477,14 +453,10 @@
   async.Future<SasPortalDeployment> patch(
     SasPortalDeployment request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -531,13 +503,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -578,13 +546,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -633,14 +597,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -689,13 +650,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -736,13 +693,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -780,11 +733,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -819,11 +769,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDevice> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -869,14 +816,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -919,13 +863,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -967,14 +907,10 @@
   async.Future<SasPortalDevice> patch(
     SasPortalDevice request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1014,13 +950,9 @@
   async.Future<SasPortalEmpty> signDevice(
     SasPortalSignDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1061,13 +993,9 @@
   async.Future<SasPortalDevice> updateSigned(
     SasPortalUpdateSignedDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1122,13 +1050,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1166,11 +1090,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1205,11 +1126,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalNode> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1253,14 +1171,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1303,13 +1218,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveNodeRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1351,14 +1262,10 @@
   async.Future<SasPortalNode> patch(
     SasPortalNode request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -1406,13 +1313,9 @@
   async.Future<SasPortalDeployment> create(
     SasPortalDeployment request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1460,14 +1363,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1517,13 +1417,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1564,13 +1460,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1619,14 +1511,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1677,13 +1566,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1730,14 +1615,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -1786,11 +1668,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDeployment> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1831,11 +1710,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1870,11 +1746,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDevice> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1912,13 +1785,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1960,14 +1829,10 @@
   async.Future<SasPortalDevice> patch(
     SasPortalDevice request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2007,13 +1872,9 @@
   async.Future<SasPortalEmpty> signDevice(
     SasPortalSignDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2054,13 +1915,9 @@
   async.Future<SasPortalDevice> updateSigned(
     SasPortalUpdateSignedDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2103,10 +1960,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalGenerateSecretResponse> generateSecret(
     SasPortalGenerateSecretRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2141,10 +1997,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalValidateInstallerResponse> validate(
     SasPortalValidateInstallerRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2191,11 +2046,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalNode> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2239,11 +2091,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2278,11 +2127,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDeployment> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2327,14 +2173,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2377,13 +2220,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeploymentRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2425,14 +2264,10 @@
   async.Future<SasPortalDeployment> patch(
     SasPortalDeployment request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2479,13 +2314,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2526,13 +2357,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2581,14 +2408,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2637,13 +2461,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2684,13 +2504,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2728,11 +2544,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2767,11 +2580,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalDevice> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2817,14 +2627,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -2867,13 +2674,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2915,14 +2718,10 @@
   async.Future<SasPortalDevice> patch(
     SasPortalDevice request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -2962,13 +2761,9 @@
   async.Future<SasPortalEmpty> signDevice(
     SasPortalSignDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3009,13 +2804,9 @@
   async.Future<SasPortalDevice> updateSigned(
     SasPortalUpdateSignedDeviceRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3069,13 +2860,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3113,11 +2900,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalEmpty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3152,11 +2936,8 @@
   /// this method will complete with the same error.
   async.Future<SasPortalNode> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3200,14 +2981,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3250,13 +3028,9 @@
   async.Future<SasPortalOperation> move(
     SasPortalMoveNodeRequest request,
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3298,14 +3072,10 @@
   async.Future<SasPortalNode> patch(
     SasPortalNode request,
     core.String name, {
-    core.String updateMask,
-    core.String $fields,
+    core.String? updateMask,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (updateMask != null) 'updateMask': [updateMask],
       if ($fields != null) 'fields': [$fields],
@@ -3353,13 +3123,9 @@
   async.Future<SasPortalDeployment> create(
     SasPortalDeployment request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3407,14 +3173,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDeploymentsResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3463,13 +3226,9 @@
   async.Future<SasPortalDevice> create(
     SasPortalDevice request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3510,13 +3269,9 @@
   async.Future<SasPortalDevice> createSigned(
     SasPortalCreateSignedDeviceRequest request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3565,14 +3320,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListDevicesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3622,13 +3374,9 @@
   async.Future<SasPortalNode> create(
     SasPortalNode request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3675,14 +3423,11 @@
   /// this method will complete with the same error.
   async.Future<SasPortalListNodesResponse> list(
     core.String parent, {
-    core.String filter,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -3730,10 +3475,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalPolicy> get(
     SasPortalGetPolicyRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3770,10 +3514,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalPolicy> set(
     SasPortalSetPolicyRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3808,10 +3551,9 @@
   /// this method will complete with the same error.
   async.Future<SasPortalTestPermissionsResponse> test(
     SasPortalTestPermissionsRequest request, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -3837,12 +3579,12 @@
   /// represents a specific Google account. For example: `alice@gmail.com`. *
   /// `{group_email}`: An email address that represents a Google group. For
   /// example, `viewers@gmail.com`.
-  core.List<core.String> members;
+  core.List<core.String>? members;
 
   /// Role that is assigned to `members`.
   ///
   /// Required.
-  core.String role;
+  core.String? role;
 
   SasPortalAssignment();
 
@@ -3857,9 +3599,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (members != null) 'members': members,
-        if (role != null) 'role': role,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (members != null) 'members': members!,
+        if (role != null) 'role': role!,
       };
 }
 
@@ -3871,9 +3613,9 @@
   /// set.
   ///
   /// Required.
-  core.String encodedDevice;
+  core.String? encodedDevice;
   core.List<core.int> get encodedDeviceAsBytes =>
-      convert.base64.decode(encodedDevice);
+      convert.base64.decode(encodedDevice!);
 
   set encodedDeviceAsBytes(core.List<core.int> _bytes) {
     encodedDevice =
@@ -3884,7 +3626,7 @@
   /// database.
   ///
   /// Required.
-  core.String installerId;
+  core.String? installerId;
 
   SasPortalCreateSignedDeviceRequest();
 
@@ -3897,9 +3639,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (encodedDevice != null) 'encodedDevice': encodedDevice,
-        if (installerId != null) 'installerId': installerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (encodedDevice != null) 'encodedDevice': encodedDevice!,
+        if (installerId != null) 'installerId': installerId!,
       };
 }
 
@@ -3908,15 +3650,15 @@
   /// Name of the organization that the customer entity represents.
   ///
   /// Required.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name of the customer.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// User IDs used by the devices belonging to this customer.
-  core.List<core.String> sasUserIds;
+  core.List<core.String>? sasUserIds;
 
   SasPortalCustomer();
 
@@ -3934,17 +3676,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (sasUserIds != null) 'sasUserIds': sasUserIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (sasUserIds != null) 'sasUserIds': sasUserIds!,
       };
 }
 
 /// The Deployment.
 class SasPortalDeployment {
   /// The allowed billing modes under this deployment.
-  core.List<core.String> allowedBillingModes;
+  core.List<core.String>? allowedBillingModes;
 
   /// Default billing mode for the deployment and devices under it.
   /// Possible string values are:
@@ -3952,20 +3694,20 @@
   /// - "MOBILE" : Price is based on category of CBSD: Category A, Category B
   /// registered with SAS.
   /// - "FIXED_WIRELESS" : Price is based on type of CBSD: Base station or CPE.
-  core.String defaultBillingMode;
+  core.String? defaultBillingMode;
 
   /// The deployment's display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// User ID used by the devices belonging to this deployment.
   ///
   /// Each deployment should be associated with one unique user ID.
-  core.List<core.String> sasUserIds;
+  core.List<core.String>? sasUserIds;
 
   SasPortalDeployment();
 
@@ -3991,14 +3733,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (allowedBillingModes != null)
-          'allowedBillingModes': allowedBillingModes,
+          'allowedBillingModes': allowedBillingModes!,
         if (defaultBillingMode != null)
-          'defaultBillingMode': defaultBillingMode,
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (sasUserIds != null) 'sasUserIds': sasUserIds,
+          'defaultBillingMode': defaultBillingMode!,
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (sasUserIds != null) 'sasUserIds': sasUserIds!,
       };
 }
 
@@ -4006,36 +3748,36 @@
   /// Current configuration of the device as registered to the SAS.
   ///
   /// Output only.
-  SasPortalDeviceConfig activeConfig;
+  SasPortalDeviceConfig? activeConfig;
 
   /// Device parameters that can be overridden by both SAS Portal and SAS
   /// registration requests.
-  SasPortalDeviceMetadata deviceMetadata;
+  SasPortalDeviceMetadata? deviceMetadata;
 
   /// Device display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// The FCC identifier of the device.
-  core.String fccId;
+  core.String? fccId;
 
   /// Only ranges within the allowlists are available for new grants.
-  core.List<SasPortalFrequencyRange> grantRangeAllowlists;
+  core.List<SasPortalFrequencyRange>? grantRangeAllowlists;
 
   /// Grants held by the device.
   ///
   /// Output only.
-  core.List<SasPortalDeviceGrant> grants;
+  core.List<SasPortalDeviceGrant>? grants;
 
   /// The resource path name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// Configuration of the device, as specified via SAS Portal API.
-  SasPortalDeviceConfig preloadedConfig;
+  SasPortalDeviceConfig? preloadedConfig;
 
   /// A serial number assigned to the device by the device manufacturer.
-  core.String serialNumber;
+  core.String? serialNumber;
 
   /// Device state.
   ///
@@ -4046,7 +3788,7 @@
   /// registered with SAS.
   /// - "REGISTERED" : Device registered with SAS.
   /// - "DEREGISTERED" : Device de-registered with SAS.
-  core.String state;
+  core.String? state;
 
   SasPortalDevice();
 
@@ -4093,21 +3835,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (activeConfig != null) 'activeConfig': activeConfig.toJson(),
-        if (deviceMetadata != null) 'deviceMetadata': deviceMetadata.toJson(),
-        if (displayName != null) 'displayName': displayName,
-        if (fccId != null) 'fccId': fccId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (activeConfig != null) 'activeConfig': activeConfig!.toJson(),
+        if (deviceMetadata != null) 'deviceMetadata': deviceMetadata!.toJson(),
+        if (displayName != null) 'displayName': displayName!,
+        if (fccId != null) 'fccId': fccId!,
         if (grantRangeAllowlists != null)
           'grantRangeAllowlists':
-              grantRangeAllowlists.map((value) => value.toJson()).toList(),
+              grantRangeAllowlists!.map((value) => value.toJson()).toList(),
         if (grants != null)
-          'grants': grants.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'grants': grants!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
         if (preloadedConfig != null)
-          'preloadedConfig': preloadedConfig.toJson(),
-        if (serialNumber != null) 'serialNumber': serialNumber,
-        if (state != null) 'state': state,
+          'preloadedConfig': preloadedConfig!.toJson(),
+        if (serialNumber != null) 'serialNumber': serialNumber!,
+        if (state != null) 'state': state!,
       };
 }
 
@@ -4127,14 +3869,14 @@
   /// - "CW"
   /// - "REDLINE"
   /// - "TARANA_WIRELESS"
-  core.String radioTechnology;
+  core.String? radioTechnology;
 
   /// This field is related to the `radioTechnology` and provides the air
   /// interface specification that the CBSD is compliant with at the time of
   /// registration.
   ///
   /// Optional.
-  core.String supportedSpec;
+  core.String? supportedSpec;
 
   SasPortalDeviceAirInterface();
 
@@ -4147,55 +3889,55 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (radioTechnology != null) 'radioTechnology': radioTechnology,
-        if (supportedSpec != null) 'supportedSpec': supportedSpec,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (radioTechnology != null) 'radioTechnology': radioTechnology!,
+        if (supportedSpec != null) 'supportedSpec': supportedSpec!,
       };
 }
 
 /// Information about the device configuration.
 class SasPortalDeviceConfig {
   /// Information about this device's air interface.
-  SasPortalDeviceAirInterface airInterface;
+  SasPortalDeviceAirInterface? airInterface;
 
   /// The call sign of the device operator.
-  core.String callSign;
+  core.String? callSign;
 
   /// FCC category of the device.
   /// Possible string values are:
   /// - "DEVICE_CATEGORY_UNSPECIFIED" : Unspecified device category.
   /// - "DEVICE_CATEGORY_A" : Category A.
   /// - "DEVICE_CATEGORY_B" : Category B.
-  core.String category;
+  core.String? category;
 
   /// Installation parameters for the device.
-  SasPortalInstallationParams installationParams;
+  SasPortalInstallationParams? installationParams;
 
   /// Whether the configuration has been signed by a CPI.
   ///
   /// Output only.
-  core.bool isSigned;
+  core.bool? isSigned;
 
   /// Measurement reporting capabilities of the device.
-  core.List<core.String> measurementCapabilities;
+  core.List<core.String>? measurementCapabilities;
 
   /// Information about this device model.
-  SasPortalDeviceModel model;
+  SasPortalDeviceModel? model;
 
   /// State of the configuration.
   /// Possible string values are:
   /// - "DEVICE_CONFIG_STATE_UNSPECIFIED"
   /// - "DRAFT"
   /// - "FINAL"
-  core.String state;
+  core.String? state;
 
   /// The last time the device configuration was edited.
   ///
   /// Output only.
-  core.String updateTime;
+  core.String? updateTime;
 
   /// The identifier of a device user.
-  core.String userId;
+  core.String? userId;
 
   SasPortalDeviceConfig();
 
@@ -4237,19 +3979,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (airInterface != null) 'airInterface': airInterface.toJson(),
-        if (callSign != null) 'callSign': callSign,
-        if (category != null) 'category': category,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (airInterface != null) 'airInterface': airInterface!.toJson(),
+        if (callSign != null) 'callSign': callSign!,
+        if (category != null) 'category': category!,
         if (installationParams != null)
-          'installationParams': installationParams.toJson(),
-        if (isSigned != null) 'isSigned': isSigned,
+          'installationParams': installationParams!.toJson(),
+        if (isSigned != null) 'isSigned': isSigned!,
         if (measurementCapabilities != null)
-          'measurementCapabilities': measurementCapabilities,
-        if (model != null) 'model': model.toJson(),
-        if (state != null) 'state': state,
-        if (updateTime != null) 'updateTime': updateTime,
-        if (userId != null) 'userId': userId,
+          'measurementCapabilities': measurementCapabilities!,
+        if (model != null) 'model': model!.toJson(),
+        if (state != null) 'state': state!,
+        if (updateTime != null) 'updateTime': updateTime!,
+        if (userId != null) 'userId': userId!,
       };
 }
 
@@ -4264,16 +4006,16 @@
   /// - "CHANNEL_TYPE_UNSPECIFIED"
   /// - "CHANNEL_TYPE_GAA"
   /// - "CHANNEL_TYPE_PAL"
-  core.String channelType;
+  core.String? channelType;
 
   /// The expiration time of the grant.
-  core.String expireTime;
+  core.String? expireTime;
 
   /// The transmission frequency range.
-  SasPortalFrequencyRange frequencyRange;
+  SasPortalFrequencyRange? frequencyRange;
 
   /// Grant Id.
-  core.String grantId;
+  core.String? grantId;
 
   /// Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the
   /// grant.
@@ -4281,10 +4023,10 @@
   /// The maximum EIRP is in units of dBm/MHz. The value of `maxEirp` represents
   /// the average (RMS) EIRP that would be measured by the procedure defined in
   /// FCC part 96.41(e)(3).
-  core.double maxEirp;
+  core.double? maxEirp;
 
   /// The DPA move lists on which this grant appears.
-  core.List<SasPortalDpaMoveList> moveList;
+  core.List<SasPortalDpaMoveList>? moveList;
 
   /// State of the grant.
   /// Possible string values are:
@@ -4295,10 +4037,10 @@
   /// - "GRANT_STATE_SUSPENDED" : The grant has been suspended by the SAS.
   /// - "GRANT_STATE_AUTHORIZED" : The device is currently transmitting.
   /// - "GRANT_STATE_EXPIRED" : The grant has expired.
-  core.String state;
+  core.String? state;
 
   /// If the grant is suspended, the reason(s) for suspension.
-  core.List<core.String> suspensionReason;
+  core.List<core.String>? suspensionReason;
 
   SasPortalDeviceGrant();
 
@@ -4335,16 +4077,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (channelType != null) 'channelType': channelType,
-        if (expireTime != null) 'expireTime': expireTime,
-        if (frequencyRange != null) 'frequencyRange': frequencyRange.toJson(),
-        if (grantId != null) 'grantId': grantId,
-        if (maxEirp != null) 'maxEirp': maxEirp,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (channelType != null) 'channelType': channelType!,
+        if (expireTime != null) 'expireTime': expireTime!,
+        if (frequencyRange != null) 'frequencyRange': frequencyRange!.toJson(),
+        if (grantId != null) 'grantId': grantId!,
+        if (maxEirp != null) 'maxEirp': maxEirp!,
         if (moveList != null)
-          'moveList': moveList.map((value) => value.toJson()).toList(),
-        if (state != null) 'state': state,
-        if (suspensionReason != null) 'suspensionReason': suspensionReason,
+          'moveList': moveList!.map((value) => value.toJson()).toList(),
+        if (state != null) 'state': state!,
+        if (suspensionReason != null) 'suspensionReason': suspensionReason!,
       };
 }
 
@@ -4356,25 +4098,25 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Information about the model of the device.
 class SasPortalDeviceModel {
   /// The firmware version of the device.
-  core.String firmwareVersion;
+  core.String? firmwareVersion;
 
   /// The hardware version of the device.
-  core.String hardwareVersion;
+  core.String? hardwareVersion;
 
   /// The name of the device model.
-  core.String name;
+  core.String? name;
 
   /// The software version of the device.
-  core.String softwareVersion;
+  core.String? softwareVersion;
 
   /// The name of the device vendor.
-  core.String vendor;
+  core.String? vendor;
 
   SasPortalDeviceModel();
 
@@ -4396,22 +4138,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (firmwareVersion != null) 'firmwareVersion': firmwareVersion,
-        if (hardwareVersion != null) 'hardwareVersion': hardwareVersion,
-        if (name != null) 'name': name,
-        if (softwareVersion != null) 'softwareVersion': softwareVersion,
-        if (vendor != null) 'vendor': vendor,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (firmwareVersion != null) 'firmwareVersion': firmwareVersion!,
+        if (hardwareVersion != null) 'hardwareVersion': hardwareVersion!,
+        if (name != null) 'name': name!,
+        if (softwareVersion != null) 'softwareVersion': softwareVersion!,
+        if (vendor != null) 'vendor': vendor!,
       };
 }
 
 /// An entry in a DPA's move list.
 class SasPortalDpaMoveList {
   /// The ID of the DPA.
-  core.String dpaId;
+  core.String? dpaId;
 
   /// The frequency range that the move list affects.
-  SasPortalFrequencyRange frequencyRange;
+  SasPortalFrequencyRange? frequencyRange;
 
   SasPortalDpaMoveList();
 
@@ -4425,9 +4167,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dpaId != null) 'dpaId': dpaId,
-        if (frequencyRange != null) 'frequencyRange': frequencyRange.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dpaId != null) 'dpaId': dpaId!,
+        if (frequencyRange != null) 'frequencyRange': frequencyRange!.toJson(),
       };
 }
 
@@ -4445,16 +4187,16 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Frequency range from `low_frequency` to `high_frequency`.
 class SasPortalFrequencyRange {
   /// The highest frequency of the frequency range in MHz.
-  core.double highFrequencyMhz;
+  core.double? highFrequencyMhz;
 
   /// The lowest frequency of the frequency range in MHz.
-  core.double lowFrequencyMhz;
+  core.double? lowFrequencyMhz;
 
   SasPortalFrequencyRange();
 
@@ -4467,9 +4209,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (highFrequencyMhz != null) 'highFrequencyMhz': highFrequencyMhz,
-        if (lowFrequencyMhz != null) 'lowFrequencyMhz': lowFrequencyMhz,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (highFrequencyMhz != null) 'highFrequencyMhz': highFrequencyMhz!,
+        if (lowFrequencyMhz != null) 'lowFrequencyMhz': lowFrequencyMhz!,
       };
 }
 
@@ -4481,13 +4223,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Response for GenerateSecret.
 class SasPortalGenerateSecretResponse {
   /// The secret generated by the string and used by ValidateInstaller.
-  core.String secret;
+  core.String? secret;
 
   SasPortalGenerateSecretResponse();
 
@@ -4497,8 +4239,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (secret != null) 'secret': secret,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (secret != null) 'secret': secret!,
       };
 }
 
@@ -4507,7 +4249,7 @@
   /// The resource for which the policy is being requested.
   ///
   /// Required.
-  core.String resource;
+  core.String? resource;
 
   SasPortalGetPolicyRequest();
 
@@ -4517,8 +4259,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resource != null) 'resource': resource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resource != null) 'resource': resource!,
       };
 }
 
@@ -4531,14 +4273,14 @@
   /// inclusive. A value of 0 degrees means true north; a value of 90 degrees
   /// means east. This parameter is optional for Category A devices and
   /// conditional for Category B devices.
-  core.int antennaAzimuth;
+  core.int? antennaAzimuth;
 
   /// 3-dB antenna beamwidth of the antenna in the horizontal-plane in degrees.
   ///
   /// This parameter is an unsigned integer having a value between 0 and 360
   /// (degrees) inclusive; it is optional for Category A devices and conditional
   /// for Category B devices.
-  core.int antennaBeamwidth;
+  core.int? antennaBeamwidth;
 
   /// Antenna downtilt in degrees and is an integer with a value between -90 and
   /// +90 inclusive; a negative value means the antenna is tilted up (above
@@ -4546,37 +4288,37 @@
   ///
   /// This parameter is optional for Category A devices and conditional for
   /// Category B devices.
-  core.int antennaDowntilt;
+  core.int? antennaDowntilt;
 
   /// Peak antenna gain in dBi.
   ///
   /// This parameter is an integer with a value between -127 and +128 (dBi)
   /// inclusive.
-  core.int antennaGain;
+  core.int? antennaGain;
 
   /// If an external antenna is used, the antenna model is optionally provided
   /// in this field.
   ///
   /// The string has a maximum length of 128 octets.
-  core.String antennaModel;
+  core.String? antennaModel;
 
   /// If present, this parameter specifies whether the CBSD is a CPE-CBSD or
   /// not.
-  core.bool cpeCbsdIndication;
+  core.bool? cpeCbsdIndication;
 
   /// This parameter is the maximum device EIRP in units of dBm/10MHz and is an
   /// integer with a value between -127 and +47 (dBm/10 MHz) inclusive.
   ///
   /// If not included, SAS interprets it as maximum allowable EIRP in units of
   /// dBm/10MHz for device category.
-  core.int eirpCapability;
+  core.int? eirpCapability;
 
   /// Device antenna height in meters.
   ///
   /// When the `heightType` parameter value is "AGL", the antenna height should
   /// be given relative to ground level. When the `heightType` parameter value
   /// is "AMSL", it is given with respect to WGS84 datum.
-  core.double height;
+  core.double? height;
 
   /// Specifies how the height is measured.
   /// Possible string values are:
@@ -4584,19 +4326,19 @@
   /// - "HEIGHT_TYPE_AGL" : AGL height is measured relative to the ground level.
   /// - "HEIGHT_TYPE_AMSL" : AMSL height is measured relative to the mean sea
   /// level.
-  core.String heightType;
+  core.String? heightType;
 
   /// A positive number in meters to indicate accuracy of the device antenna
   /// horizontal location.
   ///
   /// This optional parameter should only be present if its value is less than
   /// the FCC requirement of 50 meters.
-  core.double horizontalAccuracy;
+  core.double? horizontalAccuracy;
 
   /// Whether the device antenna is indoor or not.
   ///
   /// `true`: indoor. `false`: outdoor.
-  core.bool indoorDeployment;
+  core.bool? indoorDeployment;
 
   /// Latitude of the device antenna location in degrees relative to the WGS 84
   /// datum.
@@ -4604,7 +4346,7 @@
   /// The allowed range is from -90.000000 to +90.000000. Positive values
   /// represent latitudes north of the equator; negative values south of the
   /// equator.
-  core.double latitude;
+  core.double? latitude;
 
   /// Longitude of the device antenna location in degrees relative to the WGS 84
   /// datum.
@@ -4612,14 +4354,14 @@
   /// The allowed range is from -180.000000 to +180.000000. Positive values
   /// represent longitudes east of the prime meridian; negative values west of
   /// the prime meridian.
-  core.double longitude;
+  core.double? longitude;
 
   /// A positive number in meters to indicate accuracy of the device antenna
   /// vertical location.
   ///
   /// This optional parameter should only be present if its value is less than
   /// the FCC requirement of 3 meters.
-  core.double verticalAccuracy;
+  core.double? verticalAccuracy;
 
   SasPortalInstallationParams();
 
@@ -4668,35 +4410,35 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (antennaAzimuth != null) 'antennaAzimuth': antennaAzimuth,
-        if (antennaBeamwidth != null) 'antennaBeamwidth': antennaBeamwidth,
-        if (antennaDowntilt != null) 'antennaDowntilt': antennaDowntilt,
-        if (antennaGain != null) 'antennaGain': antennaGain,
-        if (antennaModel != null) 'antennaModel': antennaModel,
-        if (cpeCbsdIndication != null) 'cpeCbsdIndication': cpeCbsdIndication,
-        if (eirpCapability != null) 'eirpCapability': eirpCapability,
-        if (height != null) 'height': height,
-        if (heightType != null) 'heightType': heightType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (antennaAzimuth != null) 'antennaAzimuth': antennaAzimuth!,
+        if (antennaBeamwidth != null) 'antennaBeamwidth': antennaBeamwidth!,
+        if (antennaDowntilt != null) 'antennaDowntilt': antennaDowntilt!,
+        if (antennaGain != null) 'antennaGain': antennaGain!,
+        if (antennaModel != null) 'antennaModel': antennaModel!,
+        if (cpeCbsdIndication != null) 'cpeCbsdIndication': cpeCbsdIndication!,
+        if (eirpCapability != null) 'eirpCapability': eirpCapability!,
+        if (height != null) 'height': height!,
+        if (heightType != null) 'heightType': heightType!,
         if (horizontalAccuracy != null)
-          'horizontalAccuracy': horizontalAccuracy,
-        if (indoorDeployment != null) 'indoorDeployment': indoorDeployment,
-        if (latitude != null) 'latitude': latitude,
-        if (longitude != null) 'longitude': longitude,
-        if (verticalAccuracy != null) 'verticalAccuracy': verticalAccuracy,
+          'horizontalAccuracy': horizontalAccuracy!,
+        if (indoorDeployment != null) 'indoorDeployment': indoorDeployment!,
+        if (latitude != null) 'latitude': latitude!,
+        if (longitude != null) 'longitude': longitude!,
+        if (verticalAccuracy != null) 'verticalAccuracy': verticalAccuracy!,
       };
 }
 
 /// Response for `ListCustomers`.
 class SasPortalListCustomersResponse {
   /// The list of customers that match the request.
-  core.List<SasPortalCustomer> customers;
+  core.List<SasPortalCustomer>? customers;
 
   /// A pagination token returned from a previous call to ListCustomers that
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there are no more customers.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SasPortalListCustomersResponse();
 
@@ -4712,23 +4454,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (customers != null)
-          'customers': customers.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'customers': customers!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response for ListDeployments.
 class SasPortalListDeploymentsResponse {
   /// The deployments that match the request.
-  core.List<SasPortalDeployment> deployments;
+  core.List<SasPortalDeployment>? deployments;
 
   /// A pagination token returned from a previous call to ListDeployments that
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there are no more deployments.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SasPortalListDeploymentsResponse();
 
@@ -4744,23 +4486,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (deployments != null)
-          'deployments': deployments.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'deployments': deployments!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response for ListDevices.
 class SasPortalListDevicesResponse {
   /// The devices that match the request.
-  core.List<SasPortalDevice> devices;
+  core.List<SasPortalDevice>? devices;
 
   /// A pagination token returned from a previous call to ListDevices that
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there is no more devices.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   SasPortalListDevicesResponse();
 
@@ -4776,10 +4518,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (devices != null)
-          'devices': devices.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'devices': devices!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -4789,10 +4531,10 @@
   /// indicates from where listing should continue.
   ///
   /// If the field is missing or empty, it means there is no more nodes.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// The nodes that match the request.
-  core.List<SasPortalNode> nodes;
+  core.List<SasPortalNode>? nodes;
 
   SasPortalListNodesResponse();
 
@@ -4808,10 +4550,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (nodes != null)
-          'nodes': nodes.map((value) => value.toJson()).toList(),
+          'nodes': nodes!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4821,7 +4563,7 @@
   /// deployment under.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   SasPortalMoveDeploymentRequest();
 
@@ -4831,8 +4573,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destination != null) 'destination': destination!,
       };
 }
 
@@ -4842,7 +4584,7 @@
   /// device under.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   SasPortalMoveDeviceRequest();
 
@@ -4852,8 +4594,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destination != null) 'destination': destination!,
       };
 }
 
@@ -4863,7 +4605,7 @@
   /// under.
   ///
   /// Required.
-  core.String destination;
+  core.String? destination;
 
   SasPortalMoveNodeRequest();
 
@@ -4873,23 +4615,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (destination != null) 'destination': destination,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (destination != null) 'destination': destination!,
       };
 }
 
 /// The Node.
 class SasPortalNode {
   /// The node's display name.
-  core.String displayName;
+  core.String? displayName;
 
   /// Resource name.
   ///
   /// Output only.
-  core.String name;
+  core.String? name;
 
   /// User ids used by the devices belonging to this node.
-  core.List<core.String> sasUserIds;
+  core.List<core.String>? sasUserIds;
 
   SasPortalNode();
 
@@ -4907,10 +4649,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (name != null) 'name': name,
-        if (sasUserIds != null) 'sasUserIds': sasUserIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (name != null) 'name': name!,
+        if (sasUserIds != null) 'sasUserIds': sasUserIds!,
       };
 }
 
@@ -4921,10 +4663,10 @@
   ///
   /// If `true`, the operation is completed, and either `error` or `response` is
   /// available.
-  core.bool done;
+  core.bool? done;
 
   /// The error result of the operation in case of failure or cancellation.
-  SasPortalStatus error;
+  SasPortalStatus? error;
 
   /// Service-specific metadata associated with the operation.
   ///
@@ -4935,14 +4677,14 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> metadata;
+  core.Map<core.String, core.Object>? metadata;
 
   /// The server-assigned name, which is only unique within the same service
   /// that originally returns it.
   ///
   /// If you use the default HTTP mapping, the `name` should be a resource name
   /// ending with `operations/{unique_id}`.
-  core.String name;
+  core.String? name;
 
   /// The normal response of the operation in case of success.
   ///
@@ -4955,7 +4697,7 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.Map<core.String, core.Object> response;
+  core.Map<core.String, core.Object>? response;
 
   SasPortalOperation();
 
@@ -4990,19 +4732,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (done != null) 'done': done,
-        if (error != null) 'error': error.toJson(),
-        if (metadata != null) 'metadata': metadata,
-        if (name != null) 'name': name,
-        if (response != null) 'response': response,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (done != null) 'done': done!,
+        if (error != null) 'error': error!.toJson(),
+        if (metadata != null) 'metadata': metadata!,
+        if (name != null) 'name': name!,
+        if (response != null) 'response': response!,
       };
 }
 
 /// Defines an access control policy to the resources.
 class SasPortalPolicy {
   /// List of assignments
-  core.List<SasPortalAssignment> assignments;
+  core.List<SasPortalAssignment>? assignments;
 
   /// The etag is used for optimistic concurrency control as a way to help
   /// prevent simultaneous updates of a policy from overwriting each other.
@@ -5014,8 +4756,8 @@
   /// their change will be applied to the same version of the policy. If no etag
   /// is provided in the call to GetPolicy, then the existing policy is
   /// overwritten blindly.
-  core.String etag;
-  core.List<core.int> get etagAsBytes => convert.base64.decode(etag);
+  core.String? etag;
+  core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
 
   set etagAsBytes(core.List<core.int> _bytes) {
     etag =
@@ -5036,10 +4778,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (assignments != null)
-          'assignments': assignments.map((value) => value.toJson()).toList(),
-        if (etag != null) 'etag': etag,
+          'assignments': assignments!.map((value) => value.toJson()).toList(),
+        if (etag != null) 'etag': etag!,
       };
 }
 
@@ -5048,14 +4790,14 @@
   /// The policy to be applied to the `resource`.
   ///
   /// Required.
-  SasPortalPolicy policy;
+  SasPortalPolicy? policy;
 
   /// The resource for which the policy is being specified.
   ///
   /// This policy replaces any existing policy.
   ///
   /// Required.
-  core.String resource;
+  core.String? resource;
 
   SasPortalSetPolicyRequest();
 
@@ -5069,9 +4811,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (policy != null) 'policy': policy.toJson(),
-        if (resource != null) 'resource': resource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (policy != null) 'policy': policy!.toJson(),
+        if (resource != null) 'resource': resource!,
       };
 }
 
@@ -5083,7 +4825,7 @@
   /// field must be set.
   ///
   /// Required.
-  SasPortalDevice device;
+  SasPortalDevice? device;
 
   SasPortalSignDeviceRequest();
 
@@ -5094,8 +4836,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (device != null) 'device': device.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (device != null) 'device': device!.toJson(),
       };
 }
 
@@ -5108,7 +4850,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class SasPortalStatus {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -5116,13 +4858,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   SasPortalStatus();
 
@@ -5146,22 +4888,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
 /// Request message for `TestPermissions` method.
 class SasPortalTestPermissionsRequest {
   /// The set of permissions to check for the `resource`.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   /// The resource for which the permissions are being requested.
   ///
   /// Required.
-  core.String resource;
+  core.String? resource;
 
   SasPortalTestPermissionsRequest();
 
@@ -5176,16 +4918,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
-        if (resource != null) 'resource': resource,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
+        if (resource != null) 'resource': resource!,
       };
 }
 
 /// Response message for `TestPermissions` method.
 class SasPortalTestPermissionsResponse {
   /// A set of permissions that the caller is allowed.
-  core.List<core.String> permissions;
+  core.List<core.String>? permissions;
 
   SasPortalTestPermissionsResponse();
 
@@ -5197,8 +4939,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (permissions != null) 'permissions': permissions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (permissions != null) 'permissions': permissions!,
       };
 }
 
@@ -5210,9 +4952,9 @@
   /// set.
   ///
   /// Required.
-  core.String encodedDevice;
+  core.String? encodedDevice;
   core.List<core.int> get encodedDeviceAsBytes =>
-      convert.base64.decode(encodedDevice);
+      convert.base64.decode(encodedDevice!);
 
   set encodedDeviceAsBytes(core.List<core.int> _bytes) {
     encodedDevice =
@@ -5223,7 +4965,7 @@
   /// database.
   ///
   /// Required.
-  core.String installerId;
+  core.String? installerId;
 
   SasPortalUpdateSignedDeviceRequest();
 
@@ -5236,9 +4978,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (encodedDevice != null) 'encodedDevice': encodedDevice,
-        if (installerId != null) 'installerId': installerId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (encodedDevice != null) 'encodedDevice': encodedDevice!,
+        if (installerId != null) 'installerId': installerId!,
       };
 }
 
@@ -5249,18 +4991,18 @@
   /// Payload must include a "secret" claim whose value is the secret.
   ///
   /// Required.
-  core.String encodedSecret;
+  core.String? encodedSecret;
 
   /// Unique installer id (CPI ID) from the Certified Professional Installers
   /// database.
   ///
   /// Required.
-  core.String installerId;
+  core.String? installerId;
 
   /// Secret returned by the GenerateSecret.
   ///
   /// Required.
-  core.String secret;
+  core.String? secret;
 
   SasPortalValidateInstallerRequest();
 
@@ -5276,10 +5018,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (encodedSecret != null) 'encodedSecret': encodedSecret,
-        if (installerId != null) 'installerId': installerId,
-        if (secret != null) 'secret': secret,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (encodedSecret != null) 'encodedSecret': encodedSecret!,
+        if (installerId != null) 'installerId': installerId!,
+        if (secret != null) 'secret': secret!,
       };
 }
 
@@ -5291,5 +5033,5 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
diff --git a/generated/googleapis_beta/lib/sqladmin/v1beta4.dart b/generated/googleapis_beta/lib/sqladmin/v1beta4.dart
index 1c74964..f724134 100644
--- a/generated/googleapis_beta/lib/sqladmin/v1beta4.dart
+++ b/generated/googleapis_beta/lib/sqladmin/v1beta4.dart
@@ -105,17 +105,8 @@
     core.String project,
     core.String instance,
     core.String id, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (id == null) {
-      throw core.ArgumentError('Parameter id is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -159,17 +150,8 @@
     core.String project,
     core.String instance,
     core.String id, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (id == null) {
-      throw core.ArgumentError('Parameter id is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -215,16 +197,9 @@
     BackupRun request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -271,16 +246,10 @@
   async.Future<BackupRunsListResponse> list(
     core.String project,
     core.String instance, {
-    core.int maxResults,
-    core.String pageToken,
-    core.String $fields,
+    core.int? maxResults,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (maxResults != null) 'maxResults': ['${maxResults}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -332,17 +301,8 @@
     core.String project,
     core.String instance,
     core.String database, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (database == null) {
-      throw core.ArgumentError('Parameter database is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -387,17 +347,8 @@
     core.String project,
     core.String instance,
     core.String database, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (database == null) {
-      throw core.ArgumentError('Parameter database is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -442,16 +393,9 @@
     Database request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -492,14 +436,8 @@
   async.Future<DatabasesListResponse> list(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -549,19 +487,9 @@
     core.String project,
     core.String instance,
     core.String database, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (database == null) {
-      throw core.ArgumentError('Parameter database is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -610,19 +538,9 @@
     core.String project,
     core.String instance,
     core.String database, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (database == null) {
-      throw core.ArgumentError('Parameter database is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -668,8 +586,8 @@
   /// If the used [http.Client] completes with an error when making a REST call,
   /// this method will complete with the same error.
   async.Future<FlagsListResponse> list({
-    core.String databaseVersion,
-    core.String $fields,
+    core.String? databaseVersion,
+    core.String? $fields,
   }) async {
     final _queryParams = <core.String, core.List<core.String>>{
       if (databaseVersion != null) 'databaseVersion': [databaseVersion],
@@ -720,14 +638,8 @@
   async.Future<Operation> addServerCa(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -774,16 +686,9 @@
     InstancesCloneRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -825,14 +730,8 @@
   async.Future<Operation> delete(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -875,16 +774,9 @@
     InstancesDemoteMasterRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -930,16 +822,9 @@
     InstancesExportRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -985,16 +870,9 @@
     InstancesFailoverRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1035,14 +913,8 @@
   async.Future<DatabaseInstance> get(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1086,16 +958,9 @@
     InstancesImportRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1137,13 +1002,9 @@
   async.Future<Operation> insert(
     DatabaseInstance request,
     core.String project, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1193,14 +1054,11 @@
   /// this method will complete with the same error.
   async.Future<InstancesListResponse> list(
     core.String project, {
-    core.String filter,
-    core.int maxResults,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filter,
+    core.int? maxResults,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': [filter],
       if (maxResults != null) 'maxResults': ['${maxResults}'],
@@ -1248,14 +1106,8 @@
   async.Future<InstancesListServerCasResponse> listServerCas(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1301,16 +1153,9 @@
     DatabaseInstance request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1352,14 +1197,8 @@
   async.Future<Operation> promoteReplica(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1400,14 +1239,8 @@
   async.Future<Operation> resetSslConfig(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1448,14 +1281,8 @@
   async.Future<Operation> restart(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1500,16 +1327,9 @@
     InstancesRestoreBackupRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1554,16 +1374,9 @@
     InstancesRotateServerCaRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1604,14 +1417,8 @@
   async.Future<Operation> startReplica(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1651,14 +1458,8 @@
   async.Future<Operation> stopReplica(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1701,16 +1502,9 @@
     InstancesTruncateLogRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1756,16 +1550,9 @@
     DatabaseInstance request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1811,14 +1598,8 @@
   async.Future<Operation> get(
     core.String project,
     core.String operation, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (operation == null) {
-      throw core.ArgumentError('Parameter operation is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1862,14 +1643,11 @@
   /// this method will complete with the same error.
   async.Future<OperationsListResponse> list(
     core.String project, {
-    core.String instance,
-    core.int maxResults,
-    core.String pageToken,
-    core.String $fields,
+    core.String? instance,
+    core.int? maxResults,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (instance != null) 'instance': [instance],
       if (maxResults != null) 'maxResults': ['${maxResults}'],
@@ -1929,16 +1707,9 @@
     SqlInstancesRescheduleMaintenanceRequestBody request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1990,16 +1761,10 @@
   async.Future<Operation> startExternalSync(
     core.String project,
     core.String instance, {
-    core.bool skipVerification,
-    core.String syncMode,
-    core.String $fields,
+    core.bool? skipVerification,
+    core.String? syncMode,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (skipVerification != null) 'skipVerification': ['${skipVerification}'],
       if (syncMode != null) 'syncMode': [syncMode],
@@ -2053,16 +1818,10 @@
       verifyExternalSyncSettings(
     core.String project,
     core.String instance, {
-    core.String syncMode,
-    core.bool verifyConnectionOnly,
-    core.String $fields,
+    core.String? syncMode,
+    core.bool? verifyConnectionOnly,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (syncMode != null) 'syncMode': [syncMode],
       if (verifyConnectionOnly != null)
@@ -2119,16 +1878,9 @@
     SslCertsCreateEphemeralRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2175,17 +1927,8 @@
     core.String project,
     core.String instance,
     core.String sha1Fingerprint, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (sha1Fingerprint == null) {
-      throw core.ArgumentError('Parameter sha1Fingerprint is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2232,17 +1975,8 @@
     core.String project,
     core.String instance,
     core.String sha1Fingerprint, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
-    if (sha1Fingerprint == null) {
-      throw core.ArgumentError('Parameter sha1Fingerprint is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2289,16 +2023,9 @@
     SslCertsInsertRequest request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2340,14 +2067,8 @@
   async.Future<SslCertsListResponse> list(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2394,11 +2115,8 @@
   /// this method will complete with the same error.
   async.Future<TiersListResponse> list(
     core.String project, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2447,16 +2165,10 @@
   async.Future<Operation> delete(
     core.String project,
     core.String instance, {
-    core.String host,
-    core.String name,
-    core.String $fields,
+    core.String? host,
+    core.String? name,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (host != null) 'host': [host],
       if (name != null) 'name': [name],
@@ -2501,16 +2213,9 @@
     User request,
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2551,14 +2256,8 @@
   async.Future<UsersListResponse> list(
     core.String project,
     core.String instance, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2606,18 +2305,11 @@
     User request,
     core.String project,
     core.String instance, {
-    core.String host,
-    core.String name,
-    core.String $fields,
+    core.String? host,
+    core.String? name,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (project == null) {
-      throw core.ArgumentError('Parameter project is required.');
-    }
-    if (instance == null) {
-      throw core.ArgumentError('Parameter instance is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (host != null) 'host': [host],
       if (name != null) 'name': [name],
@@ -2644,18 +2336,18 @@
 class AclEntry {
   /// The time when this access control entry expires in RFC 3339 format, for
   /// example *2012-11-15T16:19:00.094Z*.
-  core.String expirationTime;
+  core.String? expirationTime;
 
   /// This is always *sql#aclEntry*.
-  core.String kind;
+  core.String? kind;
 
   /// A label to identify this entry.
   ///
   /// Optional.
-  core.String name;
+  core.String? name;
 
   /// The allowlisted value for the access control list.
-  core.String value;
+  core.String? value;
 
   AclEntry();
 
@@ -2674,11 +2366,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (expirationTime != null) 'expirationTime': expirationTime,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (expirationTime != null) 'expirationTime': expirationTime!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -2690,13 +2382,13 @@
   /// from Cloud SQL API.
   /// - "REGION_UNREACHABLE" : Warning when one or more regions are not
   /// reachable. The returned result set may be incomplete.
-  core.String code;
+  core.String? code;
 
   /// The warning message.
-  core.String message;
+  core.String? message;
 
   /// The region name for REGION_UNREACHABLE warning.
-  core.String region;
+  core.String? region;
 
   ApiWarning();
 
@@ -2712,45 +2404,45 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (message != null) 'message': message,
-        if (region != null) 'region': region,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (message != null) 'message': message!,
+        if (region != null) 'region': region!,
       };
 }
 
 /// Database instance backup configuration.
 class BackupConfiguration {
   /// Backup retention settings.
-  BackupRetentionSettings backupRetentionSettings;
+  BackupRetentionSettings? backupRetentionSettings;
 
   /// (MySQL only) Whether binary log is enabled.
   ///
   /// If backup configuration is disabled, binarylog must be disabled as well.
-  core.bool binaryLogEnabled;
+  core.bool? binaryLogEnabled;
 
   /// Whether this configuration is enabled.
-  core.bool enabled;
+  core.bool? enabled;
 
   /// This is always *sql#backupConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// Location of the backup
-  core.String location;
+  core.String? location;
 
   /// Reserved for future use.
-  core.bool pointInTimeRecoveryEnabled;
+  core.bool? pointInTimeRecoveryEnabled;
 
   /// Reserved for future use.
-  core.bool replicationLogArchivingEnabled;
+  core.bool? replicationLogArchivingEnabled;
 
   /// Start time for the daily backup configuration in UTC timezone in the 24
   /// hour format - *HH:MM*.
-  core.String startTime;
+  core.String? startTime;
 
   /// The number of days of transaction logs we retain for point in time
   /// restore, from 1-7.
-  core.int transactionLogRetentionDays;
+  core.int? transactionLogRetentionDays;
 
   BackupConfiguration();
 
@@ -2789,30 +2481,30 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (backupRetentionSettings != null)
-          'backupRetentionSettings': backupRetentionSettings.toJson(),
-        if (binaryLogEnabled != null) 'binaryLogEnabled': binaryLogEnabled,
-        if (enabled != null) 'enabled': enabled,
-        if (kind != null) 'kind': kind,
-        if (location != null) 'location': location,
+          'backupRetentionSettings': backupRetentionSettings!.toJson(),
+        if (binaryLogEnabled != null) 'binaryLogEnabled': binaryLogEnabled!,
+        if (enabled != null) 'enabled': enabled!,
+        if (kind != null) 'kind': kind!,
+        if (location != null) 'location': location!,
         if (pointInTimeRecoveryEnabled != null)
-          'pointInTimeRecoveryEnabled': pointInTimeRecoveryEnabled,
+          'pointInTimeRecoveryEnabled': pointInTimeRecoveryEnabled!,
         if (replicationLogArchivingEnabled != null)
-          'replicationLogArchivingEnabled': replicationLogArchivingEnabled,
-        if (startTime != null) 'startTime': startTime,
+          'replicationLogArchivingEnabled': replicationLogArchivingEnabled!,
+        if (startTime != null) 'startTime': startTime!,
         if (transactionLogRetentionDays != null)
-          'transactionLogRetentionDays': transactionLogRetentionDays,
+          'transactionLogRetentionDays': transactionLogRetentionDays!,
       };
 }
 
 /// Backup context.
 class BackupContext {
   /// The identifier of the backup.
-  core.String backupId;
+  core.String? backupId;
 
   /// This is always *sql#backupContext*.
-  core.String kind;
+  core.String? kind;
 
   BackupContext();
 
@@ -2825,9 +2517,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (backupId != null) 'backupId': backupId,
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (backupId != null) 'backupId': backupId!,
+        if (kind != null) 'kind': kind!,
       };
 }
 
@@ -2838,7 +2530,7 @@
   /// backup needs to be deleted.
   ///
   /// If retention_unit is 'COUNT', we will retain this many backups.
-  core.int retainedBackups;
+  core.int? retainedBackups;
 
   /// The unit that 'retained_backups' represents.
   /// Possible string values are:
@@ -2846,7 +2538,7 @@
   /// will be treated as COUNT.
   /// - "COUNT" : Retention will be by count, eg. "retain the most recent 7
   /// backups".
-  core.String retentionUnit;
+  core.String? retentionUnit;
 
   BackupRetentionSettings();
 
@@ -2859,9 +2551,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (retainedBackups != null) 'retainedBackups': retainedBackups,
-        if (retentionUnit != null) 'retentionUnit': retentionUnit,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (retainedBackups != null) 'retainedBackups': retainedBackups!,
+        if (retentionUnit != null) 'retentionUnit': retentionUnit!,
       };
 }
 
@@ -2872,54 +2564,54 @@
   /// - "SQL_BACKUP_KIND_UNSPECIFIED" : This is an unknown BackupKind.
   /// - "SNAPSHOT" : The snapshot based backups
   /// - "PHYSICAL" : Physical backups
-  core.String backupKind;
+  core.String? backupKind;
 
   /// The description of this run, only applicable to on-demand backups.
-  core.String description;
+  core.String? description;
 
   /// Encryption configuration specific to a backup.
   ///
   /// Applies only to Second Generation instances.
-  DiskEncryptionConfiguration diskEncryptionConfiguration;
+  DiskEncryptionConfiguration? diskEncryptionConfiguration;
 
   /// Encryption status specific to a backup.
   ///
   /// Applies only to Second Generation instances.
-  DiskEncryptionStatus diskEncryptionStatus;
+  DiskEncryptionStatus? diskEncryptionStatus;
 
   /// The time the backup operation completed in UTC timezone in RFC 3339
   /// format, for example *2012-11-15T16:19:00.094Z*.
-  core.String endTime;
+  core.String? endTime;
 
   /// The time the run was enqueued in UTC timezone in RFC 3339 format, for
   /// example *2012-11-15T16:19:00.094Z*.
-  core.String enqueuedTime;
+  core.String? enqueuedTime;
 
   /// Information about why the backup operation failed.
   ///
   /// This is only present if the run has the FAILED status.
-  OperationError error;
+  OperationError? error;
 
   /// The identifier for this backup run.
   ///
   /// Unique only for a specific Cloud SQL instance.
-  core.String id;
+  core.String? id;
 
   /// Name of the database instance.
-  core.String instance;
+  core.String? instance;
 
   /// This is always *sql#backupRun*.
-  core.String kind;
+  core.String? kind;
 
   /// Location of the backups.
-  core.String location;
+  core.String? location;
 
   /// The URI of this resource.
-  core.String selfLink;
+  core.String? selfLink;
 
   /// The time the backup operation actually started in UTC timezone in RFC 3339
   /// format, for example *2012-11-15T16:19:00.094Z*.
-  core.String startTime;
+  core.String? startTime;
 
   /// The status of this run.
   /// Possible string values are:
@@ -2936,7 +2628,7 @@
   /// - "DELETION_PENDING" : The backup is about to be deleted.
   /// - "DELETION_FAILED" : The backup deletion failed.
   /// - "DELETED" : The backup has been deleted.
-  core.String status;
+  core.String? status;
 
   /// The type of this run; can be either "AUTOMATED" or "ON_DEMAND".
   ///
@@ -2946,11 +2638,11 @@
   /// - "SQL_BACKUP_RUN_TYPE_UNSPECIFIED" : This is an unknown BackupRun type.
   /// - "AUTOMATED" : The backup schedule automatically triggers a backup.
   /// - "ON_DEMAND" : The user manually triggers a backup.
-  core.String type;
+  core.String? type;
 
   /// The start time of the backup window during which this the backup was
   /// attempted in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
-  core.String windowStartTime;
+  core.String? windowStartTime;
 
   BackupRun();
 
@@ -3009,41 +2701,41 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (backupKind != null) 'backupKind': backupKind,
-        if (description != null) 'description': description,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (backupKind != null) 'backupKind': backupKind!,
+        if (description != null) 'description': description!,
         if (diskEncryptionConfiguration != null)
-          'diskEncryptionConfiguration': diskEncryptionConfiguration.toJson(),
+          'diskEncryptionConfiguration': diskEncryptionConfiguration!.toJson(),
         if (diskEncryptionStatus != null)
-          'diskEncryptionStatus': diskEncryptionStatus.toJson(),
-        if (endTime != null) 'endTime': endTime,
-        if (enqueuedTime != null) 'enqueuedTime': enqueuedTime,
-        if (error != null) 'error': error.toJson(),
-        if (id != null) 'id': id,
-        if (instance != null) 'instance': instance,
-        if (kind != null) 'kind': kind,
-        if (location != null) 'location': location,
-        if (selfLink != null) 'selfLink': selfLink,
-        if (startTime != null) 'startTime': startTime,
-        if (status != null) 'status': status,
-        if (type != null) 'type': type,
-        if (windowStartTime != null) 'windowStartTime': windowStartTime,
+          'diskEncryptionStatus': diskEncryptionStatus!.toJson(),
+        if (endTime != null) 'endTime': endTime!,
+        if (enqueuedTime != null) 'enqueuedTime': enqueuedTime!,
+        if (error != null) 'error': error!.toJson(),
+        if (id != null) 'id': id!,
+        if (instance != null) 'instance': instance!,
+        if (kind != null) 'kind': kind!,
+        if (location != null) 'location': location!,
+        if (selfLink != null) 'selfLink': selfLink!,
+        if (startTime != null) 'startTime': startTime!,
+        if (status != null) 'status': status!,
+        if (type != null) 'type': type!,
+        if (windowStartTime != null) 'windowStartTime': windowStartTime!,
       };
 }
 
 /// Backup run list results.
 class BackupRunsListResponse {
   /// A list of backup runs in reverse chronological order of the enqueued time.
-  core.List<BackupRun> items;
+  core.List<BackupRun>? items;
 
   /// This is always *sql#backupRunsList*.
-  core.String kind;
+  core.String? kind;
 
   /// The continuation token, used to page through large result sets.
   ///
   /// Provide this value in a subsequent request to return the next page of
   /// results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   BackupRunsListResponse();
 
@@ -3062,24 +2754,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Binary log coordinates.
 class BinLogCoordinates {
   /// Name of the binary log file for a Cloud SQL instance.
-  core.String binLogFileName;
+  core.String? binLogFileName;
 
   /// Position (offset) within the binary log file.
-  core.String binLogPosition;
+  core.String? binLogPosition;
 
   /// This is always *sql#binLogCoordinates*.
-  core.String kind;
+  core.String? kind;
 
   BinLogCoordinates();
 
@@ -3095,10 +2787,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (binLogFileName != null) 'binLogFileName': binLogFileName,
-        if (binLogPosition != null) 'binLogPosition': binLogPosition,
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (binLogFileName != null) 'binLogFileName': binLogFileName!,
+        if (binLogPosition != null) 'binLogPosition': binLogPosition!,
+        if (kind != null) 'kind': kind!,
       };
 }
 
@@ -3109,19 +2801,19 @@
   ///
   /// If not specified, the source instance is cloned up to the most recent
   /// binary log coordinates.
-  BinLogCoordinates binLogCoordinates;
+  BinLogCoordinates? binLogCoordinates;
 
   /// Name of the Cloud SQL instance to be created as a clone.
-  core.String destinationInstanceName;
+  core.String? destinationInstanceName;
 
   /// This is always *sql#cloneContext*.
-  core.String kind;
+  core.String? kind;
 
   /// Reserved for future use.
-  core.String pitrTimestampMs;
+  core.String? pitrTimestampMs;
 
   /// Reserved for future use.
-  core.String pointInTime;
+  core.String? pointInTime;
 
   CloneContext();
 
@@ -3144,50 +2836,50 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (binLogCoordinates != null)
-          'binLogCoordinates': binLogCoordinates.toJson(),
+          'binLogCoordinates': binLogCoordinates!.toJson(),
         if (destinationInstanceName != null)
-          'destinationInstanceName': destinationInstanceName,
-        if (kind != null) 'kind': kind,
-        if (pitrTimestampMs != null) 'pitrTimestampMs': pitrTimestampMs,
-        if (pointInTime != null) 'pointInTime': pointInTime,
+          'destinationInstanceName': destinationInstanceName!,
+        if (kind != null) 'kind': kind!,
+        if (pitrTimestampMs != null) 'pitrTimestampMs': pitrTimestampMs!,
+        if (pointInTime != null) 'pointInTime': pointInTime!,
       };
 }
 
 /// Represents a SQL database on the Cloud SQL instance.
 class Database {
   /// The Cloud SQL charset value.
-  core.String charset;
+  core.String? charset;
 
   /// The Cloud SQL collation value.
-  core.String collation;
+  core.String? collation;
 
   /// This field is deprecated and will be removed from a future version of the
   /// API.
-  core.String etag;
+  core.String? etag;
 
   /// The name of the Cloud SQL instance.
   ///
   /// This does not include the project ID.
-  core.String instance;
+  core.String? instance;
 
   /// This is always *sql#database*.
-  core.String kind;
+  core.String? kind;
 
   /// The name of the database in the Cloud SQL instance.
   ///
   /// This does not include the project ID or instance name.
-  core.String name;
+  core.String? name;
 
   /// The project ID of the project containing the Cloud SQL database.
   ///
   /// The Google apps domain is prefixed if applicable.
-  core.String project;
+  core.String? project;
 
   /// The URI of this resource.
-  core.String selfLink;
-  SqlServerDatabaseDetails sqlserverDatabaseDetails;
+  core.String? selfLink;
+  SqlServerDatabaseDetails? sqlserverDatabaseDetails;
 
   Database();
 
@@ -3223,17 +2915,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (charset != null) 'charset': charset,
-        if (collation != null) 'collation': collation,
-        if (etag != null) 'etag': etag,
-        if (instance != null) 'instance': instance,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (project != null) 'project': project,
-        if (selfLink != null) 'selfLink': selfLink,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (charset != null) 'charset': charset!,
+        if (collation != null) 'collation': collation!,
+        if (etag != null) 'etag': etag!,
+        if (instance != null) 'instance': instance!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (project != null) 'project': project!,
+        if (selfLink != null) 'selfLink': selfLink!,
         if (sqlserverDatabaseDetails != null)
-          'sqlserverDatabaseDetails': sqlserverDatabaseDetails.toJson(),
+          'sqlserverDatabaseDetails': sqlserverDatabaseDetails!.toJson(),
       };
 }
 
@@ -3245,13 +2937,13 @@
   /// and system variables for MySQL. Flags are specified with underscores, not
   /// hyphens. For more information, see Configuring Database Flags in the Cloud
   /// SQL documentation.
-  core.String name;
+  core.String? name;
 
   /// The value of the flag.
   ///
   /// Booleans are set to *on* for true and *off* for false. This field must be
   /// omitted if the flag doesn't take a value.
-  core.String value;
+  core.String? value;
 
   DatabaseFlags();
 
@@ -3264,9 +2956,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -3279,14 +2971,14 @@
   /// A false status indicates that the failover replica is out of sync. The
   /// primary instance can only failover to the failover replica when the status
   /// is true.
-  core.bool available;
+  core.bool? available;
 
   /// The name of the failover replica.
   ///
   /// If specified at instance creation, a failover replica is created for the
   /// instance. The name doesn't include the project ID. This property is
   /// applicable only to Second Generation instances.
-  core.String name;
+  core.String? name;
 
   DatabaseInstanceFailoverReplica();
 
@@ -3299,9 +2991,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (available != null) 'available': available,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (available != null) 'available': available!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -3320,17 +3012,17 @@
   /// - "FIRST_GEN" : V1 speckle instance.
   /// - "SECOND_GEN" : V2 speckle instance.
   /// - "EXTERNAL" : On premises instance.
-  core.String backendType;
+  core.String? backendType;
 
   /// Connection name of the Cloud SQL instance used in connection strings.
-  core.String connectionName;
+  core.String? connectionName;
 
   /// The current disk usage of the instance in bytes.
   ///
   /// This property has been deprecated. Use the
   /// "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud
   /// Monitoring API instead. Please see this announcement for details.
-  core.String currentDiskSize;
+  core.String? currentDiskSize;
 
   /// The database engine type and version.
   ///
@@ -3360,35 +3052,35 @@
   /// - "POSTGRES_12" : The database version is PostgreSQL 12.
   /// - "MYSQL_8_0" : The database version is MySQL 8.
   /// - "POSTGRES_13" : The database version is PostgreSQL 13.
-  core.String databaseVersion;
+  core.String? databaseVersion;
 
   /// Disk encryption configuration specific to an instance.
   ///
   /// Applies only to Second Generation instances.
-  DiskEncryptionConfiguration diskEncryptionConfiguration;
+  DiskEncryptionConfiguration? diskEncryptionConfiguration;
 
   /// Disk encryption status specific to an instance.
   ///
   /// Applies only to Second Generation instances.
-  DiskEncryptionStatus diskEncryptionStatus;
+  DiskEncryptionStatus? diskEncryptionStatus;
 
   /// This field is deprecated and will be removed from a future version of the
   /// API.
   ///
   /// Use the *settings.settingsVersion* field instead.
-  core.String etag;
+  core.String? etag;
 
   /// The name and status of the failover replica.
   ///
   /// This property is applicable only to Second Generation instances.
-  DatabaseInstanceFailoverReplica failoverReplica;
+  DatabaseInstanceFailoverReplica? failoverReplica;
 
   /// The Compute Engine zone that the instance is currently serving from.
   ///
   /// This value could be different from the zone that was specified when the
   /// instance was created if the instance has failed over to its secondary
   /// zone.
-  core.String gceZone;
+  core.String? gceZone;
 
   /// The instance type.
   ///
@@ -3404,39 +3096,39 @@
   /// - "ON_PREMISES_INSTANCE" : An instance running on the customer's premises
   /// that is not managed by Cloud SQL.
   /// - "READ_REPLICA_INSTANCE" : A Cloud SQL instance acting as a read-replica.
-  core.String instanceType;
+  core.String? instanceType;
 
   /// The assigned IP addresses for the instance.
-  core.List<IpMapping> ipAddresses;
+  core.List<IpMapping>? ipAddresses;
 
   /// The IPv6 address assigned to the instance.
   ///
   /// (Deprecated) This property was applicable only to First Generation
   /// instances.
-  core.String ipv6Address;
+  core.String? ipv6Address;
 
   /// This is always *sql#instance*.
-  core.String kind;
+  core.String? kind;
 
   /// The name of the instance which will act as primary in the replication
   /// setup.
-  core.String masterInstanceName;
+  core.String? masterInstanceName;
 
   /// The maximum disk size of the instance in bytes.
-  core.String maxDiskSize;
+  core.String? maxDiskSize;
 
   /// Name of the Cloud SQL instance.
   ///
   /// This does not include the project ID.
-  core.String name;
+  core.String? name;
 
   /// Configuration specific to on-premises instances.
-  OnPremisesConfiguration onPremisesConfiguration;
+  OnPremisesConfiguration? onPremisesConfiguration;
 
   /// The project ID of the project containing the Cloud SQL instance.
   ///
   /// The Google apps domain is prefixed if applicable.
-  core.String project;
+  core.String? project;
 
   /// The geographical region.
   ///
@@ -3444,26 +3136,26 @@
   /// (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to
   /// *us-central* or *us-central1* depending on the instance type. The region
   /// cannot be changed after instance creation.
-  core.String region;
+  core.String? region;
 
   /// Configuration specific to failover replicas and read replicas.
-  ReplicaConfiguration replicaConfiguration;
+  ReplicaConfiguration? replicaConfiguration;
 
   /// The replicas of the instance.
-  core.List<core.String> replicaNames;
+  core.List<core.String>? replicaNames;
 
   /// Initial root password.
   ///
   /// Use only on creation.
-  core.String rootPassword;
+  core.String? rootPassword;
 
   /// The status indicating if instance satisfies physical zone separation.
   ///
   /// Reserved for future use.
-  core.bool satisfiesPzs;
+  core.bool? satisfiesPzs;
 
   /// The start time of any upcoming scheduled maintenance for this instance.
-  SqlScheduledMaintenance scheduledMaintenance;
+  SqlScheduledMaintenance? scheduledMaintenance;
 
   /// The Compute Engine zone that the failover instance is currently serving
   /// from for a regional instance.
@@ -3471,21 +3163,21 @@
   /// This value could be different from the zone that was specified when the
   /// instance was created if the instance has failed over to its
   /// secondary/failover zone. Reserved for future use.
-  core.String secondaryGceZone;
+  core.String? secondaryGceZone;
 
   /// The URI of this resource.
-  core.String selfLink;
+  core.String? selfLink;
 
   /// SSL configuration.
-  SslCert serverCaCert;
+  SslCert? serverCaCert;
 
   /// The service account email address assigned to the instance.
   ///
   /// This property is applicable only to Second Generation instances.
-  core.String serviceAccountEmailAddress;
+  core.String? serviceAccountEmailAddress;
 
   /// The user settings.
-  Settings settings;
+  Settings? settings;
 
   /// The current serving state of the Cloud SQL instance.
   ///
@@ -3506,10 +3198,10 @@
   /// - "MAINTENANCE" : The instance is down for maintenance.
   /// - "FAILED" : The creation of the instance failed or a fatal error occurred
   /// during maintenance.
-  core.String state;
+  core.String? state;
 
   /// If the instance state is SUSPENDED, the reason for the suspension.
-  core.List<core.String> suspensionReason;
+  core.List<core.String>? suspensionReason;
 
   DatabaseInstance();
 
@@ -3627,57 +3319,57 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (backendType != null) 'backendType': backendType,
-        if (connectionName != null) 'connectionName': connectionName,
-        if (currentDiskSize != null) 'currentDiskSize': currentDiskSize,
-        if (databaseVersion != null) 'databaseVersion': databaseVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (backendType != null) 'backendType': backendType!,
+        if (connectionName != null) 'connectionName': connectionName!,
+        if (currentDiskSize != null) 'currentDiskSize': currentDiskSize!,
+        if (databaseVersion != null) 'databaseVersion': databaseVersion!,
         if (diskEncryptionConfiguration != null)
-          'diskEncryptionConfiguration': diskEncryptionConfiguration.toJson(),
+          'diskEncryptionConfiguration': diskEncryptionConfiguration!.toJson(),
         if (diskEncryptionStatus != null)
-          'diskEncryptionStatus': diskEncryptionStatus.toJson(),
-        if (etag != null) 'etag': etag,
+          'diskEncryptionStatus': diskEncryptionStatus!.toJson(),
+        if (etag != null) 'etag': etag!,
         if (failoverReplica != null)
-          'failoverReplica': failoverReplica.toJson(),
-        if (gceZone != null) 'gceZone': gceZone,
-        if (instanceType != null) 'instanceType': instanceType,
+          'failoverReplica': failoverReplica!.toJson(),
+        if (gceZone != null) 'gceZone': gceZone!,
+        if (instanceType != null) 'instanceType': instanceType!,
         if (ipAddresses != null)
-          'ipAddresses': ipAddresses.map((value) => value.toJson()).toList(),
-        if (ipv6Address != null) 'ipv6Address': ipv6Address,
-        if (kind != null) 'kind': kind,
+          'ipAddresses': ipAddresses!.map((value) => value.toJson()).toList(),
+        if (ipv6Address != null) 'ipv6Address': ipv6Address!,
+        if (kind != null) 'kind': kind!,
         if (masterInstanceName != null)
-          'masterInstanceName': masterInstanceName,
-        if (maxDiskSize != null) 'maxDiskSize': maxDiskSize,
-        if (name != null) 'name': name,
+          'masterInstanceName': masterInstanceName!,
+        if (maxDiskSize != null) 'maxDiskSize': maxDiskSize!,
+        if (name != null) 'name': name!,
         if (onPremisesConfiguration != null)
-          'onPremisesConfiguration': onPremisesConfiguration.toJson(),
-        if (project != null) 'project': project,
-        if (region != null) 'region': region,
+          'onPremisesConfiguration': onPremisesConfiguration!.toJson(),
+        if (project != null) 'project': project!,
+        if (region != null) 'region': region!,
         if (replicaConfiguration != null)
-          'replicaConfiguration': replicaConfiguration.toJson(),
-        if (replicaNames != null) 'replicaNames': replicaNames,
-        if (rootPassword != null) 'rootPassword': rootPassword,
-        if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs,
+          'replicaConfiguration': replicaConfiguration!.toJson(),
+        if (replicaNames != null) 'replicaNames': replicaNames!,
+        if (rootPassword != null) 'rootPassword': rootPassword!,
+        if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!,
         if (scheduledMaintenance != null)
-          'scheduledMaintenance': scheduledMaintenance.toJson(),
-        if (secondaryGceZone != null) 'secondaryGceZone': secondaryGceZone,
-        if (selfLink != null) 'selfLink': selfLink,
-        if (serverCaCert != null) 'serverCaCert': serverCaCert.toJson(),
+          'scheduledMaintenance': scheduledMaintenance!.toJson(),
+        if (secondaryGceZone != null) 'secondaryGceZone': secondaryGceZone!,
+        if (selfLink != null) 'selfLink': selfLink!,
+        if (serverCaCert != null) 'serverCaCert': serverCaCert!.toJson(),
         if (serviceAccountEmailAddress != null)
-          'serviceAccountEmailAddress': serviceAccountEmailAddress,
-        if (settings != null) 'settings': settings.toJson(),
-        if (state != null) 'state': state,
-        if (suspensionReason != null) 'suspensionReason': suspensionReason,
+          'serviceAccountEmailAddress': serviceAccountEmailAddress!,
+        if (settings != null) 'settings': settings!.toJson(),
+        if (state != null) 'state': state!,
+        if (suspensionReason != null) 'suspensionReason': suspensionReason!,
       };
 }
 
 /// Database list response.
 class DatabasesListResponse {
   /// List of database resources in the instance.
-  core.List<Database> items;
+  core.List<Database>? items;
 
   /// This is always *sql#databasesList*.
-  core.String kind;
+  core.String? kind;
 
   DatabasesListResponse();
 
@@ -3693,10 +3385,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
@@ -3704,7 +3396,7 @@
 /// instance.
 class DemoteMasterConfiguration {
   /// This is always *sql#demoteMasterConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// MySQL specific configuration when replicating from a MySQL on-premises
   /// primary instance.
@@ -3714,7 +3406,7 @@
   /// configuration information is used only to set up the replication
   /// connection and is stored by MySQL in a file named *master.info* in the
   /// data directory.
-  DemoteMasterMySqlReplicaConfiguration mysqlReplicaConfiguration;
+  DemoteMasterMySqlReplicaConfiguration? mysqlReplicaConfiguration;
 
   DemoteMasterConfiguration();
 
@@ -3730,25 +3422,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
         if (mysqlReplicaConfiguration != null)
-          'mysqlReplicaConfiguration': mysqlReplicaConfiguration.toJson(),
+          'mysqlReplicaConfiguration': mysqlReplicaConfiguration!.toJson(),
       };
 }
 
 /// Database instance demote primary instance context.
 class DemoteMasterContext {
   /// This is always *sql#demoteMasterContext*.
-  core.String kind;
+  core.String? kind;
 
   /// The name of the instance which will act as on-premises primary instance in
   /// the replication setup.
-  core.String masterInstanceName;
+  core.String? masterInstanceName;
 
   /// Configuration specific to read-replicas replicating from the on-premises
   /// primary instance.
-  DemoteMasterConfiguration replicaConfiguration;
+  DemoteMasterConfiguration? replicaConfiguration;
 
   /// Verify GTID consistency for demote operation.
   ///
@@ -3758,7 +3450,7 @@
   /// also exposes you to the risk of future replication failures. Change the
   /// value only if you know the reason for the GTID divergence and are
   /// confident that doing so will not cause any replication issues.
-  core.bool verifyGtidConsistency;
+  core.bool? verifyGtidConsistency;
 
   DemoteMasterContext();
 
@@ -3778,39 +3470,39 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
         if (masterInstanceName != null)
-          'masterInstanceName': masterInstanceName,
+          'masterInstanceName': masterInstanceName!,
         if (replicaConfiguration != null)
-          'replicaConfiguration': replicaConfiguration.toJson(),
+          'replicaConfiguration': replicaConfiguration!.toJson(),
         if (verifyGtidConsistency != null)
-          'verifyGtidConsistency': verifyGtidConsistency,
+          'verifyGtidConsistency': verifyGtidConsistency!,
       };
 }
 
 /// Read-replica configuration specific to MySQL databases.
 class DemoteMasterMySqlReplicaConfiguration {
   /// PEM representation of the trusted CA's x509 certificate.
-  core.String caCertificate;
+  core.String? caCertificate;
 
   /// PEM representation of the replica's x509 certificate.
-  core.String clientCertificate;
+  core.String? clientCertificate;
 
   /// PEM representation of the replica's private key.
   ///
   /// The corresponsing public key is encoded in the client's certificate. The
   /// format of the replica's private key can be either PKCS #1 or PKCS #8.
-  core.String clientKey;
+  core.String? clientKey;
 
   /// This is always *sql#demoteMasterMysqlReplicaConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// The password for the replication connection.
-  core.String password;
+  core.String? password;
 
   /// The username for the replication connection.
-  core.String username;
+  core.String? username;
 
   DemoteMasterMySqlReplicaConfiguration();
 
@@ -3835,13 +3527,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (caCertificate != null) 'caCertificate': caCertificate,
-        if (clientCertificate != null) 'clientCertificate': clientCertificate,
-        if (clientKey != null) 'clientKey': clientKey,
-        if (kind != null) 'kind': kind,
-        if (password != null) 'password': password,
-        if (username != null) 'username': username,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (caCertificate != null) 'caCertificate': caCertificate!,
+        if (clientCertificate != null) 'clientCertificate': clientCertificate!,
+        if (clientKey != null) 'clientKey': clientKey!,
+        if (kind != null) 'kind': kind!,
+        if (password != null) 'password': password!,
+        if (username != null) 'username': username!,
       };
 }
 
@@ -3855,7 +3547,7 @@
   /// be empty. In this case, it means the deny maintenance period recurs every
   /// year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e.,
   /// 11-01
-  core.String endDate;
+  core.String? endDate;
 
   /// "deny maintenance period" start date.
   ///
@@ -3863,13 +3555,13 @@
   /// be empty. In this case, it means the deny maintenance period recurs every
   /// year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e.,
   /// 11-01
-  core.String startDate;
+  core.String? startDate;
 
   /// Time in UTC when the "deny maintenance period" starts on start_date and
   /// ends on end_date.
   ///
   /// The time is in format: HH:mm:SS, i.e., 00:00:00
-  core.String time;
+  core.String? time;
 
   DenyMaintenancePeriod();
 
@@ -3885,20 +3577,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endDate != null) 'endDate': endDate,
-        if (startDate != null) 'startDate': startDate,
-        if (time != null) 'time': time,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endDate != null) 'endDate': endDate!,
+        if (startDate != null) 'startDate': startDate!,
+        if (time != null) 'time': time!,
       };
 }
 
 /// Disk encryption configuration for an instance.
 class DiskEncryptionConfiguration {
   /// This is always *sql#diskEncryptionConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// Resource name of KMS key for disk encryption
-  core.String kmsKeyName;
+  core.String? kmsKeyName;
 
   DiskEncryptionConfiguration();
 
@@ -3911,19 +3603,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (kmsKeyName != null) 'kmsKeyName': kmsKeyName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!,
       };
 }
 
 /// Disk encryption status for an instance.
 class DiskEncryptionStatus {
   /// This is always *sql#diskEncryptionStatus*.
-  core.String kind;
+  core.String? kind;
 
   /// KMS key version used to encrypt the Cloud SQL instance resource
-  core.String kmsKeyVersionName;
+  core.String? kmsKeyVersionName;
 
   DiskEncryptionStatus();
 
@@ -3936,9 +3628,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (kmsKeyVersionName != null) 'kmsKeyVersionName': kmsKeyVersionName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (kmsKeyVersionName != null) 'kmsKeyVersionName': kmsKeyVersionName!,
       };
 }
 
@@ -3947,7 +3639,7 @@
 /// *MySQL* and *PostgreSQL* instances only.
 class ExportContextCsvExportOptions {
   /// The select query used to extract the data.
-  core.String selectQuery;
+  core.String? selectQuery;
 
   ExportContextCsvExportOptions();
 
@@ -3957,8 +3649,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (selectQuery != null) 'selectQuery': selectQuery,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (selectQuery != null) 'selectQuery': selectQuery!,
       };
 }
 
@@ -3971,7 +3663,7 @@
   /// *2*, the CHANGE MASTER TO statement is written as a SQL comment and has no
   /// effect. If set to any value other than *1*, --set-gtid-purged is set to
   /// OFF.
-  core.int masterData;
+  core.int? masterData;
 
   ExportContextSqlExportOptionsMysqlExportOptions();
 
@@ -3981,24 +3673,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (masterData != null) 'masterData': masterData,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (masterData != null) 'masterData': masterData!,
       };
 }
 
 /// Options for exporting data as SQL statements.
 class ExportContextSqlExportOptions {
   /// Options for exporting from MySQL.
-  ExportContextSqlExportOptionsMysqlExportOptions mysqlExportOptions;
+  ExportContextSqlExportOptionsMysqlExportOptions? mysqlExportOptions;
 
   /// Export only schemas.
-  core.bool schemaOnly;
+  core.bool? schemaOnly;
 
   /// Tables to export, or that were exported, from the specified database.
   ///
   /// If you specify tables, specify one and only one database. For PostgreSQL
   /// instances, you can specify only one table.
-  core.List<core.String> tables;
+  core.List<core.String>? tables;
 
   ExportContextSqlExportOptions();
 
@@ -4019,11 +3711,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (mysqlExportOptions != null)
-          'mysqlExportOptions': mysqlExportOptions.toJson(),
-        if (schemaOnly != null) 'schemaOnly': schemaOnly,
-        if (tables != null) 'tables': tables,
+          'mysqlExportOptions': mysqlExportOptions!.toJson(),
+        if (schemaOnly != null) 'schemaOnly': schemaOnly!,
+        if (tables != null) 'tables': tables!,
       };
 }
 
@@ -4032,7 +3724,7 @@
   /// Options for exporting data as CSV.
   ///
   /// *MySQL* and *PostgreSQL* instances only.
-  ExportContextCsvExportOptions csvExportOptions;
+  ExportContextCsvExportOptions? csvExportOptions;
 
   /// Databases to be exported.
   ///
@@ -4044,7 +3736,7 @@
   /// specify one database to be exported. If *fileType* is *CSV*, this database
   /// must match the one specified in the *csvExportOptions.selectQuery*
   /// property.
-  core.List<core.String> databases;
+  core.List<core.String>? databases;
 
   /// The file type for the specified uri.
   ///
@@ -4055,16 +3747,16 @@
   /// - "SQL" : File containing SQL statements.
   /// - "CSV" : File in CSV format.
   /// - "BAK"
-  core.String fileType;
+  core.String? fileType;
 
   /// This is always *sql#exportContext*.
-  core.String kind;
+  core.String? kind;
 
   /// Option for export offload.
-  core.bool offload;
+  core.bool? offload;
 
   /// Options for exporting data as SQL statements.
-  ExportContextSqlExportOptions sqlExportOptions;
+  ExportContextSqlExportOptions? sqlExportOptions;
 
   /// The path to the file in Google Cloud Storage where the export will be
   /// stored.
@@ -4072,7 +3764,7 @@
   /// The URI is in the form *gs://bucketName/fileName*. If the file already
   /// exists, the request succeeds, but the operation fails. If *fileType* is
   /// *SQL* and the filename ends with .gz, the contents are compressed.
-  core.String uri;
+  core.String? uri;
 
   ExportContext();
 
@@ -4104,29 +3796,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (csvExportOptions != null)
-          'csvExportOptions': csvExportOptions.toJson(),
-        if (databases != null) 'databases': databases,
-        if (fileType != null) 'fileType': fileType,
-        if (kind != null) 'kind': kind,
-        if (offload != null) 'offload': offload,
+          'csvExportOptions': csvExportOptions!.toJson(),
+        if (databases != null) 'databases': databases!,
+        if (fileType != null) 'fileType': fileType!,
+        if (kind != null) 'kind': kind!,
+        if (offload != null) 'offload': offload!,
         if (sqlExportOptions != null)
-          'sqlExportOptions': sqlExportOptions.toJson(),
-        if (uri != null) 'uri': uri,
+          'sqlExportOptions': sqlExportOptions!.toJson(),
+        if (uri != null) 'uri': uri!,
       };
 }
 
 /// Database instance failover context.
 class FailoverContext {
   /// This is always *sql#failoverContext*.
-  core.String kind;
+  core.String? kind;
 
   /// The current settings version of this instance.
   ///
   /// Request will be rejected if this version doesn't match the current
   /// settings version.
-  core.String settingsVersion;
+  core.String? settingsVersion;
 
   FailoverContext();
 
@@ -4139,9 +3831,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (settingsVersion != null) 'settingsVersion': settingsVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (settingsVersion != null) 'settingsVersion': settingsVersion!,
       };
 }
 
@@ -4150,38 +3842,38 @@
   /// Use this field if only certain integers are accepted.
   ///
   /// Can be combined with min_value and max_value to add additional values.
-  core.List<core.String> allowedIntValues;
+  core.List<core.String>? allowedIntValues;
 
   /// For *STRING* flags, a list of strings that the value can be set to.
-  core.List<core.String> allowedStringValues;
+  core.List<core.String>? allowedStringValues;
 
   /// The database version this flag applies to.
   ///
   /// Can be *MYSQL_8_0*, *MYSQL_5_6*, or *MYSQL_5_7*.
-  core.List<core.String> appliesTo;
+  core.List<core.String>? appliesTo;
 
   /// Whether or not the flag is considered in beta.
-  core.bool inBeta;
+  core.bool? inBeta;
 
   /// This is always *sql#flag*.
-  core.String kind;
+  core.String? kind;
 
   /// For *INTEGER* flags, the maximum allowed value.
-  core.String maxValue;
+  core.String? maxValue;
 
   /// For *INTEGER* flags, the minimum allowed value.
-  core.String minValue;
+  core.String? minValue;
 
   /// This is the name of the flag.
   ///
   /// Flag names always use underscores, not hyphens, for example:
   /// *max_allowed_packet*
-  core.String name;
+  core.String? name;
 
   /// Indicates whether changing this flag will trigger a database restart.
   ///
   /// Only applicable to Second Generation instances.
-  core.bool requiresRestart;
+  core.bool? requiresRestart;
 
   /// The type of the flag.
   ///
@@ -4198,7 +3890,7 @@
   /// - "FLOAT" : Float type flag.
   /// - "REPEATED_STRING" : Comma-separated list of the strings in a SqlFlagType
   /// enum.
-  core.String type;
+  core.String? type;
 
   Flag();
 
@@ -4241,28 +3933,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowedIntValues != null) 'allowedIntValues': allowedIntValues,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowedIntValues != null) 'allowedIntValues': allowedIntValues!,
         if (allowedStringValues != null)
-          'allowedStringValues': allowedStringValues,
-        if (appliesTo != null) 'appliesTo': appliesTo,
-        if (inBeta != null) 'inBeta': inBeta,
-        if (kind != null) 'kind': kind,
-        if (maxValue != null) 'maxValue': maxValue,
-        if (minValue != null) 'minValue': minValue,
-        if (name != null) 'name': name,
-        if (requiresRestart != null) 'requiresRestart': requiresRestart,
-        if (type != null) 'type': type,
+          'allowedStringValues': allowedStringValues!,
+        if (appliesTo != null) 'appliesTo': appliesTo!,
+        if (inBeta != null) 'inBeta': inBeta!,
+        if (kind != null) 'kind': kind!,
+        if (maxValue != null) 'maxValue': maxValue!,
+        if (minValue != null) 'minValue': minValue!,
+        if (name != null) 'name': name!,
+        if (requiresRestart != null) 'requiresRestart': requiresRestart!,
+        if (type != null) 'type': type!,
       };
 }
 
 /// Flags list response.
 class FlagsListResponse {
   /// List of flags.
-  core.List<Flag> items;
+  core.List<Flag>? items;
 
   /// This is always *sql#flagsList*.
-  core.String kind;
+  core.String? kind;
 
   FlagsListResponse();
 
@@ -4278,10 +3970,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
@@ -4291,17 +3983,17 @@
   ///
   /// The instance must have write permissions to the bucket and read access to
   /// the file.
-  core.String certPath;
+  core.String? certPath;
 
   /// Password that encrypts the private key
-  core.String pvkPassword;
+  core.String? pvkPassword;
 
   /// Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form
   /// *gs://bucketName/fileName*.
   ///
   /// The instance must have write permissions to the bucket and read access to
   /// the file.
-  core.String pvkPath;
+  core.String? pvkPath;
 
   ImportContextBakImportOptionsEncryptionOptions();
 
@@ -4317,16 +4009,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (certPath != null) 'certPath': certPath,
-        if (pvkPassword != null) 'pvkPassword': pvkPassword,
-        if (pvkPath != null) 'pvkPath': pvkPath,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (certPath != null) 'certPath': certPath!,
+        if (pvkPassword != null) 'pvkPassword': pvkPassword!,
+        if (pvkPath != null) 'pvkPath': pvkPath!,
       };
 }
 
 /// Import parameters specific to SQL Server .BAK files
 class ImportContextBakImportOptions {
-  ImportContextBakImportOptionsEncryptionOptions encryptionOptions;
+  ImportContextBakImportOptionsEncryptionOptions? encryptionOptions;
 
   ImportContextBakImportOptions();
 
@@ -4339,9 +4031,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (encryptionOptions != null)
-          'encryptionOptions': encryptionOptions.toJson(),
+          'encryptionOptions': encryptionOptions!.toJson(),
       };
 }
 
@@ -4351,10 +4043,10 @@
   ///
   /// If not specified, all columns of the database table are loaded with CSV
   /// data.
-  core.List<core.String> columns;
+  core.List<core.String>? columns;
 
   /// The table to which CSV data is imported.
-  core.String table;
+  core.String? table;
 
   ImportContextCsvImportOptions();
 
@@ -4369,19 +4061,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (columns != null) 'columns': columns,
-        if (table != null) 'table': table,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (columns != null) 'columns': columns!,
+        if (table != null) 'table': table!,
       };
 }
 
 /// Database instance import context.
 class ImportContext {
   /// Import parameters specific to SQL Server .BAK files
-  ImportContextBakImportOptions bakImportOptions;
+  ImportContextBakImportOptions? bakImportOptions;
 
   /// Options for importing data as CSV.
-  ImportContextCsvImportOptions csvImportOptions;
+  ImportContextCsvImportOptions? csvImportOptions;
 
   /// The target database for the import.
   ///
@@ -4389,7 +4081,7 @@
   /// does not specify a database, and is overridden by any database
   /// specification in the import file. If *fileType* is *CSV*, one database
   /// must be specified.
-  core.String database;
+  core.String? database;
 
   /// The file type for the specified uri.
   ///
@@ -4400,15 +4092,15 @@
   /// - "SQL" : File containing SQL statements.
   /// - "CSV" : File in CSV format.
   /// - "BAK"
-  core.String fileType;
+  core.String? fileType;
 
   /// The PostgreSQL user for this import operation.
   ///
   /// PostgreSQL instances only.
-  core.String importUser;
+  core.String? importUser;
 
   /// This is always *sql#importContext*.
-  core.String kind;
+  core.String? kind;
 
   /// Path to the import file in Cloud Storage, in the form
   /// *gs://bucketName/fileName*.
@@ -4416,7 +4108,7 @@
   /// Compressed gzip files (.gz) are supported when *fileType* is *SQL*. The
   /// instance must have write permissions to the bucket and read access to the
   /// file.
-  core.String uri;
+  core.String? uri;
 
   ImportContext();
 
@@ -4446,16 +4138,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (bakImportOptions != null)
-          'bakImportOptions': bakImportOptions.toJson(),
+          'bakImportOptions': bakImportOptions!.toJson(),
         if (csvImportOptions != null)
-          'csvImportOptions': csvImportOptions.toJson(),
-        if (database != null) 'database': database,
-        if (fileType != null) 'fileType': fileType,
-        if (importUser != null) 'importUser': importUser,
-        if (kind != null) 'kind': kind,
-        if (uri != null) 'uri': uri,
+          'csvImportOptions': csvImportOptions!.toJson(),
+        if (database != null) 'database': database!,
+        if (fileType != null) 'fileType': fileType!,
+        if (importUser != null) 'importUser': importUser!,
+        if (kind != null) 'kind': kind!,
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -4465,21 +4157,21 @@
 /// configuration.
 class InsightsConfig {
   /// Whether Query Insights feature is enabled.
-  core.bool queryInsightsEnabled;
+  core.bool? queryInsightsEnabled;
 
   /// Maximum query length stored in bytes.
   ///
   /// Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than
   /// this field value will be truncated to this value. When unset, query length
   /// will be the default value.
-  core.int queryStringLength;
+  core.int? queryStringLength;
 
   /// Whether Query Insights will record application tags from query when
   /// enabled.
-  core.bool recordApplicationTags;
+  core.bool? recordApplicationTags;
 
   /// Whether Query Insights will record client address when enabled.
-  core.bool recordClientAddress;
+  core.bool? recordClientAddress;
 
   InsightsConfig();
 
@@ -4498,21 +4190,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (queryInsightsEnabled != null)
-          'queryInsightsEnabled': queryInsightsEnabled,
-        if (queryStringLength != null) 'queryStringLength': queryStringLength,
+          'queryInsightsEnabled': queryInsightsEnabled!,
+        if (queryStringLength != null) 'queryStringLength': queryStringLength!,
         if (recordApplicationTags != null)
-          'recordApplicationTags': recordApplicationTags,
+          'recordApplicationTags': recordApplicationTags!,
         if (recordClientAddress != null)
-          'recordClientAddress': recordClientAddress,
+          'recordClientAddress': recordClientAddress!,
       };
 }
 
 /// Database instance clone request.
 class InstancesCloneRequest {
   /// Contains details about the clone operation.
-  CloneContext cloneContext;
+  CloneContext? cloneContext;
 
   InstancesCloneRequest();
 
@@ -4523,15 +4215,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cloneContext != null) 'cloneContext': cloneContext.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cloneContext != null) 'cloneContext': cloneContext!.toJson(),
       };
 }
 
 /// Database demote primary instance request.
 class InstancesDemoteMasterRequest {
   /// Contains details about the demoteMaster operation.
-  DemoteMasterContext demoteMasterContext;
+  DemoteMasterContext? demoteMasterContext;
 
   InstancesDemoteMasterRequest();
 
@@ -4542,16 +4234,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (demoteMasterContext != null)
-          'demoteMasterContext': demoteMasterContext.toJson(),
+          'demoteMasterContext': demoteMasterContext!.toJson(),
       };
 }
 
 /// Database instance export request.
 class InstancesExportRequest {
   /// Contains details about the export operation.
-  ExportContext exportContext;
+  ExportContext? exportContext;
 
   InstancesExportRequest();
 
@@ -4562,15 +4254,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exportContext != null) 'exportContext': exportContext.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exportContext != null) 'exportContext': exportContext!.toJson(),
       };
 }
 
 /// Instance failover request.
 class InstancesFailoverRequest {
   /// Failover Context.
-  FailoverContext failoverContext;
+  FailoverContext? failoverContext;
 
   InstancesFailoverRequest();
 
@@ -4581,16 +4273,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (failoverContext != null)
-          'failoverContext': failoverContext.toJson(),
+          'failoverContext': failoverContext!.toJson(),
       };
 }
 
 /// Database instance import request.
 class InstancesImportRequest {
   /// Contains details about the import operation.
-  ImportContext importContext;
+  ImportContext? importContext;
 
   InstancesImportRequest();
 
@@ -4601,27 +4293,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (importContext != null) 'importContext': importContext.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (importContext != null) 'importContext': importContext!.toJson(),
       };
 }
 
 /// Database instances list response.
 class InstancesListResponse {
   /// List of database instance resources.
-  core.List<DatabaseInstance> items;
+  core.List<DatabaseInstance>? items;
 
   /// This is always *sql#instancesList*.
-  core.String kind;
+  core.String? kind;
 
   /// The continuation token, used to page through large result sets.
   ///
   /// Provide this value in a subsequent request to return the next page of
   /// results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// List of warnings that occurred while handling the request.
-  core.List<ApiWarning> warnings;
+  core.List<ApiWarning>? warnings;
 
   InstancesListResponse();
 
@@ -4646,25 +4338,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (warnings != null)
-          'warnings': warnings.map((value) => value.toJson()).toList(),
+          'warnings': warnings!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Instances ListServerCas response.
 class InstancesListServerCasResponse {
-  core.String activeVersion;
+  core.String? activeVersion;
 
   /// List of server CA certificates for the instance.
-  core.List<SslCert> certs;
+  core.List<SslCert>? certs;
 
   /// This is always *sql#instancesListServerCas*.
-  core.String kind;
+  core.String? kind;
 
   InstancesListServerCasResponse();
 
@@ -4683,18 +4375,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (activeVersion != null) 'activeVersion': activeVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (activeVersion != null) 'activeVersion': activeVersion!,
         if (certs != null)
-          'certs': certs.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'certs': certs!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
 /// Database instance restore backup request.
 class InstancesRestoreBackupRequest {
   /// Parameters required to perform the restore backup operation.
-  RestoreBackupContext restoreBackupContext;
+  RestoreBackupContext? restoreBackupContext;
 
   InstancesRestoreBackupRequest();
 
@@ -4705,16 +4397,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (restoreBackupContext != null)
-          'restoreBackupContext': restoreBackupContext.toJson(),
+          'restoreBackupContext': restoreBackupContext!.toJson(),
       };
 }
 
 /// Rotate Server CA request.
 class InstancesRotateServerCaRequest {
   /// Contains details about the rotate server CA operation.
-  RotateServerCaContext rotateServerCaContext;
+  RotateServerCaContext? rotateServerCaContext;
 
   InstancesRotateServerCaRequest();
 
@@ -4726,16 +4418,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (rotateServerCaContext != null)
-          'rotateServerCaContext': rotateServerCaContext.toJson(),
+          'rotateServerCaContext': rotateServerCaContext!.toJson(),
       };
 }
 
 /// Instance truncate log request.
 class InstancesTruncateLogRequest {
   /// Contains details about the truncate log operation.
-  TruncateLogContext truncateLogContext;
+  TruncateLogContext? truncateLogContext;
 
   InstancesTruncateLogRequest();
 
@@ -4746,9 +4438,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (truncateLogContext != null)
-          'truncateLogContext': truncateLogContext.toJson(),
+          'truncateLogContext': truncateLogContext!.toJson(),
       };
 }
 
@@ -4759,20 +4451,20 @@
   ///
   /// In 'CIDR' notation, also known as 'slash' notation (for example:
   /// *192.168.100.0/24*).
-  core.List<AclEntry> authorizedNetworks;
+  core.List<AclEntry>? authorizedNetworks;
 
   /// Whether the instance is assigned a public IP address or not.
-  core.bool ipv4Enabled;
+  core.bool? ipv4Enabled;
 
   /// The resource link for the VPC network from which the Cloud SQL instance is
   /// accessible for private IP.
   ///
   /// For example, * / projects/myProject/global/networks/default*. This setting
   /// can be updated, but it cannot be removed after it is set.
-  core.String privateNetwork;
+  core.String? privateNetwork;
 
   /// Whether SSL connections over IP are enforced or not.
-  core.bool requireSsl;
+  core.bool? requireSsl;
 
   IpConfiguration();
 
@@ -4794,26 +4486,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (authorizedNetworks != null)
           'authorizedNetworks':
-              authorizedNetworks.map((value) => value.toJson()).toList(),
-        if (ipv4Enabled != null) 'ipv4Enabled': ipv4Enabled,
-        if (privateNetwork != null) 'privateNetwork': privateNetwork,
-        if (requireSsl != null) 'requireSsl': requireSsl,
+              authorizedNetworks!.map((value) => value.toJson()).toList(),
+        if (ipv4Enabled != null) 'ipv4Enabled': ipv4Enabled!,
+        if (privateNetwork != null) 'privateNetwork': privateNetwork!,
+        if (requireSsl != null) 'requireSsl': requireSsl!,
       };
 }
 
 /// Database instance IP Mapping.
 class IpMapping {
   /// The IP address assigned.
-  core.String ipAddress;
+  core.String? ipAddress;
 
   /// The due time for this IP to be retired in RFC 3339 format, for example
   /// *2012-11-15T16:19:00.094Z*.
   ///
   /// This field is only available when the IP is scheduled to be retired.
-  core.String timeToRetire;
+  core.String? timeToRetire;
 
   /// The type of this IP address.
   ///
@@ -4833,7 +4525,7 @@
   /// - "MIGRATED_1ST_GEN" : V1 IP of a migrated instance. We want the user to
   /// decommission this IP as soon as the migration is complete. Note: V1
   /// instances with V1 ip addresses will be counted as PRIMARY.
-  core.String type;
+  core.String? type;
 
   IpMapping();
 
@@ -4849,10 +4541,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (ipAddress != null) 'ipAddress': ipAddress,
-        if (timeToRetire != null) 'timeToRetire': timeToRetire,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (ipAddress != null) 'ipAddress': ipAddress!,
+        if (timeToRetire != null) 'timeToRetire': timeToRetire!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -4865,20 +4557,20 @@
 class LocationPreference {
   /// The App Engine application to follow, it must be in the same region as the
   /// Cloud SQL instance.
-  core.String followGaeApplication;
+  core.String? followGaeApplication;
 
   /// This is always *sql#locationPreference*.
-  core.String kind;
+  core.String? kind;
 
   /// The preferred Compute Engine zone for the secondary/failover (for example:
   /// us-central1-a, us-central1-b, etc.).
   ///
   /// Reserved for future use.
-  core.String secondaryZone;
+  core.String? secondaryZone;
 
   /// The preferred Compute Engine zone (for example: us-central1-a,
   /// us-central1-b, etc.).
-  core.String zone;
+  core.String? zone;
 
   LocationPreference();
 
@@ -4897,12 +4589,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (followGaeApplication != null)
-          'followGaeApplication': followGaeApplication,
-        if (kind != null) 'kind': kind,
-        if (secondaryZone != null) 'secondaryZone': secondaryZone,
-        if (zone != null) 'zone': zone,
+          'followGaeApplication': followGaeApplication!,
+        if (kind != null) 'kind': kind!,
+        if (secondaryZone != null) 'secondaryZone': secondaryZone!,
+        if (zone != null) 'zone': zone!,
       };
 }
 
@@ -4912,13 +4604,13 @@
 /// purposes.
 class MaintenanceWindow {
   /// day of week (1-7), starting on Monday.
-  core.int day;
+  core.int? day;
 
   /// hour of day - 0 to 23.
-  core.int hour;
+  core.int? hour;
 
   /// This is always *sql#maintenanceWindow*.
-  core.String kind;
+  core.String? kind;
 
   /// Maintenance timing setting: *canary* (Earlier) or *stable* (Later).
   ///
@@ -4932,7 +4624,7 @@
   /// - "stable" : For instance update that requires a restart, this update
   /// track indicates your instance prefer to let Cloud SQL choose the timing of
   /// restart (within its Maintenance window, if applicable).
-  core.String updateTrack;
+  core.String? updateTrack;
 
   MaintenanceWindow();
 
@@ -4951,31 +4643,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (day != null) 'day': day,
-        if (hour != null) 'hour': hour,
-        if (kind != null) 'kind': kind,
-        if (updateTrack != null) 'updateTrack': updateTrack,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (day != null) 'day': day!,
+        if (hour != null) 'hour': hour!,
+        if (kind != null) 'kind': kind!,
+        if (updateTrack != null) 'updateTrack': updateTrack!,
       };
 }
 
 /// Read-replica configuration specific to MySQL databases.
 class MySqlReplicaConfiguration {
   /// PEM representation of the trusted CA's x509 certificate.
-  core.String caCertificate;
+  core.String? caCertificate;
 
   /// PEM representation of the replica's x509 certificate.
-  core.String clientCertificate;
+  core.String? clientCertificate;
 
   /// PEM representation of the replica's private key.
   ///
   /// The corresponsing public key is encoded in the client's certificate.
-  core.String clientKey;
+  core.String? clientKey;
 
   /// Seconds to wait between connect retries.
   ///
   /// MySQL's default is 60 seconds.
-  core.int connectRetryInterval;
+  core.int? connectRetryInterval;
 
   /// Path to a SQL dump file in Google Cloud Storage from which the replica
   /// instance is to be created.
@@ -4984,26 +4676,26 @@
   /// (.gz) are also supported. Dumps have the binlog co-ordinates from which
   /// replication begins. This can be accomplished by setting --master-data to 1
   /// when using mysqldump.
-  core.String dumpFilePath;
+  core.String? dumpFilePath;
 
   /// This is always *sql#mysqlReplicaConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// Interval in milliseconds between replication heartbeats.
-  core.String masterHeartbeatPeriod;
+  core.String? masterHeartbeatPeriod;
 
   /// The password for the replication connection.
-  core.String password;
+  core.String? password;
 
   /// A list of permissible ciphers to use for SSL encryption.
-  core.String sslCipher;
+  core.String? sslCipher;
 
   /// The username for the replication connection.
-  core.String username;
+  core.String? username;
 
   /// Whether or not to check the primary instance's Common Name value in the
   /// certificate that it sends during the SSL handshake.
-  core.bool verifyServerCertificate;
+  core.bool? verifyServerCertificate;
 
   MySqlReplicaConfiguration();
 
@@ -5043,51 +4735,51 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (caCertificate != null) 'caCertificate': caCertificate,
-        if (clientCertificate != null) 'clientCertificate': clientCertificate,
-        if (clientKey != null) 'clientKey': clientKey,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (caCertificate != null) 'caCertificate': caCertificate!,
+        if (clientCertificate != null) 'clientCertificate': clientCertificate!,
+        if (clientKey != null) 'clientKey': clientKey!,
         if (connectRetryInterval != null)
-          'connectRetryInterval': connectRetryInterval,
-        if (dumpFilePath != null) 'dumpFilePath': dumpFilePath,
-        if (kind != null) 'kind': kind,
+          'connectRetryInterval': connectRetryInterval!,
+        if (dumpFilePath != null) 'dumpFilePath': dumpFilePath!,
+        if (kind != null) 'kind': kind!,
         if (masterHeartbeatPeriod != null)
-          'masterHeartbeatPeriod': masterHeartbeatPeriod,
-        if (password != null) 'password': password,
-        if (sslCipher != null) 'sslCipher': sslCipher,
-        if (username != null) 'username': username,
+          'masterHeartbeatPeriod': masterHeartbeatPeriod!,
+        if (password != null) 'password': password!,
+        if (sslCipher != null) 'sslCipher': sslCipher!,
+        if (username != null) 'username': username!,
         if (verifyServerCertificate != null)
-          'verifyServerCertificate': verifyServerCertificate,
+          'verifyServerCertificate': verifyServerCertificate!,
       };
 }
 
 /// On-premises instance configuration.
 class OnPremisesConfiguration {
   /// PEM representation of the trusted CA's x509 certificate.
-  core.String caCertificate;
+  core.String? caCertificate;
 
   /// PEM representation of the replica's x509 certificate.
-  core.String clientCertificate;
+  core.String? clientCertificate;
 
   /// PEM representation of the replica's private key.
   ///
   /// The corresponsing public key is encoded in the client's certificate.
-  core.String clientKey;
+  core.String? clientKey;
 
   /// The dump file to create the Cloud SQL replica.
-  core.String dumpFilePath;
+  core.String? dumpFilePath;
 
   /// The host and port of the on-premises instance in host:port format
-  core.String hostPort;
+  core.String? hostPort;
 
   /// This is always *sql#onPremisesConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// The password for connecting to on-premises instance.
-  core.String password;
+  core.String? password;
 
   /// The username for connecting to on-premises instance.
-  core.String username;
+  core.String? username;
 
   OnPremisesConfiguration();
 
@@ -5118,15 +4810,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (caCertificate != null) 'caCertificate': caCertificate,
-        if (clientCertificate != null) 'clientCertificate': clientCertificate,
-        if (clientKey != null) 'clientKey': clientKey,
-        if (dumpFilePath != null) 'dumpFilePath': dumpFilePath,
-        if (hostPort != null) 'hostPort': hostPort,
-        if (kind != null) 'kind': kind,
-        if (password != null) 'password': password,
-        if (username != null) 'username': username,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (caCertificate != null) 'caCertificate': caCertificate!,
+        if (clientCertificate != null) 'clientCertificate': clientCertificate!,
+        if (clientKey != null) 'clientKey': clientKey!,
+        if (dumpFilePath != null) 'dumpFilePath': dumpFilePath!,
+        if (hostPort != null) 'hostPort': hostPort!,
+        if (kind != null) 'kind': kind!,
+        if (password != null) 'password': password!,
+        if (username != null) 'username': username!,
       };
 }
 
@@ -5136,34 +4828,34 @@
 /// relevant to the operation are populated in the resource. Next field: 18
 class Operation {
   /// The context for backup operation, if applicable.
-  BackupContext backupContext;
+  BackupContext? backupContext;
 
   /// The time this operation finished in UTC timezone in RFC 3339 format, for
   /// example *2012-11-15T16:19:00.094Z*.
-  core.String endTime;
+  core.String? endTime;
 
   /// If errors occurred during processing of this operation, this field will be
   /// populated.
-  OperationErrors error;
+  OperationErrors? error;
 
   /// The context for export operation, if applicable.
-  ExportContext exportContext;
+  ExportContext? exportContext;
 
   /// The context for import operation, if applicable.
-  ImportContext importContext;
+  ImportContext? importContext;
 
   /// The time this operation was enqueued in UTC timezone in RFC 3339 format,
   /// for example *2012-11-15T16:19:00.094Z*.
-  core.String insertTime;
+  core.String? insertTime;
 
   /// This is always *sql#operation*.
-  core.String kind;
+  core.String? kind;
 
   /// An identifier that uniquely identifies the operation.
   ///
   /// You can use this identifier to retrieve the Operations resource that has
   /// information about the operation.
-  core.String name;
+  core.String? name;
 
   /// The type of the operation.
   ///
@@ -5214,14 +4906,14 @@
   /// - "RESCHEDULE_MAINTENANCE" : Reschedule maintenance to another time.
   /// - "START_EXTERNAL_SYNC" : Starts external sync of a Cloud SQL EM replica
   /// to an external primary instance.
-  core.String operationType;
+  core.String? operationType;
 
   /// The URI of this resource.
-  core.String selfLink;
+  core.String? selfLink;
 
   /// The time this operation actually started in UTC timezone in RFC 3339
   /// format, for example *2012-11-15T16:19:00.094Z*.
-  core.String startTime;
+  core.String? startTime;
 
   /// The status of an operation.
   ///
@@ -5233,17 +4925,17 @@
   /// - "PENDING" : The operation has been queued, but has not started yet.
   /// - "RUNNING" : The operation is running.
   /// - "DONE" : The operation completed.
-  core.String status;
+  core.String? status;
 
   /// Name of the database instance related to this operation.
-  core.String targetId;
-  core.String targetLink;
+  core.String? targetId;
+  core.String? targetLink;
 
   /// The project ID of the target instance related to this operation.
-  core.String targetProject;
+  core.String? targetProject;
 
   /// The email address of the user who initiated this operation.
-  core.String user;
+  core.String? user;
 
   Operation();
 
@@ -5302,36 +4994,36 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (backupContext != null) 'backupContext': backupContext.toJson(),
-        if (endTime != null) 'endTime': endTime,
-        if (error != null) 'error': error.toJson(),
-        if (exportContext != null) 'exportContext': exportContext.toJson(),
-        if (importContext != null) 'importContext': importContext.toJson(),
-        if (insertTime != null) 'insertTime': insertTime,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (operationType != null) 'operationType': operationType,
-        if (selfLink != null) 'selfLink': selfLink,
-        if (startTime != null) 'startTime': startTime,
-        if (status != null) 'status': status,
-        if (targetId != null) 'targetId': targetId,
-        if (targetLink != null) 'targetLink': targetLink,
-        if (targetProject != null) 'targetProject': targetProject,
-        if (user != null) 'user': user,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (backupContext != null) 'backupContext': backupContext!.toJson(),
+        if (endTime != null) 'endTime': endTime!,
+        if (error != null) 'error': error!.toJson(),
+        if (exportContext != null) 'exportContext': exportContext!.toJson(),
+        if (importContext != null) 'importContext': importContext!.toJson(),
+        if (insertTime != null) 'insertTime': insertTime!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (operationType != null) 'operationType': operationType!,
+        if (selfLink != null) 'selfLink': selfLink!,
+        if (startTime != null) 'startTime': startTime!,
+        if (status != null) 'status': status!,
+        if (targetId != null) 'targetId': targetId!,
+        if (targetLink != null) 'targetLink': targetLink!,
+        if (targetProject != null) 'targetProject': targetProject!,
+        if (user != null) 'user': user!,
       };
 }
 
 /// Database instance operation error.
 class OperationError {
   /// Identifies the specific error that occurred.
-  core.String code;
+  core.String? code;
 
   /// This is always *sql#operationError*.
-  core.String kind;
+  core.String? kind;
 
   /// Additional information about the error encountered.
-  core.String message;
+  core.String? message;
 
   OperationError();
 
@@ -5347,20 +5039,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (kind != null) 'kind': kind,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (kind != null) 'kind': kind!,
+        if (message != null) 'message': message!,
       };
 }
 
 /// Database instance operation errors list wrapper.
 class OperationErrors {
   /// The list of errors encountered while processing this operation.
-  core.List<OperationError> errors;
+  core.List<OperationError>? errors;
 
   /// This is always *sql#operationErrors*.
-  core.String kind;
+  core.String? kind;
 
   OperationErrors();
 
@@ -5376,26 +5068,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (errors != null)
-          'errors': errors.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'errors': errors!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
 /// Database instance list operations response.
 class OperationsListResponse {
   /// List of operation resources.
-  core.List<Operation> items;
+  core.List<Operation>? items;
 
   /// This is always *sql#operationsList*.
-  core.String kind;
+  core.String? kind;
 
   /// The continuation token, used to page through large result sets.
   ///
   /// Provide this value in a subsequent request to return the next page of
   /// results.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   OperationsListResponse();
 
@@ -5414,11 +5106,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -5431,10 +5123,10 @@
   /// promoted as the new primary instance. Only one replica can be specified as
   /// failover target, and the replica has to be in different zone with the
   /// primary instance.
-  core.bool failoverTarget;
+  core.bool? failoverTarget;
 
   /// This is always *sql#replicaConfiguration*.
-  core.String kind;
+  core.String? kind;
 
   /// MySQL specific configuration when replicating from a MySQL on-premises
   /// primary instance.
@@ -5444,7 +5136,7 @@
   /// configuration information is used only to set up the replication
   /// connection and is stored by MySQL in a file named *master.info* in the
   /// data directory.
-  MySqlReplicaConfiguration mysqlReplicaConfiguration;
+  MySqlReplicaConfiguration? mysqlReplicaConfiguration;
 
   ReplicaConfiguration();
 
@@ -5462,11 +5154,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (failoverTarget != null) 'failoverTarget': failoverTarget,
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (failoverTarget != null) 'failoverTarget': failoverTarget!,
+        if (kind != null) 'kind': kind!,
         if (mysqlReplicaConfiguration != null)
-          'mysqlReplicaConfiguration': mysqlReplicaConfiguration.toJson(),
+          'mysqlReplicaConfiguration': mysqlReplicaConfiguration!.toJson(),
       };
 }
 
@@ -5482,14 +5174,14 @@
   /// maintenance policy to find the next available window.
   /// - "SPECIFIC_TIME" : If the user wants to reschedule the maintenance to a
   /// specific time.
-  core.String rescheduleType;
+  core.String? rescheduleType;
 
   /// Timestamp when the maintenance shall be rescheduled to if
   /// reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example
   /// *2012-11-15T16:19:00.094Z*.
   ///
   /// Optional.
-  core.String scheduleTime;
+  core.String? scheduleTime;
 
   Reschedule();
 
@@ -5502,9 +5194,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (rescheduleType != null) 'rescheduleType': rescheduleType,
-        if (scheduleTime != null) 'scheduleTime': scheduleTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (rescheduleType != null) 'rescheduleType': rescheduleType!,
+        if (scheduleTime != null) 'scheduleTime': scheduleTime!,
       };
 }
 
@@ -5513,16 +5205,16 @@
 /// Backup context contains source instance id and project id.
 class RestoreBackupContext {
   /// The ID of the backup run to restore from.
-  core.String backupRunId;
+  core.String? backupRunId;
 
   /// The ID of the instance that the backup was taken from.
-  core.String instanceId;
+  core.String? instanceId;
 
   /// This is always *sql#restoreBackupContext*.
-  core.String kind;
+  core.String? kind;
 
   /// The full project ID of the source instance.
-  core.String project;
+  core.String? project;
 
   RestoreBackupContext();
 
@@ -5541,24 +5233,24 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (backupRunId != null) 'backupRunId': backupRunId,
-        if (instanceId != null) 'instanceId': instanceId,
-        if (kind != null) 'kind': kind,
-        if (project != null) 'project': project,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (backupRunId != null) 'backupRunId': backupRunId!,
+        if (instanceId != null) 'instanceId': instanceId!,
+        if (kind != null) 'kind': kind!,
+        if (project != null) 'project': project!,
       };
 }
 
 /// Instance rotate server CA context.
 class RotateServerCaContext {
   /// This is always *sql#rotateServerCaContext*.
-  core.String kind;
+  core.String? kind;
 
   /// The fingerprint of the next version to be rotated to.
   ///
   /// If left unspecified, will be rotated to the most recently added server CA
   /// version.
-  core.String nextVersion;
+  core.String? nextVersion;
 
   RotateServerCaContext();
 
@@ -5571,9 +5263,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (nextVersion != null) 'nextVersion': nextVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (nextVersion != null) 'nextVersion': nextVersion!,
       };
 }
 
@@ -5590,16 +5282,16 @@
   /// - "ALWAYS" : The instance is always up and running.
   /// - "NEVER" : The instance never starts.
   /// - "ON_DEMAND" : The instance starts upon receiving requests.
-  core.String activationPolicy;
+  core.String? activationPolicy;
 
   /// Active Directory configuration, relevant only for Cloud SQL for SQL
   /// Server.
-  SqlActiveDirectoryConfig activeDirectoryConfig;
+  SqlActiveDirectoryConfig? activeDirectoryConfig;
 
   /// The App Engine app IDs that can access this instance.
   ///
   /// (Deprecated) Applied to First Generation instances only.
-  core.List<core.String> authorizedGaeApplications;
+  core.List<core.String>? authorizedGaeApplications;
 
   /// Availability type.
   ///
@@ -5613,24 +5305,24 @@
   /// type.
   /// - "ZONAL" : Zonal available instance.
   /// - "REGIONAL" : Regional available instance.
-  core.String availabilityType;
+  core.String? availabilityType;
 
   /// The daily backup configuration for the instance.
-  BackupConfiguration backupConfiguration;
+  BackupConfiguration? backupConfiguration;
 
   /// The name of server Instance collation.
-  core.String collation;
+  core.String? collation;
 
   /// Configuration specific to read replica instances.
   ///
   /// Indicates whether database flags for crash-safe replication are enabled.
   /// This property was only applicable to First Generation instances.
-  core.bool crashSafeReplicationEnabled;
+  core.bool? crashSafeReplicationEnabled;
 
   /// The size of data disk, in GB.
   ///
   /// The data disk size minimum is 10GB.
-  core.String dataDiskSizeGb;
+  core.String? dataDiskSizeGb;
 
   /// The type of data disk: PD_SSD (default) or PD_HDD.
   ///
@@ -5641,44 +5333,44 @@
   /// - "PD_HDD" : An HDD data disk.
   /// - "OBSOLETE_LOCAL_SSD" : This field is deprecated and will be removed from
   /// a future version of the API.
-  core.String dataDiskType;
+  core.String? dataDiskType;
 
   /// The database flags passed to the instance at startup.
-  core.List<DatabaseFlags> databaseFlags;
+  core.List<DatabaseFlags>? databaseFlags;
 
   /// Configuration specific to read replica instances.
   ///
   /// Indicates whether replication is enabled or not.
-  core.bool databaseReplicationEnabled;
+  core.bool? databaseReplicationEnabled;
 
   /// Deny maintenance periods
-  core.List<DenyMaintenancePeriod> denyMaintenancePeriods;
+  core.List<DenyMaintenancePeriod>? denyMaintenancePeriods;
 
   /// Insights configuration, for now relevant only for Postgres.
-  InsightsConfig insightsConfig;
+  InsightsConfig? insightsConfig;
 
   /// The settings for IP Management.
   ///
   /// This allows to enable or disable the instance IP and manage which external
   /// networks can connect to the instance. The IPv4 address cannot be disabled
   /// for Second Generation instances.
-  IpConfiguration ipConfiguration;
+  IpConfiguration? ipConfiguration;
 
   /// This is always *sql#settings*.
-  core.String kind;
+  core.String? kind;
 
   /// The location preference settings.
   ///
   /// This allows the instance to be located as near as possible to either an
   /// App Engine app or Compute Engine zone for better performance. App Engine
   /// co-location was only applicable to First Generation instances.
-  LocationPreference locationPreference;
+  LocationPreference? locationPreference;
 
   /// The maintenance window for this instance.
   ///
   /// This specifies when the instance can be restarted for maintenance
   /// purposes.
-  MaintenanceWindow maintenanceWindow;
+  MaintenanceWindow? maintenanceWindow;
 
   /// The pricing plan for this instance.
   ///
@@ -5689,7 +5381,7 @@
   /// this instance.
   /// - "PACKAGE" : The instance is billed at a monthly flat rate.
   /// - "PER_USE" : The instance is billed per usage.
-  core.String pricingPlan;
+  core.String? pricingPlan;
 
   /// The type of replication this instance uses.
   ///
@@ -5704,33 +5396,33 @@
   /// instances. It provides a slight performance gain, but if an outage occurs
   /// while this option is set to asynchronous, you can lose up to a few seconds
   /// of updates to your data.
-  core.String replicationType;
+  core.String? replicationType;
 
   /// The version of instance settings.
   ///
   /// This is a required field for update method to make sure concurrent updates
   /// are handled properly. During update, use the most recent settingsVersion
   /// value for this instance and do not try to update this value.
-  core.String settingsVersion;
+  core.String? settingsVersion;
 
   /// Configuration to increase storage size automatically.
   ///
   /// The default value is true.
-  core.bool storageAutoResize;
+  core.bool? storageAutoResize;
 
   /// The maximum size to which storage capacity can be automatically increased.
   ///
   /// The default value is 0, which specifies that there is no limit.
-  core.String storageAutoResizeLimit;
+  core.String? storageAutoResizeLimit;
 
   /// The tier (or machine type) for this instance, for example
   /// *db-n1-standard-1* (MySQL instances) or *db-custom-1-3840* (PostgreSQL
   /// instances).
-  core.String tier;
+  core.String? tier;
 
   /// User-provided labels, represented as a dictionary where each label is a
   /// single key value pair.
-  core.Map<core.String, core.String> userLabels;
+  core.Map<core.String, core.String>? userLabels;
 
   Settings();
 
@@ -5834,54 +5526,54 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (activationPolicy != null) 'activationPolicy': activationPolicy,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (activationPolicy != null) 'activationPolicy': activationPolicy!,
         if (activeDirectoryConfig != null)
-          'activeDirectoryConfig': activeDirectoryConfig.toJson(),
+          'activeDirectoryConfig': activeDirectoryConfig!.toJson(),
         if (authorizedGaeApplications != null)
-          'authorizedGaeApplications': authorizedGaeApplications,
-        if (availabilityType != null) 'availabilityType': availabilityType,
+          'authorizedGaeApplications': authorizedGaeApplications!,
+        if (availabilityType != null) 'availabilityType': availabilityType!,
         if (backupConfiguration != null)
-          'backupConfiguration': backupConfiguration.toJson(),
-        if (collation != null) 'collation': collation,
+          'backupConfiguration': backupConfiguration!.toJson(),
+        if (collation != null) 'collation': collation!,
         if (crashSafeReplicationEnabled != null)
-          'crashSafeReplicationEnabled': crashSafeReplicationEnabled,
-        if (dataDiskSizeGb != null) 'dataDiskSizeGb': dataDiskSizeGb,
-        if (dataDiskType != null) 'dataDiskType': dataDiskType,
+          'crashSafeReplicationEnabled': crashSafeReplicationEnabled!,
+        if (dataDiskSizeGb != null) 'dataDiskSizeGb': dataDiskSizeGb!,
+        if (dataDiskType != null) 'dataDiskType': dataDiskType!,
         if (databaseFlags != null)
           'databaseFlags':
-              databaseFlags.map((value) => value.toJson()).toList(),
+              databaseFlags!.map((value) => value.toJson()).toList(),
         if (databaseReplicationEnabled != null)
-          'databaseReplicationEnabled': databaseReplicationEnabled,
+          'databaseReplicationEnabled': databaseReplicationEnabled!,
         if (denyMaintenancePeriods != null)
           'denyMaintenancePeriods':
-              denyMaintenancePeriods.map((value) => value.toJson()).toList(),
-        if (insightsConfig != null) 'insightsConfig': insightsConfig.toJson(),
+              denyMaintenancePeriods!.map((value) => value.toJson()).toList(),
+        if (insightsConfig != null) 'insightsConfig': insightsConfig!.toJson(),
         if (ipConfiguration != null)
-          'ipConfiguration': ipConfiguration.toJson(),
-        if (kind != null) 'kind': kind,
+          'ipConfiguration': ipConfiguration!.toJson(),
+        if (kind != null) 'kind': kind!,
         if (locationPreference != null)
-          'locationPreference': locationPreference.toJson(),
+          'locationPreference': locationPreference!.toJson(),
         if (maintenanceWindow != null)
-          'maintenanceWindow': maintenanceWindow.toJson(),
-        if (pricingPlan != null) 'pricingPlan': pricingPlan,
-        if (replicationType != null) 'replicationType': replicationType,
-        if (settingsVersion != null) 'settingsVersion': settingsVersion,
-        if (storageAutoResize != null) 'storageAutoResize': storageAutoResize,
+          'maintenanceWindow': maintenanceWindow!.toJson(),
+        if (pricingPlan != null) 'pricingPlan': pricingPlan!,
+        if (replicationType != null) 'replicationType': replicationType!,
+        if (settingsVersion != null) 'settingsVersion': settingsVersion!,
+        if (storageAutoResize != null) 'storageAutoResize': storageAutoResize!,
         if (storageAutoResizeLimit != null)
-          'storageAutoResizeLimit': storageAutoResizeLimit,
-        if (tier != null) 'tier': tier,
-        if (userLabels != null) 'userLabels': userLabels,
+          'storageAutoResizeLimit': storageAutoResizeLimit!,
+        if (tier != null) 'tier': tier!,
+        if (userLabels != null) 'userLabels': userLabels!,
       };
 }
 
 /// Active Directory configuration, relevant only for Cloud SQL for SQL Server.
 class SqlActiveDirectoryConfig {
   /// The name of the domain (e.g., mydomain.com).
-  core.String domain;
+  core.String? domain;
 
   /// This is always sql#activeDirectoryConfig.
-  core.String kind;
+  core.String? kind;
 
   SqlActiveDirectoryConfig();
 
@@ -5894,19 +5586,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (domain != null) 'domain': domain,
-        if (kind != null) 'kind': kind,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (domain != null) 'domain': domain!,
+        if (kind != null) 'kind': kind!,
       };
 }
 
 /// External primary instance migration setting error.
 class SqlExternalSyncSettingError {
   /// Additional information about the error encountered.
-  core.String detail;
+  core.String? detail;
 
   /// This is always *sql#migrationSettingError*.
-  core.String kind;
+  core.String? kind;
 
   /// Identifies the specific error that occurred.
   /// Possible string values are:
@@ -5946,7 +5638,7 @@
   /// to missing primary key or replica identity, applicable for postgres.
   /// - "UNSUPPORTED_DEFINER" : The customer has a definer that will break EM
   /// setup.
-  core.String type;
+  core.String? type;
 
   SqlExternalSyncSettingError();
 
@@ -5962,10 +5654,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (detail != null) 'detail': detail,
-        if (kind != null) 'kind': kind,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (detail != null) 'detail': detail!,
+        if (kind != null) 'kind': kind!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -5974,7 +5666,7 @@
   /// The type of the reschedule the user wants.
   ///
   /// Required.
-  Reschedule reschedule;
+  Reschedule? reschedule;
 
   SqlInstancesRescheduleMaintenanceRequestBody();
 
@@ -5985,18 +5677,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (reschedule != null) 'reschedule': reschedule.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (reschedule != null) 'reschedule': reschedule!.toJson(),
       };
 }
 
 /// Instance verify external sync settings response.
 class SqlInstancesVerifyExternalSyncSettingsResponse {
   /// List of migration violations.
-  core.List<SqlExternalSyncSettingError> errors;
+  core.List<SqlExternalSyncSettingError>? errors;
 
   /// This is always *sql#migrationSettingErrorList*.
-  core.String kind;
+  core.String? kind;
 
   SqlInstancesVerifyExternalSyncSettingsResponse();
 
@@ -6013,22 +5705,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (errors != null)
-          'errors': errors.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'errors': errors!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
 /// Any scheduled maintenancce for this instance.
 class SqlScheduledMaintenance {
-  core.bool canDefer;
+  core.bool? canDefer;
 
   /// If the scheduled maintenance can be rescheduled.
-  core.bool canReschedule;
+  core.bool? canReschedule;
 
   /// The start time of any upcoming scheduled maintenance for this instance.
-  core.String startTime;
+  core.String? startTime;
 
   SqlScheduledMaintenance();
 
@@ -6044,20 +5736,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (canDefer != null) 'canDefer': canDefer,
-        if (canReschedule != null) 'canReschedule': canReschedule,
-        if (startTime != null) 'startTime': startTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (canDefer != null) 'canDefer': canDefer!,
+        if (canReschedule != null) 'canReschedule': canReschedule!,
+        if (startTime != null) 'startTime': startTime!,
       };
 }
 
 /// Represents a Sql Server database on the Cloud SQL instance.
 class SqlServerDatabaseDetails {
   /// The version of SQL Server with which the database is to be made compatible
-  core.int compatibilityLevel;
+  core.int? compatibilityLevel;
 
   /// The recovery model of a SQL Server database
-  core.String recoveryModel;
+  core.String? recoveryModel;
 
   SqlServerDatabaseDetails();
 
@@ -6070,20 +5762,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (compatibilityLevel != null)
-          'compatibilityLevel': compatibilityLevel,
-        if (recoveryModel != null) 'recoveryModel': recoveryModel,
+          'compatibilityLevel': compatibilityLevel!,
+        if (recoveryModel != null) 'recoveryModel': recoveryModel!,
       };
 }
 
 /// Represents a Sql Server user on the Cloud SQL instance.
 class SqlServerUserDetails {
   /// If the user has been disabled
-  core.bool disabled;
+  core.bool? disabled;
 
   /// The server roles for this user
-  core.List<core.String> serverRoles;
+  core.List<core.String>? serverRoles;
 
   SqlServerUserDetails();
 
@@ -6098,44 +5790,44 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (disabled != null) 'disabled': disabled,
-        if (serverRoles != null) 'serverRoles': serverRoles,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (disabled != null) 'disabled': disabled!,
+        if (serverRoles != null) 'serverRoles': serverRoles!,
       };
 }
 
 /// SslCerts Resource
 class SslCert {
   /// PEM representation.
-  core.String cert;
+  core.String? cert;
 
   /// Serial number, as extracted from the certificate.
-  core.String certSerialNumber;
+  core.String? certSerialNumber;
 
   /// User supplied name.
   ///
   /// Constrained to \[a-zA-Z.-_ \]+.
-  core.String commonName;
+  core.String? commonName;
 
   /// The time when the certificate was created in RFC 3339 format, for example
   /// *2012-11-15T16:19:00.094Z*
-  core.String createTime;
+  core.String? createTime;
 
   /// The time when the certificate expires in RFC 3339 format, for example
   /// *2012-11-15T16:19:00.094Z*.
-  core.String expirationTime;
+  core.String? expirationTime;
 
   /// Name of the database instance.
-  core.String instance;
+  core.String? instance;
 
   /// This is always *sql#sslCert*.
-  core.String kind;
+  core.String? kind;
 
   /// The URI of this resource.
-  core.String selfLink;
+  core.String? selfLink;
 
   /// Sha1 Fingerprint.
-  core.String sha1Fingerprint;
+  core.String? sha1Fingerprint;
 
   SslCert();
 
@@ -6169,28 +5861,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cert != null) 'cert': cert,
-        if (certSerialNumber != null) 'certSerialNumber': certSerialNumber,
-        if (commonName != null) 'commonName': commonName,
-        if (createTime != null) 'createTime': createTime,
-        if (expirationTime != null) 'expirationTime': expirationTime,
-        if (instance != null) 'instance': instance,
-        if (kind != null) 'kind': kind,
-        if (selfLink != null) 'selfLink': selfLink,
-        if (sha1Fingerprint != null) 'sha1Fingerprint': sha1Fingerprint,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cert != null) 'cert': cert!,
+        if (certSerialNumber != null) 'certSerialNumber': certSerialNumber!,
+        if (commonName != null) 'commonName': commonName!,
+        if (createTime != null) 'createTime': createTime!,
+        if (expirationTime != null) 'expirationTime': expirationTime!,
+        if (instance != null) 'instance': instance!,
+        if (kind != null) 'kind': kind!,
+        if (selfLink != null) 'selfLink': selfLink!,
+        if (sha1Fingerprint != null) 'sha1Fingerprint': sha1Fingerprint!,
       };
 }
 
 /// SslCertDetail.
 class SslCertDetail {
   /// The public information about the cert.
-  SslCert certInfo;
+  SslCert? certInfo;
 
   /// The private key for the client cert, in pem format.
   ///
   /// Keep private in order to protect your security.
-  core.String certPrivateKey;
+  core.String? certPrivateKey;
 
   SslCertDetail();
 
@@ -6204,19 +5896,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (certInfo != null) 'certInfo': certInfo.toJson(),
-        if (certPrivateKey != null) 'certPrivateKey': certPrivateKey,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (certInfo != null) 'certInfo': certInfo!.toJson(),
+        if (certPrivateKey != null) 'certPrivateKey': certPrivateKey!,
       };
 }
 
 /// SslCerts create ephemeral certificate request.
 class SslCertsCreateEphemeralRequest {
   /// Access token to include in the signed certificate.
-  core.String accessToken;
+  core.String? accessToken;
 
   /// PEM encoded public key to include in the signed certificate.
-  core.String publicKey;
+  core.String? publicKey;
 
   SslCertsCreateEphemeralRequest();
 
@@ -6229,9 +5921,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (accessToken != null) 'access_token': accessToken,
-        if (publicKey != null) 'public_key': publicKey,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (accessToken != null) 'access_token': accessToken!,
+        if (publicKey != null) 'public_key': publicKey!,
       };
 }
 
@@ -6240,7 +5932,7 @@
   /// User supplied name.
   ///
   /// Must be a distinct name from the other certificates for this instance.
-  core.String commonName;
+  core.String? commonName;
 
   SslCertsInsertRequest();
 
@@ -6250,27 +5942,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (commonName != null) 'commonName': commonName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (commonName != null) 'commonName': commonName!,
       };
 }
 
 /// SslCert insert response.
 class SslCertsInsertResponse {
   /// The new client certificate and private key.
-  SslCertDetail clientCert;
+  SslCertDetail? clientCert;
 
   /// This is always *sql#sslCertsInsert*.
-  core.String kind;
+  core.String? kind;
 
   /// The operation to track the ssl certs insert request.
-  Operation operation;
+  Operation? operation;
 
   /// The server Certificate Authority's certificate.
   ///
   /// If this is missing you can force a new one to be generated by calling
   /// resetSslConfig method on instances resource.
-  SslCert serverCaCert;
+  SslCert? serverCaCert;
 
   SslCertsInsertResponse();
 
@@ -6292,21 +5984,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (clientCert != null) 'clientCert': clientCert.toJson(),
-        if (kind != null) 'kind': kind,
-        if (operation != null) 'operation': operation.toJson(),
-        if (serverCaCert != null) 'serverCaCert': serverCaCert.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (clientCert != null) 'clientCert': clientCert!.toJson(),
+        if (kind != null) 'kind': kind!,
+        if (operation != null) 'operation': operation!.toJson(),
+        if (serverCaCert != null) 'serverCaCert': serverCaCert!.toJson(),
       };
 }
 
 /// SslCerts list response.
 class SslCertsListResponse {
   /// List of client certificates for the instance.
-  core.List<SslCert> items;
+  core.List<SslCert>? items;
 
   /// This is always *sql#sslCertsList*.
-  core.String kind;
+  core.String? kind;
 
   SslCertsListResponse();
 
@@ -6322,31 +6014,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
 /// A Google Cloud SQL service tier resource.
 class Tier {
   /// The maximum disk size of this tier in bytes.
-  core.String DiskQuota;
+  core.String? DiskQuota;
 
   /// The maximum RAM usage of this tier in bytes.
-  core.String RAM;
+  core.String? RAM;
 
   /// This is always *sql#tier*.
-  core.String kind;
+  core.String? kind;
 
   /// The applicable regions for this tier.
-  core.List<core.String> region;
+  core.List<core.String>? region;
 
   /// An identifier for the machine type, for example, db-n1-standard-1.
   ///
   /// For related information, see Pricing.
-  core.String tier;
+  core.String? tier;
 
   Tier();
 
@@ -6370,22 +6062,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (DiskQuota != null) 'DiskQuota': DiskQuota,
-        if (RAM != null) 'RAM': RAM,
-        if (kind != null) 'kind': kind,
-        if (region != null) 'region': region,
-        if (tier != null) 'tier': tier,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (DiskQuota != null) 'DiskQuota': DiskQuota!,
+        if (RAM != null) 'RAM': RAM!,
+        if (kind != null) 'kind': kind!,
+        if (region != null) 'region': region!,
+        if (tier != null) 'tier': tier!,
       };
 }
 
 /// Tiers list response.
 class TiersListResponse {
   /// List of tiers.
-  core.List<Tier> items;
+  core.List<Tier>? items;
 
   /// This is always *sql#tiersList*.
-  core.String kind;
+  core.String? kind;
 
   TiersListResponse();
 
@@ -6401,22 +6093,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
       };
 }
 
 /// Database Instance truncate log context.
 class TruncateLogContext {
   /// This is always *sql#truncateLogContext*.
-  core.String kind;
+  core.String? kind;
 
   /// The type of log to truncate.
   ///
   /// Valid values are *MYSQL_GENERAL_TABLE* and *MYSQL_SLOW_TABLE*.
-  core.String logType;
+  core.String? logType;
 
   TruncateLogContext();
 
@@ -6429,9 +6121,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (kind != null) 'kind': kind,
-        if (logType != null) 'logType': logType,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (kind != null) 'kind': kind!,
+        if (logType != null) 'logType': logType!,
       };
 }
 
@@ -6439,38 +6131,38 @@
 class User {
   /// This field is deprecated and will be removed from a future version of the
   /// API.
-  core.String etag;
+  core.String? etag;
 
   /// The host name from which the user can connect.
   ///
   /// For *insert* operations, host defaults to an empty string. For *update*
   /// operations, host is specified as part of the request URL. The host name
   /// cannot be updated after insertion.
-  core.String host;
+  core.String? host;
 
   /// The name of the Cloud SQL instance.
   ///
   /// This does not include the project ID. Can be omitted for *update* since it
   /// is already specified on the URL.
-  core.String instance;
+  core.String? instance;
 
   /// This is always *sql#user*.
-  core.String kind;
+  core.String? kind;
 
   /// The name of the user in the Cloud SQL instance.
   ///
   /// Can be omitted for *update* since it is already specified in the URL.
-  core.String name;
+  core.String? name;
 
   /// The password for the user.
-  core.String password;
+  core.String? password;
 
   /// The project ID of the project containing the Cloud SQL database.
   ///
   /// The Google apps domain is prefixed if applicable. Can be omitted for
   /// *update* since it is already specified on the URL.
-  core.String project;
-  SqlServerUserDetails sqlserverUserDetails;
+  core.String? project;
+  SqlServerUserDetails? sqlserverUserDetails;
 
   /// The user type.
   ///
@@ -6480,7 +6172,7 @@
   /// - "BUILT_IN" : The database's built-in user type.
   /// - "CLOUD_IAM_USER" : Cloud IAM user.
   /// - "CLOUD_IAM_SERVICE_ACCOUNT" : Cloud IAM service account.
-  core.String type;
+  core.String? type;
 
   User();
 
@@ -6515,33 +6207,33 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (etag != null) 'etag': etag,
-        if (host != null) 'host': host,
-        if (instance != null) 'instance': instance,
-        if (kind != null) 'kind': kind,
-        if (name != null) 'name': name,
-        if (password != null) 'password': password,
-        if (project != null) 'project': project,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (etag != null) 'etag': etag!,
+        if (host != null) 'host': host!,
+        if (instance != null) 'instance': instance!,
+        if (kind != null) 'kind': kind!,
+        if (name != null) 'name': name!,
+        if (password != null) 'password': password!,
+        if (project != null) 'project': project!,
         if (sqlserverUserDetails != null)
-          'sqlserverUserDetails': sqlserverUserDetails.toJson(),
-        if (type != null) 'type': type,
+          'sqlserverUserDetails': sqlserverUserDetails!.toJson(),
+        if (type != null) 'type': type!,
       };
 }
 
 /// User list response.
 class UsersListResponse {
   /// List of user resources in the instance.
-  core.List<User> items;
+  core.List<User>? items;
 
   /// This is always *sql#usersList*.
-  core.String kind;
+  core.String? kind;
 
   /// An identifier that uniquely identifies the operation.
   ///
   /// You can use this identifier to retrieve the Operations resource that has
   /// information about the operation.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   UsersListResponse();
 
@@ -6560,10 +6252,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (items != null)
-          'items': items.map((value) => value.toJson()).toList(),
-        if (kind != null) 'kind': kind,
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'items': items!.map((value) => value.toJson()).toList(),
+        if (kind != null) 'kind': kind!,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
diff --git a/generated/googleapis_beta/lib/toolresults/v1beta3.dart b/generated/googleapis_beta/lib/toolresults/v1beta3.dart
index 96c6ab0..cfe44bd 100644
--- a/generated/googleapis_beta/lib/toolresults/v1beta3.dart
+++ b/generated/googleapis_beta/lib/toolresults/v1beta3.dart
@@ -93,11 +93,8 @@
   /// this method will complete with the same error.
   async.Future<ProjectSettings> getSettings(
     core.String projectId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -152,11 +149,8 @@
   /// this method will complete with the same error.
   async.Future<ProjectSettings> initializeSettings(
     core.String projectId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -212,14 +206,10 @@
   async.Future<History> create(
     History request,
     core.String projectId, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -263,14 +253,8 @@
   async.Future<History> get(
     core.String projectId,
     core.String historyId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -323,14 +307,11 @@
   /// this method will complete with the same error.
   async.Future<ListHistoriesResponse> list(
     core.String projectId, {
-    core.String filterByName,
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.String? filterByName,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filterByName != null) 'filterByName': [filterByName],
       if (pageSize != null) 'pageSize': ['${pageSize}'],
@@ -397,17 +378,10 @@
     Execution request,
     core.String projectId,
     core.String historyId, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -456,17 +430,8 @@
     core.String projectId,
     core.String historyId,
     core.String executionId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -521,16 +486,10 @@
   async.Future<ListExecutionsResponse> list(
     core.String projectId,
     core.String historyId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -588,20 +547,10 @@
     core.String projectId,
     core.String historyId,
     core.String executionId, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -657,20 +606,8 @@
     core.String historyId,
     core.String executionId,
     core.String clusterId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (clusterId == null) {
-      throw core.ArgumentError('Parameter clusterId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -724,17 +661,8 @@
     core.String projectId,
     core.String historyId,
     core.String executionId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -794,20 +722,8 @@
     core.String historyId,
     core.String executionId,
     core.String environmentId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (environmentId == null) {
-      throw core.ArgumentError('Parameter environmentId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -865,19 +781,10 @@
     core.String projectId,
     core.String historyId,
     core.String executionId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -953,12 +860,9 @@
   /// this method will complete with the same error.
   async.Future<ListStepAccessibilityClustersResponse> accessibilityClusters(
     core.String name, {
-    core.String locale,
-    core.String $fields,
+    core.String? locale,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (locale != null) 'locale': [locale],
       if ($fields != null) 'fields': [$fields],
@@ -1013,20 +917,10 @@
     core.String projectId,
     core.String historyId,
     core.String executionId, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -1080,20 +974,8 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1145,20 +1027,8 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1221,19 +1091,10 @@
     core.String projectId,
     core.String historyId,
     core.String executionId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1297,23 +1158,10 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.String requestId,
-    core.String $fields,
+    core.String? requestId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (requestId != null) 'requestId': [requestId],
       if ($fields != null) 'fields': [$fields],
@@ -1374,22 +1222,9 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1455,22 +1290,9 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1541,22 +1363,9 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1614,23 +1423,8 @@
     core.String executionId,
     core.String stepId,
     core.String sampleSeriesId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
-    if (sampleSeriesId == null) {
-      throw core.ArgumentError('Parameter sampleSeriesId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1691,21 +1485,9 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.List<core.String> filter,
-    core.String $fields,
+    core.List<core.String>? filter,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (filter != null) 'filter': filter,
       if ($fields != null) 'fields': [$fields],
@@ -1780,25 +1562,9 @@
     core.String executionId,
     core.String stepId,
     core.String sampleSeriesId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
-    if (sampleSeriesId == null) {
-      throw core.ArgumentError('Parameter sampleSeriesId is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -1870,25 +1636,10 @@
     core.String executionId,
     core.String stepId,
     core.String sampleSeriesId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
-    if (sampleSeriesId == null) {
-      throw core.ArgumentError('Parameter sampleSeriesId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -1959,23 +1710,8 @@
     core.String executionId,
     core.String stepId,
     core.String testCaseId, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
-    if (testCaseId == null) {
-      throw core.ArgumentError('Parameter testCaseId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -2039,22 +1775,10 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2127,22 +1851,10 @@
     core.String historyId,
     core.String executionId,
     core.String stepId, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (projectId == null) {
-      throw core.ArgumentError('Parameter projectId is required.');
-    }
-    if (historyId == null) {
-      throw core.ArgumentError('Parameter historyId is required.');
-    }
-    if (executionId == null) {
-      throw core.ArgumentError('Parameter executionId is required.');
-    }
-    if (stepId == null) {
-      throw core.ArgumentError('Parameter stepId is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -2174,7 +1886,7 @@
   /// The stack trace of the ANR crash.
   ///
   /// Optional.
-  StackTrace stackTrace;
+  StackTrace? stackTrace;
 
   ANR();
 
@@ -2185,8 +1897,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stackTrace != null) 'stackTrace': stackTrace.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stackTrace != null) 'stackTrace': stackTrace!.toJson(),
       };
 }
 
@@ -2195,22 +1907,22 @@
   /// The name of the app.
   ///
   /// Optional
-  core.String name;
+  core.String? name;
 
   /// The package name of the app.
   ///
   /// Required.
-  core.String packageName;
+  core.String? packageName;
 
   /// The internal version code of the app.
   ///
   /// Optional.
-  core.String versionCode;
+  core.String? versionCode;
 
   /// The version name of the app.
   ///
   /// Optional.
-  core.String versionName;
+  core.String? versionName;
 
   AndroidAppInfo();
 
@@ -2229,11 +1941,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
-        if (packageName != null) 'packageName': packageName,
-        if (versionCode != null) 'versionCode': versionCode,
-        if (versionName != null) 'versionName': versionName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
+        if (packageName != null) 'packageName': packageName!,
+        if (versionCode != null) 'versionCode': versionCode!,
+        if (versionName != null) 'versionName': versionName!,
       };
 }
 
@@ -2245,22 +1957,22 @@
   /// The java package for the test to be executed.
   ///
   /// Required
-  core.String testPackageId;
+  core.String? testPackageId;
 
   /// The InstrumentationTestRunner class.
   ///
   /// Required
-  core.String testRunnerClass;
+  core.String? testRunnerClass;
 
   /// Each target must be fully qualified with the package name or class name,
   /// in one of these formats: - "package package_name" - "class
   /// package_name.class_name" - "class package_name.class_name#method_name" If
   /// empty, all targets in the module will be run.
-  core.List<core.String> testTargets;
+  core.List<core.String>? testTargets;
 
   /// The flag indicates whether Android Test Orchestrator will be used to run
   /// test or not.
-  core.bool useOrchestrator;
+  core.bool? useOrchestrator;
 
   AndroidInstrumentationTest();
 
@@ -2281,11 +1993,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (testPackageId != null) 'testPackageId': testPackageId,
-        if (testRunnerClass != null) 'testRunnerClass': testRunnerClass,
-        if (testTargets != null) 'testTargets': testTargets,
-        if (useOrchestrator != null) 'useOrchestrator': useOrchestrator,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (testPackageId != null) 'testPackageId': testPackageId!,
+        if (testRunnerClass != null) 'testRunnerClass': testRunnerClass!,
+        if (testTargets != null) 'testTargets': testTargets!,
+        if (useOrchestrator != null) 'useOrchestrator': useOrchestrator!,
       };
 }
 
@@ -2295,27 +2007,27 @@
   /// The initial activity that should be used to start the app.
   ///
   /// Optional
-  core.String appInitialActivity;
+  core.String? appInitialActivity;
 
   /// The java package for the bootstrap.
   ///
   /// Optional
-  core.String bootstrapPackageId;
+  core.String? bootstrapPackageId;
 
   /// The runner class for the bootstrap.
   ///
   /// Optional
-  core.String bootstrapRunnerClass;
+  core.String? bootstrapRunnerClass;
 
   /// The max depth of the traversal stack Robo can explore.
   ///
   /// Optional
-  core.int maxDepth;
+  core.int? maxDepth;
 
   /// The max number of steps/actions Robo can execute.
   ///
   /// Default is no limit (0). Optional
-  core.int maxSteps;
+  core.int? maxSteps;
 
   AndroidRoboTest();
 
@@ -2337,34 +2049,34 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (appInitialActivity != null)
-          'appInitialActivity': appInitialActivity,
+          'appInitialActivity': appInitialActivity!,
         if (bootstrapPackageId != null)
-          'bootstrapPackageId': bootstrapPackageId,
+          'bootstrapPackageId': bootstrapPackageId!,
         if (bootstrapRunnerClass != null)
-          'bootstrapRunnerClass': bootstrapRunnerClass,
-        if (maxDepth != null) 'maxDepth': maxDepth,
-        if (maxSteps != null) 'maxSteps': maxSteps,
+          'bootstrapRunnerClass': bootstrapRunnerClass!,
+        if (maxDepth != null) 'maxDepth': maxDepth!,
+        if (maxSteps != null) 'maxSteps': maxSteps!,
       };
 }
 
 /// An Android mobile test specification.
 class AndroidTest {
   /// Information about the application under test.
-  AndroidAppInfo androidAppInfo;
+  AndroidAppInfo? androidAppInfo;
 
   /// An Android instrumentation test.
-  AndroidInstrumentationTest androidInstrumentationTest;
+  AndroidInstrumentationTest? androidInstrumentationTest;
 
   /// An Android robo test.
-  AndroidRoboTest androidRoboTest;
+  AndroidRoboTest? androidRoboTest;
 
   /// An Android test loop.
-  AndroidTestLoop androidTestLoop;
+  AndroidTestLoop? androidTestLoop;
 
   /// Max time a test is allowed to run before it is automatically cancelled.
-  Duration testTimeout;
+  Duration? testTimeout;
 
   AndroidTest();
 
@@ -2392,15 +2104,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (androidAppInfo != null) 'androidAppInfo': androidAppInfo.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (androidAppInfo != null) 'androidAppInfo': androidAppInfo!.toJson(),
         if (androidInstrumentationTest != null)
-          'androidInstrumentationTest': androidInstrumentationTest.toJson(),
+          'androidInstrumentationTest': androidInstrumentationTest!.toJson(),
         if (androidRoboTest != null)
-          'androidRoboTest': androidRoboTest.toJson(),
+          'androidRoboTest': androidRoboTest!.toJson(),
         if (androidTestLoop != null)
-          'androidTestLoop': androidTestLoop.toJson(),
-        if (testTimeout != null) 'testTimeout': testTimeout.toJson(),
+          'androidTestLoop': androidTestLoop!.toJson(),
+        if (testTimeout != null) 'testTimeout': testTimeout!.toJson(),
       };
 }
 
@@ -2413,7 +2125,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// `Any` contains an arbitrary serialized protocol buffer message along with a
@@ -2464,11 +2176,11 @@
   /// protobuf release, and it is not used for type URLs beginning with
   /// type.googleapis.com. Schemes other than `http`, `https` (or the empty
   /// scheme) might be used with implementation specific semantics.
-  core.String typeUrl;
+  core.String? typeUrl;
 
   /// Must be a valid serialized protocol buffer of the above specified type.
-  core.String value;
-  core.List<core.int> get valueAsBytes => convert.base64.decode(value);
+  core.String? value;
+  core.List<core.int> get valueAsBytes => convert.base64.decode(value!);
 
   set valueAsBytes(core.List<core.int> _bytes) {
     value =
@@ -2486,9 +2198,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (typeUrl != null) 'typeUrl': typeUrl,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (typeUrl != null) 'typeUrl': typeUrl!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -2501,14 +2213,14 @@
   /// https://developer.android.com/topic/performance/launch-time.html#time-full
   ///
   /// Optional.
-  Duration fullyDrawnTime;
+  Duration? fullyDrawnTime;
 
   /// The time from app start to the first displayed activity being drawn, as
   /// reported in Logcat.
   ///
   /// See
   /// https://developer.android.com/topic/performance/launch-time.html#time-initial
-  Duration initialDisplayTime;
+  Duration? initialDisplayTime;
 
   AppStartTime();
 
@@ -2523,10 +2235,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fullyDrawnTime != null) 'fullyDrawnTime': fullyDrawnTime.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fullyDrawnTime != null) 'fullyDrawnTime': fullyDrawnTime!.toJson(),
         if (initialDisplayTime != null)
-          'initialDisplayTime': initialDisplayTime.toJson(),
+          'initialDisplayTime': initialDisplayTime!.toJson(),
       };
 }
 
@@ -2538,7 +2250,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Encapsulates the metadata for basic sample series represented by a line
@@ -2551,7 +2263,7 @@
   /// - "cpu"
   /// - "network"
   /// - "graphics"
-  core.String perfMetricType;
+  core.String? perfMetricType;
 
   ///
   /// Possible string values are:
@@ -2561,7 +2273,7 @@
   /// - "bytesPerSecond"
   /// - "framesPerSecond"
   /// - "byte"
-  core.String perfUnit;
+  core.String? perfUnit;
 
   ///
   /// Possible string values are:
@@ -2578,7 +2290,7 @@
   /// - "networkSent"
   /// - "networkReceived"
   /// - "graphicsFrameRate" : Graphics sample series
-  core.String sampleSeriesLabel;
+  core.String? sampleSeriesLabel;
 
   BasicPerfSampleSeries();
 
@@ -2594,10 +2306,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (perfMetricType != null) 'perfMetricType': perfMetricType,
-        if (perfUnit != null) 'perfUnit': perfUnit,
-        if (sampleSeriesLabel != null) 'sampleSeriesLabel': sampleSeriesLabel,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (perfMetricType != null) 'perfMetricType': perfMetricType!,
+        if (perfUnit != null) 'perfUnit': perfUnit!,
+        if (sampleSeriesLabel != null) 'sampleSeriesLabel': sampleSeriesLabel!,
       };
 }
 
@@ -2605,7 +2317,7 @@
 /// larger sample size will cause an INVALID_ARGUMENT error
 class BatchCreatePerfSamplesRequest {
   /// The set of PerfSamples to create should not include existing timestamps
-  core.List<PerfSample> perfSamples;
+  core.List<PerfSample>? perfSamples;
 
   BatchCreatePerfSamplesRequest();
 
@@ -2618,14 +2330,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (perfSamples != null)
-          'perfSamples': perfSamples.map((value) => value.toJson()).toList(),
+          'perfSamples': perfSamples!.map((value) => value.toJson()).toList(),
       };
 }
 
 class BatchCreatePerfSamplesResponse {
-  core.List<PerfSample> perfSamples;
+  core.List<PerfSample>? perfSamples;
 
   BatchCreatePerfSamplesResponse();
 
@@ -2638,9 +2350,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (perfSamples != null)
-          'perfSamples': perfSamples.map((value) => value.toJson()).toList(),
+          'perfSamples': perfSamples!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2648,7 +2360,7 @@
 /// indicate a problem with the app.
 class BlankScreen {
   /// The screen id of the element
-  core.String screenId;
+  core.String? screenId;
 
   BlankScreen();
 
@@ -2658,20 +2370,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (screenId != null) 'screenId': screenId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (screenId != null) 'screenId': screenId!,
       };
 }
 
 class CPUInfo {
   /// description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
-  core.String cpuProcessor;
+  core.String? cpuProcessor;
 
   /// the CPU clock speed in GHz
-  core.double cpuSpeedInGhz;
+  core.double? cpuSpeedInGhz;
 
   /// the number of CPU cores
-  core.int numberOfCores;
+  core.int? numberOfCores;
 
   CPUInfo();
 
@@ -2687,17 +2399,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpuProcessor != null) 'cpuProcessor': cpuProcessor,
-        if (cpuSpeedInGhz != null) 'cpuSpeedInGhz': cpuSpeedInGhz,
-        if (numberOfCores != null) 'numberOfCores': numberOfCores,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpuProcessor != null) 'cpuProcessor': cpuProcessor!,
+        if (cpuSpeedInGhz != null) 'cpuSpeedInGhz': cpuSpeedInGhz!,
+        if (numberOfCores != null) 'numberOfCores': numberOfCores!,
       };
 }
 
 /// Crash dialog was detected during the test execution
 class CrashDialogError {
   /// The name of the package that caused the dialog.
-  core.String crashPackage;
+  core.String? crashPackage;
 
   CrashDialogError();
 
@@ -2707,8 +2419,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (crashPackage != null) 'crashPackage': crashPackage,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (crashPackage != null) 'crashPackage': crashPackage!,
       };
 }
 
@@ -2720,7 +2432,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A Duration represents a signed, fixed-length span of time represented as a
@@ -2737,14 +2449,14 @@
   /// and a positive or negative `nanos` field. For durations of one second or
   /// more, a non-zero value for the `nanos` field must be of the same sign as
   /// the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
-  core.int nanos;
+  core.int? nanos;
 
   /// Signed seconds of the span of time.
   ///
   /// Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these
   /// bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25
   /// days/year * 10000 years
-  core.String seconds;
+  core.String? seconds;
 
   Duration();
 
@@ -2757,19 +2469,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nanos != null) 'nanos': nanos,
-        if (seconds != null) 'seconds': seconds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nanos != null) 'nanos': nanos!,
+        if (seconds != null) 'seconds': seconds!,
       };
 }
 
 /// Additional details about encountered login screens.
 class EncounteredLoginScreen {
   /// Number of encountered distinct login screens.
-  core.int distinctScreens;
+  core.int? distinctScreens;
 
   /// Subset of login screens.
-  core.List<core.String> screenIds;
+  core.List<core.String>? screenIds;
 
   EncounteredLoginScreen();
 
@@ -2784,9 +2496,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (distinctScreens != null) 'distinctScreens': distinctScreens,
-        if (screenIds != null) 'screenIds': screenIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (distinctScreens != null) 'distinctScreens': distinctScreens!,
+        if (screenIds != null) 'screenIds': screenIds!,
       };
 }
 
@@ -2794,10 +2506,10 @@
 /// Android UI widgets.
 class EncounteredNonAndroidUiWidgetScreen {
   /// Number of encountered distinct screens with non Android UI widgets.
-  core.int distinctScreens;
+  core.int? distinctScreens;
 
   /// Subset of screens which contain non Android UI widgets.
-  core.List<core.String> screenIds;
+  core.List<core.String>? screenIds;
 
   EncounteredNonAndroidUiWidgetScreen();
 
@@ -2812,9 +2524,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (distinctScreens != null) 'distinctScreens': distinctScreens,
-        if (screenIds != null) 'screenIds': screenIds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (distinctScreens != null) 'distinctScreens': distinctScreens!,
+        if (screenIds != null) 'screenIds': screenIds!,
       };
 }
 
@@ -2831,50 +2543,50 @@
   /// This value will be set automatically when state transitions to COMPLETE.
   ///
   /// Output only.
-  Timestamp completionTime;
+  Timestamp? completionTime;
 
   /// The time when the Environment was created.
   ///
   /// Output only.
-  Timestamp creationTime;
+  Timestamp? creationTime;
 
   /// Dimension values describing the environment.
   ///
   /// Dimension values always consist of "Model", "Version", "Locale", and
   /// "Orientation". - In response: always set - In create request: always set -
   /// In update request: never set
-  core.List<EnvironmentDimensionValueEntry> dimensionValue;
+  core.List<EnvironmentDimensionValueEntry>? dimensionValue;
 
   /// A short human-readable name to display in the UI.
   ///
   /// Maximum of 100 characters. For example: Nexus 5, API 27.
-  core.String displayName;
+  core.String? displayName;
 
   /// An Environment id.
   ///
   /// Output only.
-  core.String environmentId;
+  core.String? environmentId;
 
   /// Merged result of the environment.
-  MergedResult environmentResult;
+  MergedResult? environmentResult;
 
   /// An Execution id.
   ///
   /// Output only.
-  core.String executionId;
+  core.String? executionId;
 
   /// A History id.
   ///
   /// Output only.
-  core.String historyId;
+  core.String? historyId;
 
   /// A Project id.
   ///
   /// Output only.
-  core.String projectId;
+  core.String? projectId;
 
   /// The location where output files are stored in the user bucket.
-  ResultsStorage resultsStorage;
+  ResultsStorage? resultsStorage;
 
   /// Summaries of shards.
   ///
@@ -2882,7 +2594,7 @@
   /// TestExecutionService.
   ///
   /// Output only.
-  core.List<ShardSummary> shardSummaries;
+  core.List<ShardSummary>? shardSummaries;
 
   Environment();
 
@@ -2933,29 +2645,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (completionTime != null) 'completionTime': completionTime.toJson(),
-        if (creationTime != null) 'creationTime': creationTime.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (completionTime != null) 'completionTime': completionTime!.toJson(),
+        if (creationTime != null) 'creationTime': creationTime!.toJson(),
         if (dimensionValue != null)
           'dimensionValue':
-              dimensionValue.map((value) => value.toJson()).toList(),
-        if (displayName != null) 'displayName': displayName,
-        if (environmentId != null) 'environmentId': environmentId,
+              dimensionValue!.map((value) => value.toJson()).toList(),
+        if (displayName != null) 'displayName': displayName!,
+        if (environmentId != null) 'environmentId': environmentId!,
         if (environmentResult != null)
-          'environmentResult': environmentResult.toJson(),
-        if (executionId != null) 'executionId': executionId,
-        if (historyId != null) 'historyId': historyId,
-        if (projectId != null) 'projectId': projectId,
-        if (resultsStorage != null) 'resultsStorage': resultsStorage.toJson(),
+          'environmentResult': environmentResult!.toJson(),
+        if (executionId != null) 'executionId': executionId!,
+        if (historyId != null) 'historyId': historyId!,
+        if (projectId != null) 'projectId': projectId!,
+        if (resultsStorage != null) 'resultsStorage': resultsStorage!.toJson(),
         if (shardSummaries != null)
           'shardSummaries':
-              shardSummaries.map((value) => value.toJson()).toList(),
+              shardSummaries!.map((value) => value.toJson()).toList(),
       };
 }
 
 class EnvironmentDimensionValueEntry {
-  core.String key;
-  core.String value;
+  core.String? key;
+  core.String? value;
 
   EnvironmentDimensionValueEntry();
 
@@ -2968,9 +2680,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -2987,13 +2699,13 @@
   /// This value will be set automatically when state transitions to COMPLETE. -
   /// In response: set if the execution state is COMPLETE. - In create/update
   /// request: never set
-  Timestamp completionTime;
+  Timestamp? completionTime;
 
   /// The time when the Execution was created.
   ///
   /// This value will be set automatically when CreateExecution is called. - In
   /// response: always set - In create/update request: never set
-  Timestamp creationTime;
+  Timestamp? creationTime;
 
   /// The dimensions along which different steps in this execution may vary.
   ///
@@ -3003,24 +2715,24 @@
   /// dimension_definition. Returns INVALID_ARGUMENT if the size of the list is
   /// over 100. - In response: present if set by create - In create request:
   /// optional - In update request: never set
-  core.List<MatrixDimensionDefinition> dimensionDefinitions;
+  core.List<MatrixDimensionDefinition>? dimensionDefinitions;
 
   /// A unique identifier within a History for this Execution.
   ///
   /// Returns INVALID_ARGUMENT if this field is set or overwritten by the
   /// caller. - In response always set - In create/update request: never set
-  core.String executionId;
+  core.String? executionId;
 
   /// Classify the result, for example into SUCCESS or FAILURE - In response:
   /// present if set by create/update request - In create/update request:
   /// optional
-  Outcome outcome;
+  Outcome? outcome;
 
   /// Lightweight information about execution request.
   ///
   /// - In response: present if set by create - In create: optional - In update:
   /// optional
-  Specification specification;
+  Specification? specification;
 
   /// The initial state is IN_PROGRESS.
   ///
@@ -3041,13 +2753,13 @@
   /// - "inProgress" : The Execution/Step is in progress.
   /// - "complete" : The finalized, immutable state. Steps/Executions in this
   /// state cannot be modified.
-  core.String state;
+  core.String? state;
 
   /// TestExecution Matrix ID that the TestExecutionService uses.
   ///
   /// - In response: present if set by create - In create: optional - In update:
   /// never set
-  core.String testExecutionMatrixId;
+  core.String? testExecutionMatrixId;
 
   Execution();
 
@@ -3086,18 +2798,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (completionTime != null) 'completionTime': completionTime.toJson(),
-        if (creationTime != null) 'creationTime': creationTime.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (completionTime != null) 'completionTime': completionTime!.toJson(),
+        if (creationTime != null) 'creationTime': creationTime!.toJson(),
         if (dimensionDefinitions != null)
           'dimensionDefinitions':
-              dimensionDefinitions.map((value) => value.toJson()).toList(),
-        if (executionId != null) 'executionId': executionId,
-        if (outcome != null) 'outcome': outcome.toJson(),
-        if (specification != null) 'specification': specification.toJson(),
-        if (state != null) 'state': state,
+              dimensionDefinitions!.map((value) => value.toJson()).toList(),
+        if (executionId != null) 'executionId': executionId!,
+        if (outcome != null) 'outcome': outcome!.toJson(),
+        if (specification != null) 'specification': specification!.toJson(),
+        if (state != null) 'state': state!,
         if (testExecutionMatrixId != null)
-          'testExecutionMatrixId': testExecutionMatrixId,
+          'testExecutionMatrixId': testExecutionMatrixId!,
       };
 }
 
@@ -3109,36 +2821,36 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Details for an outcome with a FAILURE outcome summary.
 class FailureDetail {
   /// If the failure was severe because the system (app) under test crashed.
-  core.bool crashed;
+  core.bool? crashed;
 
   /// If the device ran out of memory during a test, causing the test to crash.
-  core.bool deviceOutOfMemory;
+  core.bool? deviceOutOfMemory;
 
   /// If the Roboscript failed to complete successfully, e.g., because a
   /// Roboscript action or assertion failed or a Roboscript action could not be
   /// matched during the entire crawl.
-  core.bool failedRoboscript;
+  core.bool? failedRoboscript;
 
   /// If an app is not installed and thus no test can be run with the app.
   ///
   /// This might be caused by trying to run a test on an unsupported platform.
-  core.bool notInstalled;
+  core.bool? notInstalled;
 
   /// If a native process (including any other than the app) crashed.
-  core.bool otherNativeCrash;
+  core.bool? otherNativeCrash;
 
   /// If the test overran some time limit, and that is why it failed.
-  core.bool timedOut;
+  core.bool? timedOut;
 
   /// If the robo was unable to crawl the app; perhaps because the app did not
   /// start.
-  core.bool unableToCrawl;
+  core.bool? unableToCrawl;
 
   FailureDetail();
 
@@ -3166,14 +2878,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (crashed != null) 'crashed': crashed,
-        if (deviceOutOfMemory != null) 'deviceOutOfMemory': deviceOutOfMemory,
-        if (failedRoboscript != null) 'failedRoboscript': failedRoboscript,
-        if (notInstalled != null) 'notInstalled': notInstalled,
-        if (otherNativeCrash != null) 'otherNativeCrash': otherNativeCrash,
-        if (timedOut != null) 'timedOut': timedOut,
-        if (unableToCrawl != null) 'unableToCrawl': unableToCrawl,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (crashed != null) 'crashed': crashed!,
+        if (deviceOutOfMemory != null) 'deviceOutOfMemory': deviceOutOfMemory!,
+        if (failedRoboscript != null) 'failedRoboscript': failedRoboscript!,
+        if (notInstalled != null) 'notInstalled': notInstalled!,
+        if (otherNativeCrash != null) 'otherNativeCrash': otherNativeCrash!,
+        if (timedOut != null) 'timedOut': timedOut!,
+        if (unableToCrawl != null) 'unableToCrawl': unableToCrawl!,
       };
 }
 
@@ -3182,7 +2894,7 @@
   /// The stack trace of the fatal exception.
   ///
   /// Optional.
-  StackTrace stackTrace;
+  StackTrace? stackTrace;
 
   FatalException();
 
@@ -3193,8 +2905,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stackTrace != null) 'stackTrace': stackTrace.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stackTrace != null) 'stackTrace': stackTrace!.toJson(),
       };
 }
 
@@ -3207,7 +2919,7 @@
   /// gs://mybucket/path/to/test.xml#1360383693690000 An INVALID_ARGUMENT error
   /// will be returned if the URI format is not supported. - In response: always
   /// set - In create/update request: always set
-  core.String fileUri;
+  core.String? fileUri;
 
   FileReference();
 
@@ -3217,8 +2929,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fileUri != null) 'fileUri': fileUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fileUri != null) 'fileUri': fileUri!,
       };
 }
 
@@ -3233,42 +2945,42 @@
   ///
   /// There should be 154 buckets ranging from \[5ms, 6ms) to \[4950ms,
   /// infinity)
-  core.List<GraphicsStatsBucket> buckets;
+  core.List<GraphicsStatsBucket>? buckets;
 
   /// Total "high input latency" events.
-  core.String highInputLatencyCount;
+  core.String? highInputLatencyCount;
 
   /// Total frames with slow render time.
   ///
   /// Should be <= total_frames.
-  core.String jankyFrames;
+  core.String? jankyFrames;
 
   /// Total "missed vsync" events.
-  core.String missedVsyncCount;
+  core.String? missedVsyncCount;
 
   /// 50th percentile frame render time in milliseconds.
-  core.String p50Millis;
+  core.String? p50Millis;
 
   /// 90th percentile frame render time in milliseconds.
-  core.String p90Millis;
+  core.String? p90Millis;
 
   /// 95th percentile frame render time in milliseconds.
-  core.String p95Millis;
+  core.String? p95Millis;
 
   /// 99th percentile frame render time in milliseconds.
-  core.String p99Millis;
+  core.String? p99Millis;
 
   /// Total "slow bitmap upload" events.
-  core.String slowBitmapUploadCount;
+  core.String? slowBitmapUploadCount;
 
   /// Total "slow draw" events.
-  core.String slowDrawCount;
+  core.String? slowDrawCount;
 
   /// Total "slow UI thread" events.
-  core.String slowUiThreadCount;
+  core.String? slowUiThreadCount;
 
   /// Total frames rendered by package.
-  core.String totalFrames;
+  core.String? totalFrames;
 
   GraphicsStats();
 
@@ -3314,31 +3026,31 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (buckets != null)
-          'buckets': buckets.map((value) => value.toJson()).toList(),
+          'buckets': buckets!.map((value) => value.toJson()).toList(),
         if (highInputLatencyCount != null)
-          'highInputLatencyCount': highInputLatencyCount,
-        if (jankyFrames != null) 'jankyFrames': jankyFrames,
-        if (missedVsyncCount != null) 'missedVsyncCount': missedVsyncCount,
-        if (p50Millis != null) 'p50Millis': p50Millis,
-        if (p90Millis != null) 'p90Millis': p90Millis,
-        if (p95Millis != null) 'p95Millis': p95Millis,
-        if (p99Millis != null) 'p99Millis': p99Millis,
+          'highInputLatencyCount': highInputLatencyCount!,
+        if (jankyFrames != null) 'jankyFrames': jankyFrames!,
+        if (missedVsyncCount != null) 'missedVsyncCount': missedVsyncCount!,
+        if (p50Millis != null) 'p50Millis': p50Millis!,
+        if (p90Millis != null) 'p90Millis': p90Millis!,
+        if (p95Millis != null) 'p95Millis': p95Millis!,
+        if (p99Millis != null) 'p99Millis': p99Millis!,
         if (slowBitmapUploadCount != null)
-          'slowBitmapUploadCount': slowBitmapUploadCount,
-        if (slowDrawCount != null) 'slowDrawCount': slowDrawCount,
-        if (slowUiThreadCount != null) 'slowUiThreadCount': slowUiThreadCount,
-        if (totalFrames != null) 'totalFrames': totalFrames,
+          'slowBitmapUploadCount': slowBitmapUploadCount!,
+        if (slowDrawCount != null) 'slowDrawCount': slowDrawCount!,
+        if (slowUiThreadCount != null) 'slowUiThreadCount': slowUiThreadCount!,
+        if (totalFrames != null) 'totalFrames': totalFrames!,
       };
 }
 
 class GraphicsStatsBucket {
   /// Number of frames in the bucket.
-  core.String frameCount;
+  core.String? frameCount;
 
   /// Lower bound of render time in milliseconds.
-  core.String renderMillis;
+  core.String? renderMillis;
 
   GraphicsStatsBucket();
 
@@ -3351,9 +3063,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (frameCount != null) 'frameCount': frameCount,
-        if (renderMillis != null) 'renderMillis': renderMillis,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (frameCount != null) 'frameCount': frameCount!,
+        if (renderMillis != null) 'renderMillis': renderMillis!,
       };
 }
 
@@ -3369,19 +3081,19 @@
   ///
   /// Maximum of 100 characters. - In response: present if set during create. -
   /// In create request: optional
-  core.String displayName;
+  core.String? displayName;
 
   /// A unique identifier within a project for this History.
   ///
   /// Returns INVALID_ARGUMENT if this field is set or overwritten by the
   /// caller. - In response always set - In create request: never set
-  core.String historyId;
+  core.String? historyId;
 
   /// A name to uniquely identify a history within a project.
   ///
   /// Maximum of 200 characters. - In response always set - In create request:
   /// always set
-  core.String name;
+  core.String? name;
 
   /// The platform of the test history.
   ///
@@ -3391,7 +3103,7 @@
   /// - "unknownPlatform"
   /// - "android"
   /// - "ios"
-  core.String testPlatform;
+  core.String? testPlatform;
 
   History();
 
@@ -3410,32 +3122,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (displayName != null) 'displayName': displayName,
-        if (historyId != null) 'historyId': historyId,
-        if (name != null) 'name': name,
-        if (testPlatform != null) 'testPlatform': testPlatform,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (displayName != null) 'displayName': displayName!,
+        if (historyId != null) 'historyId': historyId!,
+        if (name != null) 'name': name!,
+        if (testPlatform != null) 'testPlatform': testPlatform!,
       };
 }
 
 /// An image, with a link to the main image and a thumbnail.
 class Image {
   /// An error explaining why the thumbnail could not be rendered.
-  Status error;
+  Status? error;
 
   /// A reference to the full-size, original image.
   ///
   /// This is the same as the tool_outputs entry for the image under its Step.
   /// Always set.
-  ToolOutputReference sourceImage;
+  ToolOutputReference? sourceImage;
 
   /// The step to which the image is attached.
   ///
   /// Always set.
-  core.String stepId;
+  core.String? stepId;
 
   /// The thumbnail.
-  Thumbnail thumbnail;
+  Thumbnail? thumbnail;
 
   Image();
 
@@ -3457,11 +3169,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (error != null) 'error': error.toJson(),
-        if (sourceImage != null) 'sourceImage': sourceImage.toJson(),
-        if (stepId != null) 'stepId': stepId,
-        if (thumbnail != null) 'thumbnail': thumbnail.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (error != null) 'error': error!.toJson(),
+        if (sourceImage != null) 'sourceImage': sourceImage!.toJson(),
+        if (stepId != null) 'stepId': stepId!,
+        if (thumbnail != null) 'thumbnail': thumbnail!.toJson(),
       };
 }
 
@@ -3469,10 +3181,10 @@
 class InAppPurchasesFound {
   /// The total number of in-app purchases flows explored: how many times the
   /// robo tries to buy a SKU.
-  core.int inAppPurchasesFlowsExplored;
+  core.int? inAppPurchasesFlowsExplored;
 
   /// The total number of in-app purchases flows started.
-  core.int inAppPurchasesFlowsStarted;
+  core.int? inAppPurchasesFlowsStarted;
 
   InAppPurchasesFound();
 
@@ -3487,11 +3199,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (inAppPurchasesFlowsExplored != null)
-          'inAppPurchasesFlowsExplored': inAppPurchasesFlowsExplored,
+          'inAppPurchasesFlowsExplored': inAppPurchasesFlowsExplored!,
         if (inAppPurchasesFlowsStarted != null)
-          'inAppPurchasesFlowsStarted': inAppPurchasesFlowsStarted,
+          'inAppPurchasesFlowsStarted': inAppPurchasesFlowsStarted!,
       };
 }
 
@@ -3502,18 +3214,18 @@
   ///
   /// For example, the user pressed ctrl-c which sent a kill signal to the test
   /// runner while the test was running.
-  core.bool abortedByUser;
+  core.bool? abortedByUser;
 
   /// If results are being provided to the user in certain cases of
   /// infrastructure failures
-  core.bool hasErrorLogs;
+  core.bool? hasErrorLogs;
 
   /// If the test runner could not determine success or failure because the test
   /// depends on a component other than the system under test which failed.
   ///
   /// For example, a mobile test requires provisioning a device where the test
   /// executes, and that provisioning can fail.
-  core.bool infrastructureFailure;
+  core.bool? infrastructureFailure;
 
   InconclusiveDetail();
 
@@ -3529,11 +3241,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (abortedByUser != null) 'abortedByUser': abortedByUser,
-        if (hasErrorLogs != null) 'hasErrorLogs': hasErrorLogs,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (abortedByUser != null) 'abortedByUser': abortedByUser!,
+        if (hasErrorLogs != null) 'hasErrorLogs': hasErrorLogs!,
         if (infrastructureFailure != null)
-          'infrastructureFailure': infrastructureFailure,
+          'infrastructureFailure': infrastructureFailure!,
       };
 }
 
@@ -3544,7 +3256,7 @@
   ///
   /// Ranges from 0(inclusive) to total number of steps(exclusive). The primary
   /// step is 0.
-  core.int multistepNumber;
+  core.int? multistepNumber;
 
   ///
   /// Possible string values are:
@@ -3561,11 +3273,11 @@
   /// configurations were incompatible.
   /// - "flaky" : A group of steps that were run with the same configuration had
   /// both failure and success outcomes.
-  core.String outcomeSummary;
+  core.String? outcomeSummary;
 
   /// How long it took for this step to run.
-  Duration runDuration;
-  core.String stepId;
+  Duration? runDuration;
+  core.String? stepId;
 
   IndividualOutcome();
 
@@ -3585,11 +3297,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (multistepNumber != null) 'multistepNumber': multistepNumber,
-        if (outcomeSummary != null) 'outcomeSummary': outcomeSummary,
-        if (runDuration != null) 'runDuration': runDuration.toJson(),
-        if (stepId != null) 'stepId': stepId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (multistepNumber != null) 'multistepNumber': multistepNumber!,
+        if (outcomeSummary != null) 'outcomeSummary': outcomeSummary!,
+        if (runDuration != null) 'runDuration': runDuration!.toJson(),
+        if (stepId != null) 'stepId': stepId!,
       };
 }
 
@@ -3601,7 +3313,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Additional details for an iOS app crash.
@@ -3609,7 +3321,7 @@
   /// The stack trace, if one is available.
   ///
   /// Optional.
-  StackTrace stackTrace;
+  StackTrace? stackTrace;
 
   IosAppCrashed();
 
@@ -3620,8 +3332,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stackTrace != null) 'stackTrace': stackTrace.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stackTrace != null) 'stackTrace': stackTrace!.toJson(),
       };
 }
 
@@ -3630,7 +3342,7 @@
   /// The name of the app.
   ///
   /// Required
-  core.String name;
+  core.String? name;
 
   IosAppInfo();
 
@@ -3640,8 +3352,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (name != null) 'name': name!,
       };
 }
 
@@ -3653,25 +3365,25 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A iOS mobile test specification
 class IosTest {
   /// Information about the application under test.
-  IosAppInfo iosAppInfo;
+  IosAppInfo? iosAppInfo;
 
   /// An iOS Robo test.
-  IosRoboTest iosRoboTest;
+  IosRoboTest? iosRoboTest;
 
   /// An iOS test loop.
-  IosTestLoop iosTestLoop;
+  IosTestLoop? iosTestLoop;
 
   /// An iOS XCTest.
-  IosXcTest iosXcTest;
+  IosXcTest? iosXcTest;
 
   /// Max time a test is allowed to run before it is automatically cancelled.
-  Duration testTimeout;
+  Duration? testTimeout;
 
   IosTest();
 
@@ -3698,19 +3410,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (iosAppInfo != null) 'iosAppInfo': iosAppInfo.toJson(),
-        if (iosRoboTest != null) 'iosRoboTest': iosRoboTest.toJson(),
-        if (iosTestLoop != null) 'iosTestLoop': iosTestLoop.toJson(),
-        if (iosXcTest != null) 'iosXcTest': iosXcTest.toJson(),
-        if (testTimeout != null) 'testTimeout': testTimeout.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (iosAppInfo != null) 'iosAppInfo': iosAppInfo!.toJson(),
+        if (iosRoboTest != null) 'iosRoboTest': iosRoboTest!.toJson(),
+        if (iosTestLoop != null) 'iosTestLoop': iosTestLoop!.toJson(),
+        if (iosXcTest != null) 'iosXcTest': iosXcTest!.toJson(),
+        if (testTimeout != null) 'testTimeout': testTimeout!.toJson(),
       };
 }
 
 /// A game loop test of an iOS application.
 class IosTestLoop {
   /// Bundle ID of the app.
-  core.String bundleId;
+  core.String? bundleId;
 
   IosTestLoop();
 
@@ -3720,18 +3432,18 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bundleId != null) 'bundleId': bundleId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bundleId != null) 'bundleId': bundleId!,
       };
 }
 
 /// A test of an iOS application that uses the XCTest framework.
 class IosXcTest {
   /// Bundle ID of the app.
-  core.String bundleId;
+  core.String? bundleId;
 
   /// Xcode version that the test was run with.
-  core.String xcodeVersion;
+  core.String? xcodeVersion;
 
   IosXcTest();
 
@@ -3744,9 +3456,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bundleId != null) 'bundleId': bundleId,
-        if (xcodeVersion != null) 'xcodeVersion': xcodeVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bundleId != null) 'bundleId': bundleId!,
+        if (xcodeVersion != null) 'xcodeVersion': xcodeVersion!,
       };
 }
 
@@ -3758,7 +3470,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Response message for EnvironmentService.ListEnvironments.
@@ -3766,25 +3478,25 @@
   /// Environments.
   ///
   /// Always set.
-  core.List<Environment> environments;
+  core.List<Environment>? environments;
 
   /// A Execution id Always set.
-  core.String executionId;
+  core.String? executionId;
 
   /// A History id.
   ///
   /// Always set.
-  core.String historyId;
+  core.String? historyId;
 
   /// A continuation token to resume the query at the next item.
   ///
   /// Will only be set if there are more Environments to fetch.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A Project id.
   ///
   /// Always set.
-  core.String projectId;
+  core.String? projectId;
 
   ListEnvironmentsResponse();
 
@@ -3809,13 +3521,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (environments != null)
-          'environments': environments.map((value) => value.toJson()).toList(),
-        if (executionId != null) 'executionId': executionId,
-        if (historyId != null) 'historyId': historyId,
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
-        if (projectId != null) 'projectId': projectId,
+          'environments': environments!.map((value) => value.toJson()).toList(),
+        if (executionId != null) 'executionId': executionId!,
+        if (historyId != null) 'historyId': historyId!,
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
+        if (projectId != null) 'projectId': projectId!,
       };
 }
 
@@ -3823,12 +3535,12 @@
   /// Executions.
   ///
   /// Always set.
-  core.List<Execution> executions;
+  core.List<Execution>? executions;
 
   /// A continuation token to resume the query at the next item.
   ///
   /// Will only be set if there are more Executions to fetch.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListExecutionsResponse();
 
@@ -3844,17 +3556,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (executions != null)
-          'executions': executions.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'executions': executions!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for HistoryService.List
 class ListHistoriesResponse {
   /// Histories.
-  core.List<History> histories;
+  core.List<History>? histories;
 
   /// A continuation token to resume the query at the next item.
   ///
@@ -3863,7 +3575,7 @@
   /// if you make a list request at 1PM and use the token from this first
   /// request 10 minutes later, the token from this second response will only be
   /// valid for 50 minutes.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListHistoriesResponse();
 
@@ -3879,16 +3591,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (histories != null)
-          'histories': histories.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'histories': histories!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 class ListPerfSampleSeriesResponse {
   /// The resulting PerfSampleSeries sorted by id
-  core.List<PerfSampleSeries> perfSampleSeries;
+  core.List<PerfSampleSeries>? perfSampleSeries;
 
   ListPerfSampleSeriesResponse();
 
@@ -3901,10 +3613,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (perfSampleSeries != null)
           'perfSampleSeries':
-              perfSampleSeries.map((value) => value.toJson()).toList(),
+              perfSampleSeries!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3914,8 +3626,8 @@
   ///
   /// It indicates the last sample timestamp to be used as page_token in
   /// subsequent request
-  core.String nextPageToken;
-  core.List<PerfSample> perfSamples;
+  core.String? nextPageToken;
+  core.List<PerfSample>? perfSamples;
 
   ListPerfSamplesResponse();
 
@@ -3931,16 +3643,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (perfSamples != null)
-          'perfSamples': perfSamples.map((value) => value.toJson()).toList(),
+          'perfSamples': perfSamples!.map((value) => value.toJson()).toList(),
       };
 }
 
 class ListScreenshotClustersResponse {
   /// The set of clusters associated with an execution Always set
-  core.List<ScreenshotCluster> clusters;
+  core.List<ScreenshotCluster>? clusters;
 
   ListScreenshotClustersResponse();
 
@@ -3953,9 +3665,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (clusters != null)
-          'clusters': clusters.map((value) => value.toJson()).toList(),
+          'clusters': clusters!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -3967,13 +3679,13 @@
   /// should be adjacent. Within each category, clusters should be ordered by
   /// their SuggestionPriority (ERRORs first). The categories should be ordered
   /// by their highest priority cluster.
-  core.List<SuggestionClusterProto> clusters;
+  core.List<SuggestionClusterProto>? clusters;
 
   /// A full resource name of the step.
   ///
   /// For example, projects/my-project/histories/bh.1234567890abcdef/executions/
   /// 1234567890123456789/steps/bs.1234567890abcdef Always presents.
-  core.String name;
+  core.String? name;
 
   ListStepAccessibilityClustersResponse();
 
@@ -3990,10 +3702,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (clusters != null)
-          'clusters': clusters.map((value) => value.toJson()).toList(),
-        if (name != null) 'name': name,
+          'clusters': clusters!.map((value) => value.toJson()).toList(),
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4003,7 +3715,7 @@
   ///
   /// If set, indicates that there are more thumbnails to read, by calling list
   /// again with this value in the page_token field.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// A list of image data.
   ///
@@ -4013,7 +3725,7 @@
   /// Second, by their creation time. Images without a creation time are greater
   /// than images with one. * Third, by the order in which they were added to
   /// the step (by calls to CreateStep or UpdateStep).
-  core.List<Image> thumbnails;
+  core.List<Image>? thumbnails;
 
   ListStepThumbnailsResponse();
 
@@ -4029,10 +3741,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (thumbnails != null)
-          'thumbnails': thumbnails.map((value) => value.toJson()).toList(),
+          'thumbnails': thumbnails!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4042,10 +3754,10 @@
   ///
   /// If set, indicates that there are more steps to read, by calling list again
   /// with this value in the page_token field.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// Steps.
-  core.List<Step> steps;
+  core.List<Step>? steps;
 
   ListStepsResponse();
 
@@ -4061,19 +3773,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (steps != null)
-          'steps': steps.map((value) => value.toJson()).toList(),
+          'steps': steps!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Response message for StepService.ListTestCases.
 class ListTestCasesResponse {
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   /// List of test cases.
-  core.List<TestCase> testCases;
+  core.List<TestCase>? testCases;
 
   ListTestCasesResponse();
 
@@ -4089,10 +3801,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
         if (testCases != null)
-          'testCases': testCases.map((value) => value.toJson()).toList(),
+          'testCases': testCases!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4104,7 +3816,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// One dimension of the matrix of different runs of a step.
@@ -4115,15 +3827,15 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 class MemoryInfo {
   /// Maximum memory that can be allocated to the process in KiB
-  core.String memoryCapInKibibyte;
+  core.String? memoryCapInKibibyte;
 
   /// Total memory available on the device in KiB
-  core.String memoryTotalInKibibyte;
+  core.String? memoryTotalInKibibyte;
 
   MemoryInfo();
 
@@ -4136,11 +3848,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (memoryCapInKibibyte != null)
-          'memoryCapInKibibyte': memoryCapInKibibyte,
+          'memoryCapInKibibyte': memoryCapInKibibyte!,
         if (memoryTotalInKibibyte != null)
-          'memoryTotalInKibibyte': memoryTotalInKibibyte,
+          'memoryTotalInKibibyte': memoryTotalInKibibyte!,
       };
 }
 
@@ -4152,7 +3864,7 @@
 /// the same environment are merged into one environment result.
 class MergedResult {
   /// Outcome of the resource
-  Outcome outcome;
+  Outcome? outcome;
 
   /// State of the resource
   /// Possible string values are:
@@ -4164,7 +3876,7 @@
   /// - "inProgress" : The Execution/Step is in progress.
   /// - "complete" : The finalized, immutable state. Steps/Executions in this
   /// state cannot be modified.
-  core.String state;
+  core.String? state;
 
   /// The combined and rolled-up result of each test suite that was run as part
   /// of this environment.
@@ -4176,7 +3888,7 @@
   /// multiple times (flaky), the results are combined (e.g., if testcase1.run1
   /// fails, testcase1.run2 passes, and both testcase2.run1 and testcase2.run2
   /// fail then the overview flaky_count = 1 and failure_count = 1).
-  core.List<TestSuiteOverview> testSuiteOverviews;
+  core.List<TestSuiteOverview>? testSuiteOverviews;
 
   MergedResult();
 
@@ -4196,12 +3908,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (outcome != null) 'outcome': outcome.toJson(),
-        if (state != null) 'state': state,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (outcome != null) 'outcome': outcome!.toJson(),
+        if (state != null) 'state': state!,
         if (testSuiteOverviews != null)
           'testSuiteOverviews':
-              testSuiteOverviews.map((value) => value.toJson()).toList(),
+              testSuiteOverviews!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4211,13 +3923,13 @@
   ///
   /// Ranges from 0(inclusive) to total number of steps(exclusive). The primary
   /// step is 0.
-  core.int multistepNumber;
+  core.int? multistepNumber;
 
   /// Present if it is a primary (original) step.
-  PrimaryStep primaryStep;
+  PrimaryStep? primaryStep;
 
   /// Step Id of the primary (original) step, which might be this step.
-  core.String primaryStepId;
+  core.String? primaryStepId;
 
   MultiStep();
 
@@ -4234,10 +3946,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (multistepNumber != null) 'multistepNumber': multistepNumber,
-        if (primaryStep != null) 'primaryStep': primaryStep.toJson(),
-        if (primaryStepId != null) 'primaryStepId': primaryStepId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (multistepNumber != null) 'multistepNumber': multistepNumber!,
+        if (primaryStep != null) 'primaryStep': primaryStep!.toJson(),
+        if (primaryStepId != null) 'primaryStepId': primaryStepId!,
       };
 }
 
@@ -4246,7 +3958,7 @@
   /// The stack trace of the native crash.
   ///
   /// Optional.
-  StackTrace stackTrace;
+  StackTrace? stackTrace;
 
   NativeCrash();
 
@@ -4257,8 +3969,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (stackTrace != null) 'stackTrace': stackTrace.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (stackTrace != null) 'stackTrace': stackTrace!.toJson(),
       };
 }
 
@@ -4266,16 +3978,16 @@
 /// https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces
 class NonSdkApi {
   /// The signature of the Non-SDK API
-  core.String apiSignature;
+  core.String? apiSignature;
 
   /// Example stack traces of this API being called.
-  core.List<core.String> exampleStackTraces;
+  core.List<core.String>? exampleStackTraces;
 
   /// Optional debugging insights for non-SDK API violations.
-  core.List<NonSdkApiInsight> insights;
+  core.List<NonSdkApiInsight>? insights;
 
   /// The total number of times this API was observed to have been called.
-  core.int invocationCount;
+  core.int? invocationCount;
 
   /// Which list this API appears on
   /// Possible string values are:
@@ -4287,7 +3999,7 @@
   /// - "GREY_MAX_P"
   /// - "GREY_MAX_Q"
   /// - "GREY_MAX_R"
-  core.String list;
+  core.String? list;
 
   NonSdkApi();
 
@@ -4314,14 +4026,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiSignature != null) 'apiSignature': apiSignature,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiSignature != null) 'apiSignature': apiSignature!,
         if (exampleStackTraces != null)
-          'exampleStackTraces': exampleStackTraces,
+          'exampleStackTraces': exampleStackTraces!,
         if (insights != null)
-          'insights': insights.map((value) => value.toJson()).toList(),
-        if (invocationCount != null) 'invocationCount': invocationCount,
-        if (list != null) 'list': list,
+          'insights': insights!.map((value) => value.toJson()).toList(),
+        if (invocationCount != null) 'invocationCount': invocationCount!,
+        if (list != null) 'list': list!,
       };
 }
 
@@ -4329,21 +4041,21 @@
 class NonSdkApiInsight {
   /// Optional sample stack traces, for which this insight applies (there should
   /// be at least one).
-  core.List<core.String> exampleTraceMessages;
+  core.List<core.String>? exampleTraceMessages;
 
   /// A unique ID, to be used for determining the effectiveness of this
   /// particular insight in the context of a matcher.
   ///
   /// (required)
-  core.String matcherId;
+  core.String? matcherId;
 
   /// An insight indicating that the hidden API usage originates from a
   /// Google-provided library.
-  PendingGoogleUpdateInsight pendingGoogleUpdateInsight;
+  PendingGoogleUpdateInsight? pendingGoogleUpdateInsight;
 
   /// An insight indicating that the hidden API usage originates from the use of
   /// a library that needs to be upgraded.
-  UpgradeInsight upgradeInsight;
+  UpgradeInsight? upgradeInsight;
 
   NonSdkApiInsight();
 
@@ -4367,23 +4079,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (exampleTraceMessages != null)
-          'exampleTraceMessages': exampleTraceMessages,
-        if (matcherId != null) 'matcherId': matcherId,
+          'exampleTraceMessages': exampleTraceMessages!,
+        if (matcherId != null) 'matcherId': matcherId!,
         if (pendingGoogleUpdateInsight != null)
-          'pendingGoogleUpdateInsight': pendingGoogleUpdateInsight.toJson(),
-        if (upgradeInsight != null) 'upgradeInsight': upgradeInsight.toJson(),
+          'pendingGoogleUpdateInsight': pendingGoogleUpdateInsight!.toJson(),
+        if (upgradeInsight != null) 'upgradeInsight': upgradeInsight!.toJson(),
       };
 }
 
 /// Additional details for a non-sdk API usage violation.
 class NonSdkApiUsageViolation {
   /// Signatures of a subset of those hidden API's.
-  core.List<core.String> apiSignatures;
+  core.List<core.String>? apiSignatures;
 
   /// Total number of unique hidden API's accessed.
-  core.int uniqueApis;
+  core.int? uniqueApis;
 
   NonSdkApiUsageViolation();
 
@@ -4398,25 +4110,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiSignatures != null) 'apiSignatures': apiSignatures,
-        if (uniqueApis != null) 'uniqueApis': uniqueApis,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiSignatures != null) 'apiSignatures': apiSignatures!,
+        if (uniqueApis != null) 'uniqueApis': uniqueApis!,
       };
 }
 
 /// Contains a summary and examples of non-sdk API usage violations.
 class NonSdkApiUsageViolationReport {
   /// Examples of the detected API usages.
-  core.List<NonSdkApi> exampleApis;
+  core.List<NonSdkApi>? exampleApis;
 
   /// Minimum API level required for the application to run.
-  core.int minSdkVersion;
+  core.int? minSdkVersion;
 
   /// Specifies the API Level on which the application is designed to run.
-  core.int targetSdkVersion;
+  core.int? targetSdkVersion;
 
   /// Total number of unique Non-SDK API's accessed.
-  core.int uniqueApis;
+  core.int? uniqueApis;
 
   NonSdkApiUsageViolationReport();
 
@@ -4438,12 +4150,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (exampleApis != null)
-          'exampleApis': exampleApis.map((value) => value.toJson()).toList(),
-        if (minSdkVersion != null) 'minSdkVersion': minSdkVersion,
-        if (targetSdkVersion != null) 'targetSdkVersion': targetSdkVersion,
-        if (uniqueApis != null) 'uniqueApis': uniqueApis,
+          'exampleApis': exampleApis!.map((value) => value.toJson()).toList(),
+        if (minSdkVersion != null) 'minSdkVersion': minSdkVersion!,
+        if (targetSdkVersion != null) 'targetSdkVersion': targetSdkVersion!,
+        if (uniqueApis != null) 'uniqueApis': uniqueApis!,
       };
 }
 
@@ -4453,25 +4165,25 @@
   ///
   /// Returns INVALID_ARGUMENT if this field is set but the summary is not
   /// FAILURE. Optional
-  FailureDetail failureDetail;
+  FailureDetail? failureDetail;
 
   /// More information about an INCONCLUSIVE outcome.
   ///
   /// Returns INVALID_ARGUMENT if this field is set but the summary is not
   /// INCONCLUSIVE. Optional
-  InconclusiveDetail inconclusiveDetail;
+  InconclusiveDetail? inconclusiveDetail;
 
   /// More information about a SKIPPED outcome.
   ///
   /// Returns INVALID_ARGUMENT if this field is set but the summary is not
   /// SKIPPED. Optional
-  SkippedDetail skippedDetail;
+  SkippedDetail? skippedDetail;
 
   /// More information about a SUCCESS outcome.
   ///
   /// Returns INVALID_ARGUMENT if this field is set but the summary is not
   /// SUCCESS. Optional
-  SuccessDetail successDetail;
+  SuccessDetail? successDetail;
 
   /// The simplest way to interpret a result.
   ///
@@ -4490,7 +4202,7 @@
   /// configurations were incompatible.
   /// - "flaky" : A group of steps that were run with the same configuration had
   /// both failure and success outcomes.
-  core.String summary;
+  core.String? summary;
 
   Outcome();
 
@@ -4516,13 +4228,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (failureDetail != null) 'failureDetail': failureDetail.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (failureDetail != null) 'failureDetail': failureDetail!.toJson(),
         if (inconclusiveDetail != null)
-          'inconclusiveDetail': inconclusiveDetail.toJson(),
-        if (skippedDetail != null) 'skippedDetail': skippedDetail.toJson(),
-        if (successDetail != null) 'successDetail': successDetail.toJson(),
-        if (summary != null) 'summary': summary,
+          'inconclusiveDetail': inconclusiveDetail!.toJson(),
+        if (skippedDetail != null) 'skippedDetail': skippedDetail!.toJson(),
+        if (successDetail != null) 'successDetail': successDetail!.toJson(),
+        if (summary != null) 'summary': summary!,
       };
 }
 
@@ -4530,10 +4242,10 @@
 /// elements; this may indicate a potential UI issue.
 class OverlappingUIElements {
   /// Resource names of the overlapping screen elements
-  core.List<core.String> resourceName;
+  core.List<core.String>? resourceName;
 
   /// The screen id of the elements
-  core.String screenId;
+  core.String? screenId;
 
   OverlappingUIElements();
 
@@ -4548,9 +4260,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceName != null) 'resourceName': resourceName,
-        if (screenId != null) 'screenId': screenId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceName != null) 'resourceName': resourceName!,
+        if (screenId != null) 'screenId': screenId!,
       };
 }
 
@@ -4560,7 +4272,7 @@
 /// Users need not take any action.
 class PendingGoogleUpdateInsight {
   /// The name of the Google-provided library with the non-SDK API dependency.
-  core.String nameOfGoogleLibrary;
+  core.String? nameOfGoogleLibrary;
 
   PendingGoogleUpdateInsight();
 
@@ -4570,19 +4282,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (nameOfGoogleLibrary != null)
-          'nameOfGoogleLibrary': nameOfGoogleLibrary,
+          'nameOfGoogleLibrary': nameOfGoogleLibrary!,
       };
 }
 
 /// Encapsulates performance environment info
 class PerfEnvironment {
   /// CPU related environment info
-  CPUInfo cpuInfo;
+  CPUInfo? cpuInfo;
 
   /// Memory related environment info
-  MemoryInfo memoryInfo;
+  MemoryInfo? memoryInfo;
 
   PerfEnvironment();
 
@@ -4597,45 +4309,45 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (cpuInfo != null) 'cpuInfo': cpuInfo.toJson(),
-        if (memoryInfo != null) 'memoryInfo': memoryInfo.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (cpuInfo != null) 'cpuInfo': cpuInfo!.toJson(),
+        if (memoryInfo != null) 'memoryInfo': memoryInfo!.toJson(),
       };
 }
 
 /// A summary of perf metrics collected and performance environment info
 class PerfMetricsSummary {
-  AppStartTime appStartTime;
+  AppStartTime? appStartTime;
 
   /// A tool results execution ID.
   ///
   /// @OutputOnly
-  core.String executionId;
+  core.String? executionId;
 
   /// Graphics statistics for the entire run.
   ///
   /// Statistics are reset at the beginning of the run and collected at the end
   /// of the run.
-  GraphicsStats graphicsStats;
+  GraphicsStats? graphicsStats;
 
   /// A tool results history ID.
   ///
   /// @OutputOnly
-  core.String historyId;
+  core.String? historyId;
 
   /// Describes the environment in which the performance metrics were collected
-  PerfEnvironment perfEnvironment;
+  PerfEnvironment? perfEnvironment;
 
   /// Set of resource collected
-  core.List<core.String> perfMetrics;
+  core.List<core.String>? perfMetrics;
 
   /// The cloud project @OutputOnly
-  core.String projectId;
+  core.String? projectId;
 
   /// A tool results step ID.
   ///
   /// @OutputOnly
-  core.String stepId;
+  core.String? stepId;
 
   PerfMetricsSummary();
 
@@ -4671,26 +4383,26 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (appStartTime != null) 'appStartTime': appStartTime.toJson(),
-        if (executionId != null) 'executionId': executionId,
-        if (graphicsStats != null) 'graphicsStats': graphicsStats.toJson(),
-        if (historyId != null) 'historyId': historyId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (appStartTime != null) 'appStartTime': appStartTime!.toJson(),
+        if (executionId != null) 'executionId': executionId!,
+        if (graphicsStats != null) 'graphicsStats': graphicsStats!.toJson(),
+        if (historyId != null) 'historyId': historyId!,
         if (perfEnvironment != null)
-          'perfEnvironment': perfEnvironment.toJson(),
-        if (perfMetrics != null) 'perfMetrics': perfMetrics,
-        if (projectId != null) 'projectId': projectId,
-        if (stepId != null) 'stepId': stepId,
+          'perfEnvironment': perfEnvironment!.toJson(),
+        if (perfMetrics != null) 'perfMetrics': perfMetrics!,
+        if (projectId != null) 'projectId': projectId!,
+        if (stepId != null) 'stepId': stepId!,
       };
 }
 
 /// Resource representing a single performance measure or data point
 class PerfSample {
   /// Timestamp of collection.
-  Timestamp sampleTime;
+  Timestamp? sampleTime;
 
   /// Value observed
-  core.double value;
+  core.double? value;
 
   PerfSample();
 
@@ -4704,37 +4416,37 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (sampleTime != null) 'sampleTime': sampleTime.toJson(),
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (sampleTime != null) 'sampleTime': sampleTime!.toJson(),
+        if (value != null) 'value': value!,
       };
 }
 
 /// Resource representing a collection of performance samples (or data points)
 class PerfSampleSeries {
   /// Basic series represented by a line chart
-  BasicPerfSampleSeries basicPerfSampleSeries;
+  BasicPerfSampleSeries? basicPerfSampleSeries;
 
   /// A tool results execution ID.
   ///
   /// @OutputOnly
-  core.String executionId;
+  core.String? executionId;
 
   /// A tool results history ID.
   ///
   /// @OutputOnly
-  core.String historyId;
+  core.String? historyId;
 
   /// The cloud project @OutputOnly
-  core.String projectId;
+  core.String? projectId;
 
   /// A sample series id @OutputOnly
-  core.String sampleSeriesId;
+  core.String? sampleSeriesId;
 
   /// A tool results step ID.
   ///
   /// @OutputOnly
-  core.String stepId;
+  core.String? stepId;
 
   PerfSampleSeries();
 
@@ -4761,14 +4473,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (basicPerfSampleSeries != null)
-          'basicPerfSampleSeries': basicPerfSampleSeries.toJson(),
-        if (executionId != null) 'executionId': executionId,
-        if (historyId != null) 'historyId': historyId,
-        if (projectId != null) 'projectId': projectId,
-        if (sampleSeriesId != null) 'sampleSeriesId': sampleSeriesId,
-        if (stepId != null) 'stepId': stepId,
+          'basicPerfSampleSeries': basicPerfSampleSeries!.toJson(),
+        if (executionId != null) 'executionId': executionId!,
+        if (historyId != null) 'historyId': historyId!,
+        if (projectId != null) 'projectId': projectId!,
+        if (sampleSeriesId != null) 'sampleSeriesId': sampleSeriesId!,
+        if (stepId != null) 'stepId': stepId!,
       };
 }
 
@@ -4780,13 +4492,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// A notification that Robo performed some monkey actions.
 class PerformedMonkeyActions {
   /// The total number of monkey actions performed during the crawl.
-  core.int totalActions;
+  core.int? totalActions;
 
   PerformedMonkeyActions();
 
@@ -4796,8 +4508,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (totalActions != null) 'totalActions': totalActions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (totalActions != null) 'totalActions': totalActions!,
       };
 }
 
@@ -4805,7 +4517,7 @@
 /// outcome of each individual step.
 class PrimaryStep {
   /// Step Id and outcome of each individual step.
-  core.List<IndividualOutcome> individualOutcome;
+  core.List<IndividualOutcome>? individualOutcome;
 
   /// Rollup test status of multiple steps that were run with the same
   /// configuration as a group.
@@ -4823,7 +4535,7 @@
   /// configurations were incompatible.
   /// - "flaky" : A group of steps that were run with the same configuration had
   /// both failure and success outcomes.
-  core.String rollUp;
+  core.String? rollUp;
 
   PrimaryStep();
 
@@ -4839,11 +4551,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (individualOutcome != null)
           'individualOutcome':
-              individualOutcome.map((value) => value.toJson()).toList(),
-        if (rollUp != null) 'rollUp': rollUp,
+              individualOutcome!.map((value) => value.toJson()).toList(),
+        if (rollUp != null) 'rollUp': rollUp!,
       };
 }
 
@@ -4853,13 +4565,13 @@
   ///
   /// By default, this is unset. In update request: optional In response:
   /// optional
-  core.String defaultBucket;
+  core.String? defaultBucket;
 
   /// The name of the project's settings.
   ///
   /// Always of the form: projects/{project-id}/settings In update request:
   /// never set In response: always set
-  core.String name;
+  core.String? name;
 
   ProjectSettings();
 
@@ -4872,9 +4584,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (defaultBucket != null) 'defaultBucket': defaultBucket,
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (defaultBucket != null) 'defaultBucket': defaultBucket!,
+        if (name != null) 'name': name!,
       };
 }
 
@@ -4884,7 +4596,7 @@
   ///
   /// The maximum size of the file this reference is pointing to is 50MB.
   /// Required.
-  core.List<FileReference> xunitXmlFiles;
+  core.List<FileReference>? xunitXmlFiles;
 
   PublishXunitXmlFilesRequest();
 
@@ -4897,10 +4609,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (xunitXmlFiles != null)
           'xunitXmlFiles':
-              xunitXmlFiles.map((value) => value.toJson()).toList(),
+              xunitXmlFiles!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -4909,22 +4621,22 @@
   /// The height, in pixels.
   ///
   /// Always set.
-  core.int heightPx;
+  core.int? heightPx;
 
   /// The left side of the rectangle, in pixels.
   ///
   /// Always set.
-  core.int leftPx;
+  core.int? leftPx;
 
   /// The top of the rectangle, in pixels.
   ///
   /// Always set.
-  core.int topPx;
+  core.int? topPx;
 
   /// The width, in pixels.
   ///
   /// Always set.
-  core.int widthPx;
+  core.int? widthPx;
 
   RegionProto();
 
@@ -4943,21 +4655,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (heightPx != null) 'heightPx': heightPx,
-        if (leftPx != null) 'leftPx': leftPx,
-        if (topPx != null) 'topPx': topPx,
-        if (widthPx != null) 'widthPx': widthPx,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (heightPx != null) 'heightPx': heightPx!,
+        if (leftPx != null) 'leftPx': leftPx!,
+        if (topPx != null) 'topPx': topPx!,
+        if (widthPx != null) 'widthPx': widthPx!,
       };
 }
 
 /// The storage for test results.
 class ResultsStorage {
   /// The root directory for test results.
-  FileReference resultsStoragePath;
+  FileReference? resultsStoragePath;
 
   /// The path to the Xunit XML file.
-  FileReference xunitXmlFile;
+  FileReference? xunitXmlFile;
 
   ResultsStorage();
 
@@ -4972,20 +4684,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (resultsStoragePath != null)
-          'resultsStoragePath': resultsStoragePath.toJson(),
-        if (xunitXmlFile != null) 'xunitXmlFile': xunitXmlFile.toJson(),
+          'resultsStoragePath': resultsStoragePath!.toJson(),
+        if (xunitXmlFile != null) 'xunitXmlFile': xunitXmlFile!.toJson(),
       };
 }
 
 /// Execution stats for a user-provided Robo script.
 class RoboScriptExecution {
   /// The number of Robo script actions executed successfully.
-  core.int successfulActions;
+  core.int? successfulActions;
 
   /// The total number of actions in the Robo script.
-  core.int totalActions;
+  core.int? totalActions;
 
   RoboScriptExecution();
 
@@ -4998,9 +4710,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (successfulActions != null) 'successfulActions': successfulActions,
-        if (totalActions != null) 'totalActions': totalActions,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (successfulActions != null) 'successfulActions': successfulActions!,
+        if (totalActions != null) 'totalActions': totalActions!,
       };
 }
 
@@ -5017,7 +4729,7 @@
   ///
   /// See documentation at the top of .proto file for programming language
   /// packages with which to create or read this message.
-  core.String privateDoNotAccessOrElseSafeHtmlWrappedValue;
+  core.String? privateDoNotAccessOrElseSafeHtmlWrappedValue;
 
   SafeHtmlProto();
 
@@ -5028,10 +4740,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (privateDoNotAccessOrElseSafeHtmlWrappedValue != null)
           'privateDoNotAccessOrElseSafeHtmlWrappedValue':
-              privateDoNotAccessOrElseSafeHtmlWrappedValue,
+              privateDoNotAccessOrElseSafeHtmlWrappedValue!,
       };
 }
 
@@ -5039,22 +4751,22 @@
   /// File reference of the png file.
   ///
   /// Required.
-  core.String fileReference;
+  core.String? fileReference;
 
   /// Locale of the device that the screenshot was taken on.
   ///
   /// Required.
-  core.String locale;
+  core.String? locale;
 
   /// Model of the device that the screenshot was taken on.
   ///
   /// Required.
-  core.String model;
+  core.String? model;
 
   /// OS version of the device that the screenshot was taken on.
   ///
   /// Required.
-  core.String version;
+  core.String? version;
 
   Screen();
 
@@ -5073,32 +4785,32 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fileReference != null) 'fileReference': fileReference,
-        if (locale != null) 'locale': locale,
-        if (model != null) 'model': model,
-        if (version != null) 'version': version,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fileReference != null) 'fileReference': fileReference!,
+        if (locale != null) 'locale': locale!,
+        if (model != null) 'model': model!,
+        if (version != null) 'version': version!,
       };
 }
 
 class ScreenshotCluster {
   /// A string that describes the activity of every screen in the cluster.
-  core.String activity;
+  core.String? activity;
 
   /// A unique identifier for the cluster.
   ///
   /// @OutputOnly
-  core.String clusterId;
+  core.String? clusterId;
 
   /// A singular screen that represents the cluster as a whole.
   ///
   /// This screen will act as the "cover" of the entire cluster. When users look
   /// at the clusters, only the key screen from each cluster will be shown.
   /// Which screen is the key screen is determined by the ClusteringAlgorithm
-  Screen keyScreen;
+  Screen? keyScreen;
 
   /// Full list of screens.
-  core.List<Screen> screens;
+  core.List<Screen>? screens;
 
   ScreenshotCluster();
 
@@ -5121,12 +4833,12 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (activity != null) 'activity': activity,
-        if (clusterId != null) 'clusterId': clusterId,
-        if (keyScreen != null) 'keyScreen': keyScreen.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (activity != null) 'activity': activity!,
+        if (clusterId != null) 'clusterId': clusterId!,
+        if (keyScreen != null) 'keyScreen': keyScreen!.toJson(),
         if (screens != null)
-          'screens': screens.map((value) => value.toJson()).toList(),
+          'screens': screens!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5136,10 +4848,10 @@
   ///
   /// With flaky_test_attempts enabled from TestExecutionService, more than one
   /// run (Step) can present. And the runs will be sorted by multistep_number.
-  core.List<StepSummary> runs;
+  core.List<StepSummary>? runs;
 
   /// Merged result of the shard.
-  MergedResult shardResult;
+  MergedResult? shardResult;
 
   ShardSummary();
 
@@ -5156,22 +4868,22 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (runs != null) 'runs': runs.map((value) => value.toJson()).toList(),
-        if (shardResult != null) 'shardResult': shardResult.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (runs != null) 'runs': runs!.map((value) => value.toJson()).toList(),
+        if (shardResult != null) 'shardResult': shardResult!.toJson(),
       };
 }
 
 /// Details for an outcome with a SKIPPED outcome summary.
 class SkippedDetail {
   /// If the App doesn't support the specific API level.
-  core.bool incompatibleAppVersion;
+  core.bool? incompatibleAppVersion;
 
   /// If the App doesn't run on the specific architecture, for example, x86.
-  core.bool incompatibleArchitecture;
+  core.bool? incompatibleArchitecture;
 
   /// If the requested OS version doesn't run on the specific device model.
-  core.bool incompatibleDevice;
+  core.bool? incompatibleDevice;
 
   SkippedDetail();
 
@@ -5187,23 +4899,23 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (incompatibleAppVersion != null)
-          'incompatibleAppVersion': incompatibleAppVersion,
+          'incompatibleAppVersion': incompatibleAppVersion!,
         if (incompatibleArchitecture != null)
-          'incompatibleArchitecture': incompatibleArchitecture,
+          'incompatibleArchitecture': incompatibleArchitecture!,
         if (incompatibleDevice != null)
-          'incompatibleDevice': incompatibleDevice,
+          'incompatibleDevice': incompatibleDevice!,
       };
 }
 
 /// The details about how to run the execution.
 class Specification {
   /// An Android mobile test execution specification.
-  AndroidTest androidTest;
+  AndroidTest? androidTest;
 
   /// An iOS mobile test execution specification.
-  IosTest iosTest;
+  IosTest? iosTest;
 
   Specification();
 
@@ -5218,9 +4930,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (androidTest != null) 'androidTest': androidTest.toJson(),
-        if (iosTest != null) 'iosTest': iosTest.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (androidTest != null) 'androidTest': androidTest!.toJson(),
+        if (iosTest != null) 'iosTest': iosTest!.toJson(),
       };
 }
 
@@ -5229,7 +4941,7 @@
   /// The stack trace message.
   ///
   /// Required
-  core.String exception;
+  core.String? exception;
 
   StackTrace();
 
@@ -5239,15 +4951,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (exception != null) 'exception': exception,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (exception != null) 'exception': exception!,
       };
 }
 
 /// User provided intent failed to resolve to an activity.
 class StartActivityNotFound {
-  core.String action;
-  core.String uri;
+  core.String? action;
+  core.String? uri;
 
   StartActivityNotFound();
 
@@ -5260,9 +4972,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (action != null) 'action': action,
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (action != null) 'action': action!,
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -5275,7 +4987,7 @@
 /// [API Design Guide](https://cloud.google.com/apis/design/errors).
 class Status {
   /// The status code, which should be an enum value of google.rpc.Code.
-  core.int code;
+  core.int? code;
 
   /// A list of messages that carry the error details.
   ///
@@ -5283,13 +4995,13 @@
   ///
   /// The values for Object must be JSON objects. It can consist of `num`,
   /// `String`, `bool` and `null` as well as `Map` and `List` values.
-  core.List<core.Map<core.String, core.Object>> details;
+  core.List<core.Map<core.String, core.Object>>? details;
 
   /// A developer-facing error message, which should be in English.
   ///
   /// Any user-facing error message should be localized and sent in the
   /// google.rpc.Status.details field, or localized by the client.
-  core.String message;
+  core.String? message;
 
   Status();
 
@@ -5313,10 +5025,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (code != null) 'code': code,
-        if (details != null) 'details': details,
-        if (message != null) 'message': message,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (code != null) 'code': code!,
+        if (details != null) 'details': details!,
+        if (message != null) 'message': message!,
       };
 }
 
@@ -5340,17 +5052,17 @@
   /// This value will be set automatically when state transitions to COMPLETE. -
   /// In response: set if the execution state is COMPLETE. - In create/update
   /// request: never set
-  Timestamp completionTime;
+  Timestamp? completionTime;
 
   /// The time when the step was created.
   ///
   /// - In response: always set - In create/update request: never set
-  Timestamp creationTime;
+  Timestamp? creationTime;
 
   /// A description of this tool For example: mvn clean package -D
   /// skipTests=true - In response: present if set by create/update request - In
   /// create/update request: optional
-  core.String description;
+  core.String? description;
 
   /// How much the device resource is used to perform the test.
   ///
@@ -5360,7 +5072,7 @@
   /// a device_usage on a step which already has this field set. - In response:
   /// present if previously set. - In create request: optional - In update
   /// request: optional
-  Duration deviceUsageDuration;
+  Duration? deviceUsageDuration;
 
   /// If the execution containing this step has any dimension_definition set,
   /// then this field allows the child to specify the values of the dimensions.
@@ -5383,13 +5095,13 @@
   /// in the execution which is not specified as one of the keys. - In response:
   /// present if set by create - In create request: optional - In update
   /// request: never set
-  core.List<StepDimensionValueEntry> dimensionValue;
+  core.List<StepDimensionValueEntry>? dimensionValue;
 
   /// Whether any of the outputs of this step are images whose thumbnails can be
   /// fetched with ListThumbnails.
   ///
   /// - In response: always set - In create/update request: never set
-  core.bool hasImages;
+  core.bool? hasImages;
 
   /// Arbitrary user-supplied key/value pairs that are associated with the step.
   ///
@@ -5400,7 +5112,7 @@
   /// optional - In update request: optional; any new key/value pair will be
   /// added to the map, and any new value for an existing key will update that
   /// key's value
-  core.List<StepLabelsEntry> labels;
+  core.List<StepLabelsEntry>? labels;
 
   /// Details when multiple steps are run with the same configuration as a
   /// group.
@@ -5410,7 +5122,7 @@
   /// members. - In response: present if previously set. - In create request:
   /// optional, set iff this step was performed more than once. - In update
   /// request: optional
-  MultiStep multiStep;
+  MultiStep? multiStep;
 
   /// A short human-readable name to display in the UI.
   ///
@@ -5421,12 +5133,12 @@
   /// name. For instance, if the same set of tests is run on two different
   /// platforms, the two steps should have the same name. - In response: always
   /// set - In create request: always set - In update request: never set
-  core.String name;
+  core.String? name;
 
   /// Classification of the result, for example into SUCCESS or FAILURE - In
   /// response: present if set by create/update request - In create/update
   /// request: optional
-  Outcome outcome;
+  Outcome? outcome;
 
   /// How long it took for this step to run.
   ///
@@ -5439,7 +5151,7 @@
   /// attempts to set a run_duration on a step which already has this field set.
   /// - In response: present if previously set; always present on COMPLETE step
   /// - In create request: optional - In update request: optional
-  Duration runDuration;
+  Duration? runDuration;
 
   /// The initial state is IN_PROGRESS.
   ///
@@ -5458,19 +5170,19 @@
   /// - "inProgress" : The Execution/Step is in progress.
   /// - "complete" : The finalized, immutable state. Steps/Executions in this
   /// state cannot be modified.
-  core.String state;
+  core.String? state;
 
   /// A unique identifier within a Execution for this Step.
   ///
   /// Returns INVALID_ARGUMENT if this field is set or overwritten by the
   /// caller. - In response: always set - In create/update request: never set
-  core.String stepId;
+  core.String? stepId;
 
   /// An execution of a test runner.
-  TestExecutionStep testExecutionStep;
+  TestExecutionStep? testExecutionStep;
 
   /// An execution of a tool (used for steps we don't explicitly support).
-  ToolExecutionStep toolExecutionStep;
+  ToolExecutionStep? toolExecutionStep;
 
   Step();
 
@@ -5537,34 +5249,34 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (completionTime != null) 'completionTime': completionTime.toJson(),
-        if (creationTime != null) 'creationTime': creationTime.toJson(),
-        if (description != null) 'description': description,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (completionTime != null) 'completionTime': completionTime!.toJson(),
+        if (creationTime != null) 'creationTime': creationTime!.toJson(),
+        if (description != null) 'description': description!,
         if (deviceUsageDuration != null)
-          'deviceUsageDuration': deviceUsageDuration.toJson(),
+          'deviceUsageDuration': deviceUsageDuration!.toJson(),
         if (dimensionValue != null)
           'dimensionValue':
-              dimensionValue.map((value) => value.toJson()).toList(),
-        if (hasImages != null) 'hasImages': hasImages,
+              dimensionValue!.map((value) => value.toJson()).toList(),
+        if (hasImages != null) 'hasImages': hasImages!,
         if (labels != null)
-          'labels': labels.map((value) => value.toJson()).toList(),
-        if (multiStep != null) 'multiStep': multiStep.toJson(),
-        if (name != null) 'name': name,
-        if (outcome != null) 'outcome': outcome.toJson(),
-        if (runDuration != null) 'runDuration': runDuration.toJson(),
-        if (state != null) 'state': state,
-        if (stepId != null) 'stepId': stepId,
+          'labels': labels!.map((value) => value.toJson()).toList(),
+        if (multiStep != null) 'multiStep': multiStep!.toJson(),
+        if (name != null) 'name': name!,
+        if (outcome != null) 'outcome': outcome!.toJson(),
+        if (runDuration != null) 'runDuration': runDuration!.toJson(),
+        if (state != null) 'state': state!,
+        if (stepId != null) 'stepId': stepId!,
         if (testExecutionStep != null)
-          'testExecutionStep': testExecutionStep.toJson(),
+          'testExecutionStep': testExecutionStep!.toJson(),
         if (toolExecutionStep != null)
-          'toolExecutionStep': toolExecutionStep.toJson(),
+          'toolExecutionStep': toolExecutionStep!.toJson(),
       };
 }
 
 class StepDimensionValueEntry {
-  core.String key;
-  core.String value;
+  core.String? key;
+  core.String? value;
 
   StepDimensionValueEntry();
 
@@ -5577,15 +5289,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (value != null) 'value': value!,
       };
 }
 
 class StepLabelsEntry {
-  core.String key;
-  core.String value;
+  core.String? key;
+  core.String? value;
 
   StepLabelsEntry();
 
@@ -5598,9 +5310,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (value != null) 'value': value,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (value != null) 'value': value!,
       };
 }
 
@@ -5612,7 +5324,7 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Details for an outcome with a SUCCESS outcome summary.
@@ -5620,7 +5332,7 @@
 /// LINT.IfChange
 class SuccessDetail {
   /// If a native process other than the app crashed.
-  core.bool otherNativeCrash;
+  core.bool? otherNativeCrash;
 
   SuccessDetail();
 
@@ -5630,8 +5342,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (otherNativeCrash != null) 'otherNativeCrash': otherNativeCrash,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (otherNativeCrash != null) 'otherNativeCrash': otherNativeCrash!,
       };
 }
 
@@ -5650,14 +5362,14 @@
   /// - "touchTargetSize"
   /// - "lowContrast"
   /// - "implementation"
-  core.String category;
+  core.String? category;
 
   /// A sequence of suggestions.
   ///
   /// All of the suggestions within a cluster must have the same
   /// SuggestionPriority and belong to the same SuggestionCategory. Suggestions
   /// with the same screenshot URL should be adjacent.
-  core.List<SuggestionProto> suggestions;
+  core.List<SuggestionProto>? suggestions;
 
   SuggestionClusterProto();
 
@@ -5673,10 +5385,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (category != null) 'category': category,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (category != null) 'category': category!,
         if (suggestions != null)
-          'suggestions': suggestions.map((value) => value.toJson()).toList(),
+          'suggestions': suggestions!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5684,13 +5396,13 @@
   /// Reference to a help center article concerning this type of suggestion.
   ///
   /// Always set.
-  core.String helpUrl;
+  core.String? helpUrl;
 
   /// Message, in the user's language, explaining the suggestion, which may
   /// contain markup.
   ///
   /// Always set.
-  SafeHtmlProto longMessage;
+  SafeHtmlProto? longMessage;
 
   /// Relative importance of a suggestion.
   ///
@@ -5700,29 +5412,29 @@
   /// - "error"
   /// - "warning"
   /// - "info"
-  core.String priority;
+  core.String? priority;
 
   /// A somewhat human readable identifier of the source view, if it does not
   /// have a resource_name.
   ///
   /// This is a path within the accessibility hierarchy, an element with
   /// resource name; similar to an XPath.
-  core.String pseudoResourceId;
+  core.String? pseudoResourceId;
 
   /// Region within the screenshot that is relevant to this suggestion.
   ///
   /// Optional.
-  RegionProto region;
+  RegionProto? region;
 
   /// Reference to a view element, identified by its resource name, if it has
   /// one.
-  core.String resourceName;
+  core.String? resourceName;
 
   /// ID of the screen for the suggestion.
   ///
   /// It is used for getting the corresponding screenshot path. For example,
   /// screen_id "1" corresponds to "1.png" file in GCS. Always set.
-  core.String screenId;
+  core.String? screenId;
 
   /// Relative importance of a suggestion as compared with other suggestions
   /// that have the same priority and category.
@@ -5730,18 +5442,18 @@
   /// This is a meaningless value that can be used to order suggestions that are
   /// in the same category and have the same priority. The larger values have
   /// higher priority (i.e., are more important). Optional.
-  core.double secondaryPriority;
+  core.double? secondaryPriority;
 
   /// Concise message, in the user's language, representing the suggestion,
   /// which may contain markup.
   ///
   /// Always set.
-  SafeHtmlProto shortMessage;
+  SafeHtmlProto? shortMessage;
 
   /// General title for the suggestion, in the user's language, without markup.
   ///
   /// Always set.
-  core.String title;
+  core.String? title;
 
   SuggestionProto();
 
@@ -5781,17 +5493,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (helpUrl != null) 'helpUrl': helpUrl,
-        if (longMessage != null) 'longMessage': longMessage.toJson(),
-        if (priority != null) 'priority': priority,
-        if (pseudoResourceId != null) 'pseudoResourceId': pseudoResourceId,
-        if (region != null) 'region': region.toJson(),
-        if (resourceName != null) 'resourceName': resourceName,
-        if (screenId != null) 'screenId': screenId,
-        if (secondaryPriority != null) 'secondaryPriority': secondaryPriority,
-        if (shortMessage != null) 'shortMessage': shortMessage.toJson(),
-        if (title != null) 'title': title,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (helpUrl != null) 'helpUrl': helpUrl!,
+        if (longMessage != null) 'longMessage': longMessage!.toJson(),
+        if (priority != null) 'priority': priority!,
+        if (pseudoResourceId != null) 'pseudoResourceId': pseudoResourceId!,
+        if (region != null) 'region': region!.toJson(),
+        if (resourceName != null) 'resourceName': resourceName!,
+        if (screenId != null) 'screenId': screenId!,
+        if (secondaryPriority != null) 'secondaryPriority': secondaryPriority!,
+        if (shortMessage != null) 'shortMessage': shortMessage!.toJson(),
+        if (title != null) 'title': title!,
       };
 }
 
@@ -5799,24 +5511,24 @@
   /// The elapsed run time of the test case.
   ///
   /// Required.
-  Duration elapsedTime;
+  Duration? elapsedTime;
 
   /// The end time of the test case.
-  Timestamp endTime;
+  Timestamp? endTime;
 
   /// Why the test case was skipped.
   ///
   /// Present only for skipped test case
-  core.String skippedMessage;
+  core.String? skippedMessage;
 
   /// The stack trace details if the test case failed or encountered an error.
   ///
   /// The maximum size of the stack traces is 100KiB, beyond which the stack
   /// track will be truncated. Zero if the test case passed.
-  core.List<StackTrace> stackTraces;
+  core.List<StackTrace>? stackTraces;
 
   /// The start time of the test case.
-  Timestamp startTime;
+  Timestamp? startTime;
 
   /// The status of the test case.
   ///
@@ -5829,20 +5541,20 @@
   /// - "flaky" : Test flaked. Present only for rollup test cases; test cases
   /// from steps that were run with the same configuration had both failure and
   /// success outcomes.
-  core.String status;
+  core.String? status;
 
   /// A unique identifier within a Step for this Test Case.
-  core.String testCaseId;
+  core.String? testCaseId;
 
   /// Test case reference, e.g. name, class name and test suite name.
   ///
   /// Required.
-  TestCaseReference testCaseReference;
+  TestCaseReference? testCaseReference;
 
   /// References to opaque files of any format output by the tool execution.
   ///
   /// @OutputOnly
-  core.List<ToolOutputReference> toolOutputs;
+  core.List<ToolOutputReference>? toolOutputs;
 
   TestCase();
 
@@ -5886,19 +5598,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (elapsedTime != null) 'elapsedTime': elapsedTime.toJson(),
-        if (endTime != null) 'endTime': endTime.toJson(),
-        if (skippedMessage != null) 'skippedMessage': skippedMessage,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (elapsedTime != null) 'elapsedTime': elapsedTime!.toJson(),
+        if (endTime != null) 'endTime': endTime!.toJson(),
+        if (skippedMessage != null) 'skippedMessage': skippedMessage!,
         if (stackTraces != null)
-          'stackTraces': stackTraces.map((value) => value.toJson()).toList(),
-        if (startTime != null) 'startTime': startTime.toJson(),
-        if (status != null) 'status': status,
-        if (testCaseId != null) 'testCaseId': testCaseId,
+          'stackTraces': stackTraces!.map((value) => value.toJson()).toList(),
+        if (startTime != null) 'startTime': startTime!.toJson(),
+        if (status != null) 'status': status!,
+        if (testCaseId != null) 'testCaseId': testCaseId!,
         if (testCaseReference != null)
-          'testCaseReference': testCaseReference.toJson(),
+          'testCaseReference': testCaseReference!.toJson(),
         if (toolOutputs != null)
-          'toolOutputs': toolOutputs.map((value) => value.toJson()).toList(),
+          'toolOutputs': toolOutputs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -5909,15 +5621,15 @@
 /// Third, by name.
 class TestCaseReference {
   /// The name of the class.
-  core.String className;
+  core.String? className;
 
   /// The name of the test case.
   ///
   /// Required.
-  core.String name;
+  core.String? name;
 
   /// The name of the test suite to which this test case belongs.
-  core.String testSuiteName;
+  core.String? testSuiteName;
 
   TestCaseReference();
 
@@ -5933,10 +5645,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (className != null) 'className': className,
-        if (name != null) 'name': name,
-        if (testSuiteName != null) 'testSuiteName': testSuiteName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (className != null) 'className': className!,
+        if (name != null) 'name': name!,
+        if (testSuiteName != null) 'testSuiteName': testSuiteName!,
       };
 }
 
@@ -5953,7 +5665,7 @@
   /// error message and the stack trace content can be recorded here to assist
   /// debugging. - In response: present if set by create or update - In
   /// create/update request: optional
-  core.List<TestIssue> testIssues;
+  core.List<TestIssue>? testIssues;
 
   /// List of test suite overview contents.
   ///
@@ -5962,19 +5674,19 @@
   /// parsed or uploaded. The maximum allowed number of test suite overviews per
   /// step is 1000. - In response: always set - In create request: optional - In
   /// update request: never (use publishXunitXmlFiles custom method instead)
-  core.List<TestSuiteOverview> testSuiteOverviews;
+  core.List<TestSuiteOverview>? testSuiteOverviews;
 
   /// The timing break down of the test execution.
   ///
   /// - In response: present if set by create or update - In create/update
   /// request: optional
-  TestTiming testTiming;
+  TestTiming? testTiming;
 
   /// Represents the execution of the test runner.
   ///
   /// The exit code of this tool will be used to determine if the test passed. -
   /// In response: always set - In create/update request: optional
-  ToolExecution toolExecution;
+  ToolExecution? toolExecution;
 
   TestExecutionStep();
 
@@ -6001,14 +5713,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (testIssues != null)
-          'testIssues': testIssues.map((value) => value.toJson()).toList(),
+          'testIssues': testIssues!.map((value) => value.toJson()).toList(),
         if (testSuiteOverviews != null)
           'testSuiteOverviews':
-              testSuiteOverviews.map((value) => value.toJson()).toList(),
-        if (testTiming != null) 'testTiming': testTiming.toJson(),
-        if (toolExecution != null) 'toolExecution': toolExecution.toJson(),
+              testSuiteOverviews!.map((value) => value.toJson()).toList(),
+        if (testTiming != null) 'testTiming': testTiming!.toJson(),
+        if (toolExecution != null) 'toolExecution': toolExecution!.toJson(),
       };
 }
 
@@ -6023,12 +5735,12 @@
   /// - "common" : Issue is not specific to a particular test kind (e.g., a
   /// native crash).
   /// - "robo" : Issue is specific to Robo run.
-  core.String category;
+  core.String? category;
 
   /// A brief human-readable message describing the issue.
   ///
   /// Required.
-  core.String errorMessage;
+  core.String? errorMessage;
 
   /// Severity of issue.
   ///
@@ -6042,10 +5754,10 @@
   /// improving their testing experience, e.g., suggesting to use Game Loops.
   /// - "warning" : Potentially critical issue.
   /// - "severe" : Critical issue.
-  core.String severity;
+  core.String? severity;
 
   /// Deprecated in favor of stack trace fields inside specific warnings.
-  StackTrace stackTrace;
+  StackTrace? stackTrace;
 
   /// Type of issue.
   ///
@@ -6095,13 +5807,13 @@
   /// crash apps).
   /// - "deviceOutOfMemory" : Device running out of memory was detected
   /// - "logcatCollectionError" : Problems detected while collecting logcat
-  core.String type;
+  core.String? type;
 
   /// Warning message with additional details of the issue.
   ///
   /// Should always be a message from
   /// com.google.devtools.toolresults.v1.warnings
-  Any warning;
+  Any? warning;
 
   TestIssue();
 
@@ -6128,13 +5840,13 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (category != null) 'category': category,
-        if (errorMessage != null) 'errorMessage': errorMessage,
-        if (severity != null) 'severity': severity,
-        if (stackTrace != null) 'stackTrace': stackTrace.toJson(),
-        if (type != null) 'type': type,
-        if (warning != null) 'warning': warning.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (category != null) 'category': category!,
+        if (errorMessage != null) 'errorMessage': errorMessage!,
+        if (severity != null) 'severity': severity!,
+        if (stackTrace != null) 'stackTrace': stackTrace!.toJson(),
+        if (type != null) 'type': type!,
+        if (warning != null) 'warning': warning!.toJson(),
       };
 }
 
@@ -6146,44 +5858,44 @@
 /// corresponding step.
 class TestSuiteOverview {
   /// Elapsed time of test suite.
-  Duration elapsedTime;
+  Duration? elapsedTime;
 
   /// Number of test cases in error, typically set by the service by parsing the
   /// xml_source.
   ///
   /// - In create/response: always set - In update request: never
-  core.int errorCount;
+  core.int? errorCount;
 
   /// Number of failed test cases, typically set by the service by parsing the
   /// xml_source.
   ///
   /// May also be set by the user. - In create/response: always set - In update
   /// request: never
-  core.int failureCount;
+  core.int? failureCount;
 
   /// Number of flaky test cases, set by the service by rolling up flaky test
   /// attempts.
   ///
   /// Present only for rollup test suite overview at environment level. A step
   /// cannot have flaky test cases.
-  core.int flakyCount;
+  core.int? flakyCount;
 
   /// The name of the test suite.
   ///
   /// - In create/response: always set - In update request: never
-  core.String name;
+  core.String? name;
 
   /// Number of test cases not run, typically set by the service by parsing the
   /// xml_source.
   ///
   /// - In create/response: always set - In update request: never
-  core.int skippedCount;
+  core.int? skippedCount;
 
   /// Number of test cases, typically set by the service by parsing the
   /// xml_source.
   ///
   /// - In create/response: always set - In update request: never
-  core.int totalCount;
+  core.int? totalCount;
 
   /// If this test suite was parsed from XML, this is the URI where the original
   /// XML file is stored.
@@ -6191,7 +5903,7 @@
   /// Note: Multiple test suites can share the same xml_source Returns
   /// INVALID_ARGUMENT if the uri format is not supported. - In create/response:
   /// optional - In update request: never
-  FileReference xmlSource;
+  FileReference? xmlSource;
 
   TestSuiteOverview();
 
@@ -6224,15 +5936,15 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (elapsedTime != null) 'elapsedTime': elapsedTime.toJson(),
-        if (errorCount != null) 'errorCount': errorCount,
-        if (failureCount != null) 'failureCount': failureCount,
-        if (flakyCount != null) 'flakyCount': flakyCount,
-        if (name != null) 'name': name,
-        if (skippedCount != null) 'skippedCount': skippedCount,
-        if (totalCount != null) 'totalCount': totalCount,
-        if (xmlSource != null) 'xmlSource': xmlSource.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (elapsedTime != null) 'elapsedTime': elapsedTime!.toJson(),
+        if (errorCount != null) 'errorCount': errorCount!,
+        if (failureCount != null) 'failureCount': failureCount!,
+        if (flakyCount != null) 'flakyCount': flakyCount!,
+        if (name != null) 'name': name!,
+        if (skippedCount != null) 'skippedCount': skippedCount!,
+        if (totalCount != null) 'totalCount': totalCount!,
+        if (xmlSource != null) 'xmlSource': xmlSource!.toJson(),
       };
 }
 
@@ -6242,7 +5954,7 @@
   ///
   /// - In response: present if previously set. - In create/update request:
   /// optional
-  Duration testProcessDuration;
+  Duration? testProcessDuration;
 
   TestTiming();
 
@@ -6253,9 +5965,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (testProcessDuration != null)
-          'testProcessDuration': testProcessDuration.toJson(),
+          'testProcessDuration': testProcessDuration!.toJson(),
       };
 }
 
@@ -6264,15 +5976,15 @@
   /// The thumbnail's content type, i.e. "image/png".
   ///
   /// Always set.
-  core.String contentType;
+  core.String? contentType;
 
   /// The thumbnail file itself.
   ///
   /// That is, the bytes here are precisely the bytes that make up the thumbnail
   /// file; they can be served as an image as-is (with the appropriate content
   /// type.) Always set.
-  core.String data;
-  core.List<core.int> get dataAsBytes => convert.base64.decode(data);
+  core.String? data;
+  core.List<core.int> get dataAsBytes => convert.base64.decode(data!);
 
   set dataAsBytes(core.List<core.int> _bytes) {
     data =
@@ -6282,12 +5994,12 @@
   /// The height of the thumbnail, in pixels.
   ///
   /// Always set.
-  core.int heightPx;
+  core.int? heightPx;
 
   /// The width of the thumbnail, in pixels.
   ///
   /// Always set.
-  core.int widthPx;
+  core.int? widthPx;
 
   Thumbnail();
 
@@ -6306,11 +6018,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (contentType != null) 'contentType': contentType,
-        if (data != null) 'data': data,
-        if (heightPx != null) 'heightPx': heightPx,
-        if (widthPx != null) 'widthPx': widthPx,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (contentType != null) 'contentType': contentType!,
+        if (data != null) 'data': data!,
+        if (heightPx != null) 'heightPx': heightPx!,
+        if (widthPx != null) 'widthPx': widthPx!,
       };
 }
 
@@ -6332,12 +6044,12 @@
   /// Negative second values with fractions must still have non-negative nanos
   /// values that count forward in time. Must be from 0 to 999,999,999
   /// inclusive.
-  core.int nanos;
+  core.int? nanos;
 
   /// Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.
   ///
   /// Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
-  core.String seconds;
+  core.String? seconds;
 
   Timestamp();
 
@@ -6350,9 +6062,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (nanos != null) 'nanos': nanos,
-        if (seconds != null) 'seconds': seconds,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (nanos != null) 'nanos': nanos!,
+        if (seconds != null) 'seconds': seconds!,
       };
 }
 
@@ -6365,7 +6077,7 @@
   ///
   /// - In response: present if set by create request - In create request:
   /// optional - In update request: never set
-  core.List<core.String> commandLineArguments;
+  core.List<core.String>? commandLineArguments;
 
   /// Tool execution exit code.
   ///
@@ -6373,7 +6085,7 @@
   /// set by create/update request - In create request: optional - In update
   /// request: optional, a FAILED_PRECONDITION error will be returned if an
   /// exit_code is already set.
-  ToolExitCode exitCode;
+  ToolExitCode? exitCode;
 
   /// References to any plain text logs output the tool execution.
   ///
@@ -6383,7 +6095,7 @@
   /// present if set by create/update request - In create request: optional - In
   /// update request: optional, any value provided will be appended to the
   /// existing list
-  core.List<FileReference> toolLogs;
+  core.List<FileReference>? toolLogs;
 
   /// References to opaque files of any format output by the tool execution.
   ///
@@ -6391,7 +6103,7 @@
   /// response: present if set by create/update request - In create request:
   /// optional - In update request: optional, any value provided will be
   /// appended to the existing list
-  core.List<ToolOutputReference> toolOutputs;
+  core.List<ToolOutputReference>? toolOutputs;
 
   ToolExecution();
 
@@ -6419,14 +6131,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (commandLineArguments != null)
-          'commandLineArguments': commandLineArguments,
-        if (exitCode != null) 'exitCode': exitCode.toJson(),
+          'commandLineArguments': commandLineArguments!,
+        if (exitCode != null) 'exitCode': exitCode!.toJson(),
         if (toolLogs != null)
-          'toolLogs': toolLogs.map((value) => value.toJson()).toList(),
+          'toolLogs': toolLogs!.map((value) => value.toJson()).toList(),
         if (toolOutputs != null)
-          'toolOutputs': toolOutputs.map((value) => value.toJson()).toList(),
+          'toolOutputs': toolOutputs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -6438,7 +6150,7 @@
   ///
   /// - In response: present if set by create/update request - In create/update
   /// request: optional
-  ToolExecution toolExecution;
+  ToolExecution? toolExecution;
 
   ToolExecutionStep();
 
@@ -6449,8 +6161,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (toolExecution != null) 'toolExecution': toolExecution.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (toolExecution != null) 'toolExecution': toolExecution!.toJson(),
       };
 }
 
@@ -6460,7 +6172,7 @@
   ///
   /// A value of 0 means that the execution was successful. - In response:
   /// always set - In create/update request: always set
-  core.int number;
+  core.int? number;
 
   ToolExitCode();
 
@@ -6470,8 +6182,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (number != null) 'number': number,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (number != null) 'number': number!,
       };
 }
 
@@ -6481,18 +6193,18 @@
   ///
   /// - In response: present if set by create/update request - In create/update
   /// request: optional
-  Timestamp creationTime;
+  Timestamp? creationTime;
 
   /// A FileReference to an output file.
   ///
   /// - In response: always set - In create/update request: always set
-  FileReference output;
+  FileReference? output;
 
   /// The test case to which this output file belongs.
   ///
   /// - In response: present if set by create/update request - In create/update
   /// request: optional
-  TestCaseReference testCase;
+  TestCaseReference? testCase;
 
   ToolOutputReference();
 
@@ -6511,10 +6223,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (creationTime != null) 'creationTime': creationTime.toJson(),
-        if (output != null) 'output': output.toJson(),
-        if (testCase != null) 'testCase': testCase.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (creationTime != null) 'creationTime': creationTime!.toJson(),
+        if (output != null) 'output': output!.toJson(),
+        if (testCase != null) 'testCase': testCase!.toJson(),
       };
 }
 
@@ -6522,13 +6234,13 @@
 /// threshold.
 class UIElementTooDeep {
   /// The depth of the screen element
-  core.int depth;
+  core.int? depth;
 
   /// The screen id of the element
-  core.String screenId;
+  core.String? screenId;
 
   /// The screen state id of the element
-  core.String screenStateId;
+  core.String? screenStateId;
 
   UIElementTooDeep();
 
@@ -6544,10 +6256,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (depth != null) 'depth': depth,
-        if (screenId != null) 'screenId': screenId,
-        if (screenStateId != null) 'screenStateId': screenStateId,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (depth != null) 'depth': depth!,
+        if (screenId != null) 'screenId': screenId!,
+        if (screenStateId != null) 'screenStateId': screenStateId!,
       };
 }
 
@@ -6559,13 +6271,13 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Additional details of an unused robodirective.
 class UnusedRoboDirective {
   /// The name of the resource that was unused.
-  core.String resourceName;
+  core.String? resourceName;
 
   UnusedRoboDirective();
 
@@ -6575,8 +6287,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
 
@@ -6584,12 +6296,12 @@
 /// version, in order to avoid dependencies on non-SDK APIs.
 class UpgradeInsight {
   /// The name of the package to be upgraded.
-  core.String packageName;
+  core.String? packageName;
 
   /// The suggested version to upgrade to.
   ///
   /// Optional: In case we are not sure which version solves this problem
-  core.String upgradeToVersion;
+  core.String? upgradeToVersion;
 
   UpgradeInsight();
 
@@ -6602,16 +6314,16 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (packageName != null) 'packageName': packageName,
-        if (upgradeToVersion != null) 'upgradeToVersion': upgradeToVersion,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (packageName != null) 'packageName': packageName!,
+        if (upgradeToVersion != null) 'upgradeToVersion': upgradeToVersion!,
       };
 }
 
 /// Additional details of a used Robo directive.
 class UsedRoboDirective {
   /// The name of the resource that was used.
-  core.String resourceName;
+  core.String? resourceName;
 
   UsedRoboDirective();
 
@@ -6621,8 +6333,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
 
@@ -6631,7 +6343,7 @@
 /// Note: This is a different scenario than unused directive.
 class UsedRoboIgnoreDirective {
   /// The name of the resource that was ignored.
-  core.String resourceName;
+  core.String? resourceName;
 
   UsedRoboIgnoreDirective();
 
@@ -6641,7 +6353,7 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (resourceName != null) 'resourceName': resourceName,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (resourceName != null) 'resourceName': resourceName!,
       };
 }
diff --git a/generated/googleapis_beta/lib/transcoder/v1beta1.dart b/generated/googleapis_beta/lib/transcoder/v1beta1.dart
index 6236ad7..ee5d22c 100644
--- a/generated/googleapis_beta/lib/transcoder/v1beta1.dart
+++ b/generated/googleapis_beta/lib/transcoder/v1beta1.dart
@@ -113,14 +113,10 @@
   async.Future<JobTemplate> create(
     JobTemplate request,
     core.String parent, {
-    core.String jobTemplateId,
-    core.String $fields,
+    core.String? jobTemplateId,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if (jobTemplateId != null) 'jobTemplateId': [jobTemplateId],
       if ($fields != null) 'fields': [$fields],
@@ -161,11 +157,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -201,11 +194,8 @@
   /// this method will complete with the same error.
   async.Future<JobTemplate> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -247,13 +237,10 @@
   /// this method will complete with the same error.
   async.Future<ListJobTemplatesResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -303,13 +290,9 @@
   async.Future<Job> create(
     Job request,
     core.String parent, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    final _body =
-        request == null ? null : convert.json.encode(request.toJson());
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
+    final _body = convert.json.encode(request.toJson());
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -347,11 +330,8 @@
   /// this method will complete with the same error.
   async.Future<Empty> delete(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -387,11 +367,8 @@
   /// this method will complete with the same error.
   async.Future<Job> get(
     core.String name, {
-    core.String $fields,
+    core.String? $fields,
   }) async {
-    if (name == null) {
-      throw core.ArgumentError('Parameter name is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if ($fields != null) 'fields': [$fields],
     };
@@ -430,13 +407,10 @@
   /// this method will complete with the same error.
   async.Future<ListJobsResponse> list(
     core.String parent, {
-    core.int pageSize,
-    core.String pageToken,
-    core.String $fields,
+    core.int? pageSize,
+    core.String? pageToken,
+    core.String? $fields,
   }) async {
-    if (parent == null) {
-      throw core.ArgumentError('Parameter parent is required.');
-    }
     final _queryParams = <core.String, core.List<core.String>>{
       if (pageSize != null) 'pageSize': ['${pageSize}'],
       if (pageToken != null) 'pageToken': [pageToken],
@@ -462,7 +436,7 @@
   /// timeline.
   ///
   /// The default is `0s`.
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   AdBreak();
 
@@ -472,8 +446,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
       };
 }
 
@@ -484,7 +458,7 @@
   /// This URI is inserted into the M3U8 header.
   ///
   /// Required.
-  core.String keyUri;
+  core.String? keyUri;
 
   Aes128Encryption();
 
@@ -494,21 +468,21 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyUri != null) 'keyUri': keyUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyUri != null) 'keyUri': keyUri!,
       };
 }
 
 /// Animation types.
 class Animation {
   /// End previous animation.
-  AnimationEnd animationEnd;
+  AnimationEnd? animationEnd;
 
   /// Display overlay object with fade animation.
-  AnimationFade animationFade;
+  AnimationFade? animationFade;
 
   /// Display static overlay object.
-  AnimationStatic animationStatic;
+  AnimationStatic? animationStatic;
 
   Animation();
 
@@ -527,11 +501,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (animationEnd != null) 'animationEnd': animationEnd.toJson(),
-        if (animationFade != null) 'animationFade': animationFade.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (animationEnd != null) 'animationEnd': animationEnd!.toJson(),
+        if (animationFade != null) 'animationFade': animationFade!.toJson(),
         if (animationStatic != null)
-          'animationStatic': animationStatic.toJson(),
+          'animationStatic': animationStatic!.toJson(),
       };
 }
 
@@ -543,7 +517,7 @@
   /// The time to end overlay object, in seconds.
   ///
   /// Default: 0
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   AnimationEnd();
 
@@ -553,8 +527,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
       };
 }
 
@@ -563,7 +537,7 @@
   /// The time to end the fade animation, in seconds.
   ///
   /// Default: `start_time_offset` + 1s
-  core.String endTimeOffset;
+  core.String? endTimeOffset;
 
   /// Type of fade animation: `FADE_IN` or `FADE_OUT`.
   ///
@@ -572,12 +546,12 @@
   /// - "FADE_TYPE_UNSPECIFIED" : The fade type is not specified.
   /// - "FADE_IN" : Fade the overlay object into view.
   /// - "FADE_OUT" : Fade the overlay object out of view.
-  core.String fadeType;
+  core.String? fadeType;
 
   /// The time to start the fade animation, in seconds.
   ///
   /// Default: 0
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   /// Normalized coordinates based on output video resolution.
   ///
@@ -585,7 +559,7 @@
   /// overlay object. For example, use the x and y coordinates {0,0} to position
   /// the top-left corner of the overlay animation in the top-left corner of the
   /// output video.
-  NormalizedCoordinate xy;
+  NormalizedCoordinate? xy;
 
   AnimationFade();
 
@@ -605,11 +579,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset,
-        if (fadeType != null) 'fadeType': fadeType,
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
-        if (xy != null) 'xy': xy.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset!,
+        if (fadeType != null) 'fadeType': fadeType!,
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
+        if (xy != null) 'xy': xy!.toJson(),
       };
 }
 
@@ -618,7 +592,7 @@
   /// The time to start displaying the overlay object, in seconds.
   ///
   /// Default: 0
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   /// Normalized coordinates based on output video resolution.
   ///
@@ -626,7 +600,7 @@
   /// overlay object. For example, use the x and y coordinates {0,0} to position
   /// the top-left corner of the overlay animation in the top-left corner of the
   /// output video.
-  NormalizedCoordinate xy;
+  NormalizedCoordinate? xy;
 
   AnimationStatic();
 
@@ -640,9 +614,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
-        if (xy != null) 'xy': xy.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
+        if (xy != null) 'xy': xy!.toJson(),
       };
 }
 
@@ -651,12 +625,12 @@
   /// Enable boosting high frequency components.
   ///
   /// The default is `false`.
-  core.bool highBoost;
+  core.bool? highBoost;
 
   /// Enable boosting low frequency components.
   ///
   /// The default is `false`.
-  core.bool lowBoost;
+  core.bool? lowBoost;
 
   /// Specify audio loudness normalization in loudness units relative to full
   /// scale (LUFS).
@@ -667,7 +641,7 @@
   /// * -18 is the ReplayGain standard * -16 is the prior standard for stereo
   /// audio * -14 is the new online audio standard recommended by Spotify, as
   /// well as Amazon Echo * 0 disables normalization
-  core.double lufs;
+  core.double? lufs;
 
   Audio();
 
@@ -683,10 +657,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (highBoost != null) 'highBoost': highBoost,
-        if (lowBoost != null) 'lowBoost': lowBoost,
-        if (lufs != null) 'lufs': lufs,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (highBoost != null) 'highBoost': highBoost!,
+        if (lowBoost != null) 'lowBoost': lowBoost!,
+        if (lufs != null) 'lufs': lufs!,
       };
 }
 
@@ -695,13 +669,13 @@
   /// List of `Channel`s for this audio stream.
   ///
   /// for in-depth explanation.
-  core.List<AudioChannel> channels;
+  core.List<AudioChannel>? channels;
 
   /// The `EditAtom.key` that references the atom with audio inputs in the
   /// `Job.edit_list`.
   ///
   /// Required.
-  core.String key;
+  core.String? key;
 
   AudioAtom();
 
@@ -717,17 +691,17 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (channels != null)
-          'channels': channels.map((value) => value.toJson()).toList(),
-        if (key != null) 'key': key,
+          'channels': channels!.map((value) => value.toJson()).toList(),
+        if (key != null) 'key': key!,
       };
 }
 
 /// The audio channel.
 class AudioChannel {
   /// List of `Job.inputs` for this audio channel.
-  core.List<AudioChannelInput> inputs;
+  core.List<AudioChannelInput>? inputs;
 
   AudioChannel();
 
@@ -740,9 +714,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (inputs != null)
-          'inputs': inputs.map((value) => value.toJson()).toList(),
+          'inputs': inputs!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -751,23 +725,23 @@
   /// The zero-based index of the channel in the input file.
   ///
   /// Required.
-  core.int channel;
+  core.int? channel;
 
   /// Audio volume control in dB.
   ///
   /// Negative values decrease volume, positive values increase. The default is
   /// 0.
-  core.double gainDb;
+  core.double? gainDb;
 
   /// The `Input.key` that identifies the input file.
   ///
   /// Required.
-  core.String key;
+  core.String? key;
 
   /// The zero-based index of the track in the input file.
   ///
   /// Required.
-  core.int track;
+  core.int? track;
 
   AudioChannelInput();
 
@@ -786,11 +760,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (channel != null) 'channel': channel,
-        if (gainDb != null) 'gainDb': gainDb,
-        if (key != null) 'key': key,
-        if (track != null) 'track': track,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (channel != null) 'channel': channel!,
+        if (gainDb != null) 'gainDb': gainDb!,
+        if (key != null) 'key': key!,
+        if (track != null) 'track': track!,
       };
 }
 
@@ -801,12 +775,12 @@
   /// Must be between 1 and 10,000,000.
   ///
   /// Required.
-  core.int bitrateBps;
+  core.int? bitrateBps;
 
   /// Number of audio channels.
   ///
   /// Must be between 1 and 6. The default is 2.
-  core.int channelCount;
+  core.int? channelCount;
 
   /// A list of channel names specifying layout of the audio channels.
   ///
@@ -815,21 +789,21 @@
   /// Supported channel names: - 'fl' - Front left channel - 'fr' - Front right
   /// channel - 'sl' - Side left channel - 'sr' - Side right channel - 'fc' -
   /// Front center channel - 'lfe' - Low frequency
-  core.List<core.String> channelLayout;
+  core.List<core.String>? channelLayout;
 
   /// The codec for this audio stream.
   ///
   /// The default is `"aac"`. Supported audio codecs: - 'aac' - 'aac-he' -
   /// 'aac-he-v2' - 'mp3' - 'ac3' - 'eac3'
-  core.String codec;
+  core.String? codec;
 
   /// The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
-  core.List<AudioAtom> mapping;
+  core.List<AudioAtom>? mapping;
 
   /// The audio sample rate in Hertz.
   ///
   /// The default is 48000 Hertz.
-  core.int sampleRateHertz;
+  core.int? sampleRateHertz;
 
   AudioStream();
 
@@ -859,14 +833,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bitrateBps != null) 'bitrateBps': bitrateBps,
-        if (channelCount != null) 'channelCount': channelCount,
-        if (channelLayout != null) 'channelLayout': channelLayout,
-        if (codec != null) 'codec': codec,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bitrateBps != null) 'bitrateBps': bitrateBps!,
+        if (channelCount != null) 'channelCount': channelCount!,
+        if (channelLayout != null) 'channelLayout': channelLayout!,
+        if (codec != null) 'codec': codec!,
         if (mapping != null)
-          'mapping': mapping.map((value) => value.toJson()).toList(),
-        if (sampleRateHertz != null) 'sampleRateHertz': sampleRateHertz,
+          'mapping': mapping!.map((value) => value.toJson()).toList(),
+        if (sampleRateHertz != null) 'sampleRateHertz': sampleRateHertz!,
       };
 }
 
@@ -876,19 +850,19 @@
   ///
   /// Enter a value between -1 and 1, where -1 is minimum brightness and 1 is
   /// maximum brightness. 0 is no change. The default is 0.
-  core.double brightness;
+  core.double? brightness;
 
   /// Control black and white contrast of the video.
   ///
   /// Enter a value between -1 and 1, where -1 is minimum contrast and 1 is
   /// maximum contrast. 0 is no change. The default is 0.
-  core.double contrast;
+  core.double? contrast;
 
   /// Control color saturation of the video.
   ///
   /// Enter a value between -1 and 1, where -1 is fully desaturated and 1 is
   /// maximum saturation. 0 is no change. The default is 0.
-  core.double saturation;
+  core.double? saturation;
 
   Color();
 
@@ -904,10 +878,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (brightness != null) 'brightness': brightness,
-        if (contrast != null) 'contrast': contrast,
-        if (saturation != null) 'saturation': saturation,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (brightness != null) 'brightness': brightness!,
+        if (contrast != null) 'contrast': contrast!,
+        if (saturation != null) 'saturation': saturation!,
       };
 }
 
@@ -918,22 +892,22 @@
   /// The number of pixels to crop from the bottom.
   ///
   /// The default is 0.
-  core.int bottomPixels;
+  core.int? bottomPixels;
 
   /// The number of pixels to crop from the left.
   ///
   /// The default is 0.
-  core.int leftPixels;
+  core.int? leftPixels;
 
   /// The number of pixels to crop from the right.
   ///
   /// The default is 0.
-  core.int rightPixels;
+  core.int? rightPixels;
 
   /// The number of pixels to crop from the top.
   ///
   /// The default is 0.
-  core.int topPixels;
+  core.int? topPixels;
 
   Crop();
 
@@ -952,11 +926,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bottomPixels != null) 'bottomPixels': bottomPixels,
-        if (leftPixels != null) 'leftPixels': leftPixels,
-        if (rightPixels != null) 'rightPixels': rightPixels,
-        if (topPixels != null) 'topPixels': topPixels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bottomPixels != null) 'bottomPixels': bottomPixels!,
+        if (leftPixels != null) 'leftPixels': leftPixels!,
+        if (rightPixels != null) 'rightPixels': rightPixels!,
+        if (topPixels != null) 'topPixels': topPixels!,
       };
 }
 
@@ -965,13 +939,13 @@
   /// Enable deblocker.
   ///
   /// The default is `false`.
-  core.bool enabled;
+  core.bool? enabled;
 
   /// Set strength of the deblocker.
   ///
   /// Enter a value between 0 and 1. The higher the value, the stronger the
   /// block removal. 0 is no deblocking. The default is 0.
-  core.double strength;
+  core.double? strength;
 
   Deblock();
 
@@ -984,9 +958,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (enabled != null) 'enabled': enabled,
-        if (strength != null) 'strength': strength,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (enabled != null) 'enabled': enabled!,
+        if (strength != null) 'strength': strength!,
       };
 }
 
@@ -996,13 +970,13 @@
   ///
   /// Enter a value between 0 and 1. The higher the value, the smoother the
   /// image. 0 is no denoising. The default is 0.
-  core.double strength;
+  core.double? strength;
 
   /// Set the denoiser mode.
   ///
   /// The default is `"standard"`. Supported denoiser modes: - 'standard' -
   /// 'grain'
-  core.String tune;
+  core.String? tune;
 
   Denoise();
 
@@ -1015,9 +989,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (strength != null) 'strength': strength,
-        if (tune != null) 'tune': tune,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (strength != null) 'strength': strength!,
+        if (tune != null) 'tune': tune!,
       };
 }
 
@@ -1027,22 +1001,22 @@
   ///
   /// When `end_time_offset` is not specified, the `inputs` are used until the
   /// end of the atom.
-  core.String endTimeOffset;
+  core.String? endTimeOffset;
 
   /// List of `Input.key`s identifying files that should be used in this atom.
   ///
   /// The listed `inputs` must have the same timeline.
-  core.List<core.String> inputs;
+  core.List<core.String>? inputs;
 
   /// A unique key for this atom.
   ///
   /// Must be specified when using advanced mapping.
-  core.String key;
+  core.String? key;
 
   /// Start time in seconds for the atom, relative to the input file timeline.
   ///
   /// The default is `0s`.
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   EditAtom();
 
@@ -1063,11 +1037,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset,
-        if (inputs != null) 'inputs': inputs,
-        if (key != null) 'key': key,
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset!,
+        if (inputs != null) 'inputs': inputs!,
+        if (key != null) 'key': key!,
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
       };
 }
 
@@ -1077,18 +1051,18 @@
 /// different output formats.
 class ElementaryStream {
   /// Encoding of an audio stream.
-  AudioStream audioStream;
+  AudioStream? audioStream;
 
   /// A unique key for this elementary stream.
-  core.String key;
+  core.String? key;
 
   /// Encoding of a text stream.
   ///
   /// For example, closed captions or subtitles.
-  TextStream textStream;
+  TextStream? textStream;
 
   /// Encoding of a video stream.
-  VideoStream videoStream;
+  VideoStream? videoStream;
 
   ElementaryStream();
 
@@ -1110,11 +1084,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (audioStream != null) 'audioStream': audioStream.toJson(),
-        if (key != null) 'key': key,
-        if (textStream != null) 'textStream': textStream.toJson(),
-        if (videoStream != null) 'videoStream': videoStream.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (audioStream != null) 'audioStream': audioStream!.toJson(),
+        if (key != null) 'key': key!,
+        if (textStream != null) 'textStream': textStream!.toJson(),
+        if (videoStream != null) 'videoStream': videoStream!.toJson(),
       };
 }
 
@@ -1132,30 +1106,30 @@
       // ignore: avoid_unused_constructor_parameters
       core.Map _json);
 
-  core.Map<core.String, core.Object> toJson() => {};
+  core.Map<core.String, core.Object?> toJson() => {};
 }
 
 /// Encryption settings.
 class Encryption {
   /// Configuration for AES-128 encryption.
-  Aes128Encryption aes128;
+  Aes128Encryption? aes128;
 
   /// 128 bit Initialization Vector (IV) represented as lowercase hexadecimal
   /// digits.
   ///
   /// Required.
-  core.String iv;
+  core.String? iv;
 
   /// 128 bit encryption key represented as lowercase hexadecimal digits.
   ///
   /// Required.
-  core.String key;
+  core.String? key;
 
   /// Configuration for MPEG Common Encryption (MPEG-CENC).
-  MpegCommonEncryption mpegCenc;
+  MpegCommonEncryption? mpegCenc;
 
   /// Configuration for SAMPLE-AES encryption.
-  SampleAesEncryption sampleAes;
+  SampleAesEncryption? sampleAes;
 
   Encryption();
 
@@ -1180,19 +1154,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (aes128 != null) 'aes128': aes128.toJson(),
-        if (iv != null) 'iv': iv,
-        if (key != null) 'key': key,
-        if (mpegCenc != null) 'mpegCenc': mpegCenc.toJson(),
-        if (sampleAes != null) 'sampleAes': sampleAes.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (aes128 != null) 'aes128': aes128!.toJson(),
+        if (iv != null) 'iv': iv!,
+        if (key != null) 'key': key!,
+        if (mpegCenc != null) 'mpegCenc': mpegCenc!.toJson(),
+        if (sampleAes != null) 'sampleAes': sampleAes!.toJson(),
       };
 }
 
 /// Additional information about the reasons for the failure.
 class FailureDetail {
   /// A description of the failure.
-  core.String description;
+  core.String? description;
 
   FailureDetail();
 
@@ -1202,8 +1176,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (description != null) 'description': description,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (description != null) 'description': description!,
       };
 }
 
@@ -1212,21 +1186,21 @@
   /// Target image opacity.
   ///
   /// Valid values: `1.0` (solid, default) to `0.0` (transparent).
-  core.double alpha;
+  core.double? alpha;
 
   /// Normalized image resolution, based on output video resolution.
   ///
   /// Valid values: `0.0`–`1.0`. To respect the original image aspect ratio, set
   /// either `x` or `y` to `0.0`. To use the original image resolution, set both
   /// `x` and `y` to `0.0`.
-  NormalizedCoordinate resolution;
+  NormalizedCoordinate? resolution;
 
   /// URI of the image in Cloud Storage.
   ///
   /// For example, `gs://bucket/inputs/image.jpeg`.
   ///
   /// Required.
-  core.String uri;
+  core.String? uri;
 
   Image();
 
@@ -1243,10 +1217,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (alpha != null) 'alpha': alpha,
-        if (resolution != null) 'resolution': resolution.toJson(),
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (alpha != null) 'alpha': alpha!,
+        if (resolution != null) 'resolution': resolution!.toJson(),
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -1255,17 +1229,17 @@
   /// A unique key for this input.
   ///
   /// Must be specified when using advanced mapping and edit lists.
-  core.String key;
+  core.String? key;
 
   /// Preprocessing configurations.
-  PreprocessingConfig preprocessingConfig;
+  PreprocessingConfig? preprocessingConfig;
 
   /// URI of the media.
   ///
   /// Input files must be at least 5 seconds in duration and stored in Cloud
   /// Storage (for example, `gs://bucket/inputs/file.mp4`). If empty, the value
   /// will be populated from `Job.input_uri`.
-  core.String uri;
+  core.String? uri;
 
   Input();
 
@@ -1282,28 +1256,28 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
         if (preprocessingConfig != null)
-          'preprocessingConfig': preprocessingConfig.toJson(),
-        if (uri != null) 'uri': uri,
+          'preprocessingConfig': preprocessingConfig!.toJson(),
+        if (uri != null) 'uri': uri!,
       };
 }
 
 /// Transcoding job resource.
 class Job {
   /// The configuration for this job.
-  JobConfig config;
+  JobConfig? config;
 
   /// The time the job was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time the transcoding finished.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// List of failure details.
   ///
@@ -1311,14 +1285,14 @@
   /// `failure_reason` is present. *Note*: This feature is not yet available.
   ///
   /// Output only.
-  core.List<FailureDetail> failureDetails;
+  core.List<FailureDetail>? failureDetails;
 
   /// A description of the reason for the failure.
   ///
   /// This property is always present when `state` is `FAILED`.
   ///
   /// Output only.
-  core.String failureReason;
+  core.String? failureReason;
 
   /// Input only.
   ///
@@ -1326,44 +1300,44 @@
   /// `Job.config.inputs` or `JobTemplate.config.inputs` when using template.
   /// URI of the media. Input files must be at least 5 seconds in duration and
   /// stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`).
-  core.String inputUri;
+  core.String? inputUri;
 
   /// The resource name of the job.
   ///
   /// Format: `projects/{project}/locations/{location}/jobs/{job}`
-  core.String name;
+  core.String? name;
 
   /// The origin URI.
   ///
   /// *Note*: This feature is not yet available.
   ///
   /// Output only.
-  OriginUri originUri;
+  OriginUri? originUri;
 
   /// Input only.
   ///
   /// Specify the `output_uri` to populate an empty `Job.config.output.uri` or
   /// `JobTemplate.config.output.uri` when using template. URI for the output
   /// file(s). For example, `gs://my-bucket/outputs/`.
-  core.String outputUri;
+  core.String? outputUri;
 
   /// Specify the priority of the job.
   ///
   /// Enter a value between 0 and 100, where 0 is the lowest priority and 100 is
   /// the highest priority. The default is 0.
-  core.int priority;
+  core.int? priority;
 
   /// Estimated fractional progress, from `0` to `1` for each step.
   ///
   /// *Note*: This feature is not yet available.
   ///
   /// Output only.
-  Progress progress;
+  Progress? progress;
 
   /// The time the transcoding started.
   ///
   /// Output only.
-  core.String startTime;
+  core.String? startTime;
 
   /// The current state of the job.
   ///
@@ -1376,21 +1350,21 @@
   /// - "SUCCEEDED" : The job has been completed successfully.
   /// - "FAILED" : The job has failed. For additional information, see
   /// `failure_reason` and `failure_details`
-  core.String state;
+  core.String? state;
 
   /// Input only.
   ///
   /// Specify the `template_id` to use for populating `Job.config`. The default
   /// is `preset/web-hd`. Preset Transcoder templates: - `preset/{preset_id}` -
   /// User defined JobTemplate: `{job_template_id}`
-  core.String templateId;
+  core.String? templateId;
 
   /// Job time to live value in days, which will be effective after job
   /// completion.
   ///
   /// Job should be deleted automatically after the given TTL. Enter a value
   /// between 1 and 90. The default is 30.
-  core.int ttlAfterCompletionDays;
+  core.int? ttlAfterCompletionDays;
 
   Job();
 
@@ -1448,25 +1422,25 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (config != null) 'config': config.toJson(),
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (config != null) 'config': config!.toJson(),
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
         if (failureDetails != null)
           'failureDetails':
-              failureDetails.map((value) => value.toJson()).toList(),
-        if (failureReason != null) 'failureReason': failureReason,
-        if (inputUri != null) 'inputUri': inputUri,
-        if (name != null) 'name': name,
-        if (originUri != null) 'originUri': originUri.toJson(),
-        if (outputUri != null) 'outputUri': outputUri,
-        if (priority != null) 'priority': priority,
-        if (progress != null) 'progress': progress.toJson(),
-        if (startTime != null) 'startTime': startTime,
-        if (state != null) 'state': state,
-        if (templateId != null) 'templateId': templateId,
+              failureDetails!.map((value) => value.toJson()).toList(),
+        if (failureReason != null) 'failureReason': failureReason!,
+        if (inputUri != null) 'inputUri': inputUri!,
+        if (name != null) 'name': name!,
+        if (originUri != null) 'originUri': originUri!.toJson(),
+        if (outputUri != null) 'outputUri': outputUri!,
+        if (priority != null) 'priority': priority!,
+        if (progress != null) 'progress': progress!.toJson(),
+        if (startTime != null) 'startTime': startTime!,
+        if (state != null) 'state': state!,
+        if (templateId != null) 'templateId': templateId!,
         if (ttlAfterCompletionDays != null)
-          'ttlAfterCompletionDays': ttlAfterCompletionDays,
+          'ttlAfterCompletionDays': ttlAfterCompletionDays!,
       };
 }
 
@@ -1475,36 +1449,36 @@
   /// List of ad breaks.
   ///
   /// Specifies where to insert ad break tags in the output manifests.
-  core.List<AdBreak> adBreaks;
+  core.List<AdBreak>? adBreaks;
 
   /// List of `Edit atom`s.
   ///
   /// Defines the ultimate timeline of the resulting file or manifest.
-  core.List<EditAtom> editList;
+  core.List<EditAtom>? editList;
 
   /// List of elementary streams.
-  core.List<ElementaryStream> elementaryStreams;
+  core.List<ElementaryStream>? elementaryStreams;
 
   /// List of input assets stored in Cloud Storage.
-  core.List<Input> inputs;
+  core.List<Input>? inputs;
 
   /// List of output manifests.
-  core.List<Manifest> manifests;
+  core.List<Manifest>? manifests;
 
   /// List of multiplexing settings for output streams.
-  core.List<MuxStream> muxStreams;
+  core.List<MuxStream>? muxStreams;
 
   /// Output configuration.
-  Output output;
+  Output? output;
 
   /// List of overlays on the output video, in descending Z-order.
-  core.List<Overlay> overlays;
+  core.List<Overlay>? overlays;
 
   /// Destination on Pub/Sub.
-  PubsubDestination pubsubDestination;
+  PubsubDestination? pubsubDestination;
 
   /// List of output sprite sheets.
-  core.List<SpriteSheet> spriteSheets;
+  core.List<SpriteSheet>? spriteSheets;
 
   JobConfig();
 
@@ -1567,40 +1541,40 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (adBreaks != null)
-          'adBreaks': adBreaks.map((value) => value.toJson()).toList(),
+          'adBreaks': adBreaks!.map((value) => value.toJson()).toList(),
         if (editList != null)
-          'editList': editList.map((value) => value.toJson()).toList(),
+          'editList': editList!.map((value) => value.toJson()).toList(),
         if (elementaryStreams != null)
           'elementaryStreams':
-              elementaryStreams.map((value) => value.toJson()).toList(),
+              elementaryStreams!.map((value) => value.toJson()).toList(),
         if (inputs != null)
-          'inputs': inputs.map((value) => value.toJson()).toList(),
+          'inputs': inputs!.map((value) => value.toJson()).toList(),
         if (manifests != null)
-          'manifests': manifests.map((value) => value.toJson()).toList(),
+          'manifests': manifests!.map((value) => value.toJson()).toList(),
         if (muxStreams != null)
-          'muxStreams': muxStreams.map((value) => value.toJson()).toList(),
-        if (output != null) 'output': output.toJson(),
+          'muxStreams': muxStreams!.map((value) => value.toJson()).toList(),
+        if (output != null) 'output': output!.toJson(),
         if (overlays != null)
-          'overlays': overlays.map((value) => value.toJson()).toList(),
+          'overlays': overlays!.map((value) => value.toJson()).toList(),
         if (pubsubDestination != null)
-          'pubsubDestination': pubsubDestination.toJson(),
+          'pubsubDestination': pubsubDestination!.toJson(),
         if (spriteSheets != null)
-          'spriteSheets': spriteSheets.map((value) => value.toJson()).toList(),
+          'spriteSheets': spriteSheets!.map((value) => value.toJson()).toList(),
       };
 }
 
 /// Transcoding job template resource.
 class JobTemplate {
   /// The configuration for this template.
-  JobConfig config;
+  JobConfig? config;
 
   /// The resource name of the job template.
   ///
   /// Format:
   /// `projects/{project}/locations/{location}/jobTemplates/{job_template}`
-  core.String name;
+  core.String? name;
 
   JobTemplate();
 
@@ -1614,19 +1588,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (config != null) 'config': config.toJson(),
-        if (name != null) 'name': name,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (config != null) 'config': config!.toJson(),
+        if (name != null) 'name': name!,
       };
 }
 
 /// Response message for `TranscoderService.ListJobTemplates`.
 class ListJobTemplatesResponse {
   /// List of job templates in the specified region.
-  core.List<JobTemplate> jobTemplates;
+  core.List<JobTemplate>? jobTemplates;
 
   /// The pagination token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListJobTemplatesResponse();
 
@@ -1642,20 +1616,20 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (jobTemplates != null)
-          'jobTemplates': jobTemplates.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+          'jobTemplates': jobTemplates!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
 /// Response message for `TranscoderService.ListJobs`.
 class ListJobsResponse {
   /// List of jobs in the specified region.
-  core.List<Job> jobs;
+  core.List<Job>? jobs;
 
   /// The pagination token.
-  core.String nextPageToken;
+  core.String? nextPageToken;
 
   ListJobsResponse();
 
@@ -1671,9 +1645,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (jobs != null) 'jobs': jobs.map((value) => value.toJson()).toList(),
-        if (nextPageToken != null) 'nextPageToken': nextPageToken,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (jobs != null) 'jobs': jobs!.map((value) => value.toJson()).toList(),
+        if (nextPageToken != null) 'nextPageToken': nextPageToken!,
       };
 }
 
@@ -1683,7 +1657,7 @@
   ///
   /// The default is `"manifest"` with the extension suffix corresponding to the
   /// `Manifest.type`.
-  core.String fileName;
+  core.String? fileName;
 
   /// List of user given `MuxStream.key`s that should appear in this manifest.
   ///
@@ -1692,7 +1666,7 @@
   /// `Manifest.mux_streams`.
   ///
   /// Required.
-  core.List<core.String> muxStreams;
+  core.List<core.String>? muxStreams;
 
   /// Type of the manifest, can be "HLS" or "DASH".
   ///
@@ -1703,7 +1677,7 @@
   /// `".m3u8"`.
   /// - "DASH" : Create `"DASH"` manifest. The corresponding file extension is
   /// `".mpd"`.
-  core.String type;
+  core.String? type;
 
   Manifest();
 
@@ -1721,10 +1695,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (fileName != null) 'fileName': fileName,
-        if (muxStreams != null) 'muxStreams': muxStreams,
-        if (type != null) 'type': type,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (fileName != null) 'fileName': fileName!,
+        if (muxStreams != null) 'muxStreams': muxStreams!,
+        if (type != null) 'type': type!,
       };
 }
 
@@ -1734,14 +1708,14 @@
   /// common encryption.
   ///
   /// Required.
-  core.String keyId;
+  core.String? keyId;
 
   /// Specify the encryption scheme.
   ///
   /// Supported encryption schemes: - 'cenc' - 'cbcs'
   ///
   /// Required.
-  core.String scheme;
+  core.String? scheme;
 
   MpegCommonEncryption();
 
@@ -1754,9 +1728,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyId != null) 'keyId': keyId,
-        if (scheme != null) 'scheme': scheme,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyId != null) 'keyId': keyId!,
+        if (scheme != null) 'scheme': scheme!,
       };
 }
 
@@ -1766,13 +1740,13 @@
   ///
   /// The default is `"mp4"` Supported container formats: - 'ts' - 'fmp4'- the
   /// corresponding file extension is `".m4s"` - 'mp4' - 'vtt'
-  core.String container;
+  core.String? container;
 
   /// List of `ElementaryStream.key`s multiplexed in this stream.
-  core.List<core.String> elementaryStreams;
+  core.List<core.String>? elementaryStreams;
 
   /// Encryption settings.
-  Encryption encryption;
+  Encryption? encryption;
 
   /// The name of the generated file.
   ///
@@ -1780,16 +1754,16 @@
   /// the `MuxStream.container`. Individual segments also have an incremental
   /// 10-digit zero-padded suffix starting from 0 before the extension, such as
   /// `"mux_stream0000000123.ts"`.
-  core.String fileName;
+  core.String? fileName;
 
   /// A unique key for this multiplexed stream.
   ///
   /// HLS media manifests will be named `MuxStream.key` with the `".m3u8"`
   /// extension suffix.
-  core.String key;
+  core.String? key;
 
   /// Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
-  SegmentSettings segmentSettings;
+  SegmentSettings? segmentSettings;
 
   MuxStream();
 
@@ -1818,14 +1792,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (container != null) 'container': container,
-        if (elementaryStreams != null) 'elementaryStreams': elementaryStreams,
-        if (encryption != null) 'encryption': encryption.toJson(),
-        if (fileName != null) 'fileName': fileName,
-        if (key != null) 'key': key,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (container != null) 'container': container!,
+        if (elementaryStreams != null) 'elementaryStreams': elementaryStreams!,
+        if (encryption != null) 'encryption': encryption!.toJson(),
+        if (fileName != null) 'fileName': fileName!,
+        if (key != null) 'key': key!,
         if (segmentSettings != null)
-          'segmentSettings': segmentSettings.toJson(),
+          'segmentSettings': segmentSettings!.toJson(),
       };
 }
 
@@ -1834,10 +1808,10 @@
 /// Default: `{0.0, 0.0}`
 class NormalizedCoordinate {
   /// Normalized x coordinate.
-  core.double x;
+  core.double? x;
 
   /// Normalized y coordinate.
-  core.double y;
+  core.double? y;
 
   NormalizedCoordinate();
 
@@ -1850,9 +1824,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (x != null) 'x': x,
-        if (y != null) 'y': y,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (x != null) 'x': x!,
+        if (y != null) 'y': y!,
       };
 }
 
@@ -1861,7 +1835,7 @@
   /// API version used to start the operation.
   ///
   /// Output only.
-  core.String apiVersion;
+  core.String? apiVersion;
 
   /// Identifies whether the user has requested cancellation of the operation.
   ///
@@ -1870,32 +1844,32 @@
   /// `Code.CANCELLED`.
   ///
   /// Output only.
-  core.bool cancelRequested;
+  core.bool? cancelRequested;
 
   /// The time the operation was created.
   ///
   /// Output only.
-  core.String createTime;
+  core.String? createTime;
 
   /// The time the operation finished running.
   ///
   /// Output only.
-  core.String endTime;
+  core.String? endTime;
 
   /// Human-readable status of the operation, if any.
   ///
   /// Output only.
-  core.String statusDetail;
+  core.String? statusDetail;
 
   /// Server-defined resource path for the target of the operation.
   ///
   /// Output only.
-  core.String target;
+  core.String? target;
 
   /// Name of the verb executed by the operation.
   ///
   /// Output only.
-  core.String verb;
+  core.String? verb;
 
   OperationMetadata();
 
@@ -1923,14 +1897,14 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (apiVersion != null) 'apiVersion': apiVersion,
-        if (cancelRequested != null) 'cancelRequested': cancelRequested,
-        if (createTime != null) 'createTime': createTime,
-        if (endTime != null) 'endTime': endTime,
-        if (statusDetail != null) 'statusDetail': statusDetail,
-        if (target != null) 'target': target,
-        if (verb != null) 'verb': verb,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (apiVersion != null) 'apiVersion': apiVersion!,
+        if (cancelRequested != null) 'cancelRequested': cancelRequested!,
+        if (createTime != null) 'createTime': createTime!,
+        if (endTime != null) 'endTime': endTime!,
+        if (statusDetail != null) 'statusDetail': statusDetail!,
+        if (target != null) 'target': target!,
+        if (verb != null) 'verb': verb!,
       };
 }
 
@@ -1939,12 +1913,12 @@
   /// Dash manifest URI.
   ///
   /// If multiple Dash manifests are created, only the first one is listed.
-  core.String dash;
+  core.String? dash;
 
   /// HLS manifest URI per https://tools.ietf.org/html/rfc8216#section-4.3.4.
   ///
   /// If multiple HLS manifests are created, only the first one is listed.
-  core.String hls;
+  core.String? hls;
 
   OriginUri();
 
@@ -1957,9 +1931,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (dash != null) 'dash': dash,
-        if (hls != null) 'hls': hls,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (dash != null) 'dash': dash!,
+        if (hls != null) 'hls': hls!,
       };
 }
 
@@ -1969,7 +1943,7 @@
   ///
   /// For example, `gs://my-bucket/outputs/`. If empty the value is populated
   /// from `Job.output_uri`.
-  core.String uri;
+  core.String? uri;
 
   Output();
 
@@ -1979,8 +1953,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (uri != null) 'uri': uri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (uri != null) 'uri': uri!,
       };
 }
 
@@ -1989,10 +1963,10 @@
   /// List of Animations.
   ///
   /// The list should be chronological, without any time overlap.
-  core.List<Animation> animations;
+  core.List<Animation>? animations;
 
   /// Image overlay.
-  Image image;
+  Image? image;
 
   Overlay();
 
@@ -2009,10 +1983,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (animations != null)
-          'animations': animations.map((value) => value.toJson()).toList(),
-        if (image != null) 'image': image.toJson(),
+          'animations': animations!.map((value) => value.toJson()).toList(),
+        if (image != null) 'image': image!.toJson(),
       };
 }
 
@@ -2024,22 +1998,22 @@
   /// The number of pixels to add to the bottom.
   ///
   /// The default is 0.
-  core.int bottomPixels;
+  core.int? bottomPixels;
 
   /// The number of pixels to add to the left.
   ///
   /// The default is 0.
-  core.int leftPixels;
+  core.int? leftPixels;
 
   /// The number of pixels to add to the right.
   ///
   /// The default is 0.
-  core.int rightPixels;
+  core.int? rightPixels;
 
   /// The number of pixels to add to the top.
   ///
   /// The default is 0.
-  core.int topPixels;
+  core.int? topPixels;
 
   Pad();
 
@@ -2058,33 +2032,33 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (bottomPixels != null) 'bottomPixels': bottomPixels,
-        if (leftPixels != null) 'leftPixels': leftPixels,
-        if (rightPixels != null) 'rightPixels': rightPixels,
-        if (topPixels != null) 'topPixels': topPixels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (bottomPixels != null) 'bottomPixels': bottomPixels!,
+        if (leftPixels != null) 'leftPixels': leftPixels!,
+        if (rightPixels != null) 'rightPixels': rightPixels!,
+        if (topPixels != null) 'topPixels': topPixels!,
       };
 }
 
 /// Preprocessing configurations.
 class PreprocessingConfig {
   /// Audio preprocessing configuration.
-  Audio audio;
+  Audio? audio;
 
   /// Color preprocessing configuration.
-  Color color;
+  Color? color;
 
   /// Specify the video cropping configuration.
-  Crop crop;
+  Crop? crop;
 
   /// Deblock preprocessing configuration.
-  Deblock deblock;
+  Deblock? deblock;
 
   /// Denoise preprocessing configuration.
-  Denoise denoise;
+  Denoise? denoise;
 
   /// Specify the video pad filter configuration.
-  Pad pad;
+  Pad? pad;
 
   PreprocessingConfig();
 
@@ -2114,29 +2088,29 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (audio != null) 'audio': audio.toJson(),
-        if (color != null) 'color': color.toJson(),
-        if (crop != null) 'crop': crop.toJson(),
-        if (deblock != null) 'deblock': deblock.toJson(),
-        if (denoise != null) 'denoise': denoise.toJson(),
-        if (pad != null) 'pad': pad.toJson(),
+  core.Map<core.String, core.Object?> toJson() => {
+        if (audio != null) 'audio': audio!.toJson(),
+        if (color != null) 'color': color!.toJson(),
+        if (crop != null) 'crop': crop!.toJson(),
+        if (deblock != null) 'deblock': deblock!.toJson(),
+        if (denoise != null) 'denoise': denoise!.toJson(),
+        if (pad != null) 'pad': pad!.toJson(),
       };
 }
 
 /// Estimated fractional progress for each step, from `0` to `1`.
 class Progress {
   /// Estimated fractional progress for `analyzing` step.
-  core.double analyzed;
+  core.double? analyzed;
 
   /// Estimated fractional progress for `encoding` step.
-  core.double encoded;
+  core.double? encoded;
 
   /// Estimated fractional progress for `notifying` step.
-  core.double notified;
+  core.double? notified;
 
   /// Estimated fractional progress for `uploading` step.
-  core.double uploaded;
+  core.double? uploaded;
 
   Progress();
 
@@ -2155,11 +2129,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (analyzed != null) 'analyzed': analyzed,
-        if (encoded != null) 'encoded': encoded,
-        if (notified != null) 'notified': notified,
-        if (uploaded != null) 'uploaded': uploaded,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (analyzed != null) 'analyzed': analyzed!,
+        if (encoded != null) 'encoded': encoded!,
+        if (notified != null) 'notified': notified!,
+        if (uploaded != null) 'uploaded': uploaded!,
       };
 }
 
@@ -2168,7 +2142,7 @@
   /// The name of the Pub/Sub topic to publish job completion notification to.
   ///
   /// For example: `projects/{project}/topics/{topic}`.
-  core.String topic;
+  core.String? topic;
 
   PubsubDestination();
 
@@ -2178,8 +2152,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (topic != null) 'topic': topic,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (topic != null) 'topic': topic!,
       };
 }
 
@@ -2190,7 +2164,7 @@
   /// This URI is inserted into the M3U8 header.
   ///
   /// Required.
-  core.String keyUri;
+  core.String? keyUri;
 
   SampleAesEncryption();
 
@@ -2200,8 +2174,8 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (keyUri != null) 'keyUri': keyUri,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (keyUri != null) 'keyUri': keyUri!,
       };
 }
 
@@ -2212,14 +2186,14 @@
   /// The default is `false`.
   ///
   /// Required.
-  core.bool individualSegments;
+  core.bool? individualSegments;
 
   /// Duration of the segments in seconds.
   ///
   /// The default is `"6.0s"`. Note that `segmentDuration` must be greater than
   /// or equal to \[`gopDuration`\](#videostream), and `segmentDuration` must be
   /// divisible by \[`gopDuration`\](#videostream).
-  core.String segmentDuration;
+  core.String? segmentDuration;
 
   SegmentSettings();
 
@@ -2232,10 +2206,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (individualSegments != null)
-          'individualSegments': individualSegments,
-        if (segmentDuration != null) 'segmentDuration': segmentDuration,
+          'individualSegments': individualSegments!,
+        if (segmentDuration != null) 'segmentDuration': segmentDuration!,
       };
 }
 
@@ -2244,13 +2218,13 @@
   /// The maximum number of sprites per row in a sprite sheet.
   ///
   /// The default is 0, which indicates no maximum limit.
-  core.int columnCount;
+  core.int? columnCount;
 
   /// End time in seconds, relative to the output file timeline.
   ///
   /// When `end_time_offset` is not specified, the sprites are generated until
   /// the end of the output file.
-  core.String endTimeOffset;
+  core.String? endTimeOffset;
 
   /// File name prefix for the generated sprite sheets.
   ///
@@ -2258,55 +2232,55 @@
   /// from 0 before the extension, such as `"sprite_sheet0000000123.jpeg"`.
   ///
   /// Required.
-  core.String filePrefix;
+  core.String? filePrefix;
 
   /// Format type.
   ///
   /// The default is `"jpeg"`. Supported formats: - 'jpeg'
-  core.String format;
+  core.String? format;
 
   /// Starting from `0s`, create sprites at regular intervals.
   ///
   /// Specify the interval value in seconds.
-  core.String interval;
+  core.String? interval;
 
   /// The quality of the generated sprite sheet.
   ///
   /// Enter a value between 1 and 100, where 1 is the lowest quality and 100 is
   /// the highest quality. The default is 100. A high quality value corresponds
   /// to a low image data compression ratio.
-  core.int quality;
+  core.int? quality;
 
   /// The maximum number of rows per sprite sheet.
   ///
   /// When the sprite sheet is full, a new sprite sheet is created. The default
   /// is 0, which indicates no maximum limit.
-  core.int rowCount;
+  core.int? rowCount;
 
   /// The height of sprite in pixels.
   ///
   /// Must be an even integer.
   ///
   /// Required.
-  core.int spriteHeightPixels;
+  core.int? spriteHeightPixels;
 
   /// The width of sprite in pixels.
   ///
   /// Must be an even integer.
   ///
   /// Required.
-  core.int spriteWidthPixels;
+  core.int? spriteWidthPixels;
 
   /// Start time in seconds, relative to the output file timeline.
   ///
   /// Determines the first sprite to pick. The default is `0s`.
-  core.String startTimeOffset;
+  core.String? startTimeOffset;
 
   /// Total number of sprites.
   ///
   /// Create the specified number of sprites distributed evenly across the
   /// timeline of the output media. The default is 100.
-  core.int totalCount;
+  core.int? totalCount;
 
   SpriteSheet();
 
@@ -2346,19 +2320,19 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (columnCount != null) 'columnCount': columnCount,
-        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset,
-        if (filePrefix != null) 'filePrefix': filePrefix,
-        if (format != null) 'format': format,
-        if (interval != null) 'interval': interval,
-        if (quality != null) 'quality': quality,
-        if (rowCount != null) 'rowCount': rowCount,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (columnCount != null) 'columnCount': columnCount!,
+        if (endTimeOffset != null) 'endTimeOffset': endTimeOffset!,
+        if (filePrefix != null) 'filePrefix': filePrefix!,
+        if (format != null) 'format': format!,
+        if (interval != null) 'interval': interval!,
+        if (quality != null) 'quality': quality!,
+        if (rowCount != null) 'rowCount': rowCount!,
         if (spriteHeightPixels != null)
-          'spriteHeightPixels': spriteHeightPixels,
-        if (spriteWidthPixels != null) 'spriteWidthPixels': spriteWidthPixels,
-        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset,
-        if (totalCount != null) 'totalCount': totalCount,
+          'spriteHeightPixels': spriteHeightPixels!,
+        if (spriteWidthPixels != null) 'spriteWidthPixels': spriteWidthPixels!,
+        if (startTimeOffset != null) 'startTimeOffset': startTimeOffset!,
+        if (totalCount != null) 'totalCount': totalCount!,
       };
 }
 
@@ -2367,13 +2341,13 @@
   /// List of `Job.inputs` that should be embedded in this atom.
   ///
   /// Only one input is supported.
-  core.List<TextInput> inputs;
+  core.List<TextInput>? inputs;
 
   /// The `EditAtom.key` that references atom with text inputs in the
   /// `Job.edit_list`.
   ///
   /// Required.
-  core.String key;
+  core.String? key;
 
   TextAtom();
 
@@ -2389,10 +2363,10 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
+  core.Map<core.String, core.Object?> toJson() => {
         if (inputs != null)
-          'inputs': inputs.map((value) => value.toJson()).toList(),
-        if (key != null) 'key': key,
+          'inputs': inputs!.map((value) => value.toJson()).toList(),
+        if (key != null) 'key': key!,
       };
 }
 
@@ -2401,12 +2375,12 @@
   /// The `Input.key` that identifies the input file.
   ///
   /// Required.
-  core.String key;
+  core.String? key;
 
   /// The zero-based index of the track in the input file.
   ///
   /// Required.
-  core.int track;
+  core.int? track;
 
   TextInput();
 
@@ -2419,9 +2393,9 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (key != null) 'key': key,
-        if (track != null) 'track': track,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (key != null) 'key': key!,
+        if (track != null) 'track': track!,
       };
 }
 
@@ -2433,7 +2407,7 @@
   ///
   /// The default is `"webvtt"`. Supported text codecs: - 'srt' - 'ttml' -
   /// 'cea608' - 'cea708' - 'webvtt'
-  core.String codec;
+  core.String? codec;
 
   /// The BCP-47 language code, such as `"en-US"` or `"sr-Latn"`.
   ///
@@ -2441,10 +2415,10 @@
   /// https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   ///
   /// Required.
-  core.String languageCode;
+  core.String? languageCode;
 
   /// The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
-  core.List<TextAtom> mapping;
+  core.List<TextAtom>? mapping;
 
   TextStream();
 
@@ -2463,11 +2437,11 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (codec != null) 'codec': codec,
-        if (languageCode != null) 'languageCode': languageCode,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (codec != null) 'codec': codec!,
+        if (languageCode != null) 'languageCode': languageCode!,
         if (mapping != null)
-          'mapping': mapping.map((value) => value.toJson()).toList(),
+          'mapping': mapping!.map((value) => value.toJson()).toList(),
       };
 }
 
@@ -2477,53 +2451,53 @@
   /// allowed or not.
   ///
   /// The default is `false`.
-  core.bool allowOpenGop;
+  core.bool? allowOpenGop;
 
   /// Specify the intensity of the adaptive quantizer (AQ).
   ///
   /// Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes
   /// the quantizer. A higher value equals a lower bitrate but smoother image.
   /// The default is 0.
-  core.double aqStrength;
+  core.double? aqStrength;
 
   /// The number of consecutive B-frames.
   ///
   /// Must be greater than or equal to zero. Must be less than
   /// `VideoStream.gop_frame_count` if set. The default is 0.
-  core.int bFrameCount;
+  core.int? bFrameCount;
 
   /// Allow B-pyramid for reference frame selection.
   ///
   /// This may not be supported on all decoders. The default is `false`.
-  core.bool bPyramid;
+  core.bool? bPyramid;
 
   /// The video bitrate in bits per second.
   ///
   /// Must be between 1 and 1,000,000,000.
   ///
   /// Required.
-  core.int bitrateBps;
+  core.int? bitrateBps;
 
   /// Codec type.
   ///
   /// The following codecs are supported: * `h264` (default) * `h265` * `vp9`
-  core.String codec;
+  core.String? codec;
 
   /// Target CRF level.
   ///
   /// Must be between 10 and 36, where 10 is the highest quality and 36 is the
   /// most efficient compression. The default is 21.
-  core.int crfLevel;
+  core.int? crfLevel;
 
   /// Use two-pass encoding strategy to achieve better video quality.
   ///
   /// `VideoStream.rate_control_mode` must be `"vbr"`. The default is `false`.
-  core.bool enableTwoPass;
+  core.bool? enableTwoPass;
 
   /// The entropy coder to use.
   ///
   /// The default is `"cabac"`. Supported entropy coders: - 'cavlc' - 'cabac'
-  core.String entropyCoder;
+  core.String? entropyCoder;
 
   /// The target video frame rate in frames per second (FPS).
   ///
@@ -2541,7 +2515,7 @@
   /// 10 | 10 | 10 | 20 | 30 | ```
   ///
   /// Required.
-  core.double frameRate;
+  core.double? frameRate;
 
   /// Select the GOP size based on the specified duration.
   ///
@@ -2549,19 +2523,19 @@
   /// to \[`segmentDuration`\](#SegmentSettings), and
   /// \[`segmentDuration`\](#SegmentSettings) must be divisible by
   /// `gopDuration`.
-  core.String gopDuration;
+  core.String? gopDuration;
 
   /// Select the GOP size based on the specified frame count.
   ///
   /// Must be greater than zero.
-  core.int gopFrameCount;
+  core.int? gopFrameCount;
 
   /// The height of the video in pixels.
   ///
   /// Must be an even integer. When not specified, the height is adjusted to
   /// match the specified width and input aspect ratio. If both are omitted, the
   /// input height is used.
-  core.int heightPixels;
+  core.int? heightPixels;
 
   /// Pixel format to use.
   ///
@@ -2571,14 +2545,14 @@
   /// 'yuv444p10' 10-bit HDR pixel format. - 'yuv420p12' 12-bit HDR pixel
   /// format. - 'yuv422p12' 12-bit HDR pixel format. - 'yuv444p12' 12-bit HDR
   /// pixel format.
-  core.String pixelFormat;
+  core.String? pixelFormat;
 
   /// Enforces the specified codec preset.
   ///
   /// The default is `veryfast`. The available options are FFmpeg-compatible.
   /// Note that certain values for this field may cause the transcoder to
   /// override other fields you set in the `VideoStream` message.
-  core.String preset;
+  core.String? preset;
 
   /// Enforces the specified codec profile.
   ///
@@ -2586,39 +2560,39 @@
   /// (default) The available options are FFmpeg-compatible. Note that certain
   /// values for this field may cause the transcoder to override other fields
   /// you set in the `VideoStream` message.
-  core.String profile;
+  core.String? profile;
 
   /// Specify the `rate_control_mode`.
   ///
   /// The default is `"vbr"`. Supported rate control modes: - 'vbr' - variable
   /// bitrate - 'crf' - constant rate factor
-  core.String rateControlMode;
+  core.String? rateControlMode;
 
   /// Enforces the specified codec tune.
   ///
   /// The available options are FFmpeg-compatible. Note that certain values for
   /// this field may cause the transcoder to override other fields you set in
   /// the `VideoStream` message.
-  core.String tune;
+  core.String? tune;
 
   /// Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
   ///
   /// Must be greater than zero. The default is equal to 90% of
   /// `VideoStream.vbv_size_bits`.
-  core.int vbvFullnessBits;
+  core.int? vbvFullnessBits;
 
   /// Size of the Video Buffering Verifier (VBV) buffer in bits.
   ///
   /// Must be greater than zero. The default is equal to
   /// `VideoStream.bitrate_bps`.
-  core.int vbvSizeBits;
+  core.int? vbvSizeBits;
 
   /// The width of the video in pixels.
   ///
   /// Must be an even integer. When not specified, the width is adjusted to
   /// match the specified height and input aspect ratio. If both are omitted,
   /// the input width is used.
-  core.int widthPixels;
+  core.int? widthPixels;
 
   VideoStream();
 
@@ -2688,27 +2662,27 @@
     }
   }
 
-  core.Map<core.String, core.Object> toJson() => {
-        if (allowOpenGop != null) 'allowOpenGop': allowOpenGop,
-        if (aqStrength != null) 'aqStrength': aqStrength,
-        if (bFrameCount != null) 'bFrameCount': bFrameCount,
-        if (bPyramid != null) 'bPyramid': bPyramid,
-        if (bitrateBps != null) 'bitrateBps': bitrateBps,
-        if (codec != null) 'codec': codec,
-        if (crfLevel != null) 'crfLevel': crfLevel,
-        if (enableTwoPass != null) 'enableTwoPass': enableTwoPass,
-        if (entropyCoder != null) 'entropyCoder': entropyCoder,
-        if (frameRate != null) 'frameRate': frameRate,
-        if (gopDuration != null) 'gopDuration': gopDuration,
-        if (gopFrameCount != null) 'gopFrameCount': gopFrameCount,
-        if (heightPixels != null) 'heightPixels': heightPixels,
-        if (pixelFormat != null) 'pixelFormat': pixelFormat,
-        if (preset != null) 'preset': preset,
-        if (profile != null) 'profile': profile,
-        if (rateControlMode != null) 'rateControlMode': rateControlMode,
-        if (tune != null) 'tune': tune,
-        if (vbvFullnessBits != null) 'vbvFullnessBits': vbvFullnessBits,
-        if (vbvSizeBits != null) 'vbvSizeBits': vbvSizeBits,
-        if (widthPixels != null) 'widthPixels': widthPixels,
+  core.Map<core.String, core.Object?> toJson() => {
+        if (allowOpenGop != null) 'allowOpenGop': allowOpenGop!,
+        if (aqStrength != null) 'aqStrength': aqStrength!,
+        if (bFrameCount != null) 'bFrameCount': bFrameCount!,
+        if (bPyramid != null) 'bPyramid': bPyramid!,
+        if (bitrateBps != null) 'bitrateBps': bitrateBps!,
+        if (codec != null) 'codec': codec!,
+        if (crfLevel != null) 'crfLevel': crfLevel!,
+        if (enableTwoPass != null) 'enableTwoPass': enableTwoPass!,
+        if (entropyCoder != null) 'entropyCoder': entropyCoder!,
+        if (frameRate != null) 'frameRate': frameRate!,
+        if (gopDuration != null) 'gopDuration': gopDuration!,
+        if (gopFrameCount != null) 'gopFrameCount': gopFrameCount!,
+        if (heightPixels != null) 'heightPixels': heightPixels!,
+        if (pixelFormat != null) 'pixelFormat': pixelFormat!,
+        if (preset != null) 'preset': preset!,
+        if (profile != null) 'profile': profile!,
+        if (rateControlMode != null) 'rateControlMode': rateControlMode!,
+        if (tune != null) 'tune': tune!,
+        if (vbvFullnessBits != null) 'vbvFullnessBits': vbvFullnessBits!,
+        if (vbvSizeBits != null) 'vbvSizeBits': vbvSizeBits!,
+        if (widthPixels != null) 'widthPixels': widthPixels!,
       };
 }