Generate 0.1.0 version of googleapis/googleapis_beta

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//559053002
diff --git a/generated/googleapis/test/youtube/v3.dart b/generated/googleapis/test/youtube/v3.dart
new file mode 100644
index 0000000..903c8f4
--- /dev/null
+++ b/generated/googleapis/test/youtube/v3.dart
@@ -0,0 +1,7492 @@
+library googleapis.youtube.v3.test;
+
+import "dart:core" as core;
+import "dart:collection" as collection;
+import "dart:async" as async;
+import "dart:convert" as convert;
+
+import 'package:http/http.dart' as http;
+import 'package:http/testing.dart' as http_testing;
+import 'package:unittest/unittest.dart' as unittest;
+import 'package:googleapis/common/common.dart' as common;
+import 'package:googleapis/src/common_internal.dart' as common_internal;
+import '../common/common_internal_test.dart' as common_test;
+
+import 'package:googleapis/youtube/v3.dart' as api;
+
+
+
+buildUnnamed341() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed341(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterAccessPolicy = 0;
+buildAccessPolicy() {
+  var o = new api.AccessPolicy();
+  buildCounterAccessPolicy++;
+  if (buildCounterAccessPolicy < 3) {
+    o.allowed = true;
+    o.exception = buildUnnamed341();
+  }
+  buildCounterAccessPolicy--;
+  return o;
+}
+
+checkAccessPolicy(api.AccessPolicy o) {
+  buildCounterAccessPolicy++;
+  if (buildCounterAccessPolicy < 3) {
+    unittest.expect(o.allowed, unittest.isTrue);
+    checkUnnamed341(o.exception);
+  }
+  buildCounterAccessPolicy--;
+}
+
+core.int buildCounterActivity = 0;
+buildActivity() {
+  var o = new api.Activity();
+  buildCounterActivity++;
+  if (buildCounterActivity < 3) {
+    o.contentDetails = buildActivityContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildActivitySnippet();
+  }
+  buildCounterActivity--;
+  return o;
+}
+
+checkActivity(api.Activity o) {
+  buildCounterActivity++;
+  if (buildCounterActivity < 3) {
+    checkActivityContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkActivitySnippet(o.snippet);
+  }
+  buildCounterActivity--;
+}
+
+core.int buildCounterActivityContentDetails = 0;
+buildActivityContentDetails() {
+  var o = new api.ActivityContentDetails();
+  buildCounterActivityContentDetails++;
+  if (buildCounterActivityContentDetails < 3) {
+    o.bulletin = buildActivityContentDetailsBulletin();
+    o.channelItem = buildActivityContentDetailsChannelItem();
+    o.comment = buildActivityContentDetailsComment();
+    o.favorite = buildActivityContentDetailsFavorite();
+    o.like = buildActivityContentDetailsLike();
+    o.playlistItem = buildActivityContentDetailsPlaylistItem();
+    o.promotedItem = buildActivityContentDetailsPromotedItem();
+    o.recommendation = buildActivityContentDetailsRecommendation();
+    o.social = buildActivityContentDetailsSocial();
+    o.subscription = buildActivityContentDetailsSubscription();
+    o.upload = buildActivityContentDetailsUpload();
+  }
+  buildCounterActivityContentDetails--;
+  return o;
+}
+
+checkActivityContentDetails(api.ActivityContentDetails o) {
+  buildCounterActivityContentDetails++;
+  if (buildCounterActivityContentDetails < 3) {
+    checkActivityContentDetailsBulletin(o.bulletin);
+    checkActivityContentDetailsChannelItem(o.channelItem);
+    checkActivityContentDetailsComment(o.comment);
+    checkActivityContentDetailsFavorite(o.favorite);
+    checkActivityContentDetailsLike(o.like);
+    checkActivityContentDetailsPlaylistItem(o.playlistItem);
+    checkActivityContentDetailsPromotedItem(o.promotedItem);
+    checkActivityContentDetailsRecommendation(o.recommendation);
+    checkActivityContentDetailsSocial(o.social);
+    checkActivityContentDetailsSubscription(o.subscription);
+    checkActivityContentDetailsUpload(o.upload);
+  }
+  buildCounterActivityContentDetails--;
+}
+
+core.int buildCounterActivityContentDetailsBulletin = 0;
+buildActivityContentDetailsBulletin() {
+  var o = new api.ActivityContentDetailsBulletin();
+  buildCounterActivityContentDetailsBulletin++;
+  if (buildCounterActivityContentDetailsBulletin < 3) {
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsBulletin--;
+  return o;
+}
+
+checkActivityContentDetailsBulletin(api.ActivityContentDetailsBulletin o) {
+  buildCounterActivityContentDetailsBulletin++;
+  if (buildCounterActivityContentDetailsBulletin < 3) {
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsBulletin--;
+}
+
+core.int buildCounterActivityContentDetailsChannelItem = 0;
+buildActivityContentDetailsChannelItem() {
+  var o = new api.ActivityContentDetailsChannelItem();
+  buildCounterActivityContentDetailsChannelItem++;
+  if (buildCounterActivityContentDetailsChannelItem < 3) {
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsChannelItem--;
+  return o;
+}
+
+checkActivityContentDetailsChannelItem(api.ActivityContentDetailsChannelItem o) {
+  buildCounterActivityContentDetailsChannelItem++;
+  if (buildCounterActivityContentDetailsChannelItem < 3) {
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsChannelItem--;
+}
+
+core.int buildCounterActivityContentDetailsComment = 0;
+buildActivityContentDetailsComment() {
+  var o = new api.ActivityContentDetailsComment();
+  buildCounterActivityContentDetailsComment++;
+  if (buildCounterActivityContentDetailsComment < 3) {
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsComment--;
+  return o;
+}
+
+checkActivityContentDetailsComment(api.ActivityContentDetailsComment o) {
+  buildCounterActivityContentDetailsComment++;
+  if (buildCounterActivityContentDetailsComment < 3) {
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsComment--;
+}
+
+core.int buildCounterActivityContentDetailsFavorite = 0;
+buildActivityContentDetailsFavorite() {
+  var o = new api.ActivityContentDetailsFavorite();
+  buildCounterActivityContentDetailsFavorite++;
+  if (buildCounterActivityContentDetailsFavorite < 3) {
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsFavorite--;
+  return o;
+}
+
+checkActivityContentDetailsFavorite(api.ActivityContentDetailsFavorite o) {
+  buildCounterActivityContentDetailsFavorite++;
+  if (buildCounterActivityContentDetailsFavorite < 3) {
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsFavorite--;
+}
+
+core.int buildCounterActivityContentDetailsLike = 0;
+buildActivityContentDetailsLike() {
+  var o = new api.ActivityContentDetailsLike();
+  buildCounterActivityContentDetailsLike++;
+  if (buildCounterActivityContentDetailsLike < 3) {
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsLike--;
+  return o;
+}
+
+checkActivityContentDetailsLike(api.ActivityContentDetailsLike o) {
+  buildCounterActivityContentDetailsLike++;
+  if (buildCounterActivityContentDetailsLike < 3) {
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsLike--;
+}
+
+core.int buildCounterActivityContentDetailsPlaylistItem = 0;
+buildActivityContentDetailsPlaylistItem() {
+  var o = new api.ActivityContentDetailsPlaylistItem();
+  buildCounterActivityContentDetailsPlaylistItem++;
+  if (buildCounterActivityContentDetailsPlaylistItem < 3) {
+    o.playlistId = "foo";
+    o.playlistItemId = "foo";
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsPlaylistItem--;
+  return o;
+}
+
+checkActivityContentDetailsPlaylistItem(api.ActivityContentDetailsPlaylistItem o) {
+  buildCounterActivityContentDetailsPlaylistItem++;
+  if (buildCounterActivityContentDetailsPlaylistItem < 3) {
+    unittest.expect(o.playlistId, unittest.equals('foo'));
+    unittest.expect(o.playlistItemId, unittest.equals('foo'));
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsPlaylistItem--;
+}
+
+buildUnnamed342() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed342(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed343() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed343(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterActivityContentDetailsPromotedItem = 0;
+buildActivityContentDetailsPromotedItem() {
+  var o = new api.ActivityContentDetailsPromotedItem();
+  buildCounterActivityContentDetailsPromotedItem++;
+  if (buildCounterActivityContentDetailsPromotedItem < 3) {
+    o.adTag = "foo";
+    o.clickTrackingUrl = "foo";
+    o.creativeViewUrl = "foo";
+    o.ctaType = "foo";
+    o.customCtaButtonText = "foo";
+    o.descriptionText = "foo";
+    o.destinationUrl = "foo";
+    o.forecastingUrl = buildUnnamed342();
+    o.impressionUrl = buildUnnamed343();
+    o.videoId = "foo";
+  }
+  buildCounterActivityContentDetailsPromotedItem--;
+  return o;
+}
+
+checkActivityContentDetailsPromotedItem(api.ActivityContentDetailsPromotedItem o) {
+  buildCounterActivityContentDetailsPromotedItem++;
+  if (buildCounterActivityContentDetailsPromotedItem < 3) {
+    unittest.expect(o.adTag, unittest.equals('foo'));
+    unittest.expect(o.clickTrackingUrl, unittest.equals('foo'));
+    unittest.expect(o.creativeViewUrl, unittest.equals('foo'));
+    unittest.expect(o.ctaType, unittest.equals('foo'));
+    unittest.expect(o.customCtaButtonText, unittest.equals('foo'));
+    unittest.expect(o.descriptionText, unittest.equals('foo'));
+    unittest.expect(o.destinationUrl, unittest.equals('foo'));
+    checkUnnamed342(o.forecastingUrl);
+    checkUnnamed343(o.impressionUrl);
+    unittest.expect(o.videoId, unittest.equals('foo'));
+  }
+  buildCounterActivityContentDetailsPromotedItem--;
+}
+
+core.int buildCounterActivityContentDetailsRecommendation = 0;
+buildActivityContentDetailsRecommendation() {
+  var o = new api.ActivityContentDetailsRecommendation();
+  buildCounterActivityContentDetailsRecommendation++;
+  if (buildCounterActivityContentDetailsRecommendation < 3) {
+    o.reason = "foo";
+    o.resourceId = buildResourceId();
+    o.seedResourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsRecommendation--;
+  return o;
+}
+
+checkActivityContentDetailsRecommendation(api.ActivityContentDetailsRecommendation o) {
+  buildCounterActivityContentDetailsRecommendation++;
+  if (buildCounterActivityContentDetailsRecommendation < 3) {
+    unittest.expect(o.reason, unittest.equals('foo'));
+    checkResourceId(o.resourceId);
+    checkResourceId(o.seedResourceId);
+  }
+  buildCounterActivityContentDetailsRecommendation--;
+}
+
+core.int buildCounterActivityContentDetailsSocial = 0;
+buildActivityContentDetailsSocial() {
+  var o = new api.ActivityContentDetailsSocial();
+  buildCounterActivityContentDetailsSocial++;
+  if (buildCounterActivityContentDetailsSocial < 3) {
+    o.author = "foo";
+    o.imageUrl = "foo";
+    o.referenceUrl = "foo";
+    o.resourceId = buildResourceId();
+    o.type = "foo";
+  }
+  buildCounterActivityContentDetailsSocial--;
+  return o;
+}
+
+checkActivityContentDetailsSocial(api.ActivityContentDetailsSocial o) {
+  buildCounterActivityContentDetailsSocial++;
+  if (buildCounterActivityContentDetailsSocial < 3) {
+    unittest.expect(o.author, unittest.equals('foo'));
+    unittest.expect(o.imageUrl, unittest.equals('foo'));
+    unittest.expect(o.referenceUrl, unittest.equals('foo'));
+    checkResourceId(o.resourceId);
+    unittest.expect(o.type, unittest.equals('foo'));
+  }
+  buildCounterActivityContentDetailsSocial--;
+}
+
+core.int buildCounterActivityContentDetailsSubscription = 0;
+buildActivityContentDetailsSubscription() {
+  var o = new api.ActivityContentDetailsSubscription();
+  buildCounterActivityContentDetailsSubscription++;
+  if (buildCounterActivityContentDetailsSubscription < 3) {
+    o.resourceId = buildResourceId();
+  }
+  buildCounterActivityContentDetailsSubscription--;
+  return o;
+}
+
+checkActivityContentDetailsSubscription(api.ActivityContentDetailsSubscription o) {
+  buildCounterActivityContentDetailsSubscription++;
+  if (buildCounterActivityContentDetailsSubscription < 3) {
+    checkResourceId(o.resourceId);
+  }
+  buildCounterActivityContentDetailsSubscription--;
+}
+
+core.int buildCounterActivityContentDetailsUpload = 0;
+buildActivityContentDetailsUpload() {
+  var o = new api.ActivityContentDetailsUpload();
+  buildCounterActivityContentDetailsUpload++;
+  if (buildCounterActivityContentDetailsUpload < 3) {
+    o.videoId = "foo";
+  }
+  buildCounterActivityContentDetailsUpload--;
+  return o;
+}
+
+checkActivityContentDetailsUpload(api.ActivityContentDetailsUpload o) {
+  buildCounterActivityContentDetailsUpload++;
+  if (buildCounterActivityContentDetailsUpload < 3) {
+    unittest.expect(o.videoId, unittest.equals('foo'));
+  }
+  buildCounterActivityContentDetailsUpload--;
+}
+
+buildUnnamed344() {
+  var o = new core.List<api.Activity>();
+  o.add(buildActivity());
+  o.add(buildActivity());
+  return o;
+}
+
+checkUnnamed344(core.List<api.Activity> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkActivity(o[0]);
+  checkActivity(o[1]);
+}
+
+core.int buildCounterActivityListResponse = 0;
+buildActivityListResponse() {
+  var o = new api.ActivityListResponse();
+  buildCounterActivityListResponse++;
+  if (buildCounterActivityListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed344();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterActivityListResponse--;
+  return o;
+}
+
+checkActivityListResponse(api.ActivityListResponse o) {
+  buildCounterActivityListResponse++;
+  if (buildCounterActivityListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed344(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterActivityListResponse--;
+}
+
+core.int buildCounterActivitySnippet = 0;
+buildActivitySnippet() {
+  var o = new api.ActivitySnippet();
+  buildCounterActivitySnippet++;
+  if (buildCounterActivitySnippet < 3) {
+    o.channelId = "foo";
+    o.channelTitle = "foo";
+    o.description = "foo";
+    o.groupId = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+    o.type = "foo";
+  }
+  buildCounterActivitySnippet--;
+  return o;
+}
+
+checkActivitySnippet(api.ActivitySnippet o) {
+  buildCounterActivitySnippet++;
+  if (buildCounterActivitySnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.channelTitle, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.groupId, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+    unittest.expect(o.type, unittest.equals('foo'));
+  }
+  buildCounterActivitySnippet--;
+}
+
+core.int buildCounterCdnSettings = 0;
+buildCdnSettings() {
+  var o = new api.CdnSettings();
+  buildCounterCdnSettings++;
+  if (buildCounterCdnSettings < 3) {
+    o.format = "foo";
+    o.ingestionInfo = buildIngestionInfo();
+    o.ingestionType = "foo";
+  }
+  buildCounterCdnSettings--;
+  return o;
+}
+
+checkCdnSettings(api.CdnSettings o) {
+  buildCounterCdnSettings++;
+  if (buildCounterCdnSettings < 3) {
+    unittest.expect(o.format, unittest.equals('foo'));
+    checkIngestionInfo(o.ingestionInfo);
+    unittest.expect(o.ingestionType, unittest.equals('foo'));
+  }
+  buildCounterCdnSettings--;
+}
+
+core.int buildCounterChannel = 0;
+buildChannel() {
+  var o = new api.Channel();
+  buildCounterChannel++;
+  if (buildCounterChannel < 3) {
+    o.auditDetails = buildChannelAuditDetails();
+    o.brandingSettings = buildChannelBrandingSettings();
+    o.contentDetails = buildChannelContentDetails();
+    o.contentOwnerDetails = buildChannelContentOwnerDetails();
+    o.conversionPings = buildChannelConversionPings();
+    o.etag = "foo";
+    o.id = "foo";
+    o.invideoPromotion = buildInvideoPromotion();
+    o.kind = "foo";
+    o.snippet = buildChannelSnippet();
+    o.statistics = buildChannelStatistics();
+    o.status = buildChannelStatus();
+    o.topicDetails = buildChannelTopicDetails();
+  }
+  buildCounterChannel--;
+  return o;
+}
+
+checkChannel(api.Channel o) {
+  buildCounterChannel++;
+  if (buildCounterChannel < 3) {
+    checkChannelAuditDetails(o.auditDetails);
+    checkChannelBrandingSettings(o.brandingSettings);
+    checkChannelContentDetails(o.contentDetails);
+    checkChannelContentOwnerDetails(o.contentOwnerDetails);
+    checkChannelConversionPings(o.conversionPings);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    checkInvideoPromotion(o.invideoPromotion);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkChannelSnippet(o.snippet);
+    checkChannelStatistics(o.statistics);
+    checkChannelStatus(o.status);
+    checkChannelTopicDetails(o.topicDetails);
+  }
+  buildCounterChannel--;
+}
+
+core.int buildCounterChannelAuditDetails = 0;
+buildChannelAuditDetails() {
+  var o = new api.ChannelAuditDetails();
+  buildCounterChannelAuditDetails++;
+  if (buildCounterChannelAuditDetails < 3) {
+    o.communityGuidelinesGoodStanding = true;
+    o.contentIdClaimsGoodStanding = true;
+    o.copyrightStrikesGoodStanding = true;
+    o.overallGoodStanding = true;
+  }
+  buildCounterChannelAuditDetails--;
+  return o;
+}
+
+checkChannelAuditDetails(api.ChannelAuditDetails o) {
+  buildCounterChannelAuditDetails++;
+  if (buildCounterChannelAuditDetails < 3) {
+    unittest.expect(o.communityGuidelinesGoodStanding, unittest.isTrue);
+    unittest.expect(o.contentIdClaimsGoodStanding, unittest.isTrue);
+    unittest.expect(o.copyrightStrikesGoodStanding, unittest.isTrue);
+    unittest.expect(o.overallGoodStanding, unittest.isTrue);
+  }
+  buildCounterChannelAuditDetails--;
+}
+
+core.int buildCounterChannelBannerResource = 0;
+buildChannelBannerResource() {
+  var o = new api.ChannelBannerResource();
+  buildCounterChannelBannerResource++;
+  if (buildCounterChannelBannerResource < 3) {
+    o.etag = "foo";
+    o.kind = "foo";
+    o.url = "foo";
+  }
+  buildCounterChannelBannerResource--;
+  return o;
+}
+
+checkChannelBannerResource(api.ChannelBannerResource o) {
+  buildCounterChannelBannerResource++;
+  if (buildCounterChannelBannerResource < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.url, unittest.equals('foo'));
+  }
+  buildCounterChannelBannerResource--;
+}
+
+buildUnnamed345() {
+  var o = new core.List<api.PropertyValue>();
+  o.add(buildPropertyValue());
+  o.add(buildPropertyValue());
+  return o;
+}
+
+checkUnnamed345(core.List<api.PropertyValue> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkPropertyValue(o[0]);
+  checkPropertyValue(o[1]);
+}
+
+core.int buildCounterChannelBrandingSettings = 0;
+buildChannelBrandingSettings() {
+  var o = new api.ChannelBrandingSettings();
+  buildCounterChannelBrandingSettings++;
+  if (buildCounterChannelBrandingSettings < 3) {
+    o.channel = buildChannelSettings();
+    o.hints = buildUnnamed345();
+    o.image = buildImageSettings();
+    o.watch = buildWatchSettings();
+  }
+  buildCounterChannelBrandingSettings--;
+  return o;
+}
+
+checkChannelBrandingSettings(api.ChannelBrandingSettings o) {
+  buildCounterChannelBrandingSettings++;
+  if (buildCounterChannelBrandingSettings < 3) {
+    checkChannelSettings(o.channel);
+    checkUnnamed345(o.hints);
+    checkImageSettings(o.image);
+    checkWatchSettings(o.watch);
+  }
+  buildCounterChannelBrandingSettings--;
+}
+
+core.int buildCounterChannelContentDetailsRelatedPlaylists = 0;
+buildChannelContentDetailsRelatedPlaylists() {
+  var o = new api.ChannelContentDetailsRelatedPlaylists();
+  buildCounterChannelContentDetailsRelatedPlaylists++;
+  if (buildCounterChannelContentDetailsRelatedPlaylists < 3) {
+    o.favorites = "foo";
+    o.likes = "foo";
+    o.uploads = "foo";
+    o.watchHistory = "foo";
+    o.watchLater = "foo";
+  }
+  buildCounterChannelContentDetailsRelatedPlaylists--;
+  return o;
+}
+
+checkChannelContentDetailsRelatedPlaylists(api.ChannelContentDetailsRelatedPlaylists o) {
+  buildCounterChannelContentDetailsRelatedPlaylists++;
+  if (buildCounterChannelContentDetailsRelatedPlaylists < 3) {
+    unittest.expect(o.favorites, unittest.equals('foo'));
+    unittest.expect(o.likes, unittest.equals('foo'));
+    unittest.expect(o.uploads, unittest.equals('foo'));
+    unittest.expect(o.watchHistory, unittest.equals('foo'));
+    unittest.expect(o.watchLater, unittest.equals('foo'));
+  }
+  buildCounterChannelContentDetailsRelatedPlaylists--;
+}
+
+core.int buildCounterChannelContentDetails = 0;
+buildChannelContentDetails() {
+  var o = new api.ChannelContentDetails();
+  buildCounterChannelContentDetails++;
+  if (buildCounterChannelContentDetails < 3) {
+    o.googlePlusUserId = "foo";
+    o.relatedPlaylists = buildChannelContentDetailsRelatedPlaylists();
+  }
+  buildCounterChannelContentDetails--;
+  return o;
+}
+
+checkChannelContentDetails(api.ChannelContentDetails o) {
+  buildCounterChannelContentDetails++;
+  if (buildCounterChannelContentDetails < 3) {
+    unittest.expect(o.googlePlusUserId, unittest.equals('foo'));
+    checkChannelContentDetailsRelatedPlaylists(o.relatedPlaylists);
+  }
+  buildCounterChannelContentDetails--;
+}
+
+core.int buildCounterChannelContentOwnerDetails = 0;
+buildChannelContentOwnerDetails() {
+  var o = new api.ChannelContentOwnerDetails();
+  buildCounterChannelContentOwnerDetails++;
+  if (buildCounterChannelContentOwnerDetails < 3) {
+    o.contentOwner = "foo";
+    o.timeLinked = core.DateTime.parse("2002-02-27T14:01:02");
+  }
+  buildCounterChannelContentOwnerDetails--;
+  return o;
+}
+
+checkChannelContentOwnerDetails(api.ChannelContentOwnerDetails o) {
+  buildCounterChannelContentOwnerDetails++;
+  if (buildCounterChannelContentOwnerDetails < 3) {
+    unittest.expect(o.contentOwner, unittest.equals('foo'));
+    unittest.expect(o.timeLinked, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+  }
+  buildCounterChannelContentOwnerDetails--;
+}
+
+core.int buildCounterChannelConversionPing = 0;
+buildChannelConversionPing() {
+  var o = new api.ChannelConversionPing();
+  buildCounterChannelConversionPing++;
+  if (buildCounterChannelConversionPing < 3) {
+    o.context = "foo";
+    o.conversionUrl = "foo";
+  }
+  buildCounterChannelConversionPing--;
+  return o;
+}
+
+checkChannelConversionPing(api.ChannelConversionPing o) {
+  buildCounterChannelConversionPing++;
+  if (buildCounterChannelConversionPing < 3) {
+    unittest.expect(o.context, unittest.equals('foo'));
+    unittest.expect(o.conversionUrl, unittest.equals('foo'));
+  }
+  buildCounterChannelConversionPing--;
+}
+
+buildUnnamed346() {
+  var o = new core.List<api.ChannelConversionPing>();
+  o.add(buildChannelConversionPing());
+  o.add(buildChannelConversionPing());
+  return o;
+}
+
+checkUnnamed346(core.List<api.ChannelConversionPing> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkChannelConversionPing(o[0]);
+  checkChannelConversionPing(o[1]);
+}
+
+core.int buildCounterChannelConversionPings = 0;
+buildChannelConversionPings() {
+  var o = new api.ChannelConversionPings();
+  buildCounterChannelConversionPings++;
+  if (buildCounterChannelConversionPings < 3) {
+    o.pings = buildUnnamed346();
+  }
+  buildCounterChannelConversionPings--;
+  return o;
+}
+
+checkChannelConversionPings(api.ChannelConversionPings o) {
+  buildCounterChannelConversionPings++;
+  if (buildCounterChannelConversionPings < 3) {
+    checkUnnamed346(o.pings);
+  }
+  buildCounterChannelConversionPings--;
+}
+
+buildUnnamed347() {
+  var o = new core.List<api.Channel>();
+  o.add(buildChannel());
+  o.add(buildChannel());
+  return o;
+}
+
+checkUnnamed347(core.List<api.Channel> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkChannel(o[0]);
+  checkChannel(o[1]);
+}
+
+core.int buildCounterChannelListResponse = 0;
+buildChannelListResponse() {
+  var o = new api.ChannelListResponse();
+  buildCounterChannelListResponse++;
+  if (buildCounterChannelListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed347();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterChannelListResponse--;
+  return o;
+}
+
+checkChannelListResponse(api.ChannelListResponse o) {
+  buildCounterChannelListResponse++;
+  if (buildCounterChannelListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed347(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterChannelListResponse--;
+}
+
+core.int buildCounterChannelSection = 0;
+buildChannelSection() {
+  var o = new api.ChannelSection();
+  buildCounterChannelSection++;
+  if (buildCounterChannelSection < 3) {
+    o.contentDetails = buildChannelSectionContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildChannelSectionSnippet();
+  }
+  buildCounterChannelSection--;
+  return o;
+}
+
+checkChannelSection(api.ChannelSection o) {
+  buildCounterChannelSection++;
+  if (buildCounterChannelSection < 3) {
+    checkChannelSectionContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkChannelSectionSnippet(o.snippet);
+  }
+  buildCounterChannelSection--;
+}
+
+buildUnnamed348() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed348(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed349() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed349(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterChannelSectionContentDetails = 0;
+buildChannelSectionContentDetails() {
+  var o = new api.ChannelSectionContentDetails();
+  buildCounterChannelSectionContentDetails++;
+  if (buildCounterChannelSectionContentDetails < 3) {
+    o.channels = buildUnnamed348();
+    o.playlists = buildUnnamed349();
+  }
+  buildCounterChannelSectionContentDetails--;
+  return o;
+}
+
+checkChannelSectionContentDetails(api.ChannelSectionContentDetails o) {
+  buildCounterChannelSectionContentDetails++;
+  if (buildCounterChannelSectionContentDetails < 3) {
+    checkUnnamed348(o.channels);
+    checkUnnamed349(o.playlists);
+  }
+  buildCounterChannelSectionContentDetails--;
+}
+
+buildUnnamed350() {
+  var o = new core.List<api.ChannelSection>();
+  o.add(buildChannelSection());
+  o.add(buildChannelSection());
+  return o;
+}
+
+checkUnnamed350(core.List<api.ChannelSection> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkChannelSection(o[0]);
+  checkChannelSection(o[1]);
+}
+
+core.int buildCounterChannelSectionListResponse = 0;
+buildChannelSectionListResponse() {
+  var o = new api.ChannelSectionListResponse();
+  buildCounterChannelSectionListResponse++;
+  if (buildCounterChannelSectionListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed350();
+    o.kind = "foo";
+    o.visitorId = "foo";
+  }
+  buildCounterChannelSectionListResponse--;
+  return o;
+}
+
+checkChannelSectionListResponse(api.ChannelSectionListResponse o) {
+  buildCounterChannelSectionListResponse++;
+  if (buildCounterChannelSectionListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed350(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterChannelSectionListResponse--;
+}
+
+core.int buildCounterChannelSectionSnippet = 0;
+buildChannelSectionSnippet() {
+  var o = new api.ChannelSectionSnippet();
+  buildCounterChannelSectionSnippet++;
+  if (buildCounterChannelSectionSnippet < 3) {
+    o.channelId = "foo";
+    o.position = 42;
+    o.style = "foo";
+    o.title = "foo";
+    o.type = "foo";
+  }
+  buildCounterChannelSectionSnippet--;
+  return o;
+}
+
+checkChannelSectionSnippet(api.ChannelSectionSnippet o) {
+  buildCounterChannelSectionSnippet++;
+  if (buildCounterChannelSectionSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.position, unittest.equals(42));
+    unittest.expect(o.style, unittest.equals('foo'));
+    unittest.expect(o.title, unittest.equals('foo'));
+    unittest.expect(o.type, unittest.equals('foo'));
+  }
+  buildCounterChannelSectionSnippet--;
+}
+
+buildUnnamed351() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed351(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterChannelSettings = 0;
+buildChannelSettings() {
+  var o = new api.ChannelSettings();
+  buildCounterChannelSettings++;
+  if (buildCounterChannelSettings < 3) {
+    o.defaultTab = "foo";
+    o.description = "foo";
+    o.featuredChannelsTitle = "foo";
+    o.featuredChannelsUrls = buildUnnamed351();
+    o.keywords = "foo";
+    o.moderateComments = true;
+    o.profileColor = "foo";
+    o.showBrowseView = true;
+    o.showRelatedChannels = true;
+    o.title = "foo";
+    o.trackingAnalyticsAccountId = "foo";
+    o.unsubscribedTrailer = "foo";
+  }
+  buildCounterChannelSettings--;
+  return o;
+}
+
+checkChannelSettings(api.ChannelSettings o) {
+  buildCounterChannelSettings++;
+  if (buildCounterChannelSettings < 3) {
+    unittest.expect(o.defaultTab, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.featuredChannelsTitle, unittest.equals('foo'));
+    checkUnnamed351(o.featuredChannelsUrls);
+    unittest.expect(o.keywords, unittest.equals('foo'));
+    unittest.expect(o.moderateComments, unittest.isTrue);
+    unittest.expect(o.profileColor, unittest.equals('foo'));
+    unittest.expect(o.showBrowseView, unittest.isTrue);
+    unittest.expect(o.showRelatedChannels, unittest.isTrue);
+    unittest.expect(o.title, unittest.equals('foo'));
+    unittest.expect(o.trackingAnalyticsAccountId, unittest.equals('foo'));
+    unittest.expect(o.unsubscribedTrailer, unittest.equals('foo'));
+  }
+  buildCounterChannelSettings--;
+}
+
+core.int buildCounterChannelSnippet = 0;
+buildChannelSnippet() {
+  var o = new api.ChannelSnippet();
+  buildCounterChannelSnippet++;
+  if (buildCounterChannelSnippet < 3) {
+    o.description = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterChannelSnippet--;
+  return o;
+}
+
+checkChannelSnippet(api.ChannelSnippet o) {
+  buildCounterChannelSnippet++;
+  if (buildCounterChannelSnippet < 3) {
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterChannelSnippet--;
+}
+
+core.int buildCounterChannelStatistics = 0;
+buildChannelStatistics() {
+  var o = new api.ChannelStatistics();
+  buildCounterChannelStatistics++;
+  if (buildCounterChannelStatistics < 3) {
+    o.commentCount = "foo";
+    o.hiddenSubscriberCount = true;
+    o.subscriberCount = "foo";
+    o.videoCount = "foo";
+    o.viewCount = "foo";
+  }
+  buildCounterChannelStatistics--;
+  return o;
+}
+
+checkChannelStatistics(api.ChannelStatistics o) {
+  buildCounterChannelStatistics++;
+  if (buildCounterChannelStatistics < 3) {
+    unittest.expect(o.commentCount, unittest.equals('foo'));
+    unittest.expect(o.hiddenSubscriberCount, unittest.isTrue);
+    unittest.expect(o.subscriberCount, unittest.equals('foo'));
+    unittest.expect(o.videoCount, unittest.equals('foo'));
+    unittest.expect(o.viewCount, unittest.equals('foo'));
+  }
+  buildCounterChannelStatistics--;
+}
+
+core.int buildCounterChannelStatus = 0;
+buildChannelStatus() {
+  var o = new api.ChannelStatus();
+  buildCounterChannelStatus++;
+  if (buildCounterChannelStatus < 3) {
+    o.isLinked = true;
+    o.privacyStatus = "foo";
+  }
+  buildCounterChannelStatus--;
+  return o;
+}
+
+checkChannelStatus(api.ChannelStatus o) {
+  buildCounterChannelStatus++;
+  if (buildCounterChannelStatus < 3) {
+    unittest.expect(o.isLinked, unittest.isTrue);
+    unittest.expect(o.privacyStatus, unittest.equals('foo'));
+  }
+  buildCounterChannelStatus--;
+}
+
+buildUnnamed352() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed352(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterChannelTopicDetails = 0;
+buildChannelTopicDetails() {
+  var o = new api.ChannelTopicDetails();
+  buildCounterChannelTopicDetails++;
+  if (buildCounterChannelTopicDetails < 3) {
+    o.topicIds = buildUnnamed352();
+  }
+  buildCounterChannelTopicDetails--;
+  return o;
+}
+
+checkChannelTopicDetails(api.ChannelTopicDetails o) {
+  buildCounterChannelTopicDetails++;
+  if (buildCounterChannelTopicDetails < 3) {
+    checkUnnamed352(o.topicIds);
+  }
+  buildCounterChannelTopicDetails--;
+}
+
+core.int buildCounterContentRating = 0;
+buildContentRating() {
+  var o = new api.ContentRating();
+  buildCounterContentRating++;
+  if (buildCounterContentRating < 3) {
+    o.acbRating = "foo";
+    o.agcomRating = "foo";
+    o.anatelRating = "foo";
+    o.bbfcRating = "foo";
+    o.bfvcRating = "foo";
+    o.bmukkRating = "foo";
+    o.catvRating = "foo";
+    o.catvfrRating = "foo";
+    o.cbfcRating = "foo";
+    o.cccRating = "foo";
+    o.cceRating = "foo";
+    o.chfilmRating = "foo";
+    o.chvrsRating = "foo";
+    o.cicfRating = "foo";
+    o.cnaRating = "foo";
+    o.csaRating = "foo";
+    o.cscfRating = "foo";
+    o.czfilmRating = "foo";
+    o.djctqRating = "foo";
+    o.eefilmRating = "foo";
+    o.egfilmRating = "foo";
+    o.eirinRating = "foo";
+    o.fcbmRating = "foo";
+    o.fcoRating = "foo";
+    o.fmocRating = "foo";
+    o.fpbRating = "foo";
+    o.fskRating = "foo";
+    o.grfilmRating = "foo";
+    o.icaaRating = "foo";
+    o.ifcoRating = "foo";
+    o.ilfilmRating = "foo";
+    o.incaaRating = "foo";
+    o.kfcbRating = "foo";
+    o.kijkwijzerRating = "foo";
+    o.kmrbRating = "foo";
+    o.lsfRating = "foo";
+    o.mccaaRating = "foo";
+    o.mccypRating = "foo";
+    o.mdaRating = "foo";
+    o.medietilsynetRating = "foo";
+    o.mekuRating = "foo";
+    o.mibacRating = "foo";
+    o.mocRating = "foo";
+    o.moctwRating = "foo";
+    o.mpaaRating = "foo";
+    o.mtrcbRating = "foo";
+    o.nbcRating = "foo";
+    o.nbcplRating = "foo";
+    o.nfrcRating = "foo";
+    o.nfvcbRating = "foo";
+    o.nkclvRating = "foo";
+    o.oflcRating = "foo";
+    o.pefilmRating = "foo";
+    o.rcnofRating = "foo";
+    o.resorteviolenciaRating = "foo";
+    o.rtcRating = "foo";
+    o.rteRating = "foo";
+    o.russiaRating = "foo";
+    o.skfilmRating = "foo";
+    o.smaisRating = "foo";
+    o.smsaRating = "foo";
+    o.tvpgRating = "foo";
+    o.ytRating = "foo";
+  }
+  buildCounterContentRating--;
+  return o;
+}
+
+checkContentRating(api.ContentRating o) {
+  buildCounterContentRating++;
+  if (buildCounterContentRating < 3) {
+    unittest.expect(o.acbRating, unittest.equals('foo'));
+    unittest.expect(o.agcomRating, unittest.equals('foo'));
+    unittest.expect(o.anatelRating, unittest.equals('foo'));
+    unittest.expect(o.bbfcRating, unittest.equals('foo'));
+    unittest.expect(o.bfvcRating, unittest.equals('foo'));
+    unittest.expect(o.bmukkRating, unittest.equals('foo'));
+    unittest.expect(o.catvRating, unittest.equals('foo'));
+    unittest.expect(o.catvfrRating, unittest.equals('foo'));
+    unittest.expect(o.cbfcRating, unittest.equals('foo'));
+    unittest.expect(o.cccRating, unittest.equals('foo'));
+    unittest.expect(o.cceRating, unittest.equals('foo'));
+    unittest.expect(o.chfilmRating, unittest.equals('foo'));
+    unittest.expect(o.chvrsRating, unittest.equals('foo'));
+    unittest.expect(o.cicfRating, unittest.equals('foo'));
+    unittest.expect(o.cnaRating, unittest.equals('foo'));
+    unittest.expect(o.csaRating, unittest.equals('foo'));
+    unittest.expect(o.cscfRating, unittest.equals('foo'));
+    unittest.expect(o.czfilmRating, unittest.equals('foo'));
+    unittest.expect(o.djctqRating, unittest.equals('foo'));
+    unittest.expect(o.eefilmRating, unittest.equals('foo'));
+    unittest.expect(o.egfilmRating, unittest.equals('foo'));
+    unittest.expect(o.eirinRating, unittest.equals('foo'));
+    unittest.expect(o.fcbmRating, unittest.equals('foo'));
+    unittest.expect(o.fcoRating, unittest.equals('foo'));
+    unittest.expect(o.fmocRating, unittest.equals('foo'));
+    unittest.expect(o.fpbRating, unittest.equals('foo'));
+    unittest.expect(o.fskRating, unittest.equals('foo'));
+    unittest.expect(o.grfilmRating, unittest.equals('foo'));
+    unittest.expect(o.icaaRating, unittest.equals('foo'));
+    unittest.expect(o.ifcoRating, unittest.equals('foo'));
+    unittest.expect(o.ilfilmRating, unittest.equals('foo'));
+    unittest.expect(o.incaaRating, unittest.equals('foo'));
+    unittest.expect(o.kfcbRating, unittest.equals('foo'));
+    unittest.expect(o.kijkwijzerRating, unittest.equals('foo'));
+    unittest.expect(o.kmrbRating, unittest.equals('foo'));
+    unittest.expect(o.lsfRating, unittest.equals('foo'));
+    unittest.expect(o.mccaaRating, unittest.equals('foo'));
+    unittest.expect(o.mccypRating, unittest.equals('foo'));
+    unittest.expect(o.mdaRating, unittest.equals('foo'));
+    unittest.expect(o.medietilsynetRating, unittest.equals('foo'));
+    unittest.expect(o.mekuRating, unittest.equals('foo'));
+    unittest.expect(o.mibacRating, unittest.equals('foo'));
+    unittest.expect(o.mocRating, unittest.equals('foo'));
+    unittest.expect(o.moctwRating, unittest.equals('foo'));
+    unittest.expect(o.mpaaRating, unittest.equals('foo'));
+    unittest.expect(o.mtrcbRating, unittest.equals('foo'));
+    unittest.expect(o.nbcRating, unittest.equals('foo'));
+    unittest.expect(o.nbcplRating, unittest.equals('foo'));
+    unittest.expect(o.nfrcRating, unittest.equals('foo'));
+    unittest.expect(o.nfvcbRating, unittest.equals('foo'));
+    unittest.expect(o.nkclvRating, unittest.equals('foo'));
+    unittest.expect(o.oflcRating, unittest.equals('foo'));
+    unittest.expect(o.pefilmRating, unittest.equals('foo'));
+    unittest.expect(o.rcnofRating, unittest.equals('foo'));
+    unittest.expect(o.resorteviolenciaRating, unittest.equals('foo'));
+    unittest.expect(o.rtcRating, unittest.equals('foo'));
+    unittest.expect(o.rteRating, unittest.equals('foo'));
+    unittest.expect(o.russiaRating, unittest.equals('foo'));
+    unittest.expect(o.skfilmRating, unittest.equals('foo'));
+    unittest.expect(o.smaisRating, unittest.equals('foo'));
+    unittest.expect(o.smsaRating, unittest.equals('foo'));
+    unittest.expect(o.tvpgRating, unittest.equals('foo'));
+    unittest.expect(o.ytRating, unittest.equals('foo'));
+  }
+  buildCounterContentRating--;
+}
+
+core.int buildCounterGeoPoint = 0;
+buildGeoPoint() {
+  var o = new api.GeoPoint();
+  buildCounterGeoPoint++;
+  if (buildCounterGeoPoint < 3) {
+    o.altitude = 42.0;
+    o.latitude = 42.0;
+    o.longitude = 42.0;
+  }
+  buildCounterGeoPoint--;
+  return o;
+}
+
+checkGeoPoint(api.GeoPoint o) {
+  buildCounterGeoPoint++;
+  if (buildCounterGeoPoint < 3) {
+    unittest.expect(o.altitude, unittest.equals(42.0));
+    unittest.expect(o.latitude, unittest.equals(42.0));
+    unittest.expect(o.longitude, unittest.equals(42.0));
+  }
+  buildCounterGeoPoint--;
+}
+
+core.int buildCounterGuideCategory = 0;
+buildGuideCategory() {
+  var o = new api.GuideCategory();
+  buildCounterGuideCategory++;
+  if (buildCounterGuideCategory < 3) {
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildGuideCategorySnippet();
+  }
+  buildCounterGuideCategory--;
+  return o;
+}
+
+checkGuideCategory(api.GuideCategory o) {
+  buildCounterGuideCategory++;
+  if (buildCounterGuideCategory < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkGuideCategorySnippet(o.snippet);
+  }
+  buildCounterGuideCategory--;
+}
+
+buildUnnamed353() {
+  var o = new core.List<api.GuideCategory>();
+  o.add(buildGuideCategory());
+  o.add(buildGuideCategory());
+  return o;
+}
+
+checkUnnamed353(core.List<api.GuideCategory> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkGuideCategory(o[0]);
+  checkGuideCategory(o[1]);
+}
+
+core.int buildCounterGuideCategoryListResponse = 0;
+buildGuideCategoryListResponse() {
+  var o = new api.GuideCategoryListResponse();
+  buildCounterGuideCategoryListResponse++;
+  if (buildCounterGuideCategoryListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed353();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterGuideCategoryListResponse--;
+  return o;
+}
+
+checkGuideCategoryListResponse(api.GuideCategoryListResponse o) {
+  buildCounterGuideCategoryListResponse++;
+  if (buildCounterGuideCategoryListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed353(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterGuideCategoryListResponse--;
+}
+
+core.int buildCounterGuideCategorySnippet = 0;
+buildGuideCategorySnippet() {
+  var o = new api.GuideCategorySnippet();
+  buildCounterGuideCategorySnippet++;
+  if (buildCounterGuideCategorySnippet < 3) {
+    o.channelId = "foo";
+    o.title = "foo";
+  }
+  buildCounterGuideCategorySnippet--;
+  return o;
+}
+
+checkGuideCategorySnippet(api.GuideCategorySnippet o) {
+  buildCounterGuideCategorySnippet++;
+  if (buildCounterGuideCategorySnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterGuideCategorySnippet--;
+}
+
+core.int buildCounterI18nLanguage = 0;
+buildI18nLanguage() {
+  var o = new api.I18nLanguage();
+  buildCounterI18nLanguage++;
+  if (buildCounterI18nLanguage < 3) {
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildI18nLanguageSnippet();
+  }
+  buildCounterI18nLanguage--;
+  return o;
+}
+
+checkI18nLanguage(api.I18nLanguage o) {
+  buildCounterI18nLanguage++;
+  if (buildCounterI18nLanguage < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkI18nLanguageSnippet(o.snippet);
+  }
+  buildCounterI18nLanguage--;
+}
+
+buildUnnamed354() {
+  var o = new core.List<api.I18nLanguage>();
+  o.add(buildI18nLanguage());
+  o.add(buildI18nLanguage());
+  return o;
+}
+
+checkUnnamed354(core.List<api.I18nLanguage> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkI18nLanguage(o[0]);
+  checkI18nLanguage(o[1]);
+}
+
+core.int buildCounterI18nLanguageListResponse = 0;
+buildI18nLanguageListResponse() {
+  var o = new api.I18nLanguageListResponse();
+  buildCounterI18nLanguageListResponse++;
+  if (buildCounterI18nLanguageListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed354();
+    o.kind = "foo";
+    o.visitorId = "foo";
+  }
+  buildCounterI18nLanguageListResponse--;
+  return o;
+}
+
+checkI18nLanguageListResponse(api.I18nLanguageListResponse o) {
+  buildCounterI18nLanguageListResponse++;
+  if (buildCounterI18nLanguageListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed354(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterI18nLanguageListResponse--;
+}
+
+core.int buildCounterI18nLanguageSnippet = 0;
+buildI18nLanguageSnippet() {
+  var o = new api.I18nLanguageSnippet();
+  buildCounterI18nLanguageSnippet++;
+  if (buildCounterI18nLanguageSnippet < 3) {
+    o.hl = "foo";
+    o.name = "foo";
+  }
+  buildCounterI18nLanguageSnippet--;
+  return o;
+}
+
+checkI18nLanguageSnippet(api.I18nLanguageSnippet o) {
+  buildCounterI18nLanguageSnippet++;
+  if (buildCounterI18nLanguageSnippet < 3) {
+    unittest.expect(o.hl, unittest.equals('foo'));
+    unittest.expect(o.name, unittest.equals('foo'));
+  }
+  buildCounterI18nLanguageSnippet--;
+}
+
+core.int buildCounterI18nRegion = 0;
+buildI18nRegion() {
+  var o = new api.I18nRegion();
+  buildCounterI18nRegion++;
+  if (buildCounterI18nRegion < 3) {
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildI18nRegionSnippet();
+  }
+  buildCounterI18nRegion--;
+  return o;
+}
+
+checkI18nRegion(api.I18nRegion o) {
+  buildCounterI18nRegion++;
+  if (buildCounterI18nRegion < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkI18nRegionSnippet(o.snippet);
+  }
+  buildCounterI18nRegion--;
+}
+
+buildUnnamed355() {
+  var o = new core.List<api.I18nRegion>();
+  o.add(buildI18nRegion());
+  o.add(buildI18nRegion());
+  return o;
+}
+
+checkUnnamed355(core.List<api.I18nRegion> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkI18nRegion(o[0]);
+  checkI18nRegion(o[1]);
+}
+
+core.int buildCounterI18nRegionListResponse = 0;
+buildI18nRegionListResponse() {
+  var o = new api.I18nRegionListResponse();
+  buildCounterI18nRegionListResponse++;
+  if (buildCounterI18nRegionListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed355();
+    o.kind = "foo";
+    o.visitorId = "foo";
+  }
+  buildCounterI18nRegionListResponse--;
+  return o;
+}
+
+checkI18nRegionListResponse(api.I18nRegionListResponse o) {
+  buildCounterI18nRegionListResponse++;
+  if (buildCounterI18nRegionListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed355(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterI18nRegionListResponse--;
+}
+
+core.int buildCounterI18nRegionSnippet = 0;
+buildI18nRegionSnippet() {
+  var o = new api.I18nRegionSnippet();
+  buildCounterI18nRegionSnippet++;
+  if (buildCounterI18nRegionSnippet < 3) {
+    o.gl = "foo";
+    o.name = "foo";
+  }
+  buildCounterI18nRegionSnippet--;
+  return o;
+}
+
+checkI18nRegionSnippet(api.I18nRegionSnippet o) {
+  buildCounterI18nRegionSnippet++;
+  if (buildCounterI18nRegionSnippet < 3) {
+    unittest.expect(o.gl, unittest.equals('foo'));
+    unittest.expect(o.name, unittest.equals('foo'));
+  }
+  buildCounterI18nRegionSnippet--;
+}
+
+core.int buildCounterImageSettings = 0;
+buildImageSettings() {
+  var o = new api.ImageSettings();
+  buildCounterImageSettings++;
+  if (buildCounterImageSettings < 3) {
+    o.backgroundImageUrl = buildLocalizedProperty();
+    o.bannerExternalUrl = "foo";
+    o.bannerImageUrl = "foo";
+    o.bannerMobileExtraHdImageUrl = "foo";
+    o.bannerMobileHdImageUrl = "foo";
+    o.bannerMobileImageUrl = "foo";
+    o.bannerMobileLowImageUrl = "foo";
+    o.bannerMobileMediumHdImageUrl = "foo";
+    o.bannerTabletExtraHdImageUrl = "foo";
+    o.bannerTabletHdImageUrl = "foo";
+    o.bannerTabletImageUrl = "foo";
+    o.bannerTabletLowImageUrl = "foo";
+    o.bannerTvHighImageUrl = "foo";
+    o.bannerTvImageUrl = "foo";
+    o.bannerTvLowImageUrl = "foo";
+    o.bannerTvMediumImageUrl = "foo";
+    o.largeBrandedBannerImageImapScript = buildLocalizedProperty();
+    o.largeBrandedBannerImageUrl = buildLocalizedProperty();
+    o.smallBrandedBannerImageImapScript = buildLocalizedProperty();
+    o.smallBrandedBannerImageUrl = buildLocalizedProperty();
+    o.trackingImageUrl = "foo";
+    o.watchIconImageUrl = "foo";
+  }
+  buildCounterImageSettings--;
+  return o;
+}
+
+checkImageSettings(api.ImageSettings o) {
+  buildCounterImageSettings++;
+  if (buildCounterImageSettings < 3) {
+    checkLocalizedProperty(o.backgroundImageUrl);
+    unittest.expect(o.bannerExternalUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerMobileExtraHdImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerMobileHdImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerMobileImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerMobileLowImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerMobileMediumHdImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTabletExtraHdImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTabletHdImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTabletImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTabletLowImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTvHighImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTvImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTvLowImageUrl, unittest.equals('foo'));
+    unittest.expect(o.bannerTvMediumImageUrl, unittest.equals('foo'));
+    checkLocalizedProperty(o.largeBrandedBannerImageImapScript);
+    checkLocalizedProperty(o.largeBrandedBannerImageUrl);
+    checkLocalizedProperty(o.smallBrandedBannerImageImapScript);
+    checkLocalizedProperty(o.smallBrandedBannerImageUrl);
+    unittest.expect(o.trackingImageUrl, unittest.equals('foo'));
+    unittest.expect(o.watchIconImageUrl, unittest.equals('foo'));
+  }
+  buildCounterImageSettings--;
+}
+
+core.int buildCounterIngestionInfo = 0;
+buildIngestionInfo() {
+  var o = new api.IngestionInfo();
+  buildCounterIngestionInfo++;
+  if (buildCounterIngestionInfo < 3) {
+    o.backupIngestionAddress = "foo";
+    o.ingestionAddress = "foo";
+    o.streamName = "foo";
+  }
+  buildCounterIngestionInfo--;
+  return o;
+}
+
+checkIngestionInfo(api.IngestionInfo o) {
+  buildCounterIngestionInfo++;
+  if (buildCounterIngestionInfo < 3) {
+    unittest.expect(o.backupIngestionAddress, unittest.equals('foo'));
+    unittest.expect(o.ingestionAddress, unittest.equals('foo'));
+    unittest.expect(o.streamName, unittest.equals('foo'));
+  }
+  buildCounterIngestionInfo--;
+}
+
+core.int buildCounterInvideoBranding = 0;
+buildInvideoBranding() {
+  var o = new api.InvideoBranding();
+  buildCounterInvideoBranding++;
+  if (buildCounterInvideoBranding < 3) {
+    o.imageBytes = "foo";
+    o.imageUrl = "foo";
+    o.position = buildInvideoPosition();
+    o.targetChannelId = "foo";
+    o.timing = buildInvideoTiming();
+  }
+  buildCounterInvideoBranding--;
+  return o;
+}
+
+checkInvideoBranding(api.InvideoBranding o) {
+  buildCounterInvideoBranding++;
+  if (buildCounterInvideoBranding < 3) {
+    unittest.expect(o.imageBytes, unittest.equals('foo'));
+    unittest.expect(o.imageUrl, unittest.equals('foo'));
+    checkInvideoPosition(o.position);
+    unittest.expect(o.targetChannelId, unittest.equals('foo'));
+    checkInvideoTiming(o.timing);
+  }
+  buildCounterInvideoBranding--;
+}
+
+core.int buildCounterInvideoPosition = 0;
+buildInvideoPosition() {
+  var o = new api.InvideoPosition();
+  buildCounterInvideoPosition++;
+  if (buildCounterInvideoPosition < 3) {
+    o.cornerPosition = "foo";
+    o.type = "foo";
+  }
+  buildCounterInvideoPosition--;
+  return o;
+}
+
+checkInvideoPosition(api.InvideoPosition o) {
+  buildCounterInvideoPosition++;
+  if (buildCounterInvideoPosition < 3) {
+    unittest.expect(o.cornerPosition, unittest.equals('foo'));
+    unittest.expect(o.type, unittest.equals('foo'));
+  }
+  buildCounterInvideoPosition--;
+}
+
+buildUnnamed356() {
+  var o = new core.List<api.PromotedItem>();
+  o.add(buildPromotedItem());
+  o.add(buildPromotedItem());
+  return o;
+}
+
+checkUnnamed356(core.List<api.PromotedItem> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkPromotedItem(o[0]);
+  checkPromotedItem(o[1]);
+}
+
+core.int buildCounterInvideoPromotion = 0;
+buildInvideoPromotion() {
+  var o = new api.InvideoPromotion();
+  buildCounterInvideoPromotion++;
+  if (buildCounterInvideoPromotion < 3) {
+    o.defaultTiming = buildInvideoTiming();
+    o.items = buildUnnamed356();
+    o.position = buildInvideoPosition();
+  }
+  buildCounterInvideoPromotion--;
+  return o;
+}
+
+checkInvideoPromotion(api.InvideoPromotion o) {
+  buildCounterInvideoPromotion++;
+  if (buildCounterInvideoPromotion < 3) {
+    checkInvideoTiming(o.defaultTiming);
+    checkUnnamed356(o.items);
+    checkInvideoPosition(o.position);
+  }
+  buildCounterInvideoPromotion--;
+}
+
+core.int buildCounterInvideoTiming = 0;
+buildInvideoTiming() {
+  var o = new api.InvideoTiming();
+  buildCounterInvideoTiming++;
+  if (buildCounterInvideoTiming < 3) {
+    o.durationMs = "foo";
+    o.offsetMs = "foo";
+    o.type = "foo";
+  }
+  buildCounterInvideoTiming--;
+  return o;
+}
+
+checkInvideoTiming(api.InvideoTiming o) {
+  buildCounterInvideoTiming++;
+  if (buildCounterInvideoTiming < 3) {
+    unittest.expect(o.durationMs, unittest.equals('foo'));
+    unittest.expect(o.offsetMs, unittest.equals('foo'));
+    unittest.expect(o.type, unittest.equals('foo'));
+  }
+  buildCounterInvideoTiming--;
+}
+
+core.int buildCounterLiveBroadcast = 0;
+buildLiveBroadcast() {
+  var o = new api.LiveBroadcast();
+  buildCounterLiveBroadcast++;
+  if (buildCounterLiveBroadcast < 3) {
+    o.contentDetails = buildLiveBroadcastContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildLiveBroadcastSnippet();
+    o.status = buildLiveBroadcastStatus();
+  }
+  buildCounterLiveBroadcast--;
+  return o;
+}
+
+checkLiveBroadcast(api.LiveBroadcast o) {
+  buildCounterLiveBroadcast++;
+  if (buildCounterLiveBroadcast < 3) {
+    checkLiveBroadcastContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkLiveBroadcastSnippet(o.snippet);
+    checkLiveBroadcastStatus(o.status);
+  }
+  buildCounterLiveBroadcast--;
+}
+
+core.int buildCounterLiveBroadcastContentDetails = 0;
+buildLiveBroadcastContentDetails() {
+  var o = new api.LiveBroadcastContentDetails();
+  buildCounterLiveBroadcastContentDetails++;
+  if (buildCounterLiveBroadcastContentDetails < 3) {
+    o.boundStreamId = "foo";
+    o.enableClosedCaptions = true;
+    o.enableContentEncryption = true;
+    o.enableDvr = true;
+    o.enableEmbed = true;
+    o.monitorStream = buildMonitorStreamInfo();
+    o.recordFromStart = true;
+    o.startWithSlate = true;
+  }
+  buildCounterLiveBroadcastContentDetails--;
+  return o;
+}
+
+checkLiveBroadcastContentDetails(api.LiveBroadcastContentDetails o) {
+  buildCounterLiveBroadcastContentDetails++;
+  if (buildCounterLiveBroadcastContentDetails < 3) {
+    unittest.expect(o.boundStreamId, unittest.equals('foo'));
+    unittest.expect(o.enableClosedCaptions, unittest.isTrue);
+    unittest.expect(o.enableContentEncryption, unittest.isTrue);
+    unittest.expect(o.enableDvr, unittest.isTrue);
+    unittest.expect(o.enableEmbed, unittest.isTrue);
+    checkMonitorStreamInfo(o.monitorStream);
+    unittest.expect(o.recordFromStart, unittest.isTrue);
+    unittest.expect(o.startWithSlate, unittest.isTrue);
+  }
+  buildCounterLiveBroadcastContentDetails--;
+}
+
+buildUnnamed357() {
+  var o = new core.List<api.LiveBroadcast>();
+  o.add(buildLiveBroadcast());
+  o.add(buildLiveBroadcast());
+  return o;
+}
+
+checkUnnamed357(core.List<api.LiveBroadcast> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkLiveBroadcast(o[0]);
+  checkLiveBroadcast(o[1]);
+}
+
+core.int buildCounterLiveBroadcastListResponse = 0;
+buildLiveBroadcastListResponse() {
+  var o = new api.LiveBroadcastListResponse();
+  buildCounterLiveBroadcastListResponse++;
+  if (buildCounterLiveBroadcastListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed357();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterLiveBroadcastListResponse--;
+  return o;
+}
+
+checkLiveBroadcastListResponse(api.LiveBroadcastListResponse o) {
+  buildCounterLiveBroadcastListResponse++;
+  if (buildCounterLiveBroadcastListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed357(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterLiveBroadcastListResponse--;
+}
+
+core.int buildCounterLiveBroadcastSnippet = 0;
+buildLiveBroadcastSnippet() {
+  var o = new api.LiveBroadcastSnippet();
+  buildCounterLiveBroadcastSnippet++;
+  if (buildCounterLiveBroadcastSnippet < 3) {
+    o.actualEndTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.actualStartTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.channelId = "foo";
+    o.description = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.scheduledEndTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.scheduledStartTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterLiveBroadcastSnippet--;
+  return o;
+}
+
+checkLiveBroadcastSnippet(api.LiveBroadcastSnippet o) {
+  buildCounterLiveBroadcastSnippet++;
+  if (buildCounterLiveBroadcastSnippet < 3) {
+    unittest.expect(o.actualEndTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.actualStartTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.scheduledEndTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.scheduledStartTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterLiveBroadcastSnippet--;
+}
+
+core.int buildCounterLiveBroadcastStatus = 0;
+buildLiveBroadcastStatus() {
+  var o = new api.LiveBroadcastStatus();
+  buildCounterLiveBroadcastStatus++;
+  if (buildCounterLiveBroadcastStatus < 3) {
+    o.lifeCycleStatus = "foo";
+    o.liveBroadcastPriority = "foo";
+    o.privacyStatus = "foo";
+    o.recordingStatus = "foo";
+  }
+  buildCounterLiveBroadcastStatus--;
+  return o;
+}
+
+checkLiveBroadcastStatus(api.LiveBroadcastStatus o) {
+  buildCounterLiveBroadcastStatus++;
+  if (buildCounterLiveBroadcastStatus < 3) {
+    unittest.expect(o.lifeCycleStatus, unittest.equals('foo'));
+    unittest.expect(o.liveBroadcastPriority, unittest.equals('foo'));
+    unittest.expect(o.privacyStatus, unittest.equals('foo'));
+    unittest.expect(o.recordingStatus, unittest.equals('foo'));
+  }
+  buildCounterLiveBroadcastStatus--;
+}
+
+core.int buildCounterLiveStream = 0;
+buildLiveStream() {
+  var o = new api.LiveStream();
+  buildCounterLiveStream++;
+  if (buildCounterLiveStream < 3) {
+    o.cdn = buildCdnSettings();
+    o.contentDetails = buildLiveStreamContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildLiveStreamSnippet();
+    o.status = buildLiveStreamStatus();
+  }
+  buildCounterLiveStream--;
+  return o;
+}
+
+checkLiveStream(api.LiveStream o) {
+  buildCounterLiveStream++;
+  if (buildCounterLiveStream < 3) {
+    checkCdnSettings(o.cdn);
+    checkLiveStreamContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkLiveStreamSnippet(o.snippet);
+    checkLiveStreamStatus(o.status);
+  }
+  buildCounterLiveStream--;
+}
+
+core.int buildCounterLiveStreamContentDetails = 0;
+buildLiveStreamContentDetails() {
+  var o = new api.LiveStreamContentDetails();
+  buildCounterLiveStreamContentDetails++;
+  if (buildCounterLiveStreamContentDetails < 3) {
+    o.closedCaptionsIngestionUrl = "foo";
+  }
+  buildCounterLiveStreamContentDetails--;
+  return o;
+}
+
+checkLiveStreamContentDetails(api.LiveStreamContentDetails o) {
+  buildCounterLiveStreamContentDetails++;
+  if (buildCounterLiveStreamContentDetails < 3) {
+    unittest.expect(o.closedCaptionsIngestionUrl, unittest.equals('foo'));
+  }
+  buildCounterLiveStreamContentDetails--;
+}
+
+buildUnnamed358() {
+  var o = new core.List<api.LiveStream>();
+  o.add(buildLiveStream());
+  o.add(buildLiveStream());
+  return o;
+}
+
+checkUnnamed358(core.List<api.LiveStream> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkLiveStream(o[0]);
+  checkLiveStream(o[1]);
+}
+
+core.int buildCounterLiveStreamListResponse = 0;
+buildLiveStreamListResponse() {
+  var o = new api.LiveStreamListResponse();
+  buildCounterLiveStreamListResponse++;
+  if (buildCounterLiveStreamListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed358();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterLiveStreamListResponse--;
+  return o;
+}
+
+checkLiveStreamListResponse(api.LiveStreamListResponse o) {
+  buildCounterLiveStreamListResponse++;
+  if (buildCounterLiveStreamListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed358(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterLiveStreamListResponse--;
+}
+
+core.int buildCounterLiveStreamSnippet = 0;
+buildLiveStreamSnippet() {
+  var o = new api.LiveStreamSnippet();
+  buildCounterLiveStreamSnippet++;
+  if (buildCounterLiveStreamSnippet < 3) {
+    o.channelId = "foo";
+    o.description = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.title = "foo";
+  }
+  buildCounterLiveStreamSnippet--;
+  return o;
+}
+
+checkLiveStreamSnippet(api.LiveStreamSnippet o) {
+  buildCounterLiveStreamSnippet++;
+  if (buildCounterLiveStreamSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterLiveStreamSnippet--;
+}
+
+core.int buildCounterLiveStreamStatus = 0;
+buildLiveStreamStatus() {
+  var o = new api.LiveStreamStatus();
+  buildCounterLiveStreamStatus++;
+  if (buildCounterLiveStreamStatus < 3) {
+    o.streamStatus = "foo";
+  }
+  buildCounterLiveStreamStatus--;
+  return o;
+}
+
+checkLiveStreamStatus(api.LiveStreamStatus o) {
+  buildCounterLiveStreamStatus++;
+  if (buildCounterLiveStreamStatus < 3) {
+    unittest.expect(o.streamStatus, unittest.equals('foo'));
+  }
+  buildCounterLiveStreamStatus--;
+}
+
+buildUnnamed359() {
+  var o = new core.List<api.LocalizedString>();
+  o.add(buildLocalizedString());
+  o.add(buildLocalizedString());
+  return o;
+}
+
+checkUnnamed359(core.List<api.LocalizedString> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkLocalizedString(o[0]);
+  checkLocalizedString(o[1]);
+}
+
+core.int buildCounterLocalizedProperty = 0;
+buildLocalizedProperty() {
+  var o = new api.LocalizedProperty();
+  buildCounterLocalizedProperty++;
+  if (buildCounterLocalizedProperty < 3) {
+    o.default_ = "foo";
+    o.localized = buildUnnamed359();
+  }
+  buildCounterLocalizedProperty--;
+  return o;
+}
+
+checkLocalizedProperty(api.LocalizedProperty o) {
+  buildCounterLocalizedProperty++;
+  if (buildCounterLocalizedProperty < 3) {
+    unittest.expect(o.default_, unittest.equals('foo'));
+    checkUnnamed359(o.localized);
+  }
+  buildCounterLocalizedProperty--;
+}
+
+core.int buildCounterLocalizedString = 0;
+buildLocalizedString() {
+  var o = new api.LocalizedString();
+  buildCounterLocalizedString++;
+  if (buildCounterLocalizedString < 3) {
+    o.language = "foo";
+    o.value = "foo";
+  }
+  buildCounterLocalizedString--;
+  return o;
+}
+
+checkLocalizedString(api.LocalizedString o) {
+  buildCounterLocalizedString++;
+  if (buildCounterLocalizedString < 3) {
+    unittest.expect(o.language, unittest.equals('foo'));
+    unittest.expect(o.value, unittest.equals('foo'));
+  }
+  buildCounterLocalizedString--;
+}
+
+core.int buildCounterMonitorStreamInfo = 0;
+buildMonitorStreamInfo() {
+  var o = new api.MonitorStreamInfo();
+  buildCounterMonitorStreamInfo++;
+  if (buildCounterMonitorStreamInfo < 3) {
+    o.broadcastStreamDelayMs = 42;
+    o.embedHtml = "foo";
+    o.enableMonitorStream = true;
+  }
+  buildCounterMonitorStreamInfo--;
+  return o;
+}
+
+checkMonitorStreamInfo(api.MonitorStreamInfo o) {
+  buildCounterMonitorStreamInfo++;
+  if (buildCounterMonitorStreamInfo < 3) {
+    unittest.expect(o.broadcastStreamDelayMs, unittest.equals(42));
+    unittest.expect(o.embedHtml, unittest.equals('foo'));
+    unittest.expect(o.enableMonitorStream, unittest.isTrue);
+  }
+  buildCounterMonitorStreamInfo--;
+}
+
+core.int buildCounterPageInfo = 0;
+buildPageInfo() {
+  var o = new api.PageInfo();
+  buildCounterPageInfo++;
+  if (buildCounterPageInfo < 3) {
+    o.resultsPerPage = 42;
+    o.totalResults = 42;
+  }
+  buildCounterPageInfo--;
+  return o;
+}
+
+checkPageInfo(api.PageInfo o) {
+  buildCounterPageInfo++;
+  if (buildCounterPageInfo < 3) {
+    unittest.expect(o.resultsPerPage, unittest.equals(42));
+    unittest.expect(o.totalResults, unittest.equals(42));
+  }
+  buildCounterPageInfo--;
+}
+
+core.int buildCounterPlaylist = 0;
+buildPlaylist() {
+  var o = new api.Playlist();
+  buildCounterPlaylist++;
+  if (buildCounterPlaylist < 3) {
+    o.contentDetails = buildPlaylistContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.player = buildPlaylistPlayer();
+    o.snippet = buildPlaylistSnippet();
+    o.status = buildPlaylistStatus();
+  }
+  buildCounterPlaylist--;
+  return o;
+}
+
+checkPlaylist(api.Playlist o) {
+  buildCounterPlaylist++;
+  if (buildCounterPlaylist < 3) {
+    checkPlaylistContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkPlaylistPlayer(o.player);
+    checkPlaylistSnippet(o.snippet);
+    checkPlaylistStatus(o.status);
+  }
+  buildCounterPlaylist--;
+}
+
+core.int buildCounterPlaylistContentDetails = 0;
+buildPlaylistContentDetails() {
+  var o = new api.PlaylistContentDetails();
+  buildCounterPlaylistContentDetails++;
+  if (buildCounterPlaylistContentDetails < 3) {
+    o.itemCount = 42;
+  }
+  buildCounterPlaylistContentDetails--;
+  return o;
+}
+
+checkPlaylistContentDetails(api.PlaylistContentDetails o) {
+  buildCounterPlaylistContentDetails++;
+  if (buildCounterPlaylistContentDetails < 3) {
+    unittest.expect(o.itemCount, unittest.equals(42));
+  }
+  buildCounterPlaylistContentDetails--;
+}
+
+core.int buildCounterPlaylistItem = 0;
+buildPlaylistItem() {
+  var o = new api.PlaylistItem();
+  buildCounterPlaylistItem++;
+  if (buildCounterPlaylistItem < 3) {
+    o.contentDetails = buildPlaylistItemContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildPlaylistItemSnippet();
+    o.status = buildPlaylistItemStatus();
+  }
+  buildCounterPlaylistItem--;
+  return o;
+}
+
+checkPlaylistItem(api.PlaylistItem o) {
+  buildCounterPlaylistItem++;
+  if (buildCounterPlaylistItem < 3) {
+    checkPlaylistItemContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkPlaylistItemSnippet(o.snippet);
+    checkPlaylistItemStatus(o.status);
+  }
+  buildCounterPlaylistItem--;
+}
+
+core.int buildCounterPlaylistItemContentDetails = 0;
+buildPlaylistItemContentDetails() {
+  var o = new api.PlaylistItemContentDetails();
+  buildCounterPlaylistItemContentDetails++;
+  if (buildCounterPlaylistItemContentDetails < 3) {
+    o.endAt = "foo";
+    o.note = "foo";
+    o.startAt = "foo";
+    o.videoId = "foo";
+  }
+  buildCounterPlaylistItemContentDetails--;
+  return o;
+}
+
+checkPlaylistItemContentDetails(api.PlaylistItemContentDetails o) {
+  buildCounterPlaylistItemContentDetails++;
+  if (buildCounterPlaylistItemContentDetails < 3) {
+    unittest.expect(o.endAt, unittest.equals('foo'));
+    unittest.expect(o.note, unittest.equals('foo'));
+    unittest.expect(o.startAt, unittest.equals('foo'));
+    unittest.expect(o.videoId, unittest.equals('foo'));
+  }
+  buildCounterPlaylistItemContentDetails--;
+}
+
+buildUnnamed360() {
+  var o = new core.List<api.PlaylistItem>();
+  o.add(buildPlaylistItem());
+  o.add(buildPlaylistItem());
+  return o;
+}
+
+checkUnnamed360(core.List<api.PlaylistItem> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkPlaylistItem(o[0]);
+  checkPlaylistItem(o[1]);
+}
+
+core.int buildCounterPlaylistItemListResponse = 0;
+buildPlaylistItemListResponse() {
+  var o = new api.PlaylistItemListResponse();
+  buildCounterPlaylistItemListResponse++;
+  if (buildCounterPlaylistItemListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed360();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterPlaylistItemListResponse--;
+  return o;
+}
+
+checkPlaylistItemListResponse(api.PlaylistItemListResponse o) {
+  buildCounterPlaylistItemListResponse++;
+  if (buildCounterPlaylistItemListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed360(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterPlaylistItemListResponse--;
+}
+
+core.int buildCounterPlaylistItemSnippet = 0;
+buildPlaylistItemSnippet() {
+  var o = new api.PlaylistItemSnippet();
+  buildCounterPlaylistItemSnippet++;
+  if (buildCounterPlaylistItemSnippet < 3) {
+    o.channelId = "foo";
+    o.channelTitle = "foo";
+    o.description = "foo";
+    o.playlistId = "foo";
+    o.position = 42;
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.resourceId = buildResourceId();
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterPlaylistItemSnippet--;
+  return o;
+}
+
+checkPlaylistItemSnippet(api.PlaylistItemSnippet o) {
+  buildCounterPlaylistItemSnippet++;
+  if (buildCounterPlaylistItemSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.channelTitle, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.playlistId, unittest.equals('foo'));
+    unittest.expect(o.position, unittest.equals(42));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkResourceId(o.resourceId);
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterPlaylistItemSnippet--;
+}
+
+core.int buildCounterPlaylistItemStatus = 0;
+buildPlaylistItemStatus() {
+  var o = new api.PlaylistItemStatus();
+  buildCounterPlaylistItemStatus++;
+  if (buildCounterPlaylistItemStatus < 3) {
+    o.privacyStatus = "foo";
+  }
+  buildCounterPlaylistItemStatus--;
+  return o;
+}
+
+checkPlaylistItemStatus(api.PlaylistItemStatus o) {
+  buildCounterPlaylistItemStatus++;
+  if (buildCounterPlaylistItemStatus < 3) {
+    unittest.expect(o.privacyStatus, unittest.equals('foo'));
+  }
+  buildCounterPlaylistItemStatus--;
+}
+
+buildUnnamed361() {
+  var o = new core.List<api.Playlist>();
+  o.add(buildPlaylist());
+  o.add(buildPlaylist());
+  return o;
+}
+
+checkUnnamed361(core.List<api.Playlist> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkPlaylist(o[0]);
+  checkPlaylist(o[1]);
+}
+
+core.int buildCounterPlaylistListResponse = 0;
+buildPlaylistListResponse() {
+  var o = new api.PlaylistListResponse();
+  buildCounterPlaylistListResponse++;
+  if (buildCounterPlaylistListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed361();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterPlaylistListResponse--;
+  return o;
+}
+
+checkPlaylistListResponse(api.PlaylistListResponse o) {
+  buildCounterPlaylistListResponse++;
+  if (buildCounterPlaylistListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed361(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterPlaylistListResponse--;
+}
+
+core.int buildCounterPlaylistPlayer = 0;
+buildPlaylistPlayer() {
+  var o = new api.PlaylistPlayer();
+  buildCounterPlaylistPlayer++;
+  if (buildCounterPlaylistPlayer < 3) {
+    o.embedHtml = "foo";
+  }
+  buildCounterPlaylistPlayer--;
+  return o;
+}
+
+checkPlaylistPlayer(api.PlaylistPlayer o) {
+  buildCounterPlaylistPlayer++;
+  if (buildCounterPlaylistPlayer < 3) {
+    unittest.expect(o.embedHtml, unittest.equals('foo'));
+  }
+  buildCounterPlaylistPlayer--;
+}
+
+buildUnnamed362() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed362(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterPlaylistSnippet = 0;
+buildPlaylistSnippet() {
+  var o = new api.PlaylistSnippet();
+  buildCounterPlaylistSnippet++;
+  if (buildCounterPlaylistSnippet < 3) {
+    o.channelId = "foo";
+    o.channelTitle = "foo";
+    o.description = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.tags = buildUnnamed362();
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterPlaylistSnippet--;
+  return o;
+}
+
+checkPlaylistSnippet(api.PlaylistSnippet o) {
+  buildCounterPlaylistSnippet++;
+  if (buildCounterPlaylistSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.channelTitle, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkUnnamed362(o.tags);
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterPlaylistSnippet--;
+}
+
+core.int buildCounterPlaylistStatus = 0;
+buildPlaylistStatus() {
+  var o = new api.PlaylistStatus();
+  buildCounterPlaylistStatus++;
+  if (buildCounterPlaylistStatus < 3) {
+    o.privacyStatus = "foo";
+  }
+  buildCounterPlaylistStatus--;
+  return o;
+}
+
+checkPlaylistStatus(api.PlaylistStatus o) {
+  buildCounterPlaylistStatus++;
+  if (buildCounterPlaylistStatus < 3) {
+    unittest.expect(o.privacyStatus, unittest.equals('foo'));
+  }
+  buildCounterPlaylistStatus--;
+}
+
+core.int buildCounterPromotedItem = 0;
+buildPromotedItem() {
+  var o = new api.PromotedItem();
+  buildCounterPromotedItem++;
+  if (buildCounterPromotedItem < 3) {
+    o.customMessage = "foo";
+    o.id = buildPromotedItemId();
+    o.promotedByContentOwner = true;
+    o.timing = buildInvideoTiming();
+  }
+  buildCounterPromotedItem--;
+  return o;
+}
+
+checkPromotedItem(api.PromotedItem o) {
+  buildCounterPromotedItem++;
+  if (buildCounterPromotedItem < 3) {
+    unittest.expect(o.customMessage, unittest.equals('foo'));
+    checkPromotedItemId(o.id);
+    unittest.expect(o.promotedByContentOwner, unittest.isTrue);
+    checkInvideoTiming(o.timing);
+  }
+  buildCounterPromotedItem--;
+}
+
+core.int buildCounterPromotedItemId = 0;
+buildPromotedItemId() {
+  var o = new api.PromotedItemId();
+  buildCounterPromotedItemId++;
+  if (buildCounterPromotedItemId < 3) {
+    o.recentlyUploadedBy = "foo";
+    o.type = "foo";
+    o.videoId = "foo";
+    o.websiteUrl = "foo";
+  }
+  buildCounterPromotedItemId--;
+  return o;
+}
+
+checkPromotedItemId(api.PromotedItemId o) {
+  buildCounterPromotedItemId++;
+  if (buildCounterPromotedItemId < 3) {
+    unittest.expect(o.recentlyUploadedBy, unittest.equals('foo'));
+    unittest.expect(o.type, unittest.equals('foo'));
+    unittest.expect(o.videoId, unittest.equals('foo'));
+    unittest.expect(o.websiteUrl, unittest.equals('foo'));
+  }
+  buildCounterPromotedItemId--;
+}
+
+core.int buildCounterPropertyValue = 0;
+buildPropertyValue() {
+  var o = new api.PropertyValue();
+  buildCounterPropertyValue++;
+  if (buildCounterPropertyValue < 3) {
+    o.property = "foo";
+    o.value = "foo";
+  }
+  buildCounterPropertyValue--;
+  return o;
+}
+
+checkPropertyValue(api.PropertyValue o) {
+  buildCounterPropertyValue++;
+  if (buildCounterPropertyValue < 3) {
+    unittest.expect(o.property, unittest.equals('foo'));
+    unittest.expect(o.value, unittest.equals('foo'));
+  }
+  buildCounterPropertyValue--;
+}
+
+core.int buildCounterResourceId = 0;
+buildResourceId() {
+  var o = new api.ResourceId();
+  buildCounterResourceId++;
+  if (buildCounterResourceId < 3) {
+    o.channelId = "foo";
+    o.kind = "foo";
+    o.playlistId = "foo";
+    o.videoId = "foo";
+  }
+  buildCounterResourceId--;
+  return o;
+}
+
+checkResourceId(api.ResourceId o) {
+  buildCounterResourceId++;
+  if (buildCounterResourceId < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.playlistId, unittest.equals('foo'));
+    unittest.expect(o.videoId, unittest.equals('foo'));
+  }
+  buildCounterResourceId--;
+}
+
+buildUnnamed363() {
+  var o = new core.List<api.SearchResult>();
+  o.add(buildSearchResult());
+  o.add(buildSearchResult());
+  return o;
+}
+
+checkUnnamed363(core.List<api.SearchResult> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkSearchResult(o[0]);
+  checkSearchResult(o[1]);
+}
+
+core.int buildCounterSearchListResponse = 0;
+buildSearchListResponse() {
+  var o = new api.SearchListResponse();
+  buildCounterSearchListResponse++;
+  if (buildCounterSearchListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed363();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterSearchListResponse--;
+  return o;
+}
+
+checkSearchListResponse(api.SearchListResponse o) {
+  buildCounterSearchListResponse++;
+  if (buildCounterSearchListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed363(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterSearchListResponse--;
+}
+
+core.int buildCounterSearchResult = 0;
+buildSearchResult() {
+  var o = new api.SearchResult();
+  buildCounterSearchResult++;
+  if (buildCounterSearchResult < 3) {
+    o.etag = "foo";
+    o.id = buildResourceId();
+    o.kind = "foo";
+    o.snippet = buildSearchResultSnippet();
+  }
+  buildCounterSearchResult--;
+  return o;
+}
+
+checkSearchResult(api.SearchResult o) {
+  buildCounterSearchResult++;
+  if (buildCounterSearchResult < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    checkResourceId(o.id);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkSearchResultSnippet(o.snippet);
+  }
+  buildCounterSearchResult--;
+}
+
+core.int buildCounterSearchResultSnippet = 0;
+buildSearchResultSnippet() {
+  var o = new api.SearchResultSnippet();
+  buildCounterSearchResultSnippet++;
+  if (buildCounterSearchResultSnippet < 3) {
+    o.channelId = "foo";
+    o.channelTitle = "foo";
+    o.description = "foo";
+    o.liveBroadcastContent = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterSearchResultSnippet--;
+  return o;
+}
+
+checkSearchResultSnippet(api.SearchResultSnippet o) {
+  buildCounterSearchResultSnippet++;
+  if (buildCounterSearchResultSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.channelTitle, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.liveBroadcastContent, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterSearchResultSnippet--;
+}
+
+core.int buildCounterSubscription = 0;
+buildSubscription() {
+  var o = new api.Subscription();
+  buildCounterSubscription++;
+  if (buildCounterSubscription < 3) {
+    o.contentDetails = buildSubscriptionContentDetails();
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildSubscriptionSnippet();
+    o.subscriberSnippet = buildSubscriptionSubscriberSnippet();
+  }
+  buildCounterSubscription--;
+  return o;
+}
+
+checkSubscription(api.Subscription o) {
+  buildCounterSubscription++;
+  if (buildCounterSubscription < 3) {
+    checkSubscriptionContentDetails(o.contentDetails);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkSubscriptionSnippet(o.snippet);
+    checkSubscriptionSubscriberSnippet(o.subscriberSnippet);
+  }
+  buildCounterSubscription--;
+}
+
+core.int buildCounterSubscriptionContentDetails = 0;
+buildSubscriptionContentDetails() {
+  var o = new api.SubscriptionContentDetails();
+  buildCounterSubscriptionContentDetails++;
+  if (buildCounterSubscriptionContentDetails < 3) {
+    o.activityType = "foo";
+    o.newItemCount = 42;
+    o.totalItemCount = 42;
+  }
+  buildCounterSubscriptionContentDetails--;
+  return o;
+}
+
+checkSubscriptionContentDetails(api.SubscriptionContentDetails o) {
+  buildCounterSubscriptionContentDetails++;
+  if (buildCounterSubscriptionContentDetails < 3) {
+    unittest.expect(o.activityType, unittest.equals('foo'));
+    unittest.expect(o.newItemCount, unittest.equals(42));
+    unittest.expect(o.totalItemCount, unittest.equals(42));
+  }
+  buildCounterSubscriptionContentDetails--;
+}
+
+buildUnnamed364() {
+  var o = new core.List<api.Subscription>();
+  o.add(buildSubscription());
+  o.add(buildSubscription());
+  return o;
+}
+
+checkUnnamed364(core.List<api.Subscription> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkSubscription(o[0]);
+  checkSubscription(o[1]);
+}
+
+core.int buildCounterSubscriptionListResponse = 0;
+buildSubscriptionListResponse() {
+  var o = new api.SubscriptionListResponse();
+  buildCounterSubscriptionListResponse++;
+  if (buildCounterSubscriptionListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed364();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterSubscriptionListResponse--;
+  return o;
+}
+
+checkSubscriptionListResponse(api.SubscriptionListResponse o) {
+  buildCounterSubscriptionListResponse++;
+  if (buildCounterSubscriptionListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed364(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterSubscriptionListResponse--;
+}
+
+core.int buildCounterSubscriptionSnippet = 0;
+buildSubscriptionSnippet() {
+  var o = new api.SubscriptionSnippet();
+  buildCounterSubscriptionSnippet++;
+  if (buildCounterSubscriptionSnippet < 3) {
+    o.channelId = "foo";
+    o.channelTitle = "foo";
+    o.description = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.resourceId = buildResourceId();
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterSubscriptionSnippet--;
+  return o;
+}
+
+checkSubscriptionSnippet(api.SubscriptionSnippet o) {
+  buildCounterSubscriptionSnippet++;
+  if (buildCounterSubscriptionSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.channelTitle, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkResourceId(o.resourceId);
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterSubscriptionSnippet--;
+}
+
+core.int buildCounterSubscriptionSubscriberSnippet = 0;
+buildSubscriptionSubscriberSnippet() {
+  var o = new api.SubscriptionSubscriberSnippet();
+  buildCounterSubscriptionSubscriberSnippet++;
+  if (buildCounterSubscriptionSubscriberSnippet < 3) {
+    o.channelId = "foo";
+    o.description = "foo";
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterSubscriptionSubscriberSnippet--;
+  return o;
+}
+
+checkSubscriptionSubscriberSnippet(api.SubscriptionSubscriberSnippet o) {
+  buildCounterSubscriptionSubscriberSnippet++;
+  if (buildCounterSubscriptionSubscriberSnippet < 3) {
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterSubscriptionSubscriberSnippet--;
+}
+
+core.int buildCounterThumbnail = 0;
+buildThumbnail() {
+  var o = new api.Thumbnail();
+  buildCounterThumbnail++;
+  if (buildCounterThumbnail < 3) {
+    o.height = 42;
+    o.url = "foo";
+    o.width = 42;
+  }
+  buildCounterThumbnail--;
+  return o;
+}
+
+checkThumbnail(api.Thumbnail o) {
+  buildCounterThumbnail++;
+  if (buildCounterThumbnail < 3) {
+    unittest.expect(o.height, unittest.equals(42));
+    unittest.expect(o.url, unittest.equals('foo'));
+    unittest.expect(o.width, unittest.equals(42));
+  }
+  buildCounterThumbnail--;
+}
+
+core.int buildCounterThumbnailDetails = 0;
+buildThumbnailDetails() {
+  var o = new api.ThumbnailDetails();
+  buildCounterThumbnailDetails++;
+  if (buildCounterThumbnailDetails < 3) {
+    o.default_ = buildThumbnail();
+    o.high = buildThumbnail();
+    o.maxres = buildThumbnail();
+    o.medium = buildThumbnail();
+    o.standard = buildThumbnail();
+  }
+  buildCounterThumbnailDetails--;
+  return o;
+}
+
+checkThumbnailDetails(api.ThumbnailDetails o) {
+  buildCounterThumbnailDetails++;
+  if (buildCounterThumbnailDetails < 3) {
+    checkThumbnail(o.default_);
+    checkThumbnail(o.high);
+    checkThumbnail(o.maxres);
+    checkThumbnail(o.medium);
+    checkThumbnail(o.standard);
+  }
+  buildCounterThumbnailDetails--;
+}
+
+buildUnnamed365() {
+  var o = new core.List<api.ThumbnailDetails>();
+  o.add(buildThumbnailDetails());
+  o.add(buildThumbnailDetails());
+  return o;
+}
+
+checkUnnamed365(core.List<api.ThumbnailDetails> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkThumbnailDetails(o[0]);
+  checkThumbnailDetails(o[1]);
+}
+
+core.int buildCounterThumbnailSetResponse = 0;
+buildThumbnailSetResponse() {
+  var o = new api.ThumbnailSetResponse();
+  buildCounterThumbnailSetResponse++;
+  if (buildCounterThumbnailSetResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed365();
+    o.kind = "foo";
+    o.visitorId = "foo";
+  }
+  buildCounterThumbnailSetResponse--;
+  return o;
+}
+
+checkThumbnailSetResponse(api.ThumbnailSetResponse o) {
+  buildCounterThumbnailSetResponse++;
+  if (buildCounterThumbnailSetResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed365(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterThumbnailSetResponse--;
+}
+
+core.int buildCounterTokenPagination = 0;
+buildTokenPagination() {
+  var o = new api.TokenPagination();
+  buildCounterTokenPagination++;
+  if (buildCounterTokenPagination < 3) {
+  }
+  buildCounterTokenPagination--;
+  return o;
+}
+
+checkTokenPagination(api.TokenPagination o) {
+  buildCounterTokenPagination++;
+  if (buildCounterTokenPagination < 3) {
+  }
+  buildCounterTokenPagination--;
+}
+
+core.int buildCounterVideo = 0;
+buildVideo() {
+  var o = new api.Video();
+  buildCounterVideo++;
+  if (buildCounterVideo < 3) {
+    o.ageGating = buildVideoAgeGating();
+    o.contentDetails = buildVideoContentDetails();
+    o.conversionPings = buildVideoConversionPings();
+    o.etag = "foo";
+    o.fileDetails = buildVideoFileDetails();
+    o.id = "foo";
+    o.kind = "foo";
+    o.liveStreamingDetails = buildVideoLiveStreamingDetails();
+    o.monetizationDetails = buildVideoMonetizationDetails();
+    o.player = buildVideoPlayer();
+    o.processingDetails = buildVideoProcessingDetails();
+    o.projectDetails = buildVideoProjectDetails();
+    o.recordingDetails = buildVideoRecordingDetails();
+    o.snippet = buildVideoSnippet();
+    o.statistics = buildVideoStatistics();
+    o.status = buildVideoStatus();
+    o.suggestions = buildVideoSuggestions();
+    o.topicDetails = buildVideoTopicDetails();
+  }
+  buildCounterVideo--;
+  return o;
+}
+
+checkVideo(api.Video o) {
+  buildCounterVideo++;
+  if (buildCounterVideo < 3) {
+    checkVideoAgeGating(o.ageGating);
+    checkVideoContentDetails(o.contentDetails);
+    checkVideoConversionPings(o.conversionPings);
+    unittest.expect(o.etag, unittest.equals('foo'));
+    checkVideoFileDetails(o.fileDetails);
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkVideoLiveStreamingDetails(o.liveStreamingDetails);
+    checkVideoMonetizationDetails(o.monetizationDetails);
+    checkVideoPlayer(o.player);
+    checkVideoProcessingDetails(o.processingDetails);
+    checkVideoProjectDetails(o.projectDetails);
+    checkVideoRecordingDetails(o.recordingDetails);
+    checkVideoSnippet(o.snippet);
+    checkVideoStatistics(o.statistics);
+    checkVideoStatus(o.status);
+    checkVideoSuggestions(o.suggestions);
+    checkVideoTopicDetails(o.topicDetails);
+  }
+  buildCounterVideo--;
+}
+
+core.int buildCounterVideoAgeGating = 0;
+buildVideoAgeGating() {
+  var o = new api.VideoAgeGating();
+  buildCounterVideoAgeGating++;
+  if (buildCounterVideoAgeGating < 3) {
+    o.alcoholContent = true;
+    o.restricted = true;
+    o.videoGameRating = "foo";
+  }
+  buildCounterVideoAgeGating--;
+  return o;
+}
+
+checkVideoAgeGating(api.VideoAgeGating o) {
+  buildCounterVideoAgeGating++;
+  if (buildCounterVideoAgeGating < 3) {
+    unittest.expect(o.alcoholContent, unittest.isTrue);
+    unittest.expect(o.restricted, unittest.isTrue);
+    unittest.expect(o.videoGameRating, unittest.equals('foo'));
+  }
+  buildCounterVideoAgeGating--;
+}
+
+core.int buildCounterVideoCategory = 0;
+buildVideoCategory() {
+  var o = new api.VideoCategory();
+  buildCounterVideoCategory++;
+  if (buildCounterVideoCategory < 3) {
+    o.etag = "foo";
+    o.id = "foo";
+    o.kind = "foo";
+    o.snippet = buildVideoCategorySnippet();
+  }
+  buildCounterVideoCategory--;
+  return o;
+}
+
+checkVideoCategory(api.VideoCategory o) {
+  buildCounterVideoCategory++;
+  if (buildCounterVideoCategory < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.id, unittest.equals('foo'));
+    unittest.expect(o.kind, unittest.equals('foo'));
+    checkVideoCategorySnippet(o.snippet);
+  }
+  buildCounterVideoCategory--;
+}
+
+buildUnnamed366() {
+  var o = new core.List<api.VideoCategory>();
+  o.add(buildVideoCategory());
+  o.add(buildVideoCategory());
+  return o;
+}
+
+checkUnnamed366(core.List<api.VideoCategory> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideoCategory(o[0]);
+  checkVideoCategory(o[1]);
+}
+
+core.int buildCounterVideoCategoryListResponse = 0;
+buildVideoCategoryListResponse() {
+  var o = new api.VideoCategoryListResponse();
+  buildCounterVideoCategoryListResponse++;
+  if (buildCounterVideoCategoryListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed366();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterVideoCategoryListResponse--;
+  return o;
+}
+
+checkVideoCategoryListResponse(api.VideoCategoryListResponse o) {
+  buildCounterVideoCategoryListResponse++;
+  if (buildCounterVideoCategoryListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed366(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterVideoCategoryListResponse--;
+}
+
+core.int buildCounterVideoCategorySnippet = 0;
+buildVideoCategorySnippet() {
+  var o = new api.VideoCategorySnippet();
+  buildCounterVideoCategorySnippet++;
+  if (buildCounterVideoCategorySnippet < 3) {
+    o.assignable = true;
+    o.channelId = "foo";
+    o.title = "foo";
+  }
+  buildCounterVideoCategorySnippet--;
+  return o;
+}
+
+checkVideoCategorySnippet(api.VideoCategorySnippet o) {
+  buildCounterVideoCategorySnippet++;
+  if (buildCounterVideoCategorySnippet < 3) {
+    unittest.expect(o.assignable, unittest.isTrue);
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterVideoCategorySnippet--;
+}
+
+core.int buildCounterVideoContentDetails = 0;
+buildVideoContentDetails() {
+  var o = new api.VideoContentDetails();
+  buildCounterVideoContentDetails++;
+  if (buildCounterVideoContentDetails < 3) {
+    o.caption = "foo";
+    o.contentRating = buildContentRating();
+    o.countryRestriction = buildAccessPolicy();
+    o.definition = "foo";
+    o.dimension = "foo";
+    o.duration = "foo";
+    o.licensedContent = true;
+    o.regionRestriction = buildVideoContentDetailsRegionRestriction();
+  }
+  buildCounterVideoContentDetails--;
+  return o;
+}
+
+checkVideoContentDetails(api.VideoContentDetails o) {
+  buildCounterVideoContentDetails++;
+  if (buildCounterVideoContentDetails < 3) {
+    unittest.expect(o.caption, unittest.equals('foo'));
+    checkContentRating(o.contentRating);
+    checkAccessPolicy(o.countryRestriction);
+    unittest.expect(o.definition, unittest.equals('foo'));
+    unittest.expect(o.dimension, unittest.equals('foo'));
+    unittest.expect(o.duration, unittest.equals('foo'));
+    unittest.expect(o.licensedContent, unittest.isTrue);
+    checkVideoContentDetailsRegionRestriction(o.regionRestriction);
+  }
+  buildCounterVideoContentDetails--;
+}
+
+buildUnnamed367() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed367(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed368() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed368(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterVideoContentDetailsRegionRestriction = 0;
+buildVideoContentDetailsRegionRestriction() {
+  var o = new api.VideoContentDetailsRegionRestriction();
+  buildCounterVideoContentDetailsRegionRestriction++;
+  if (buildCounterVideoContentDetailsRegionRestriction < 3) {
+    o.allowed = buildUnnamed367();
+    o.blocked = buildUnnamed368();
+  }
+  buildCounterVideoContentDetailsRegionRestriction--;
+  return o;
+}
+
+checkVideoContentDetailsRegionRestriction(api.VideoContentDetailsRegionRestriction o) {
+  buildCounterVideoContentDetailsRegionRestriction++;
+  if (buildCounterVideoContentDetailsRegionRestriction < 3) {
+    checkUnnamed367(o.allowed);
+    checkUnnamed368(o.blocked);
+  }
+  buildCounterVideoContentDetailsRegionRestriction--;
+}
+
+core.int buildCounterVideoConversionPing = 0;
+buildVideoConversionPing() {
+  var o = new api.VideoConversionPing();
+  buildCounterVideoConversionPing++;
+  if (buildCounterVideoConversionPing < 3) {
+    o.context = "foo";
+    o.conversionUrl = "foo";
+  }
+  buildCounterVideoConversionPing--;
+  return o;
+}
+
+checkVideoConversionPing(api.VideoConversionPing o) {
+  buildCounterVideoConversionPing++;
+  if (buildCounterVideoConversionPing < 3) {
+    unittest.expect(o.context, unittest.equals('foo'));
+    unittest.expect(o.conversionUrl, unittest.equals('foo'));
+  }
+  buildCounterVideoConversionPing--;
+}
+
+buildUnnamed369() {
+  var o = new core.List<api.VideoConversionPing>();
+  o.add(buildVideoConversionPing());
+  o.add(buildVideoConversionPing());
+  return o;
+}
+
+checkUnnamed369(core.List<api.VideoConversionPing> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideoConversionPing(o[0]);
+  checkVideoConversionPing(o[1]);
+}
+
+core.int buildCounterVideoConversionPings = 0;
+buildVideoConversionPings() {
+  var o = new api.VideoConversionPings();
+  buildCounterVideoConversionPings++;
+  if (buildCounterVideoConversionPings < 3) {
+    o.pings = buildUnnamed369();
+  }
+  buildCounterVideoConversionPings--;
+  return o;
+}
+
+checkVideoConversionPings(api.VideoConversionPings o) {
+  buildCounterVideoConversionPings++;
+  if (buildCounterVideoConversionPings < 3) {
+    checkUnnamed369(o.pings);
+  }
+  buildCounterVideoConversionPings--;
+}
+
+buildUnnamed370() {
+  var o = new core.List<api.VideoFileDetailsAudioStream>();
+  o.add(buildVideoFileDetailsAudioStream());
+  o.add(buildVideoFileDetailsAudioStream());
+  return o;
+}
+
+checkUnnamed370(core.List<api.VideoFileDetailsAudioStream> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideoFileDetailsAudioStream(o[0]);
+  checkVideoFileDetailsAudioStream(o[1]);
+}
+
+buildUnnamed371() {
+  var o = new core.List<api.VideoFileDetailsVideoStream>();
+  o.add(buildVideoFileDetailsVideoStream());
+  o.add(buildVideoFileDetailsVideoStream());
+  return o;
+}
+
+checkUnnamed371(core.List<api.VideoFileDetailsVideoStream> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideoFileDetailsVideoStream(o[0]);
+  checkVideoFileDetailsVideoStream(o[1]);
+}
+
+core.int buildCounterVideoFileDetails = 0;
+buildVideoFileDetails() {
+  var o = new api.VideoFileDetails();
+  buildCounterVideoFileDetails++;
+  if (buildCounterVideoFileDetails < 3) {
+    o.audioStreams = buildUnnamed370();
+    o.bitrateBps = "foo";
+    o.container = "foo";
+    o.creationTime = "foo";
+    o.durationMs = "foo";
+    o.fileName = "foo";
+    o.fileSize = "foo";
+    o.fileType = "foo";
+    o.recordingLocation = buildGeoPoint();
+    o.videoStreams = buildUnnamed371();
+  }
+  buildCounterVideoFileDetails--;
+  return o;
+}
+
+checkVideoFileDetails(api.VideoFileDetails o) {
+  buildCounterVideoFileDetails++;
+  if (buildCounterVideoFileDetails < 3) {
+    checkUnnamed370(o.audioStreams);
+    unittest.expect(o.bitrateBps, unittest.equals('foo'));
+    unittest.expect(o.container, unittest.equals('foo'));
+    unittest.expect(o.creationTime, unittest.equals('foo'));
+    unittest.expect(o.durationMs, unittest.equals('foo'));
+    unittest.expect(o.fileName, unittest.equals('foo'));
+    unittest.expect(o.fileSize, unittest.equals('foo'));
+    unittest.expect(o.fileType, unittest.equals('foo'));
+    checkGeoPoint(o.recordingLocation);
+    checkUnnamed371(o.videoStreams);
+  }
+  buildCounterVideoFileDetails--;
+}
+
+core.int buildCounterVideoFileDetailsAudioStream = 0;
+buildVideoFileDetailsAudioStream() {
+  var o = new api.VideoFileDetailsAudioStream();
+  buildCounterVideoFileDetailsAudioStream++;
+  if (buildCounterVideoFileDetailsAudioStream < 3) {
+    o.bitrateBps = "foo";
+    o.channelCount = 42;
+    o.codec = "foo";
+    o.vendor = "foo";
+  }
+  buildCounterVideoFileDetailsAudioStream--;
+  return o;
+}
+
+checkVideoFileDetailsAudioStream(api.VideoFileDetailsAudioStream o) {
+  buildCounterVideoFileDetailsAudioStream++;
+  if (buildCounterVideoFileDetailsAudioStream < 3) {
+    unittest.expect(o.bitrateBps, unittest.equals('foo'));
+    unittest.expect(o.channelCount, unittest.equals(42));
+    unittest.expect(o.codec, unittest.equals('foo'));
+    unittest.expect(o.vendor, unittest.equals('foo'));
+  }
+  buildCounterVideoFileDetailsAudioStream--;
+}
+
+core.int buildCounterVideoFileDetailsVideoStream = 0;
+buildVideoFileDetailsVideoStream() {
+  var o = new api.VideoFileDetailsVideoStream();
+  buildCounterVideoFileDetailsVideoStream++;
+  if (buildCounterVideoFileDetailsVideoStream < 3) {
+    o.aspectRatio = 42.0;
+    o.bitrateBps = "foo";
+    o.codec = "foo";
+    o.frameRateFps = 42.0;
+    o.heightPixels = 42;
+    o.rotation = "foo";
+    o.vendor = "foo";
+    o.widthPixels = 42;
+  }
+  buildCounterVideoFileDetailsVideoStream--;
+  return o;
+}
+
+checkVideoFileDetailsVideoStream(api.VideoFileDetailsVideoStream o) {
+  buildCounterVideoFileDetailsVideoStream++;
+  if (buildCounterVideoFileDetailsVideoStream < 3) {
+    unittest.expect(o.aspectRatio, unittest.equals(42.0));
+    unittest.expect(o.bitrateBps, unittest.equals('foo'));
+    unittest.expect(o.codec, unittest.equals('foo'));
+    unittest.expect(o.frameRateFps, unittest.equals(42.0));
+    unittest.expect(o.heightPixels, unittest.equals(42));
+    unittest.expect(o.rotation, unittest.equals('foo'));
+    unittest.expect(o.vendor, unittest.equals('foo'));
+    unittest.expect(o.widthPixels, unittest.equals(42));
+  }
+  buildCounterVideoFileDetailsVideoStream--;
+}
+
+buildUnnamed372() {
+  var o = new core.List<api.VideoRating>();
+  o.add(buildVideoRating());
+  o.add(buildVideoRating());
+  return o;
+}
+
+checkUnnamed372(core.List<api.VideoRating> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideoRating(o[0]);
+  checkVideoRating(o[1]);
+}
+
+core.int buildCounterVideoGetRatingResponse = 0;
+buildVideoGetRatingResponse() {
+  var o = new api.VideoGetRatingResponse();
+  buildCounterVideoGetRatingResponse++;
+  if (buildCounterVideoGetRatingResponse < 3) {
+    o.etag = "foo";
+    o.items = buildUnnamed372();
+    o.kind = "foo";
+  }
+  buildCounterVideoGetRatingResponse--;
+  return o;
+}
+
+checkVideoGetRatingResponse(api.VideoGetRatingResponse o) {
+  buildCounterVideoGetRatingResponse++;
+  if (buildCounterVideoGetRatingResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    checkUnnamed372(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+  }
+  buildCounterVideoGetRatingResponse--;
+}
+
+buildUnnamed373() {
+  var o = new core.List<api.Video>();
+  o.add(buildVideo());
+  o.add(buildVideo());
+  return o;
+}
+
+checkUnnamed373(core.List<api.Video> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideo(o[0]);
+  checkVideo(o[1]);
+}
+
+core.int buildCounterVideoListResponse = 0;
+buildVideoListResponse() {
+  var o = new api.VideoListResponse();
+  buildCounterVideoListResponse++;
+  if (buildCounterVideoListResponse < 3) {
+    o.etag = "foo";
+    o.eventId = "foo";
+    o.items = buildUnnamed373();
+    o.kind = "foo";
+    o.nextPageToken = "foo";
+    o.pageInfo = buildPageInfo();
+    o.prevPageToken = "foo";
+    o.tokenPagination = buildTokenPagination();
+    o.visitorId = "foo";
+  }
+  buildCounterVideoListResponse--;
+  return o;
+}
+
+checkVideoListResponse(api.VideoListResponse o) {
+  buildCounterVideoListResponse++;
+  if (buildCounterVideoListResponse < 3) {
+    unittest.expect(o.etag, unittest.equals('foo'));
+    unittest.expect(o.eventId, unittest.equals('foo'));
+    checkUnnamed373(o.items);
+    unittest.expect(o.kind, unittest.equals('foo'));
+    unittest.expect(o.nextPageToken, unittest.equals('foo'));
+    checkPageInfo(o.pageInfo);
+    unittest.expect(o.prevPageToken, unittest.equals('foo'));
+    checkTokenPagination(o.tokenPagination);
+    unittest.expect(o.visitorId, unittest.equals('foo'));
+  }
+  buildCounterVideoListResponse--;
+}
+
+core.int buildCounterVideoLiveStreamingDetails = 0;
+buildVideoLiveStreamingDetails() {
+  var o = new api.VideoLiveStreamingDetails();
+  buildCounterVideoLiveStreamingDetails++;
+  if (buildCounterVideoLiveStreamingDetails < 3) {
+    o.actualEndTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.actualStartTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.concurrentViewers = "foo";
+    o.scheduledEndTime = core.DateTime.parse("2002-02-27T14:01:02");
+    o.scheduledStartTime = core.DateTime.parse("2002-02-27T14:01:02");
+  }
+  buildCounterVideoLiveStreamingDetails--;
+  return o;
+}
+
+checkVideoLiveStreamingDetails(api.VideoLiveStreamingDetails o) {
+  buildCounterVideoLiveStreamingDetails++;
+  if (buildCounterVideoLiveStreamingDetails < 3) {
+    unittest.expect(o.actualEndTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.actualStartTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.concurrentViewers, unittest.equals('foo'));
+    unittest.expect(o.scheduledEndTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.scheduledStartTime, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+  }
+  buildCounterVideoLiveStreamingDetails--;
+}
+
+core.int buildCounterVideoMonetizationDetails = 0;
+buildVideoMonetizationDetails() {
+  var o = new api.VideoMonetizationDetails();
+  buildCounterVideoMonetizationDetails++;
+  if (buildCounterVideoMonetizationDetails < 3) {
+    o.access = buildAccessPolicy();
+  }
+  buildCounterVideoMonetizationDetails--;
+  return o;
+}
+
+checkVideoMonetizationDetails(api.VideoMonetizationDetails o) {
+  buildCounterVideoMonetizationDetails++;
+  if (buildCounterVideoMonetizationDetails < 3) {
+    checkAccessPolicy(o.access);
+  }
+  buildCounterVideoMonetizationDetails--;
+}
+
+core.int buildCounterVideoPlayer = 0;
+buildVideoPlayer() {
+  var o = new api.VideoPlayer();
+  buildCounterVideoPlayer++;
+  if (buildCounterVideoPlayer < 3) {
+    o.embedHtml = "foo";
+  }
+  buildCounterVideoPlayer--;
+  return o;
+}
+
+checkVideoPlayer(api.VideoPlayer o) {
+  buildCounterVideoPlayer++;
+  if (buildCounterVideoPlayer < 3) {
+    unittest.expect(o.embedHtml, unittest.equals('foo'));
+  }
+  buildCounterVideoPlayer--;
+}
+
+core.int buildCounterVideoProcessingDetails = 0;
+buildVideoProcessingDetails() {
+  var o = new api.VideoProcessingDetails();
+  buildCounterVideoProcessingDetails++;
+  if (buildCounterVideoProcessingDetails < 3) {
+    o.editorSuggestionsAvailability = "foo";
+    o.fileDetailsAvailability = "foo";
+    o.processingFailureReason = "foo";
+    o.processingIssuesAvailability = "foo";
+    o.processingProgress = buildVideoProcessingDetailsProcessingProgress();
+    o.processingStatus = "foo";
+    o.tagSuggestionsAvailability = "foo";
+    o.thumbnailsAvailability = "foo";
+  }
+  buildCounterVideoProcessingDetails--;
+  return o;
+}
+
+checkVideoProcessingDetails(api.VideoProcessingDetails o) {
+  buildCounterVideoProcessingDetails++;
+  if (buildCounterVideoProcessingDetails < 3) {
+    unittest.expect(o.editorSuggestionsAvailability, unittest.equals('foo'));
+    unittest.expect(o.fileDetailsAvailability, unittest.equals('foo'));
+    unittest.expect(o.processingFailureReason, unittest.equals('foo'));
+    unittest.expect(o.processingIssuesAvailability, unittest.equals('foo'));
+    checkVideoProcessingDetailsProcessingProgress(o.processingProgress);
+    unittest.expect(o.processingStatus, unittest.equals('foo'));
+    unittest.expect(o.tagSuggestionsAvailability, unittest.equals('foo'));
+    unittest.expect(o.thumbnailsAvailability, unittest.equals('foo'));
+  }
+  buildCounterVideoProcessingDetails--;
+}
+
+core.int buildCounterVideoProcessingDetailsProcessingProgress = 0;
+buildVideoProcessingDetailsProcessingProgress() {
+  var o = new api.VideoProcessingDetailsProcessingProgress();
+  buildCounterVideoProcessingDetailsProcessingProgress++;
+  if (buildCounterVideoProcessingDetailsProcessingProgress < 3) {
+    o.partsProcessed = "foo";
+    o.partsTotal = "foo";
+    o.timeLeftMs = "foo";
+  }
+  buildCounterVideoProcessingDetailsProcessingProgress--;
+  return o;
+}
+
+checkVideoProcessingDetailsProcessingProgress(api.VideoProcessingDetailsProcessingProgress o) {
+  buildCounterVideoProcessingDetailsProcessingProgress++;
+  if (buildCounterVideoProcessingDetailsProcessingProgress < 3) {
+    unittest.expect(o.partsProcessed, unittest.equals('foo'));
+    unittest.expect(o.partsTotal, unittest.equals('foo'));
+    unittest.expect(o.timeLeftMs, unittest.equals('foo'));
+  }
+  buildCounterVideoProcessingDetailsProcessingProgress--;
+}
+
+buildUnnamed374() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed374(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterVideoProjectDetails = 0;
+buildVideoProjectDetails() {
+  var o = new api.VideoProjectDetails();
+  buildCounterVideoProjectDetails++;
+  if (buildCounterVideoProjectDetails < 3) {
+    o.tags = buildUnnamed374();
+  }
+  buildCounterVideoProjectDetails--;
+  return o;
+}
+
+checkVideoProjectDetails(api.VideoProjectDetails o) {
+  buildCounterVideoProjectDetails++;
+  if (buildCounterVideoProjectDetails < 3) {
+    checkUnnamed374(o.tags);
+  }
+  buildCounterVideoProjectDetails--;
+}
+
+core.int buildCounterVideoRating = 0;
+buildVideoRating() {
+  var o = new api.VideoRating();
+  buildCounterVideoRating++;
+  if (buildCounterVideoRating < 3) {
+    o.rating = "foo";
+    o.videoId = "foo";
+  }
+  buildCounterVideoRating--;
+  return o;
+}
+
+checkVideoRating(api.VideoRating o) {
+  buildCounterVideoRating++;
+  if (buildCounterVideoRating < 3) {
+    unittest.expect(o.rating, unittest.equals('foo'));
+    unittest.expect(o.videoId, unittest.equals('foo'));
+  }
+  buildCounterVideoRating--;
+}
+
+core.int buildCounterVideoRecordingDetails = 0;
+buildVideoRecordingDetails() {
+  var o = new api.VideoRecordingDetails();
+  buildCounterVideoRecordingDetails++;
+  if (buildCounterVideoRecordingDetails < 3) {
+    o.location = buildGeoPoint();
+    o.locationDescription = "foo";
+    o.recordingDate = core.DateTime.parse("2002-02-27T14:01:02");
+  }
+  buildCounterVideoRecordingDetails--;
+  return o;
+}
+
+checkVideoRecordingDetails(api.VideoRecordingDetails o) {
+  buildCounterVideoRecordingDetails++;
+  if (buildCounterVideoRecordingDetails < 3) {
+    checkGeoPoint(o.location);
+    unittest.expect(o.locationDescription, unittest.equals('foo'));
+    unittest.expect(o.recordingDate, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+  }
+  buildCounterVideoRecordingDetails--;
+}
+
+buildUnnamed375() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed375(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterVideoSnippet = 0;
+buildVideoSnippet() {
+  var o = new api.VideoSnippet();
+  buildCounterVideoSnippet++;
+  if (buildCounterVideoSnippet < 3) {
+    o.categoryId = "foo";
+    o.channelId = "foo";
+    o.channelTitle = "foo";
+    o.description = "foo";
+    o.liveBroadcastContent = "foo";
+    o.publishedAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.tags = buildUnnamed375();
+    o.thumbnails = buildThumbnailDetails();
+    o.title = "foo";
+  }
+  buildCounterVideoSnippet--;
+  return o;
+}
+
+checkVideoSnippet(api.VideoSnippet o) {
+  buildCounterVideoSnippet++;
+  if (buildCounterVideoSnippet < 3) {
+    unittest.expect(o.categoryId, unittest.equals('foo'));
+    unittest.expect(o.channelId, unittest.equals('foo'));
+    unittest.expect(o.channelTitle, unittest.equals('foo'));
+    unittest.expect(o.description, unittest.equals('foo'));
+    unittest.expect(o.liveBroadcastContent, unittest.equals('foo'));
+    unittest.expect(o.publishedAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    checkUnnamed375(o.tags);
+    checkThumbnailDetails(o.thumbnails);
+    unittest.expect(o.title, unittest.equals('foo'));
+  }
+  buildCounterVideoSnippet--;
+}
+
+core.int buildCounterVideoStatistics = 0;
+buildVideoStatistics() {
+  var o = new api.VideoStatistics();
+  buildCounterVideoStatistics++;
+  if (buildCounterVideoStatistics < 3) {
+    o.commentCount = "foo";
+    o.dislikeCount = "foo";
+    o.favoriteCount = "foo";
+    o.likeCount = "foo";
+    o.viewCount = "foo";
+  }
+  buildCounterVideoStatistics--;
+  return o;
+}
+
+checkVideoStatistics(api.VideoStatistics o) {
+  buildCounterVideoStatistics++;
+  if (buildCounterVideoStatistics < 3) {
+    unittest.expect(o.commentCount, unittest.equals('foo'));
+    unittest.expect(o.dislikeCount, unittest.equals('foo'));
+    unittest.expect(o.favoriteCount, unittest.equals('foo'));
+    unittest.expect(o.likeCount, unittest.equals('foo'));
+    unittest.expect(o.viewCount, unittest.equals('foo'));
+  }
+  buildCounterVideoStatistics--;
+}
+
+core.int buildCounterVideoStatus = 0;
+buildVideoStatus() {
+  var o = new api.VideoStatus();
+  buildCounterVideoStatus++;
+  if (buildCounterVideoStatus < 3) {
+    o.embeddable = true;
+    o.failureReason = "foo";
+    o.license = "foo";
+    o.privacyStatus = "foo";
+    o.publicStatsViewable = true;
+    o.publishAt = core.DateTime.parse("2002-02-27T14:01:02");
+    o.rejectionReason = "foo";
+    o.uploadStatus = "foo";
+  }
+  buildCounterVideoStatus--;
+  return o;
+}
+
+checkVideoStatus(api.VideoStatus o) {
+  buildCounterVideoStatus++;
+  if (buildCounterVideoStatus < 3) {
+    unittest.expect(o.embeddable, unittest.isTrue);
+    unittest.expect(o.failureReason, unittest.equals('foo'));
+    unittest.expect(o.license, unittest.equals('foo'));
+    unittest.expect(o.privacyStatus, unittest.equals('foo'));
+    unittest.expect(o.publicStatsViewable, unittest.isTrue);
+    unittest.expect(o.publishAt, unittest.equals(core.DateTime.parse("2002-02-27T14:01:02")));
+    unittest.expect(o.rejectionReason, unittest.equals('foo'));
+    unittest.expect(o.uploadStatus, unittest.equals('foo'));
+  }
+  buildCounterVideoStatus--;
+}
+
+buildUnnamed376() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed376(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed377() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed377(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed378() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed378(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed379() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed379(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed380() {
+  var o = new core.List<api.VideoSuggestionsTagSuggestion>();
+  o.add(buildVideoSuggestionsTagSuggestion());
+  o.add(buildVideoSuggestionsTagSuggestion());
+  return o;
+}
+
+checkUnnamed380(core.List<api.VideoSuggestionsTagSuggestion> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  checkVideoSuggestionsTagSuggestion(o[0]);
+  checkVideoSuggestionsTagSuggestion(o[1]);
+}
+
+core.int buildCounterVideoSuggestions = 0;
+buildVideoSuggestions() {
+  var o = new api.VideoSuggestions();
+  buildCounterVideoSuggestions++;
+  if (buildCounterVideoSuggestions < 3) {
+    o.editorSuggestions = buildUnnamed376();
+    o.processingErrors = buildUnnamed377();
+    o.processingHints = buildUnnamed378();
+    o.processingWarnings = buildUnnamed379();
+    o.tagSuggestions = buildUnnamed380();
+  }
+  buildCounterVideoSuggestions--;
+  return o;
+}
+
+checkVideoSuggestions(api.VideoSuggestions o) {
+  buildCounterVideoSuggestions++;
+  if (buildCounterVideoSuggestions < 3) {
+    checkUnnamed376(o.editorSuggestions);
+    checkUnnamed377(o.processingErrors);
+    checkUnnamed378(o.processingHints);
+    checkUnnamed379(o.processingWarnings);
+    checkUnnamed380(o.tagSuggestions);
+  }
+  buildCounterVideoSuggestions--;
+}
+
+buildUnnamed381() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed381(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterVideoSuggestionsTagSuggestion = 0;
+buildVideoSuggestionsTagSuggestion() {
+  var o = new api.VideoSuggestionsTagSuggestion();
+  buildCounterVideoSuggestionsTagSuggestion++;
+  if (buildCounterVideoSuggestionsTagSuggestion < 3) {
+    o.categoryRestricts = buildUnnamed381();
+    o.tag = "foo";
+  }
+  buildCounterVideoSuggestionsTagSuggestion--;
+  return o;
+}
+
+checkVideoSuggestionsTagSuggestion(api.VideoSuggestionsTagSuggestion o) {
+  buildCounterVideoSuggestionsTagSuggestion++;
+  if (buildCounterVideoSuggestionsTagSuggestion < 3) {
+    checkUnnamed381(o.categoryRestricts);
+    unittest.expect(o.tag, unittest.equals('foo'));
+  }
+  buildCounterVideoSuggestionsTagSuggestion--;
+}
+
+buildUnnamed382() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed382(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+buildUnnamed383() {
+  var o = new core.List<core.String>();
+  o.add("foo");
+  o.add("foo");
+  return o;
+}
+
+checkUnnamed383(core.List<core.String> o) {
+  unittest.expect(o, unittest.hasLength(2));
+  unittest.expect(o[0], unittest.equals('foo'));
+  unittest.expect(o[1], unittest.equals('foo'));
+}
+
+core.int buildCounterVideoTopicDetails = 0;
+buildVideoTopicDetails() {
+  var o = new api.VideoTopicDetails();
+  buildCounterVideoTopicDetails++;
+  if (buildCounterVideoTopicDetails < 3) {
+    o.relevantTopicIds = buildUnnamed382();
+    o.topicIds = buildUnnamed383();
+  }
+  buildCounterVideoTopicDetails--;
+  return o;
+}
+
+checkVideoTopicDetails(api.VideoTopicDetails o) {
+  buildCounterVideoTopicDetails++;
+  if (buildCounterVideoTopicDetails < 3) {
+    checkUnnamed382(o.relevantTopicIds);
+    checkUnnamed383(o.topicIds);
+  }
+  buildCounterVideoTopicDetails--;
+}
+
+core.int buildCounterWatchSettings = 0;
+buildWatchSettings() {
+  var o = new api.WatchSettings();
+  buildCounterWatchSettings++;
+  if (buildCounterWatchSettings < 3) {
+    o.backgroundColor = "foo";
+    o.featuredPlaylistId = "foo";
+    o.textColor = "foo";
+  }
+  buildCounterWatchSettings--;
+  return o;
+}
+
+checkWatchSettings(api.WatchSettings o) {
+  buildCounterWatchSettings++;
+  if (buildCounterWatchSettings < 3) {
+    unittest.expect(o.backgroundColor, unittest.equals('foo'));
+    unittest.expect(o.featuredPlaylistId, unittest.equals('foo'));
+    unittest.expect(o.textColor, unittest.equals('foo'));
+  }
+  buildCounterWatchSettings--;
+}
+
+
+main() {
+  unittest.group("obj-schema-AccessPolicy", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildAccessPolicy();
+      var od = new api.AccessPolicy.fromJson(o.toJson());
+      checkAccessPolicy(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-Activity", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivity();
+      var od = new api.Activity.fromJson(o.toJson());
+      checkActivity(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetails();
+      var od = new api.ActivityContentDetails.fromJson(o.toJson());
+      checkActivityContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsBulletin", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsBulletin();
+      var od = new api.ActivityContentDetailsBulletin.fromJson(o.toJson());
+      checkActivityContentDetailsBulletin(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsChannelItem", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsChannelItem();
+      var od = new api.ActivityContentDetailsChannelItem.fromJson(o.toJson());
+      checkActivityContentDetailsChannelItem(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsComment", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsComment();
+      var od = new api.ActivityContentDetailsComment.fromJson(o.toJson());
+      checkActivityContentDetailsComment(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsFavorite", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsFavorite();
+      var od = new api.ActivityContentDetailsFavorite.fromJson(o.toJson());
+      checkActivityContentDetailsFavorite(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsLike", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsLike();
+      var od = new api.ActivityContentDetailsLike.fromJson(o.toJson());
+      checkActivityContentDetailsLike(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsPlaylistItem", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsPlaylistItem();
+      var od = new api.ActivityContentDetailsPlaylistItem.fromJson(o.toJson());
+      checkActivityContentDetailsPlaylistItem(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsPromotedItem", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsPromotedItem();
+      var od = new api.ActivityContentDetailsPromotedItem.fromJson(o.toJson());
+      checkActivityContentDetailsPromotedItem(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsRecommendation", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsRecommendation();
+      var od = new api.ActivityContentDetailsRecommendation.fromJson(o.toJson());
+      checkActivityContentDetailsRecommendation(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsSocial", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsSocial();
+      var od = new api.ActivityContentDetailsSocial.fromJson(o.toJson());
+      checkActivityContentDetailsSocial(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsSubscription", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsSubscription();
+      var od = new api.ActivityContentDetailsSubscription.fromJson(o.toJson());
+      checkActivityContentDetailsSubscription(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityContentDetailsUpload", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityContentDetailsUpload();
+      var od = new api.ActivityContentDetailsUpload.fromJson(o.toJson());
+      checkActivityContentDetailsUpload(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivityListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivityListResponse();
+      var od = new api.ActivityListResponse.fromJson(o.toJson());
+      checkActivityListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ActivitySnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildActivitySnippet();
+      var od = new api.ActivitySnippet.fromJson(o.toJson());
+      checkActivitySnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-CdnSettings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildCdnSettings();
+      var od = new api.CdnSettings.fromJson(o.toJson());
+      checkCdnSettings(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-Channel", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannel();
+      var od = new api.Channel.fromJson(o.toJson());
+      checkChannel(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelAuditDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelAuditDetails();
+      var od = new api.ChannelAuditDetails.fromJson(o.toJson());
+      checkChannelAuditDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelBannerResource", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelBannerResource();
+      var od = new api.ChannelBannerResource.fromJson(o.toJson());
+      checkChannelBannerResource(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelBrandingSettings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelBrandingSettings();
+      var od = new api.ChannelBrandingSettings.fromJson(o.toJson());
+      checkChannelBrandingSettings(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelContentDetailsRelatedPlaylists", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelContentDetailsRelatedPlaylists();
+      var od = new api.ChannelContentDetailsRelatedPlaylists.fromJson(o.toJson());
+      checkChannelContentDetailsRelatedPlaylists(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelContentDetails();
+      var od = new api.ChannelContentDetails.fromJson(o.toJson());
+      checkChannelContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelContentOwnerDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelContentOwnerDetails();
+      var od = new api.ChannelContentOwnerDetails.fromJson(o.toJson());
+      checkChannelContentOwnerDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelConversionPing", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelConversionPing();
+      var od = new api.ChannelConversionPing.fromJson(o.toJson());
+      checkChannelConversionPing(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelConversionPings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelConversionPings();
+      var od = new api.ChannelConversionPings.fromJson(o.toJson());
+      checkChannelConversionPings(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelListResponse();
+      var od = new api.ChannelListResponse.fromJson(o.toJson());
+      checkChannelListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelSection", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelSection();
+      var od = new api.ChannelSection.fromJson(o.toJson());
+      checkChannelSection(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelSectionContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelSectionContentDetails();
+      var od = new api.ChannelSectionContentDetails.fromJson(o.toJson());
+      checkChannelSectionContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelSectionListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelSectionListResponse();
+      var od = new api.ChannelSectionListResponse.fromJson(o.toJson());
+      checkChannelSectionListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelSectionSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelSectionSnippet();
+      var od = new api.ChannelSectionSnippet.fromJson(o.toJson());
+      checkChannelSectionSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelSettings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelSettings();
+      var od = new api.ChannelSettings.fromJson(o.toJson());
+      checkChannelSettings(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelSnippet();
+      var od = new api.ChannelSnippet.fromJson(o.toJson());
+      checkChannelSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelStatistics", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelStatistics();
+      var od = new api.ChannelStatistics.fromJson(o.toJson());
+      checkChannelStatistics(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelStatus", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelStatus();
+      var od = new api.ChannelStatus.fromJson(o.toJson());
+      checkChannelStatus(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ChannelTopicDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildChannelTopicDetails();
+      var od = new api.ChannelTopicDetails.fromJson(o.toJson());
+      checkChannelTopicDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ContentRating", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildContentRating();
+      var od = new api.ContentRating.fromJson(o.toJson());
+      checkContentRating(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-GeoPoint", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildGeoPoint();
+      var od = new api.GeoPoint.fromJson(o.toJson());
+      checkGeoPoint(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-GuideCategory", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildGuideCategory();
+      var od = new api.GuideCategory.fromJson(o.toJson());
+      checkGuideCategory(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-GuideCategoryListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildGuideCategoryListResponse();
+      var od = new api.GuideCategoryListResponse.fromJson(o.toJson());
+      checkGuideCategoryListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-GuideCategorySnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildGuideCategorySnippet();
+      var od = new api.GuideCategorySnippet.fromJson(o.toJson());
+      checkGuideCategorySnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-I18nLanguage", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildI18nLanguage();
+      var od = new api.I18nLanguage.fromJson(o.toJson());
+      checkI18nLanguage(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-I18nLanguageListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildI18nLanguageListResponse();
+      var od = new api.I18nLanguageListResponse.fromJson(o.toJson());
+      checkI18nLanguageListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-I18nLanguageSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildI18nLanguageSnippet();
+      var od = new api.I18nLanguageSnippet.fromJson(o.toJson());
+      checkI18nLanguageSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-I18nRegion", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildI18nRegion();
+      var od = new api.I18nRegion.fromJson(o.toJson());
+      checkI18nRegion(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-I18nRegionListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildI18nRegionListResponse();
+      var od = new api.I18nRegionListResponse.fromJson(o.toJson());
+      checkI18nRegionListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-I18nRegionSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildI18nRegionSnippet();
+      var od = new api.I18nRegionSnippet.fromJson(o.toJson());
+      checkI18nRegionSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ImageSettings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildImageSettings();
+      var od = new api.ImageSettings.fromJson(o.toJson());
+      checkImageSettings(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-IngestionInfo", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildIngestionInfo();
+      var od = new api.IngestionInfo.fromJson(o.toJson());
+      checkIngestionInfo(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-InvideoBranding", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildInvideoBranding();
+      var od = new api.InvideoBranding.fromJson(o.toJson());
+      checkInvideoBranding(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-InvideoPosition", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildInvideoPosition();
+      var od = new api.InvideoPosition.fromJson(o.toJson());
+      checkInvideoPosition(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-InvideoPromotion", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildInvideoPromotion();
+      var od = new api.InvideoPromotion.fromJson(o.toJson());
+      checkInvideoPromotion(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-InvideoTiming", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildInvideoTiming();
+      var od = new api.InvideoTiming.fromJson(o.toJson());
+      checkInvideoTiming(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveBroadcast", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveBroadcast();
+      var od = new api.LiveBroadcast.fromJson(o.toJson());
+      checkLiveBroadcast(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveBroadcastContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveBroadcastContentDetails();
+      var od = new api.LiveBroadcastContentDetails.fromJson(o.toJson());
+      checkLiveBroadcastContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveBroadcastListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveBroadcastListResponse();
+      var od = new api.LiveBroadcastListResponse.fromJson(o.toJson());
+      checkLiveBroadcastListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveBroadcastSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveBroadcastSnippet();
+      var od = new api.LiveBroadcastSnippet.fromJson(o.toJson());
+      checkLiveBroadcastSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveBroadcastStatus", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveBroadcastStatus();
+      var od = new api.LiveBroadcastStatus.fromJson(o.toJson());
+      checkLiveBroadcastStatus(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveStream", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveStream();
+      var od = new api.LiveStream.fromJson(o.toJson());
+      checkLiveStream(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveStreamContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveStreamContentDetails();
+      var od = new api.LiveStreamContentDetails.fromJson(o.toJson());
+      checkLiveStreamContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveStreamListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveStreamListResponse();
+      var od = new api.LiveStreamListResponse.fromJson(o.toJson());
+      checkLiveStreamListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveStreamSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveStreamSnippet();
+      var od = new api.LiveStreamSnippet.fromJson(o.toJson());
+      checkLiveStreamSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LiveStreamStatus", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLiveStreamStatus();
+      var od = new api.LiveStreamStatus.fromJson(o.toJson());
+      checkLiveStreamStatus(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LocalizedProperty", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLocalizedProperty();
+      var od = new api.LocalizedProperty.fromJson(o.toJson());
+      checkLocalizedProperty(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-LocalizedString", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildLocalizedString();
+      var od = new api.LocalizedString.fromJson(o.toJson());
+      checkLocalizedString(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-MonitorStreamInfo", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildMonitorStreamInfo();
+      var od = new api.MonitorStreamInfo.fromJson(o.toJson());
+      checkMonitorStreamInfo(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PageInfo", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPageInfo();
+      var od = new api.PageInfo.fromJson(o.toJson());
+      checkPageInfo(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-Playlist", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylist();
+      var od = new api.Playlist.fromJson(o.toJson());
+      checkPlaylist(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistContentDetails();
+      var od = new api.PlaylistContentDetails.fromJson(o.toJson());
+      checkPlaylistContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistItem", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistItem();
+      var od = new api.PlaylistItem.fromJson(o.toJson());
+      checkPlaylistItem(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistItemContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistItemContentDetails();
+      var od = new api.PlaylistItemContentDetails.fromJson(o.toJson());
+      checkPlaylistItemContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistItemListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistItemListResponse();
+      var od = new api.PlaylistItemListResponse.fromJson(o.toJson());
+      checkPlaylistItemListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistItemSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistItemSnippet();
+      var od = new api.PlaylistItemSnippet.fromJson(o.toJson());
+      checkPlaylistItemSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistItemStatus", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistItemStatus();
+      var od = new api.PlaylistItemStatus.fromJson(o.toJson());
+      checkPlaylistItemStatus(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistListResponse();
+      var od = new api.PlaylistListResponse.fromJson(o.toJson());
+      checkPlaylistListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistPlayer", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistPlayer();
+      var od = new api.PlaylistPlayer.fromJson(o.toJson());
+      checkPlaylistPlayer(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistSnippet();
+      var od = new api.PlaylistSnippet.fromJson(o.toJson());
+      checkPlaylistSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PlaylistStatus", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPlaylistStatus();
+      var od = new api.PlaylistStatus.fromJson(o.toJson());
+      checkPlaylistStatus(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PromotedItem", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPromotedItem();
+      var od = new api.PromotedItem.fromJson(o.toJson());
+      checkPromotedItem(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PromotedItemId", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPromotedItemId();
+      var od = new api.PromotedItemId.fromJson(o.toJson());
+      checkPromotedItemId(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-PropertyValue", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildPropertyValue();
+      var od = new api.PropertyValue.fromJson(o.toJson());
+      checkPropertyValue(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ResourceId", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildResourceId();
+      var od = new api.ResourceId.fromJson(o.toJson());
+      checkResourceId(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SearchListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSearchListResponse();
+      var od = new api.SearchListResponse.fromJson(o.toJson());
+      checkSearchListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SearchResult", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSearchResult();
+      var od = new api.SearchResult.fromJson(o.toJson());
+      checkSearchResult(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SearchResultSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSearchResultSnippet();
+      var od = new api.SearchResultSnippet.fromJson(o.toJson());
+      checkSearchResultSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-Subscription", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSubscription();
+      var od = new api.Subscription.fromJson(o.toJson());
+      checkSubscription(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SubscriptionContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSubscriptionContentDetails();
+      var od = new api.SubscriptionContentDetails.fromJson(o.toJson());
+      checkSubscriptionContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SubscriptionListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSubscriptionListResponse();
+      var od = new api.SubscriptionListResponse.fromJson(o.toJson());
+      checkSubscriptionListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SubscriptionSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSubscriptionSnippet();
+      var od = new api.SubscriptionSnippet.fromJson(o.toJson());
+      checkSubscriptionSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-SubscriptionSubscriberSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildSubscriptionSubscriberSnippet();
+      var od = new api.SubscriptionSubscriberSnippet.fromJson(o.toJson());
+      checkSubscriptionSubscriberSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-Thumbnail", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildThumbnail();
+      var od = new api.Thumbnail.fromJson(o.toJson());
+      checkThumbnail(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ThumbnailDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildThumbnailDetails();
+      var od = new api.ThumbnailDetails.fromJson(o.toJson());
+      checkThumbnailDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-ThumbnailSetResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildThumbnailSetResponse();
+      var od = new api.ThumbnailSetResponse.fromJson(o.toJson());
+      checkThumbnailSetResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-TokenPagination", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildTokenPagination();
+      var od = new api.TokenPagination.fromJson(o.toJson());
+      checkTokenPagination(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-Video", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideo();
+      var od = new api.Video.fromJson(o.toJson());
+      checkVideo(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoAgeGating", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoAgeGating();
+      var od = new api.VideoAgeGating.fromJson(o.toJson());
+      checkVideoAgeGating(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoCategory", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoCategory();
+      var od = new api.VideoCategory.fromJson(o.toJson());
+      checkVideoCategory(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoCategoryListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoCategoryListResponse();
+      var od = new api.VideoCategoryListResponse.fromJson(o.toJson());
+      checkVideoCategoryListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoCategorySnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoCategorySnippet();
+      var od = new api.VideoCategorySnippet.fromJson(o.toJson());
+      checkVideoCategorySnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoContentDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoContentDetails();
+      var od = new api.VideoContentDetails.fromJson(o.toJson());
+      checkVideoContentDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoContentDetailsRegionRestriction", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoContentDetailsRegionRestriction();
+      var od = new api.VideoContentDetailsRegionRestriction.fromJson(o.toJson());
+      checkVideoContentDetailsRegionRestriction(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoConversionPing", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoConversionPing();
+      var od = new api.VideoConversionPing.fromJson(o.toJson());
+      checkVideoConversionPing(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoConversionPings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoConversionPings();
+      var od = new api.VideoConversionPings.fromJson(o.toJson());
+      checkVideoConversionPings(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoFileDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoFileDetails();
+      var od = new api.VideoFileDetails.fromJson(o.toJson());
+      checkVideoFileDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoFileDetailsAudioStream", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoFileDetailsAudioStream();
+      var od = new api.VideoFileDetailsAudioStream.fromJson(o.toJson());
+      checkVideoFileDetailsAudioStream(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoFileDetailsVideoStream", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoFileDetailsVideoStream();
+      var od = new api.VideoFileDetailsVideoStream.fromJson(o.toJson());
+      checkVideoFileDetailsVideoStream(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoGetRatingResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoGetRatingResponse();
+      var od = new api.VideoGetRatingResponse.fromJson(o.toJson());
+      checkVideoGetRatingResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoListResponse", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoListResponse();
+      var od = new api.VideoListResponse.fromJson(o.toJson());
+      checkVideoListResponse(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoLiveStreamingDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoLiveStreamingDetails();
+      var od = new api.VideoLiveStreamingDetails.fromJson(o.toJson());
+      checkVideoLiveStreamingDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoMonetizationDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoMonetizationDetails();
+      var od = new api.VideoMonetizationDetails.fromJson(o.toJson());
+      checkVideoMonetizationDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoPlayer", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoPlayer();
+      var od = new api.VideoPlayer.fromJson(o.toJson());
+      checkVideoPlayer(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoProcessingDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoProcessingDetails();
+      var od = new api.VideoProcessingDetails.fromJson(o.toJson());
+      checkVideoProcessingDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoProcessingDetailsProcessingProgress", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoProcessingDetailsProcessingProgress();
+      var od = new api.VideoProcessingDetailsProcessingProgress.fromJson(o.toJson());
+      checkVideoProcessingDetailsProcessingProgress(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoProjectDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoProjectDetails();
+      var od = new api.VideoProjectDetails.fromJson(o.toJson());
+      checkVideoProjectDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoRating", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoRating();
+      var od = new api.VideoRating.fromJson(o.toJson());
+      checkVideoRating(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoRecordingDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoRecordingDetails();
+      var od = new api.VideoRecordingDetails.fromJson(o.toJson());
+      checkVideoRecordingDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoSnippet", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoSnippet();
+      var od = new api.VideoSnippet.fromJson(o.toJson());
+      checkVideoSnippet(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoStatistics", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoStatistics();
+      var od = new api.VideoStatistics.fromJson(o.toJson());
+      checkVideoStatistics(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoStatus", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoStatus();
+      var od = new api.VideoStatus.fromJson(o.toJson());
+      checkVideoStatus(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoSuggestions", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoSuggestions();
+      var od = new api.VideoSuggestions.fromJson(o.toJson());
+      checkVideoSuggestions(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoSuggestionsTagSuggestion", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoSuggestionsTagSuggestion();
+      var od = new api.VideoSuggestionsTagSuggestion.fromJson(o.toJson());
+      checkVideoSuggestionsTagSuggestion(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-VideoTopicDetails", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildVideoTopicDetails();
+      var od = new api.VideoTopicDetails.fromJson(o.toJson());
+      checkVideoTopicDetails(od);
+    });
+  });
+
+
+  unittest.group("obj-schema-WatchSettings", () {
+    unittest.test("to-json--from-json", () {
+      var o = buildWatchSettings();
+      var od = new api.WatchSettings.fromJson(o.toJson());
+      checkWatchSettings(od);
+    });
+  });
+
+
+  unittest.group("resource-ActivitiesResourceApi", () {
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ActivitiesResourceApi res = new api.YoutubeApi(mock).activities;
+      var arg_request = buildActivity();
+      var arg_part = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Activity.fromJson(json);
+        checkActivity(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 10), unittest.equals("activities"));
+        pathOffset += 10;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildActivity());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part).then(unittest.expectAsync(((api.Activity response) {
+        checkActivity(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ActivitiesResourceApi res = new api.YoutubeApi(mock).activities;
+      var arg_part = "foo";
+      var arg_channelId = "foo";
+      var arg_home = true;
+      var arg_maxResults = 42;
+      var arg_mine = true;
+      var arg_pageToken = "foo";
+      var arg_publishedAfter = core.DateTime.parse("2002-02-27T14:01:02");
+      var arg_publishedBefore = core.DateTime.parse("2002-02-27T14:01:02");
+      var arg_regionCode = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 10), unittest.equals("activities"));
+        pathOffset += 10;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["home"].first, unittest.equals("$arg_home"));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+        unittest.expect(core.DateTime.parse(queryMap["publishedAfter"].first), unittest.equals(arg_publishedAfter));
+        unittest.expect(core.DateTime.parse(queryMap["publishedBefore"].first), unittest.equals(arg_publishedBefore));
+        unittest.expect(queryMap["regionCode"].first, unittest.equals(arg_regionCode));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildActivityListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, channelId: arg_channelId, home: arg_home, maxResults: arg_maxResults, mine: arg_mine, pageToken: arg_pageToken, publishedAfter: arg_publishedAfter, publishedBefore: arg_publishedBefore, regionCode: arg_regionCode).then(unittest.expectAsync(((api.ActivityListResponse response) {
+        checkActivityListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-ChannelBannersResourceApi", () {
+    unittest.test("method--insert", () {
+      // TODO: Implement tests for media upload;
+      // TODO: Implement tests for media download;
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelBannersResourceApi res = new api.YoutubeApi(mock).channelBanners;
+      var arg_request = buildChannelBannerResource();
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.ChannelBannerResource.fromJson(json);
+        checkChannelBannerResource(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 21), unittest.equals("channelBanners/insert"));
+        pathOffset += 21;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildChannelBannerResource());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.ChannelBannerResource response) {
+        checkChannelBannerResource(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-ChannelSectionsResourceApi", () {
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelSectionsResourceApi res = new api.YoutubeApi(mock).channelSections;
+      var arg_id = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 15), unittest.equals("channelSections"));
+        pathOffset += 15;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelSectionsResourceApi res = new api.YoutubeApi(mock).channelSections;
+      var arg_request = buildChannelSection();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.ChannelSection.fromJson(json);
+        checkChannelSection(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 15), unittest.equals("channelSections"));
+        pathOffset += 15;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildChannelSection());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.ChannelSection response) {
+        checkChannelSection(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelSectionsResourceApi res = new api.YoutubeApi(mock).channelSections;
+      var arg_part = "foo";
+      var arg_channelId = "foo";
+      var arg_id = "foo";
+      var arg_mine = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 15), unittest.equals("channelSections"));
+        pathOffset += 15;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildChannelSectionListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, channelId: arg_channelId, id: arg_id, mine: arg_mine, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.ChannelSectionListResponse response) {
+        checkChannelSectionListResponse(response);
+      })));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelSectionsResourceApi res = new api.YoutubeApi(mock).channelSections;
+      var arg_request = buildChannelSection();
+      var arg_part = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.ChannelSection.fromJson(json);
+        checkChannelSection(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 15), unittest.equals("channelSections"));
+        pathOffset += 15;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildChannelSection());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part).then(unittest.expectAsync(((api.ChannelSection response) {
+        checkChannelSection(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-ChannelsResourceApi", () {
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelsResourceApi res = new api.YoutubeApi(mock).channels;
+      var arg_part = "foo";
+      var arg_categoryId = "foo";
+      var arg_forUsername = "foo";
+      var arg_id = "foo";
+      var arg_managedByMe = true;
+      var arg_maxResults = 42;
+      var arg_mine = true;
+      var arg_mySubscribers = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_pageToken = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 8), unittest.equals("channels"));
+        pathOffset += 8;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["categoryId"].first, unittest.equals(arg_categoryId));
+        unittest.expect(queryMap["forUsername"].first, unittest.equals(arg_forUsername));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["managedByMe"].first, unittest.equals("$arg_managedByMe"));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["mySubscribers"].first, unittest.equals("$arg_mySubscribers"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildChannelListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, categoryId: arg_categoryId, forUsername: arg_forUsername, id: arg_id, managedByMe: arg_managedByMe, maxResults: arg_maxResults, mine: arg_mine, mySubscribers: arg_mySubscribers, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, pageToken: arg_pageToken).then(unittest.expectAsync(((api.ChannelListResponse response) {
+        checkChannelListResponse(response);
+      })));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.ChannelsResourceApi res = new api.YoutubeApi(mock).channels;
+      var arg_request = buildChannel();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Channel.fromJson(json);
+        checkChannel(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 8), unittest.equals("channels"));
+        pathOffset += 8;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildChannel());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.Channel response) {
+        checkChannel(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-GuideCategoriesResourceApi", () {
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.GuideCategoriesResourceApi res = new api.YoutubeApi(mock).guideCategories;
+      var arg_part = "foo";
+      var arg_hl = "foo";
+      var arg_id = "foo";
+      var arg_regionCode = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 15), unittest.equals("guideCategories"));
+        pathOffset += 15;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["hl"].first, unittest.equals(arg_hl));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["regionCode"].first, unittest.equals(arg_regionCode));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildGuideCategoryListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, hl: arg_hl, id: arg_id, regionCode: arg_regionCode).then(unittest.expectAsync(((api.GuideCategoryListResponse response) {
+        checkGuideCategoryListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-I18nLanguagesResourceApi", () {
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.I18nLanguagesResourceApi res = new api.YoutubeApi(mock).i18nLanguages;
+      var arg_part = "foo";
+      var arg_hl = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("i18nLanguages"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["hl"].first, unittest.equals(arg_hl));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildI18nLanguageListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, hl: arg_hl).then(unittest.expectAsync(((api.I18nLanguageListResponse response) {
+        checkI18nLanguageListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-I18nRegionsResourceApi", () {
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.I18nRegionsResourceApi res = new api.YoutubeApi(mock).i18nRegions;
+      var arg_part = "foo";
+      var arg_hl = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 11), unittest.equals("i18nRegions"));
+        pathOffset += 11;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["hl"].first, unittest.equals(arg_hl));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildI18nRegionListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, hl: arg_hl).then(unittest.expectAsync(((api.I18nRegionListResponse response) {
+        checkI18nRegionListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-LiveBroadcastsResourceApi", () {
+    unittest.test("method--bind", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_id = "foo";
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_streamId = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 19), unittest.equals("liveBroadcasts/bind"));
+        pathOffset += 19;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(queryMap["streamId"].first, unittest.equals(arg_streamId));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveBroadcast());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.bind(arg_id, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, streamId: arg_streamId).then(unittest.expectAsync(((api.LiveBroadcast response) {
+        checkLiveBroadcast(response);
+      })));
+    });
+
+    unittest.test("method--control", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_id = "foo";
+      var arg_part = "foo";
+      var arg_displaySlate = true;
+      var arg_offsetTimeMs = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_walltime = core.DateTime.parse("2002-02-27T14:01:02");
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 22), unittest.equals("liveBroadcasts/control"));
+        pathOffset += 22;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["displaySlate"].first, unittest.equals("$arg_displaySlate"));
+        unittest.expect(queryMap["offsetTimeMs"].first, unittest.equals(arg_offsetTimeMs));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(core.DateTime.parse(queryMap["walltime"].first), unittest.equals(arg_walltime));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveBroadcast());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.control(arg_id, arg_part, displaySlate: arg_displaySlate, offsetTimeMs: arg_offsetTimeMs, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, walltime: arg_walltime).then(unittest.expectAsync(((api.LiveBroadcast response) {
+        checkLiveBroadcast(response);
+      })));
+    });
+
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_id = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 14), unittest.equals("liveBroadcasts"));
+        pathOffset += 14;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_request = buildLiveBroadcast();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.LiveBroadcast.fromJson(json);
+        checkLiveBroadcast(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 14), unittest.equals("liveBroadcasts"));
+        pathOffset += 14;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveBroadcast());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.LiveBroadcast response) {
+        checkLiveBroadcast(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_part = "foo";
+      var arg_broadcastStatus = "foo";
+      var arg_id = "foo";
+      var arg_maxResults = 42;
+      var arg_mine = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_pageToken = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 14), unittest.equals("liveBroadcasts"));
+        pathOffset += 14;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["broadcastStatus"].first, unittest.equals(arg_broadcastStatus));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveBroadcastListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, broadcastStatus: arg_broadcastStatus, id: arg_id, maxResults: arg_maxResults, mine: arg_mine, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, pageToken: arg_pageToken).then(unittest.expectAsync(((api.LiveBroadcastListResponse response) {
+        checkLiveBroadcastListResponse(response);
+      })));
+    });
+
+    unittest.test("method--transition", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_broadcastStatus = "foo";
+      var arg_id = "foo";
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 25), unittest.equals("liveBroadcasts/transition"));
+        pathOffset += 25;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["broadcastStatus"].first, unittest.equals(arg_broadcastStatus));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveBroadcast());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.transition(arg_broadcastStatus, arg_id, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.LiveBroadcast response) {
+        checkLiveBroadcast(response);
+      })));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveBroadcastsResourceApi res = new api.YoutubeApi(mock).liveBroadcasts;
+      var arg_request = buildLiveBroadcast();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.LiveBroadcast.fromJson(json);
+        checkLiveBroadcast(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 14), unittest.equals("liveBroadcasts"));
+        pathOffset += 14;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveBroadcast());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.LiveBroadcast response) {
+        checkLiveBroadcast(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-LiveStreamsResourceApi", () {
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveStreamsResourceApi res = new api.YoutubeApi(mock).liveStreams;
+      var arg_id = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 11), unittest.equals("liveStreams"));
+        pathOffset += 11;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveStreamsResourceApi res = new api.YoutubeApi(mock).liveStreams;
+      var arg_request = buildLiveStream();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.LiveStream.fromJson(json);
+        checkLiveStream(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 11), unittest.equals("liveStreams"));
+        pathOffset += 11;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveStream());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.LiveStream response) {
+        checkLiveStream(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveStreamsResourceApi res = new api.YoutubeApi(mock).liveStreams;
+      var arg_part = "foo";
+      var arg_id = "foo";
+      var arg_maxResults = 42;
+      var arg_mine = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_pageToken = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 11), unittest.equals("liveStreams"));
+        pathOffset += 11;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveStreamListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, id: arg_id, maxResults: arg_maxResults, mine: arg_mine, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, pageToken: arg_pageToken).then(unittest.expectAsync(((api.LiveStreamListResponse response) {
+        checkLiveStreamListResponse(response);
+      })));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.LiveStreamsResourceApi res = new api.YoutubeApi(mock).liveStreams;
+      var arg_request = buildLiveStream();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.LiveStream.fromJson(json);
+        checkLiveStream(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 11), unittest.equals("liveStreams"));
+        pathOffset += 11;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildLiveStream());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.LiveStream response) {
+        checkLiveStream(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-PlaylistItemsResourceApi", () {
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistItemsResourceApi res = new api.YoutubeApi(mock).playlistItems;
+      var arg_id = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("playlistItems"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistItemsResourceApi res = new api.YoutubeApi(mock).playlistItems;
+      var arg_request = buildPlaylistItem();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.PlaylistItem.fromJson(json);
+        checkPlaylistItem(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("playlistItems"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildPlaylistItem());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.PlaylistItem response) {
+        checkPlaylistItem(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistItemsResourceApi res = new api.YoutubeApi(mock).playlistItems;
+      var arg_part = "foo";
+      var arg_id = "foo";
+      var arg_maxResults = 42;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_pageToken = "foo";
+      var arg_playlistId = "foo";
+      var arg_videoId = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("playlistItems"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+        unittest.expect(queryMap["playlistId"].first, unittest.equals(arg_playlistId));
+        unittest.expect(queryMap["videoId"].first, unittest.equals(arg_videoId));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildPlaylistItemListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, id: arg_id, maxResults: arg_maxResults, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, pageToken: arg_pageToken, playlistId: arg_playlistId, videoId: arg_videoId).then(unittest.expectAsync(((api.PlaylistItemListResponse response) {
+        checkPlaylistItemListResponse(response);
+      })));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistItemsResourceApi res = new api.YoutubeApi(mock).playlistItems;
+      var arg_request = buildPlaylistItem();
+      var arg_part = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.PlaylistItem.fromJson(json);
+        checkPlaylistItem(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("playlistItems"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildPlaylistItem());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part).then(unittest.expectAsync(((api.PlaylistItem response) {
+        checkPlaylistItem(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-PlaylistsResourceApi", () {
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistsResourceApi res = new api.YoutubeApi(mock).playlists;
+      var arg_id = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 9), unittest.equals("playlists"));
+        pathOffset += 9;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistsResourceApi res = new api.YoutubeApi(mock).playlists;
+      var arg_request = buildPlaylist();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Playlist.fromJson(json);
+        checkPlaylist(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 9), unittest.equals("playlists"));
+        pathOffset += 9;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildPlaylist());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel).then(unittest.expectAsync(((api.Playlist response) {
+        checkPlaylist(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistsResourceApi res = new api.YoutubeApi(mock).playlists;
+      var arg_part = "foo";
+      var arg_channelId = "foo";
+      var arg_id = "foo";
+      var arg_maxResults = 42;
+      var arg_mine = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_pageToken = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 9), unittest.equals("playlists"));
+        pathOffset += 9;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildPlaylistListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, channelId: arg_channelId, id: arg_id, maxResults: arg_maxResults, mine: arg_mine, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, pageToken: arg_pageToken).then(unittest.expectAsync(((api.PlaylistListResponse response) {
+        checkPlaylistListResponse(response);
+      })));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.PlaylistsResourceApi res = new api.YoutubeApi(mock).playlists;
+      var arg_request = buildPlaylist();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Playlist.fromJson(json);
+        checkPlaylist(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 9), unittest.equals("playlists"));
+        pathOffset += 9;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildPlaylist());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.Playlist response) {
+        checkPlaylist(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-SearchResourceApi", () {
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.SearchResourceApi res = new api.YoutubeApi(mock).search;
+      var arg_part = "foo";
+      var arg_channelId = "foo";
+      var arg_channelType = "foo";
+      var arg_eventType = "foo";
+      var arg_forContentOwner = true;
+      var arg_forMine = true;
+      var arg_location = "foo";
+      var arg_locationRadius = "foo";
+      var arg_maxResults = 42;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_order = "foo";
+      var arg_pageToken = "foo";
+      var arg_publishedAfter = core.DateTime.parse("2002-02-27T14:01:02");
+      var arg_publishedBefore = core.DateTime.parse("2002-02-27T14:01:02");
+      var arg_q = "foo";
+      var arg_regionCode = "foo";
+      var arg_relatedToVideoId = "foo";
+      var arg_safeSearch = "foo";
+      var arg_topicId = "foo";
+      var arg_type = "foo";
+      var arg_videoCaption = "foo";
+      var arg_videoCategoryId = "foo";
+      var arg_videoDefinition = "foo";
+      var arg_videoDimension = "foo";
+      var arg_videoDuration = "foo";
+      var arg_videoEmbeddable = "foo";
+      var arg_videoLicense = "foo";
+      var arg_videoSyndicated = "foo";
+      var arg_videoType = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 6), unittest.equals("search"));
+        pathOffset += 6;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["channelType"].first, unittest.equals(arg_channelType));
+        unittest.expect(queryMap["eventType"].first, unittest.equals(arg_eventType));
+        unittest.expect(queryMap["forContentOwner"].first, unittest.equals("$arg_forContentOwner"));
+        unittest.expect(queryMap["forMine"].first, unittest.equals("$arg_forMine"));
+        unittest.expect(queryMap["location"].first, unittest.equals(arg_location));
+        unittest.expect(queryMap["locationRadius"].first, unittest.equals(arg_locationRadius));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["order"].first, unittest.equals(arg_order));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+        unittest.expect(core.DateTime.parse(queryMap["publishedAfter"].first), unittest.equals(arg_publishedAfter));
+        unittest.expect(core.DateTime.parse(queryMap["publishedBefore"].first), unittest.equals(arg_publishedBefore));
+        unittest.expect(queryMap["q"].first, unittest.equals(arg_q));
+        unittest.expect(queryMap["regionCode"].first, unittest.equals(arg_regionCode));
+        unittest.expect(queryMap["relatedToVideoId"].first, unittest.equals(arg_relatedToVideoId));
+        unittest.expect(queryMap["safeSearch"].first, unittest.equals(arg_safeSearch));
+        unittest.expect(queryMap["topicId"].first, unittest.equals(arg_topicId));
+        unittest.expect(queryMap["type"].first, unittest.equals(arg_type));
+        unittest.expect(queryMap["videoCaption"].first, unittest.equals(arg_videoCaption));
+        unittest.expect(queryMap["videoCategoryId"].first, unittest.equals(arg_videoCategoryId));
+        unittest.expect(queryMap["videoDefinition"].first, unittest.equals(arg_videoDefinition));
+        unittest.expect(queryMap["videoDimension"].first, unittest.equals(arg_videoDimension));
+        unittest.expect(queryMap["videoDuration"].first, unittest.equals(arg_videoDuration));
+        unittest.expect(queryMap["videoEmbeddable"].first, unittest.equals(arg_videoEmbeddable));
+        unittest.expect(queryMap["videoLicense"].first, unittest.equals(arg_videoLicense));
+        unittest.expect(queryMap["videoSyndicated"].first, unittest.equals(arg_videoSyndicated));
+        unittest.expect(queryMap["videoType"].first, unittest.equals(arg_videoType));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildSearchListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, channelId: arg_channelId, channelType: arg_channelType, eventType: arg_eventType, forContentOwner: arg_forContentOwner, forMine: arg_forMine, location: arg_location, locationRadius: arg_locationRadius, maxResults: arg_maxResults, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, order: arg_order, pageToken: arg_pageToken, publishedAfter: arg_publishedAfter, publishedBefore: arg_publishedBefore, q: arg_q, regionCode: arg_regionCode, relatedToVideoId: arg_relatedToVideoId, safeSearch: arg_safeSearch, topicId: arg_topicId, type: arg_type, videoCaption: arg_videoCaption, videoCategoryId: arg_videoCategoryId, videoDefinition: arg_videoDefinition, videoDimension: arg_videoDimension, videoDuration: arg_videoDuration, videoEmbeddable: arg_videoEmbeddable, videoLicense: arg_videoLicense, videoSyndicated: arg_videoSyndicated, videoType: arg_videoType).then(unittest.expectAsync(((api.SearchListResponse response) {
+        checkSearchListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-SubscriptionsResourceApi", () {
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.SubscriptionsResourceApi res = new api.YoutubeApi(mock).subscriptions;
+      var arg_id = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("subscriptions"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--insert", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.SubscriptionsResourceApi res = new api.YoutubeApi(mock).subscriptions;
+      var arg_request = buildSubscription();
+      var arg_part = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Subscription.fromJson(json);
+        checkSubscription(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("subscriptions"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildSubscription());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part).then(unittest.expectAsync(((api.Subscription response) {
+        checkSubscription(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.SubscriptionsResourceApi res = new api.YoutubeApi(mock).subscriptions;
+      var arg_part = "foo";
+      var arg_channelId = "foo";
+      var arg_forChannelId = "foo";
+      var arg_id = "foo";
+      var arg_maxResults = 42;
+      var arg_mine = true;
+      var arg_mySubscribers = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_order = "foo";
+      var arg_pageToken = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 13), unittest.equals("subscriptions"));
+        pathOffset += 13;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["forChannelId"].first, unittest.equals(arg_forChannelId));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["mine"].first, unittest.equals("$arg_mine"));
+        unittest.expect(queryMap["mySubscribers"].first, unittest.equals("$arg_mySubscribers"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(queryMap["order"].first, unittest.equals(arg_order));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildSubscriptionListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, channelId: arg_channelId, forChannelId: arg_forChannelId, id: arg_id, maxResults: arg_maxResults, mine: arg_mine, mySubscribers: arg_mySubscribers, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, order: arg_order, pageToken: arg_pageToken).then(unittest.expectAsync(((api.SubscriptionListResponse response) {
+        checkSubscriptionListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-ThumbnailsResourceApi", () {
+    unittest.test("method--set", () {
+      // TODO: Implement tests for media upload;
+      // TODO: Implement tests for media download;
+
+      var mock = new common_test.HttpServerMock();
+      api.ThumbnailsResourceApi res = new api.YoutubeApi(mock).thumbnails;
+      var arg_videoId = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 14), unittest.equals("thumbnails/set"));
+        pathOffset += 14;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["videoId"].first, unittest.equals(arg_videoId));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildThumbnailSetResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.set(arg_videoId, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.ThumbnailSetResponse response) {
+        checkThumbnailSetResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-VideoCategoriesResourceApi", () {
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.VideoCategoriesResourceApi res = new api.YoutubeApi(mock).videoCategories;
+      var arg_part = "foo";
+      var arg_hl = "foo";
+      var arg_id = "foo";
+      var arg_regionCode = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 15), unittest.equals("videoCategories"));
+        pathOffset += 15;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["hl"].first, unittest.equals(arg_hl));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["regionCode"].first, unittest.equals(arg_regionCode));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildVideoCategoryListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, hl: arg_hl, id: arg_id, regionCode: arg_regionCode).then(unittest.expectAsync(((api.VideoCategoryListResponse response) {
+        checkVideoCategoryListResponse(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-VideosResourceApi", () {
+    unittest.test("method--delete", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.VideosResourceApi res = new api.YoutubeApi(mock).videos;
+      var arg_id = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 6), unittest.equals("videos"));
+        pathOffset += 6;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.delete(arg_id, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--getRating", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.VideosResourceApi res = new api.YoutubeApi(mock).videos;
+      var arg_id = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 16), unittest.equals("videos/getRating"));
+        pathOffset += 16;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildVideoGetRatingResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.getRating(arg_id, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.VideoGetRatingResponse response) {
+        checkVideoGetRatingResponse(response);
+      })));
+    });
+
+    unittest.test("method--insert", () {
+      // TODO: Implement tests for media upload;
+      // TODO: Implement tests for media download;
+
+      var mock = new common_test.HttpServerMock();
+      api.VideosResourceApi res = new api.YoutubeApi(mock).videos;
+      var arg_request = buildVideo();
+      var arg_part = "foo";
+      var arg_autoLevels = true;
+      var arg_notifySubscribers = true;
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_onBehalfOfContentOwnerChannel = "foo";
+      var arg_stabilize = true;
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Video.fromJson(json);
+        checkVideo(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 6), unittest.equals("videos"));
+        pathOffset += 6;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["autoLevels"].first, unittest.equals("$arg_autoLevels"));
+        unittest.expect(queryMap["notifySubscribers"].first, unittest.equals("$arg_notifySubscribers"));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["onBehalfOfContentOwnerChannel"].first, unittest.equals(arg_onBehalfOfContentOwnerChannel));
+        unittest.expect(queryMap["stabilize"].first, unittest.equals("$arg_stabilize"));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildVideo());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.insert(arg_request, arg_part, autoLevels: arg_autoLevels, notifySubscribers: arg_notifySubscribers, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, onBehalfOfContentOwnerChannel: arg_onBehalfOfContentOwnerChannel, stabilize: arg_stabilize).then(unittest.expectAsync(((api.Video response) {
+        checkVideo(response);
+      })));
+    });
+
+    unittest.test("method--list", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.VideosResourceApi res = new api.YoutubeApi(mock).videos;
+      var arg_part = "foo";
+      var arg_chart = "foo";
+      var arg_id = "foo";
+      var arg_locale = "foo";
+      var arg_maxResults = 42;
+      var arg_myRating = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      var arg_pageToken = "foo";
+      var arg_regionCode = "foo";
+      var arg_videoCategoryId = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 6), unittest.equals("videos"));
+        pathOffset += 6;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["chart"].first, unittest.equals(arg_chart));
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["locale"].first, unittest.equals(arg_locale));
+        unittest.expect(core.int.parse(queryMap["maxResults"].first), unittest.equals(arg_maxResults));
+        unittest.expect(queryMap["myRating"].first, unittest.equals(arg_myRating));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+        unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
+        unittest.expect(queryMap["regionCode"].first, unittest.equals(arg_regionCode));
+        unittest.expect(queryMap["videoCategoryId"].first, unittest.equals(arg_videoCategoryId));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildVideoListResponse());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.list(arg_part, chart: arg_chart, id: arg_id, locale: arg_locale, maxResults: arg_maxResults, myRating: arg_myRating, onBehalfOfContentOwner: arg_onBehalfOfContentOwner, pageToken: arg_pageToken, regionCode: arg_regionCode, videoCategoryId: arg_videoCategoryId).then(unittest.expectAsync(((api.VideoListResponse response) {
+        checkVideoListResponse(response);
+      })));
+    });
+
+    unittest.test("method--rate", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.VideosResourceApi res = new api.YoutubeApi(mock).videos;
+      var arg_id = "foo";
+      var arg_rating = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 11), unittest.equals("videos/rate"));
+        pathOffset += 11;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["id"].first, unittest.equals(arg_id));
+        unittest.expect(queryMap["rating"].first, unittest.equals(arg_rating));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.rate(arg_id, arg_rating, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--update", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.VideosResourceApi res = new api.YoutubeApi(mock).videos;
+      var arg_request = buildVideo();
+      var arg_part = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.Video.fromJson(json);
+        checkVideo(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 6), unittest.equals("videos"));
+        pathOffset += 6;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["part"].first, unittest.equals(arg_part));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = convert.JSON.encode(buildVideo());
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.update(arg_request, arg_part, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync(((api.Video response) {
+        checkVideo(response);
+      })));
+    });
+
+  });
+
+
+  unittest.group("resource-WatermarksResourceApi", () {
+    unittest.test("method--set", () {
+      // TODO: Implement tests for media upload;
+      // TODO: Implement tests for media download;
+
+      var mock = new common_test.HttpServerMock();
+      api.WatermarksResourceApi res = new api.YoutubeApi(mock).watermarks;
+      var arg_request = buildInvideoBranding();
+      var arg_channelId = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var obj = new api.InvideoBranding.fromJson(json);
+        checkInvideoBranding(obj);
+
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 14), unittest.equals("watermarks/set"));
+        pathOffset += 14;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.set(arg_request, arg_channelId, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync((_) {}));
+    });
+
+    unittest.test("method--unset", () {
+
+      var mock = new common_test.HttpServerMock();
+      api.WatermarksResourceApi res = new api.YoutubeApi(mock).watermarks;
+      var arg_channelId = "foo";
+      var arg_onBehalfOfContentOwner = "foo";
+      mock.register(unittest.expectAsync((http.BaseRequest req, json) {
+        var path = (req.url).path;
+        var pathOffset = 0;
+        var index;
+        var subPart;
+        unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("/youtube/v3/"));
+        pathOffset += 12;
+        unittest.expect(path.substring(pathOffset, pathOffset + 16), unittest.equals("watermarks/unset"));
+        pathOffset += 16;
+
+        var query = (req.url).query;
+        var queryOffset = 0;
+        var queryMap = {};
+        addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
+        parseBool(n) {
+          if (n == "true") return true;
+          if (n == "false") return false;
+          if (n == null) return null;
+          throw new core.ArgumentError("Invalid boolean: $n");
+        }
+        if (query.length > 0) {
+          for (var part in query.split("&")) {
+            var keyvalue = part.split("=");
+            addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
+          }
+        }
+        unittest.expect(queryMap["channelId"].first, unittest.equals(arg_channelId));
+        unittest.expect(queryMap["onBehalfOfContentOwner"].first, unittest.equals(arg_onBehalfOfContentOwner));
+
+
+        var h = {
+          "content-type" : "application/json; charset=utf-8",
+        };
+        var resp = "";
+        return new async.Future.value(common_test.stringResponse(200, h, resp));
+      }), true);
+      res.unset(arg_channelId, onBehalfOfContentOwner: arg_onBehalfOfContentOwner).then(unittest.expectAsync((_) {}));
+    });
+
+  });
+
+
+}
+