Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: generated/googleapis/lib/compute/v1.dart

Issue 559053002: Generate 0.1.0 version of googleapis/googleapis_beta (Closed) Base URL: git@github.com:dart-lang/googleapis.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: generated/googleapis/lib/compute/v1.dart
diff --git a/generated/googleapis/lib/compute/v1.dart b/generated/googleapis/lib/compute/v1.dart
new file mode 100644
index 0000000000000000000000000000000000000000..6549177edae41773fc67aa5c4fcda17e9f47b827
--- /dev/null
+++ b/generated/googleapis/lib/compute/v1.dart
@@ -0,0 +1,15584 @@
+library googleapis.compute.v1;
+
+import "dart:core" as core;
+import "dart:collection" as collection;
+import "dart:async" as async;
+import "dart:convert" as convert;
+
+import "package:crypto/crypto.dart" as crypto;
+import 'package:http/http.dart' as http;
+import '../src/common_internal.dart' as common_internal;
+import '../common/common.dart' as common;
+
+export '../common/common.dart' show ApiRequestError;
+export '../common/common.dart' show DetailedApiRequestError;
+
+/** API for the Google Compute Engine service. */
+class ComputeApi {
+ /** View and manage your Google Compute Engine resources */
+ static const ComputeScope = "https://www.googleapis.com/auth/compute";
+
+ /** View your Google Compute Engine resources */
+ static const ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly";
+
+ /** Manage your data and permissions in Google Cloud Storage */
+ static const DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control";
+
+ /** View your data in Google Cloud Storage */
+ static const DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only";
+
+ /** Manage your data in Google Cloud Storage */
+ static const DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write";
+
+
+ final common_internal.ApiRequester _requester;
+
+ AddressesResourceApi get addresses => new AddressesResourceApi(_requester);
+ BackendServicesResourceApi get backendServices => new BackendServicesResourceApi(_requester);
+ DiskTypesResourceApi get diskTypes => new DiskTypesResourceApi(_requester);
+ DisksResourceApi get disks => new DisksResourceApi(_requester);
+ FirewallsResourceApi get firewalls => new FirewallsResourceApi(_requester);
+ ForwardingRulesResourceApi get forwardingRules => new ForwardingRulesResourceApi(_requester);
+ GlobalAddressesResourceApi get globalAddresses => new GlobalAddressesResourceApi(_requester);
+ GlobalForwardingRulesResourceApi get globalForwardingRules => new GlobalForwardingRulesResourceApi(_requester);
+ GlobalOperationsResourceApi get globalOperations => new GlobalOperationsResourceApi(_requester);
+ HttpHealthChecksResourceApi get httpHealthChecks => new HttpHealthChecksResourceApi(_requester);
+ ImagesResourceApi get images => new ImagesResourceApi(_requester);
+ InstancesResourceApi get instances => new InstancesResourceApi(_requester);
+ LicensesResourceApi get licenses => new LicensesResourceApi(_requester);
+ MachineTypesResourceApi get machineTypes => new MachineTypesResourceApi(_requester);
+ NetworksResourceApi get networks => new NetworksResourceApi(_requester);
+ ProjectsResourceApi get projects => new ProjectsResourceApi(_requester);
+ RegionOperationsResourceApi get regionOperations => new RegionOperationsResourceApi(_requester);
+ RegionsResourceApi get regions => new RegionsResourceApi(_requester);
+ RoutesResourceApi get routes => new RoutesResourceApi(_requester);
+ SnapshotsResourceApi get snapshots => new SnapshotsResourceApi(_requester);
+ TargetHttpProxiesResourceApi get targetHttpProxies => new TargetHttpProxiesResourceApi(_requester);
+ TargetInstancesResourceApi get targetInstances => new TargetInstancesResourceApi(_requester);
+ TargetPoolsResourceApi get targetPools => new TargetPoolsResourceApi(_requester);
+ UrlMapsResourceApi get urlMaps => new UrlMapsResourceApi(_requester);
+ ZoneOperationsResourceApi get zoneOperations => new ZoneOperationsResourceApi(_requester);
+ ZonesResourceApi get zones => new ZonesResourceApi(_requester);
+
+ ComputeApi(http.Client client) :
+ _requester = new common_internal.ApiRequester(client, "https://www.googleapis.com/", "/compute/v1/projects/");
+}
+
+
+/** Not documented yet. */
+class AddressesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ AddressesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of addresses grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [AddressAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<AddressAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/addresses';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new AddressAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified address resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [address] - Name of the address resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String region, core.String address) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (address == null) {
+ throw new core.ArgumentError("Parameter address is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/addresses/' + common_internal.Escaper.ecapeVariable('$address');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified address resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [address] - Name of the address resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Address].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Address> get(core.String project, core.String region, core.String address) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (address == null) {
+ throw new core.ArgumentError("Parameter address is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/addresses/' + common_internal.Escaper.ecapeVariable('$address');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Address.fromJson(data));
+ }
+
+ /**
+ * Creates an address resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Address request, core.String project, core.String region) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/addresses';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of address resources contained within the specified
+ * region.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [AddressList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<AddressList> list(core.String project, core.String region, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/addresses';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new AddressList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class BackendServicesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ BackendServicesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified BackendService resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [backendService] - Name of the BackendService resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String backendService) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (backendService == null) {
+ throw new core.ArgumentError("Parameter backendService is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices/' + common_internal.Escaper.ecapeVariable('$backendService');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified BackendService resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [backendService] - Name of the BackendService resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [BackendService].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<BackendService> get(core.String project, core.String backendService) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (backendService == null) {
+ throw new core.ArgumentError("Parameter backendService is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices/' + common_internal.Escaper.ecapeVariable('$backendService');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new BackendService.fromJson(data));
+ }
+
+ /**
+ * Gets the most recent health check results for this BackendService.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - null
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [backendService] - Name of the BackendService resource to which the queried
+ * instance belongs.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [BackendServiceGroupHealth].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<BackendServiceGroupHealth> getHealth(ResourceGroupReference request, core.String project, core.String backendService) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (backendService == null) {
+ throw new core.ArgumentError("Parameter backendService is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices/' + common_internal.Escaper.ecapeVariable('$backendService') + '/getHealth';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new BackendServiceGroupHealth.fromJson(data));
+ }
+
+ /**
+ * Creates a BackendService resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(BackendService request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of BackendService resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [BackendServiceList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<BackendServiceList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new BackendServiceList.fromJson(data));
+ }
+
+ /**
+ * Update the entire content of the BackendService resource. This method
+ * supports patch semantics.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [backendService] - Name of the BackendService resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> patch(BackendService request, core.String project, core.String backendService) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (backendService == null) {
+ throw new core.ArgumentError("Parameter backendService is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices/' + common_internal.Escaper.ecapeVariable('$backendService');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Update the entire content of the BackendService resource.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [backendService] - Name of the BackendService resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> update(BackendService request, core.String project, core.String backendService) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (backendService == null) {
+ throw new core.ArgumentError("Parameter backendService is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/backendServices/' + common_internal.Escaper.ecapeVariable('$backendService');
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class DiskTypesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ DiskTypesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of disk type resources grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [DiskTypeAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<DiskTypeAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/diskTypes';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new DiskTypeAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Returns the specified disk type resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [diskType] - Name of the disk type resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [DiskType].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<DiskType> get(core.String project, core.String zone, core.String diskType) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (diskType == null) {
+ throw new core.ArgumentError("Parameter diskType is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/diskTypes/' + common_internal.Escaper.ecapeVariable('$diskType');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new DiskType.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of disk type resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [DiskTypeList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<DiskTypeList> list(core.String project, core.String zone, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/diskTypes';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new DiskTypeList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class DisksResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ DisksResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of disks grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [DiskAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<DiskAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/disks';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new DiskAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Not documented yet.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [disk] - Name of the persistent disk resource to snapshot.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> createSnapshot(Snapshot request, core.String project, core.String zone, core.String disk) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (disk == null) {
+ throw new core.ArgumentError("Parameter disk is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/disks/' + common_internal.Escaper.ecapeVariable('$disk') + '/createSnapshot';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified persistent disk resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [disk] - Name of the persistent disk resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String zone, core.String disk) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (disk == null) {
+ throw new core.ArgumentError("Parameter disk is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/disks/' + common_internal.Escaper.ecapeVariable('$disk');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified persistent disk resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [disk] - Name of the persistent disk resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Disk].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Disk> get(core.String project, core.String zone, core.String disk) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (disk == null) {
+ throw new core.ArgumentError("Parameter disk is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/disks/' + common_internal.Escaper.ecapeVariable('$disk');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Disk.fromJson(data));
+ }
+
+ /**
+ * Creates a persistent disk resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [sourceImage] - Optional. Source image to restore onto a disk.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Disk request, core.String project, core.String zone, {core.String sourceImage}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (sourceImage != null) {
+ _queryParams["sourceImage"] = [sourceImage];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/disks';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of persistent disk resources contained within the
+ * specified zone.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [DiskList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<DiskList> list(core.String project, core.String zone, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/disks';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new DiskList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class FirewallsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ FirewallsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified firewall resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [firewall] - Name of the firewall resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String firewall) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (firewall == null) {
+ throw new core.ArgumentError("Parameter firewall is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/firewalls/' + common_internal.Escaper.ecapeVariable('$firewall');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified firewall resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [firewall] - Name of the firewall resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Firewall].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Firewall> get(core.String project, core.String firewall) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (firewall == null) {
+ throw new core.ArgumentError("Parameter firewall is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/firewalls/' + common_internal.Escaper.ecapeVariable('$firewall');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Firewall.fromJson(data));
+ }
+
+ /**
+ * Creates a firewall resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Firewall request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/firewalls';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of firewall resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [FirewallList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<FirewallList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/firewalls';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new FirewallList.fromJson(data));
+ }
+
+ /**
+ * Updates the specified firewall resource with the data included in the
+ * request. This method supports patch semantics.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [firewall] - Name of the firewall resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> patch(Firewall request, core.String project, core.String firewall) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (firewall == null) {
+ throw new core.ArgumentError("Parameter firewall is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/firewalls/' + common_internal.Escaper.ecapeVariable('$firewall');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Updates the specified firewall resource with the data included in the
+ * request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [firewall] - Name of the firewall resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> update(Firewall request, core.String project, core.String firewall) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (firewall == null) {
+ throw new core.ArgumentError("Parameter firewall is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/firewalls/' + common_internal.Escaper.ecapeVariable('$firewall');
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class ForwardingRulesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ ForwardingRulesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of forwarding rules grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [ForwardingRuleAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ForwardingRuleAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/forwardingRules';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ForwardingRuleAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified ForwardingRule resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [forwardingRule] - Name of the ForwardingRule resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String region, core.String forwardingRule) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (forwardingRule == null) {
+ throw new core.ArgumentError("Parameter forwardingRule is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/forwardingRules/' + common_internal.Escaper.ecapeVariable('$forwardingRule');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified ForwardingRule resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [forwardingRule] - Name of the ForwardingRule resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [ForwardingRule].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ForwardingRule> get(core.String project, core.String region, core.String forwardingRule) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (forwardingRule == null) {
+ throw new core.ArgumentError("Parameter forwardingRule is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/forwardingRules/' + common_internal.Escaper.ecapeVariable('$forwardingRule');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ForwardingRule.fromJson(data));
+ }
+
+ /**
+ * Creates a ForwardingRule resource in the specified project and region using
+ * the data included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(ForwardingRule request, core.String project, core.String region) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/forwardingRules';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of ForwardingRule resources available to the specified
+ * project and region.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [ForwardingRuleList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ForwardingRuleList> list(core.String project, core.String region, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/forwardingRules';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ForwardingRuleList.fromJson(data));
+ }
+
+ /**
+ * Changes target url for forwarding rule.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [forwardingRule] - Name of the ForwardingRule resource in which target is
+ * to be set.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setTarget(TargetReference request, core.String project, core.String region, core.String forwardingRule) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (forwardingRule == null) {
+ throw new core.ArgumentError("Parameter forwardingRule is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/forwardingRules/' + common_internal.Escaper.ecapeVariable('$forwardingRule') + '/setTarget';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class GlobalAddressesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ GlobalAddressesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified address resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [address] - Name of the address resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String address) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (address == null) {
+ throw new core.ArgumentError("Parameter address is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/addresses/' + common_internal.Escaper.ecapeVariable('$address');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified address resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [address] - Name of the address resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Address].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Address> get(core.String project, core.String address) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (address == null) {
+ throw new core.ArgumentError("Parameter address is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/addresses/' + common_internal.Escaper.ecapeVariable('$address');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Address.fromJson(data));
+ }
+
+ /**
+ * Creates an address resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Address request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/addresses';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of global address resources.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [AddressList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<AddressList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/addresses';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new AddressList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class GlobalForwardingRulesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ GlobalForwardingRulesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified ForwardingRule resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [forwardingRule] - Name of the ForwardingRule resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String forwardingRule) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (forwardingRule == null) {
+ throw new core.ArgumentError("Parameter forwardingRule is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/forwardingRules/' + common_internal.Escaper.ecapeVariable('$forwardingRule');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified ForwardingRule resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [forwardingRule] - Name of the ForwardingRule resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [ForwardingRule].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ForwardingRule> get(core.String project, core.String forwardingRule) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (forwardingRule == null) {
+ throw new core.ArgumentError("Parameter forwardingRule is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/forwardingRules/' + common_internal.Escaper.ecapeVariable('$forwardingRule');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ForwardingRule.fromJson(data));
+ }
+
+ /**
+ * Creates a ForwardingRule resource in the specified project and region using
+ * the data included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(ForwardingRule request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/forwardingRules';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of ForwardingRule resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [ForwardingRuleList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ForwardingRuleList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/forwardingRules';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ForwardingRuleList.fromJson(data));
+ }
+
+ /**
+ * Changes target url for forwarding rule.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [forwardingRule] - Name of the ForwardingRule resource in which target is
+ * to be set.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setTarget(TargetReference request, core.String project, core.String forwardingRule) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (forwardingRule == null) {
+ throw new core.ArgumentError("Parameter forwardingRule is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/forwardingRules/' + common_internal.Escaper.ecapeVariable('$forwardingRule') + '/setTarget';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class GlobalOperationsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ GlobalOperationsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of all operations grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [OperationAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<OperationAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/operations';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new OperationAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified operation resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [operation] - Name of the operation resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String project, core.String operation) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (operation == null) {
+ throw new core.ArgumentError("Parameter operation is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/operations/' + common_internal.Escaper.ecapeVariable('$operation');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Retrieves the specified operation resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [operation] - Name of the operation resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> get(core.String project, core.String operation) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (operation == null) {
+ throw new core.ArgumentError("Parameter operation is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/operations/' + common_internal.Escaper.ecapeVariable('$operation');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of operation resources contained within the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [OperationList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<OperationList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/operations';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new OperationList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class HttpHealthChecksResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ HttpHealthChecksResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified HttpHealthCheck resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [httpHealthCheck] - Name of the HttpHealthCheck resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String httpHealthCheck) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (httpHealthCheck == null) {
+ throw new core.ArgumentError("Parameter httpHealthCheck is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/httpHealthChecks/' + common_internal.Escaper.ecapeVariable('$httpHealthCheck');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified HttpHealthCheck resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [httpHealthCheck] - Name of the HttpHealthCheck resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [HttpHealthCheck].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<HttpHealthCheck> get(core.String project, core.String httpHealthCheck) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (httpHealthCheck == null) {
+ throw new core.ArgumentError("Parameter httpHealthCheck is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/httpHealthChecks/' + common_internal.Escaper.ecapeVariable('$httpHealthCheck');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new HttpHealthCheck.fromJson(data));
+ }
+
+ /**
+ * Creates a HttpHealthCheck resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(HttpHealthCheck request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/httpHealthChecks';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of HttpHealthCheck resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [HttpHealthCheckList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<HttpHealthCheckList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/httpHealthChecks';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new HttpHealthCheckList.fromJson(data));
+ }
+
+ /**
+ * Updates a HttpHealthCheck resource in the specified project using the data
+ * included in the request. This method supports patch semantics.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [httpHealthCheck] - Name of the HttpHealthCheck resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> patch(HttpHealthCheck request, core.String project, core.String httpHealthCheck) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (httpHealthCheck == null) {
+ throw new core.ArgumentError("Parameter httpHealthCheck is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/httpHealthChecks/' + common_internal.Escaper.ecapeVariable('$httpHealthCheck');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Updates a HttpHealthCheck resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [httpHealthCheck] - Name of the HttpHealthCheck resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> update(HttpHealthCheck request, core.String project, core.String httpHealthCheck) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (httpHealthCheck == null) {
+ throw new core.ArgumentError("Parameter httpHealthCheck is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/httpHealthChecks/' + common_internal.Escaper.ecapeVariable('$httpHealthCheck');
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class ImagesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ ImagesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified image resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [image] - Name of the image resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String image) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (image == null) {
+ throw new core.ArgumentError("Parameter image is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/images/' + common_internal.Escaper.ecapeVariable('$image');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Sets the deprecation status of an image. If no message body is given,
+ * clears the deprecation status instead.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [image] - Image name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> deprecate(DeprecationStatus request, core.String project, core.String image) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (image == null) {
+ throw new core.ArgumentError("Parameter image is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/images/' + common_internal.Escaper.ecapeVariable('$image') + '/deprecate';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified image resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [image] - Name of the image resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Image].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Image> get(core.String project, core.String image) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (image == null) {
+ throw new core.ArgumentError("Parameter image is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/images/' + common_internal.Escaper.ecapeVariable('$image');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Image.fromJson(data));
+ }
+
+ /**
+ * Creates an image resource in the specified project using the data included
+ * in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Image request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/images';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of image resources available to the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [ImageList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ImageList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/images';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ImageList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class InstancesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ InstancesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Adds an access config to an instance's network interface.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Project name.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Instance name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [networkInterface] - Network interface name.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> addAccessConfig(AccessConfig request, core.String project, core.String zone, core.String instance, core.String networkInterface) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+ if (networkInterface == null) {
+ throw new core.ArgumentError("Parameter networkInterface is required.");
+ }
+ _queryParams["networkInterface"] = [networkInterface];
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/addAccessConfig';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Not documented yet.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [InstanceAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<InstanceAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/instances';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new InstanceAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Attaches a disk resource to an instance.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Project name.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Instance name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> attachDisk(AttachedDisk request, core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/attachDisk';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified instance resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Name of the instance resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Deletes an access config from an instance's network interface.
+ *
+ * Request parameters:
+ *
+ * [project] - Project name.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Instance name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [accessConfig] - Access config name.
+ *
+ * [networkInterface] - Network interface name.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> deleteAccessConfig(core.String project, core.String zone, core.String instance, core.String accessConfig, core.String networkInterface) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+ if (accessConfig == null) {
+ throw new core.ArgumentError("Parameter accessConfig is required.");
+ }
+ _queryParams["accessConfig"] = [accessConfig];
+ if (networkInterface == null) {
+ throw new core.ArgumentError("Parameter networkInterface is required.");
+ }
+ _queryParams["networkInterface"] = [networkInterface];
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/deleteAccessConfig';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Detaches a disk from an instance.
+ *
+ * Request parameters:
+ *
+ * [project] - Project name.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Instance name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [deviceName] - Disk device name to detach.
+ * Value must have pattern "\w[\w.-]{0,254}".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> detachDisk(core.String project, core.String zone, core.String instance, core.String deviceName) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+ if (deviceName == null) {
+ throw new core.ArgumentError("Parameter deviceName is required.");
+ }
+ _queryParams["deviceName"] = [deviceName];
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/detachDisk';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified instance resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Name of the instance resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Instance].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Instance> get(core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Instance.fromJson(data));
+ }
+
+ /**
+ * Returns the specified instance's serial port output.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Name of the instance scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [SerialPortOutput].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<SerialPortOutput> getSerialPortOutput(core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/serialPort';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new SerialPortOutput.fromJson(data));
+ }
+
+ /**
+ * Creates an instance resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Instance request, core.String project, core.String zone) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of instance resources contained within the specified
+ * zone.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [InstanceList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<InstanceList> list(core.String project, core.String zone, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new InstanceList.fromJson(data));
+ }
+
+ /**
+ * Performs a hard reset on the instance.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Name of the instance scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> reset(core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/reset';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Sets the auto-delete flag for a disk attached to an instance
+ *
+ * Request parameters:
+ *
+ * [project] - Project name.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Instance name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [autoDelete] - Whether to auto-delete the disk when the instance is
+ * deleted.
+ *
+ * [deviceName] - Disk device name to modify.
+ * Value must have pattern "\w[\w.-]{0,254}".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setDiskAutoDelete(core.String project, core.String zone, core.String instance, core.bool autoDelete, core.String deviceName) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+ if (autoDelete == null) {
+ throw new core.ArgumentError("Parameter autoDelete is required.");
+ }
+ _queryParams["autoDelete"] = ["${autoDelete}"];
+ if (deviceName == null) {
+ throw new core.ArgumentError("Parameter deviceName is required.");
+ }
+ _queryParams["deviceName"] = [deviceName];
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/setDiskAutoDelete';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Sets metadata for the specified instance to the data included in the
+ * request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Name of the instance scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setMetadata(Metadata request, core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/setMetadata';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Sets an instance's scheduling options.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Project name.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Instance name.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setScheduling(Scheduling request, core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/setScheduling';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Sets tags for the specified instance to the data included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [instance] - Name of the instance scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setTags(Tags request, core.String project, core.String zone, core.String instance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (instance == null) {
+ throw new core.ArgumentError("Parameter instance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/instances/' + common_internal.Escaper.ecapeVariable('$instance') + '/setTags';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class LicensesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ LicensesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns the specified license resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [license] - Name of the license resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [License].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<License> get(core.String project, core.String license) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (license == null) {
+ throw new core.ArgumentError("Parameter license is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/licenses/' + common_internal.Escaper.ecapeVariable('$license');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new License.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class MachineTypesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ MachineTypesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of machine type resources grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [MachineTypeAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<MachineTypeAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/machineTypes';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new MachineTypeAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Returns the specified machine type resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [machineType] - Name of the machine type resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [MachineType].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<MachineType> get(core.String project, core.String zone, core.String machineType) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (machineType == null) {
+ throw new core.ArgumentError("Parameter machineType is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/machineTypes/' + common_internal.Escaper.ecapeVariable('$machineType');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new MachineType.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of machine type resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [MachineTypeList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<MachineTypeList> list(core.String project, core.String zone, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/machineTypes';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new MachineTypeList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class NetworksResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ NetworksResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified network resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [network] - Name of the network resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String network) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (network == null) {
+ throw new core.ArgumentError("Parameter network is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/networks/' + common_internal.Escaper.ecapeVariable('$network');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified network resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [network] - Name of the network resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Network].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Network> get(core.String project, core.String network) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (network == null) {
+ throw new core.ArgumentError("Parameter network is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/networks/' + common_internal.Escaper.ecapeVariable('$network');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Network.fromJson(data));
+ }
+
+ /**
+ * Creates a network resource in the specified project using the data included
+ * in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Network request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/networks';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of network resources available to the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [NetworkList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<NetworkList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/networks';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new NetworkList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class ProjectsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ ProjectsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns the specified project resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project resource to retrieve.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Project].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Project> get(core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Project.fromJson(data));
+ }
+
+ /**
+ * Sets metadata common to all instances within the specified project using
+ * the data included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setCommonInstanceMetadata(Metadata request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/setCommonInstanceMetadata';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Sets usage export location
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setUsageExportBucket(UsageExportLocation request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/setUsageExportBucket';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class RegionOperationsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ RegionOperationsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified region-specific operation resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [operation] - Name of the operation resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String project, core.String region, core.String operation) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (operation == null) {
+ throw new core.ArgumentError("Parameter operation is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/operations/' + common_internal.Escaper.ecapeVariable('$operation');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Retrieves the specified region-specific operation resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [operation] - Name of the operation resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> get(core.String project, core.String region, core.String operation) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (operation == null) {
+ throw new core.ArgumentError("Parameter operation is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/operations/' + common_internal.Escaper.ecapeVariable('$operation');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of operation resources contained within the specified
+ * region.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [OperationList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<OperationList> list(core.String project, core.String region, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/operations';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new OperationList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class RegionsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ RegionsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns the specified region resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Region].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Region> get(core.String project, core.String region) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Region.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of region resources available to the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [RegionList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<RegionList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new RegionList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class RoutesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ RoutesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified route resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [route] - Name of the route resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String route) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (route == null) {
+ throw new core.ArgumentError("Parameter route is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/routes/' + common_internal.Escaper.ecapeVariable('$route');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified route resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [route] - Name of the route resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Route].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Route> get(core.String project, core.String route) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (route == null) {
+ throw new core.ArgumentError("Parameter route is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/routes/' + common_internal.Escaper.ecapeVariable('$route');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Route.fromJson(data));
+ }
+
+ /**
+ * Creates a route resource in the specified project using the data included
+ * in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(Route request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/routes';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of route resources available to the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [RouteList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<RouteList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/routes';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new RouteList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class SnapshotsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ SnapshotsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified persistent disk snapshot resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [snapshot] - Name of the persistent disk snapshot resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String snapshot) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (snapshot == null) {
+ throw new core.ArgumentError("Parameter snapshot is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/snapshots/' + common_internal.Escaper.ecapeVariable('$snapshot');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified persistent disk snapshot resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [snapshot] - Name of the persistent disk snapshot resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Snapshot].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Snapshot> get(core.String project, core.String snapshot) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (snapshot == null) {
+ throw new core.ArgumentError("Parameter snapshot is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/snapshots/' + common_internal.Escaper.ecapeVariable('$snapshot');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Snapshot.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of persistent disk snapshot resources contained within
+ * the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [SnapshotList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<SnapshotList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/snapshots';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new SnapshotList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class TargetHttpProxiesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ TargetHttpProxiesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified TargetHttpProxy resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [targetHttpProxy] - Name of the TargetHttpProxy resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String targetHttpProxy) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (targetHttpProxy == null) {
+ throw new core.ArgumentError("Parameter targetHttpProxy is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/targetHttpProxies/' + common_internal.Escaper.ecapeVariable('$targetHttpProxy');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified TargetHttpProxy resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [targetHttpProxy] - Name of the TargetHttpProxy resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [TargetHttpProxy].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetHttpProxy> get(core.String project, core.String targetHttpProxy) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (targetHttpProxy == null) {
+ throw new core.ArgumentError("Parameter targetHttpProxy is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/targetHttpProxies/' + common_internal.Escaper.ecapeVariable('$targetHttpProxy');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetHttpProxy.fromJson(data));
+ }
+
+ /**
+ * Creates a TargetHttpProxy resource in the specified project using the data
+ * included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(TargetHttpProxy request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/targetHttpProxies';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of TargetHttpProxy resources available to the specified
+ * project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [TargetHttpProxyList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetHttpProxyList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/targetHttpProxies';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetHttpProxyList.fromJson(data));
+ }
+
+ /**
+ * Changes the URL map for TargetHttpProxy.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [targetHttpProxy] - Name of the TargetHttpProxy resource whose URL map is
+ * to be set.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setUrlMap(UrlMapReference request, core.String project, core.String targetHttpProxy) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (targetHttpProxy == null) {
+ throw new core.ArgumentError("Parameter targetHttpProxy is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/targetHttpProxies/' + common_internal.Escaper.ecapeVariable('$targetHttpProxy') + '/setUrlMap';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class TargetInstancesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ TargetInstancesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Retrieves the list of target instances grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [TargetInstanceAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetInstanceAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/targetInstances';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetInstanceAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified TargetInstance resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetInstance] - Name of the TargetInstance resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String zone, core.String targetInstance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (targetInstance == null) {
+ throw new core.ArgumentError("Parameter targetInstance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/targetInstances/' + common_internal.Escaper.ecapeVariable('$targetInstance');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified TargetInstance resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetInstance] - Name of the TargetInstance resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [TargetInstance].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetInstance> get(core.String project, core.String zone, core.String targetInstance) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (targetInstance == null) {
+ throw new core.ArgumentError("Parameter targetInstance is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/targetInstances/' + common_internal.Escaper.ecapeVariable('$targetInstance');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetInstance.fromJson(data));
+ }
+
+ /**
+ * Creates a TargetInstance resource in the specified project and zone using
+ * the data included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(TargetInstance request, core.String project, core.String zone) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/targetInstances';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of TargetInstance resources available to the specified
+ * project and zone.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [TargetInstanceList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetInstanceList> list(core.String project, core.String zone, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/targetInstances';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetInstanceList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class TargetPoolsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ TargetPoolsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Adds health check URL to targetPool.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - null
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to which health_check_url is
+ * to be added.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> addHealthCheck(TargetPoolsAddHealthCheckRequest request, core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool') + '/addHealthCheck';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Adds instance url to targetPool.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - null
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to which instance_url is to
+ * be added.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> addInstance(TargetPoolsAddInstanceRequest request, core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool') + '/addInstance';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of target pools grouped by scope.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [TargetPoolAggregatedList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetPoolAggregatedList> aggregatedList(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/aggregated/targetPools';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetPoolAggregatedList.fromJson(data));
+ }
+
+ /**
+ * Deletes the specified TargetPool resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified TargetPool resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [TargetPool].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetPool> get(core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetPool.fromJson(data));
+ }
+
+ /**
+ * Gets the most recent health check results for each IP for the given
+ * instance that is referenced by given TargetPool.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - null
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to which the queried
+ * instance belongs.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [TargetPoolInstanceHealth].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetPoolInstanceHealth> getHealth(InstanceReference request, core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool') + '/getHealth';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetPoolInstanceHealth.fromJson(data));
+ }
+
+ /**
+ * Creates a TargetPool resource in the specified project and region using the
+ * data included in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(TargetPool request, core.String project, core.String region) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of TargetPool resources available to the specified
+ * project and region.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [TargetPoolList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TargetPoolList> list(core.String project, core.String region, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TargetPoolList.fromJson(data));
+ }
+
+ /**
+ * Removes health check URL from targetPool.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - null
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to which health_check_url is
+ * to be removed.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> removeHealthCheck(TargetPoolsRemoveHealthCheckRequest request, core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool') + '/removeHealthCheck';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Removes instance URL from targetPool.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - null
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource to which instance_url is to
+ * be removed.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> removeInstance(TargetPoolsRemoveInstanceRequest request, core.String project, core.String region, core.String targetPool) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool') + '/removeInstance';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Changes backup pool configurations.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [region] - Name of the region scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [targetPool] - Name of the TargetPool resource for which the backup is to
+ * be set.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [failoverRatio] - New failoverRatio value for the containing target pool.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> setBackup(TargetReference request, core.String project, core.String region, core.String targetPool, {core.double failoverRatio}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (region == null) {
+ throw new core.ArgumentError("Parameter region is required.");
+ }
+ if (targetPool == null) {
+ throw new core.ArgumentError("Parameter targetPool is required.");
+ }
+ if (failoverRatio != null) {
+ _queryParams["failoverRatio"] = ["${failoverRatio}"];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/regions/' + common_internal.Escaper.ecapeVariable('$region') + '/targetPools/' + common_internal.Escaper.ecapeVariable('$targetPool') + '/setBackup';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class UrlMapsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ UrlMapsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified UrlMap resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [urlMap] - Name of the UrlMap resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> delete(core.String project, core.String urlMap) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (urlMap == null) {
+ throw new core.ArgumentError("Parameter urlMap is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps/' + common_internal.Escaper.ecapeVariable('$urlMap');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Returns the specified UrlMap resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [urlMap] - Name of the UrlMap resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [UrlMap].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<UrlMap> get(core.String project, core.String urlMap) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (urlMap == null) {
+ throw new core.ArgumentError("Parameter urlMap is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps/' + common_internal.Escaper.ecapeVariable('$urlMap');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new UrlMap.fromJson(data));
+ }
+
+ /**
+ * Creates a UrlMap resource in the specified project using the data included
+ * in the request.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> insert(UrlMap request, core.String project) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of UrlMap resources available to the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [UrlMapList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<UrlMapList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new UrlMapList.fromJson(data));
+ }
+
+ /**
+ * Update the entire content of the UrlMap resource. This method supports
+ * patch semantics.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [urlMap] - Name of the UrlMap resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> patch(UrlMap request, core.String project, core.String urlMap) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (urlMap == null) {
+ throw new core.ArgumentError("Parameter urlMap is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps/' + common_internal.Escaper.ecapeVariable('$urlMap');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Update the entire content of the UrlMap resource.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [urlMap] - Name of the UrlMap resource to update.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> update(UrlMap request, core.String project, core.String urlMap) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (urlMap == null) {
+ throw new core.ArgumentError("Parameter urlMap is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps/' + common_internal.Escaper.ecapeVariable('$urlMap');
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Run static validation for the UrlMap. In particular, the tests of the
+ * provided UrlMap will be run. Calling this method does NOT create the
+ * UrlMap.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [urlMap] - Name of the UrlMap resource to be validated as.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [UrlMapsValidateResponse].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<UrlMapsValidateResponse> validate(UrlMapsValidateRequest request, core.String project, core.String urlMap) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (urlMap == null) {
+ throw new core.ArgumentError("Parameter urlMap is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/global/urlMaps/' + common_internal.Escaper.ecapeVariable('$urlMap') + '/validate';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new UrlMapsValidateResponse.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class ZoneOperationsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ ZoneOperationsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified zone-specific operation resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [operation] - Name of the operation resource to delete.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String project, core.String zone, core.String operation) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (operation == null) {
+ throw new core.ArgumentError("Parameter operation is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/operations/' + common_internal.Escaper.ecapeVariable('$operation');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Retrieves the specified zone-specific operation resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [operation] - Name of the operation resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Operation> get(core.String project, core.String zone, core.String operation) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (operation == null) {
+ throw new core.ArgumentError("Parameter operation is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/operations/' + common_internal.Escaper.ecapeVariable('$operation');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of operation resources contained within the specified
+ * zone.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone scoping this request.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [OperationList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<OperationList> list(core.String project, core.String zone, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone') + '/operations';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new OperationList.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class ZonesResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ ZonesResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns the specified zone resource.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [zone] - Name of the zone resource to return.
+ * Value must have pattern "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?".
+ *
+ * Completes with a [Zone].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Zone> get(core.String project, core.String zone) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (zone == null) {
+ throw new core.ArgumentError("Parameter zone is required.");
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones/' + common_internal.Escaper.ecapeVariable('$zone');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Zone.fromJson(data));
+ }
+
+ /**
+ * Retrieves the list of zone resources available to the specified project.
+ *
+ * Request parameters:
+ *
+ * [project] - Name of the project scoping this request.
+ * Value must have pattern
+ * "(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))".
+ *
+ * [filter] - Optional. Filter expression for filtering listed resources.
+ *
+ * [maxResults] - Optional. Maximum count of results to be returned. Maximum
+ * value is 500 and default value is 500.
+ * Value must be between "0" and "500".
+ *
+ * [pageToken] - Optional. Tag returned by a previous list request truncated
+ * by maxResults. Used to continue a previous list request.
+ *
+ * Completes with a [ZoneList].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ZoneList> list(core.String project, {core.String filter, core.int maxResults, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (project == null) {
+ throw new core.ArgumentError("Parameter project is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+
+ _url = common_internal.Escaper.ecapeVariable('$project') + '/zones';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ZoneList.fromJson(data));
+ }
+
+}
+
+
+
+/** An access configuration attached to an instance's network interface. */
+class AccessConfig {
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Name of this access configuration. */
+ core.String name;
+
+ /**
+ * An external IP address associated with this instance. Specify an unused
+ * static IP address available to the project. If not specified, the external
+ * IP will be drawn from a shared ephemeral pool.
+ */
+ core.String natIP;
+
+ /**
+ * Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures
+ * port-for-port NAT to the internet.
+ * Possible string values are:
+ * - "ONE_TO_ONE_NAT"
+ */
+ core.String type;
+
+
+ AccessConfig();
+
+ AccessConfig.fromJson(core.Map _json) {
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("natIP")) {
+ natIP = _json["natIP"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (natIP != null) {
+ _json["natIP"] = natIP;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ return _json;
+ }
+}
+
+
+/** A reserved address resource. */
+class Address {
+ /** The IP address represented by this resource. */
+ core.String address;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * URL of the region where the regional address resides (output only). This
+ * field is not applicable to global addresses.
+ */
+ core.String region;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The status of the address (output only).
+ * Possible string values are:
+ * - "IN_USE"
+ * - "RESERVED"
+ */
+ core.String status;
+
+ /** The resources that are using this address resource. */
+ core.List<core.String> users;
+
+
+ Address();
+
+ Address.fromJson(core.Map _json) {
+ if (_json.containsKey("address")) {
+ address = _json["address"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("region")) {
+ region = _json["region"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("users")) {
+ users = _json["users"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (address != null) {
+ _json["address"] = address;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (region != null) {
+ _json["region"] = region;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (users != null) {
+ _json["users"] = users;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class AddressAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped address lists. */
+ core.Map<core.String, AddressesScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ AddressAggregatedList();
+
+ AddressAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new AddressesScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of address resources. */
+class AddressList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The address resources. */
+ core.List<Address> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+
+ AddressList();
+
+ AddressList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Address.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class AddressesScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ AddressesScopedListWarningData();
+
+ AddressesScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of addresses when the list is
+ * empty.
+ */
+class AddressesScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<AddressesScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ AddressesScopedListWarning();
+
+ AddressesScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new AddressesScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class AddressesScopedList {
+ /** List of addresses contained in this scope. */
+ core.List<Address> addresses;
+
+ /**
+ * Informational warning which replaces the list of addresses when the list is
+ * empty.
+ */
+ AddressesScopedListWarning warning;
+
+
+ AddressesScopedList();
+
+ AddressesScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("addresses")) {
+ addresses = _json["addresses"].map((value) => new Address.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new AddressesScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (addresses != null) {
+ _json["addresses"] = addresses.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** An instance-attached disk resource. */
+class AttachedDisk {
+ /**
+ * Whether the disk will be auto-deleted when the instance is deleted (but not
+ * when the disk is detached from the instance).
+ */
+ core.bool autoDelete;
+
+ /**
+ * Indicates that this is a boot disk. VM will use the first partition of the
+ * disk for its root filesystem.
+ */
+ core.bool boot;
+
+ /**
+ * Persistent disk only; must be unique within the instance when specified.
+ * This represents a unique device name that is reflected into the /dev/ tree
+ * of a Linux operating system running within the instance. If not specified,
+ * a default will be chosen by the system.
+ */
+ core.String deviceName;
+
+ /**
+ * A zero-based index to assign to this disk, where 0 is reserved for the boot
+ * disk. If not specified, the server will choose an appropriate value (output
+ * only).
+ */
+ core.int index;
+
+ /** Initialization parameters. */
+ AttachedDiskInitializeParams initializeParams;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Public visible licenses. */
+ core.List<core.String> licenses;
+
+ /**
+ * The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
+ * Possible string values are:
+ * - "READ_ONLY"
+ * - "READ_WRITE"
+ */
+ core.String mode;
+
+ /** Persistent disk only; the URL of the persistent disk resource. */
+ core.String source;
+
+ /**
+ * Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent
+ * disks must be created before you can specify them here.
+ * Possible string values are:
+ * - "PERSISTENT"
+ * - "SCRATCH"
+ */
+ core.String type;
+
+
+ AttachedDisk();
+
+ AttachedDisk.fromJson(core.Map _json) {
+ if (_json.containsKey("autoDelete")) {
+ autoDelete = _json["autoDelete"];
+ }
+ if (_json.containsKey("boot")) {
+ boot = _json["boot"];
+ }
+ if (_json.containsKey("deviceName")) {
+ deviceName = _json["deviceName"];
+ }
+ if (_json.containsKey("index")) {
+ index = _json["index"];
+ }
+ if (_json.containsKey("initializeParams")) {
+ initializeParams = new AttachedDiskInitializeParams.fromJson(_json["initializeParams"]);
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("licenses")) {
+ licenses = _json["licenses"];
+ }
+ if (_json.containsKey("mode")) {
+ mode = _json["mode"];
+ }
+ if (_json.containsKey("source")) {
+ source = _json["source"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (autoDelete != null) {
+ _json["autoDelete"] = autoDelete;
+ }
+ if (boot != null) {
+ _json["boot"] = boot;
+ }
+ if (deviceName != null) {
+ _json["deviceName"] = deviceName;
+ }
+ if (index != null) {
+ _json["index"] = index;
+ }
+ if (initializeParams != null) {
+ _json["initializeParams"] = (initializeParams).toJson();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (licenses != null) {
+ _json["licenses"] = licenses;
+ }
+ if (mode != null) {
+ _json["mode"] = mode;
+ }
+ if (source != null) {
+ _json["source"] = source;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Initialization parameters for the new disk (input-only). Can only be
+ * specified on the boot disk or local SSDs. Mutually exclusive with 'source'.
+ */
+class AttachedDiskInitializeParams {
+ /**
+ * Name of the disk (when not provided defaults to the name of the instance).
+ */
+ core.String diskName;
+
+ /** Size of the disk in base-2 GB. */
+ core.String diskSizeGb;
+
+ /**
+ * URL of the disk type resource describing which disk type to use to create
+ * the disk; provided by the client when the disk is created.
+ */
+ core.String diskType;
+
+ /** The source image used to create this disk. */
+ core.String sourceImage;
+
+
+ AttachedDiskInitializeParams();
+
+ AttachedDiskInitializeParams.fromJson(core.Map _json) {
+ if (_json.containsKey("diskName")) {
+ diskName = _json["diskName"];
+ }
+ if (_json.containsKey("diskSizeGb")) {
+ diskSizeGb = _json["diskSizeGb"];
+ }
+ if (_json.containsKey("diskType")) {
+ diskType = _json["diskType"];
+ }
+ if (_json.containsKey("sourceImage")) {
+ sourceImage = _json["sourceImage"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (diskName != null) {
+ _json["diskName"] = diskName;
+ }
+ if (diskSizeGb != null) {
+ _json["diskSizeGb"] = diskSizeGb;
+ }
+ if (diskType != null) {
+ _json["diskType"] = diskType;
+ }
+ if (sourceImage != null) {
+ _json["sourceImage"] = sourceImage;
+ }
+ return _json;
+ }
+}
+
+
+/** Message containing information of one individual backend. */
+class Backend {
+ /**
+ * The balancing mode of this backend, default is UTILIZATION.
+ * Possible string values are:
+ * - "RATE"
+ * - "UTILIZATION"
+ */
+ core.String balancingMode;
+
+ /**
+ * The multiplier (a value between 0 and 1e6) of the max capacity (CPU or RPS,
+ * depending on 'balancingMode') the group should serve up to. 0 means the
+ * group is totally drained. Default value is 1. Valid range is [0, 1e6].
+ */
+ core.double capacityScaler;
+
+ /**
+ * An optional textual description of the resource, which is provided by the
+ * client when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * URL of a zonal Cloud Resource View resource. This resource view defines the
+ * list of instances that serve traffic. Member virtual machine instances from
+ * each resource view must live in the same zone as the resource view itself.
+ * No two backends in a backend service are allowed to use same Resource View
+ * resource.
+ */
+ core.String group;
+
+ /**
+ * The max RPS of the group. Can be used with either balancing mode, but
+ * required if RATE mode. For RATE mode, either maxRate or maxRatePerInstance
+ * must be set.
+ */
+ core.int maxRate;
+
+ /**
+ * The max RPS that a single backed instance can handle. This is used to
+ * calculate the capacity of the group. Can be used in either balancing mode.
+ * For RATE mode, either maxRate or maxRatePerInstance must be set.
+ */
+ core.double maxRatePerInstance;
+
+ /**
+ * Used when 'balancingMode' is UTILIZATION. This ratio defines the CPU
+ * utilization target for the group. The default is 0.8. Valid range is [0,
+ * 1].
+ */
+ core.double maxUtilization;
+
+
+ Backend();
+
+ Backend.fromJson(core.Map _json) {
+ if (_json.containsKey("balancingMode")) {
+ balancingMode = _json["balancingMode"];
+ }
+ if (_json.containsKey("capacityScaler")) {
+ capacityScaler = _json["capacityScaler"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("group")) {
+ group = _json["group"];
+ }
+ if (_json.containsKey("maxRate")) {
+ maxRate = _json["maxRate"];
+ }
+ if (_json.containsKey("maxRatePerInstance")) {
+ maxRatePerInstance = _json["maxRatePerInstance"];
+ }
+ if (_json.containsKey("maxUtilization")) {
+ maxUtilization = _json["maxUtilization"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (balancingMode != null) {
+ _json["balancingMode"] = balancingMode;
+ }
+ if (capacityScaler != null) {
+ _json["capacityScaler"] = capacityScaler;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (group != null) {
+ _json["group"] = group;
+ }
+ if (maxRate != null) {
+ _json["maxRate"] = maxRate;
+ }
+ if (maxRatePerInstance != null) {
+ _json["maxRatePerInstance"] = maxRatePerInstance;
+ }
+ if (maxUtilization != null) {
+ _json["maxUtilization"] = maxUtilization;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A BackendService resource. This resource defines a group of backend VMs
+ * together with their serving capacity.
+ */
+class BackendService {
+ /** The list of backends that serve this BackendService. */
+ core.List<Backend> backends;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Fingerprint of this resource. A hash of the contents stored in this object.
+ * This field is used in optimistic locking. This field will be ignored when
+ * inserting a BackendService. An up-to-date fingerprint must be provided in
+ * order to update the BackendService.
+ */
+ core.String fingerprint;
+
+ core.List<core.int> get fingerprintAsBytes {
+ return crypto.CryptoUtils.base64StringToBytes(fingerprint);
+ }
+
+ void set fingerprintAsBytes(core.List<core.int> _bytes) {
+ fingerprint = crypto.CryptoUtils.bytesToBase64(_bytes, urlSafe: true);
+ }
+
+ /**
+ * The list of URLs to the HttpHealthCheck resource for health checking this
+ * BackendService. Currently at most one health check can be specified, and a
+ * health check is required.
+ */
+ core.List<core.String> healthChecks;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** The TCP port to connect on the backend. The default value is 80. */
+ core.int port;
+
+ /**
+ * Name of backend port. The same name should appear in the resource views
+ * referenced by this service. Required.
+ */
+ core.String portName;
+
+ /**
+ * Not documented yet.
+ * Possible string values are:
+ * - "HTTP"
+ */
+ core.String protocol;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * How many seconds to wait for the backend before considering it a failed
+ * request. Default is 30 seconds.
+ */
+ core.int timeoutSec;
+
+
+ BackendService();
+
+ BackendService.fromJson(core.Map _json) {
+ if (_json.containsKey("backends")) {
+ backends = _json["backends"].map((value) => new Backend.fromJson(value)).toList();
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("fingerprint")) {
+ fingerprint = _json["fingerprint"];
+ }
+ if (_json.containsKey("healthChecks")) {
+ healthChecks = _json["healthChecks"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("port")) {
+ port = _json["port"];
+ }
+ if (_json.containsKey("portName")) {
+ portName = _json["portName"];
+ }
+ if (_json.containsKey("protocol")) {
+ protocol = _json["protocol"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("timeoutSec")) {
+ timeoutSec = _json["timeoutSec"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (backends != null) {
+ _json["backends"] = backends.map((value) => (value).toJson()).toList();
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (fingerprint != null) {
+ _json["fingerprint"] = fingerprint;
+ }
+ if (healthChecks != null) {
+ _json["healthChecks"] = healthChecks;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (port != null) {
+ _json["port"] = port;
+ }
+ if (portName != null) {
+ _json["portName"] = portName;
+ }
+ if (protocol != null) {
+ _json["protocol"] = protocol;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (timeoutSec != null) {
+ _json["timeoutSec"] = timeoutSec;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class BackendServiceGroupHealth {
+ /** Not documented yet. */
+ core.List<HealthStatus> healthStatus;
+
+ /** Type of resource. */
+ core.String kind;
+
+
+ BackendServiceGroupHealth();
+
+ BackendServiceGroupHealth.fromJson(core.Map _json) {
+ if (_json.containsKey("healthStatus")) {
+ healthStatus = _json["healthStatus"].map((value) => new HealthStatus.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (healthStatus != null) {
+ _json["healthStatus"] = healthStatus.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of BackendService resources. */
+class BackendServiceList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The BackendService resources. */
+ core.List<BackendService> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ BackendServiceList();
+
+ BackendServiceList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new BackendService.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Deprecation status for a public resource. */
+class DeprecationStatus {
+ /**
+ * An optional RFC3339 timestamp on or after which the deprecation state of
+ * this resource will be changed to DELETED.
+ */
+ core.String deleted;
+
+ /**
+ * An optional RFC3339 timestamp on or after which the deprecation state of
+ * this resource will be changed to DEPRECATED.
+ */
+ core.String deprecated;
+
+ /**
+ * An optional RFC3339 timestamp on or after which the deprecation state of
+ * this resource will be changed to OBSOLETE.
+ */
+ core.String obsolete;
+
+ /**
+ * A URL of the suggested replacement for the deprecated resource. The
+ * deprecated resource and its replacement must be resources of the same kind.
+ */
+ core.String replacement;
+
+ /**
+ * The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED".
+ * Operations which create a new resource using a "DEPRECATED" resource will
+ * return successfully, but with a warning indicating the deprecated resource
+ * and recommending its replacement. New uses of "OBSOLETE" or "DELETED"
+ * resources will result in an error.
+ * Possible string values are:
+ * - "DELETED"
+ * - "DEPRECATED"
+ * - "OBSOLETE"
+ */
+ core.String state;
+
+
+ DeprecationStatus();
+
+ DeprecationStatus.fromJson(core.Map _json) {
+ if (_json.containsKey("deleted")) {
+ deleted = _json["deleted"];
+ }
+ if (_json.containsKey("deprecated")) {
+ deprecated = _json["deprecated"];
+ }
+ if (_json.containsKey("obsolete")) {
+ obsolete = _json["obsolete"];
+ }
+ if (_json.containsKey("replacement")) {
+ replacement = _json["replacement"];
+ }
+ if (_json.containsKey("state")) {
+ state = _json["state"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (deleted != null) {
+ _json["deleted"] = deleted;
+ }
+ if (deprecated != null) {
+ _json["deprecated"] = deprecated;
+ }
+ if (obsolete != null) {
+ _json["obsolete"] = obsolete;
+ }
+ if (replacement != null) {
+ _json["replacement"] = replacement;
+ }
+ if (state != null) {
+ _json["state"] = state;
+ }
+ return _json;
+ }
+}
+
+
+/** A persistent disk resource. */
+class Disk {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Public visible licenses. */
+ core.List<core.String> licenses;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** Internal use only. */
+ core.String options;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * Size of the persistent disk, specified in GB. This parameter is optional
+ * when creating a disk from a disk image or a snapshot, otherwise it is
+ * required.
+ */
+ core.String sizeGb;
+
+ /**
+ * The source image used to create this disk. Once the source image has been
+ * deleted from the system, this field will not be set, even if an image with
+ * the same name has been re-created.
+ */
+ core.String sourceImage;
+
+ /**
+ * The 'id' value of the image used to create this disk. This value may be
+ * used to determine whether the disk was created from the current or a
+ * previous instance of a given image.
+ */
+ core.String sourceImageId;
+
+ /**
+ * The source snapshot used to create this disk. Once the source snapshot has
+ * been deleted from the system, this field will be cleared, and will not be
+ * set even if a snapshot with the same name has been re-created.
+ */
+ core.String sourceSnapshot;
+
+ /**
+ * The 'id' value of the snapshot used to create this disk. This value may be
+ * used to determine whether the disk was created from the current or a
+ * previous instance of a given disk snapshot.
+ */
+ core.String sourceSnapshotId;
+
+ /**
+ * The status of disk creation (output only).
+ * Possible string values are:
+ * - "CREATING"
+ * - "FAILED"
+ * - "READY"
+ * - "RESTORING"
+ */
+ core.String status;
+
+ /**
+ * URL of the disk type resource describing which disk type to use to create
+ * the disk; provided by the client when the disk is created.
+ */
+ core.String type;
+
+ /** URL of the zone where the disk resides (output only). */
+ core.String zone;
+
+
+ Disk();
+
+ Disk.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("licenses")) {
+ licenses = _json["licenses"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("options")) {
+ options = _json["options"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("sizeGb")) {
+ sizeGb = _json["sizeGb"];
+ }
+ if (_json.containsKey("sourceImage")) {
+ sourceImage = _json["sourceImage"];
+ }
+ if (_json.containsKey("sourceImageId")) {
+ sourceImageId = _json["sourceImageId"];
+ }
+ if (_json.containsKey("sourceSnapshot")) {
+ sourceSnapshot = _json["sourceSnapshot"];
+ }
+ if (_json.containsKey("sourceSnapshotId")) {
+ sourceSnapshotId = _json["sourceSnapshotId"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ if (_json.containsKey("zone")) {
+ zone = _json["zone"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (licenses != null) {
+ _json["licenses"] = licenses;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (options != null) {
+ _json["options"] = options;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (sizeGb != null) {
+ _json["sizeGb"] = sizeGb;
+ }
+ if (sourceImage != null) {
+ _json["sourceImage"] = sourceImage;
+ }
+ if (sourceImageId != null) {
+ _json["sourceImageId"] = sourceImageId;
+ }
+ if (sourceSnapshot != null) {
+ _json["sourceSnapshot"] = sourceSnapshot;
+ }
+ if (sourceSnapshotId != null) {
+ _json["sourceSnapshotId"] = sourceSnapshotId;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ if (zone != null) {
+ _json["zone"] = zone;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class DiskAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped disk lists. */
+ core.Map<core.String, DisksScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ DiskAggregatedList();
+
+ DiskAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new DisksScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of persistent disk resources. */
+class DiskList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The persistent disk resources. */
+ core.List<Disk> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ DiskList();
+
+ DiskList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Disk.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** A disk type resource. */
+class DiskType {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** Server defined default disk size in gb (output only). */
+ core.String defaultDiskSizeGb;
+
+ /** The deprecation status associated with this disk type. */
+ DeprecationStatus deprecated;
+
+ /** An optional textual description of the resource. */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Name of the resource. */
+ core.String name;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * An optional textual descroption of the valid disk size, e.g., "10GB-10TB".
+ */
+ core.String validDiskSize;
+
+ /** Url of the zone where the disk type resides (output only). */
+ core.String zone;
+
+
+ DiskType();
+
+ DiskType.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("defaultDiskSizeGb")) {
+ defaultDiskSizeGb = _json["defaultDiskSizeGb"];
+ }
+ if (_json.containsKey("deprecated")) {
+ deprecated = new DeprecationStatus.fromJson(_json["deprecated"]);
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("validDiskSize")) {
+ validDiskSize = _json["validDiskSize"];
+ }
+ if (_json.containsKey("zone")) {
+ zone = _json["zone"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (defaultDiskSizeGb != null) {
+ _json["defaultDiskSizeGb"] = defaultDiskSizeGb;
+ }
+ if (deprecated != null) {
+ _json["deprecated"] = (deprecated).toJson();
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (validDiskSize != null) {
+ _json["validDiskSize"] = validDiskSize;
+ }
+ if (zone != null) {
+ _json["zone"] = zone;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class DiskTypeAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped disk type lists. */
+ core.Map<core.String, DiskTypesScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ DiskTypeAggregatedList();
+
+ DiskTypeAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new DiskTypesScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of disk type resources. */
+class DiskTypeList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The disk type resources. */
+ core.List<DiskType> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ DiskTypeList();
+
+ DiskTypeList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new DiskType.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class DiskTypesScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ DiskTypesScopedListWarningData();
+
+ DiskTypesScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of disk types when the list is
+ * empty.
+ */
+class DiskTypesScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<DiskTypesScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ DiskTypesScopedListWarning();
+
+ DiskTypesScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new DiskTypesScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class DiskTypesScopedList {
+ /** List of disk types contained in this scope. */
+ core.List<DiskType> diskTypes;
+
+ /**
+ * Informational warning which replaces the list of disk types when the list
+ * is empty.
+ */
+ DiskTypesScopedListWarning warning;
+
+
+ DiskTypesScopedList();
+
+ DiskTypesScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("diskTypes")) {
+ diskTypes = _json["diskTypes"].map((value) => new DiskType.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new DiskTypesScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (diskTypes != null) {
+ _json["diskTypes"] = diskTypes.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class DisksScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ DisksScopedListWarningData();
+
+ DisksScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of disks when the list is
+ * empty.
+ */
+class DisksScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<DisksScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ DisksScopedListWarning();
+
+ DisksScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new DisksScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class DisksScopedList {
+ /** List of disks contained in this scope. */
+ core.List<Disk> disks;
+
+ /**
+ * Informational warning which replaces the list of disks when the list is
+ * empty.
+ */
+ DisksScopedListWarning warning;
+
+
+ DisksScopedList();
+
+ DisksScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("disks")) {
+ disks = _json["disks"].map((value) => new Disk.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new DisksScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (disks != null) {
+ _json["disks"] = disks.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class FirewallAllowed {
+ /**
+ * Required; this is the IP protocol that is allowed for this rule. This can
+ * either be one of the following well known protocol strings ["tcp", "udp",
+ * "icmp", "esp", "ah", "sctp"], or the IP protocol number.
+ */
+ core.String IPProtocol;
+
+ /**
+ * An optional list of ports which are allowed. It is an error to specify this
+ * for any protocol that isn't UDP or TCP. Each entry must be either an
+ * integer or a range. If not specified, connections through any port are
+ * allowed.
+ *
+ * Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
+ */
+ core.List<core.String> ports;
+
+
+ FirewallAllowed();
+
+ FirewallAllowed.fromJson(core.Map _json) {
+ if (_json.containsKey("IPProtocol")) {
+ IPProtocol = _json["IPProtocol"];
+ }
+ if (_json.containsKey("ports")) {
+ ports = _json["ports"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (IPProtocol != null) {
+ _json["IPProtocol"] = IPProtocol;
+ }
+ if (ports != null) {
+ _json["ports"] = ports;
+ }
+ return _json;
+ }
+}
+
+
+/** A firewall resource. */
+class Firewall {
+ /**
+ * The list of rules specified by this firewall. Each rule specifies a
+ * protocol and port-range tuple that describes a permitted connection.
+ */
+ core.List<FirewallAllowed> allowed;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * URL of the network to which this firewall is applied; provided by the
+ * client when the firewall is created.
+ */
+ core.String network;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * A list of IP address blocks expressed in CIDR format which this rule
+ * applies to. One or both of sourceRanges and sourceTags may be set; an
+ * inbound connection is allowed if either the range or the tag of the source
+ * matches.
+ */
+ core.List<core.String> sourceRanges;
+
+ /**
+ * A list of instance tags which this rule applies to. One or both of
+ * sourceRanges and sourceTags may be set; an inbound connection is allowed if
+ * either the range or the tag of the source matches.
+ */
+ core.List<core.String> sourceTags;
+
+ /**
+ * A list of instance tags indicating sets of instances located on network
+ * which may make network connections as specified in allowed. If no
+ * targetTags are specified, the firewall rule applies to all instances on the
+ * specified network.
+ */
+ core.List<core.String> targetTags;
+
+
+ Firewall();
+
+ Firewall.fromJson(core.Map _json) {
+ if (_json.containsKey("allowed")) {
+ allowed = _json["allowed"].map((value) => new FirewallAllowed.fromJson(value)).toList();
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("network")) {
+ network = _json["network"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("sourceRanges")) {
+ sourceRanges = _json["sourceRanges"];
+ }
+ if (_json.containsKey("sourceTags")) {
+ sourceTags = _json["sourceTags"];
+ }
+ if (_json.containsKey("targetTags")) {
+ targetTags = _json["targetTags"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (allowed != null) {
+ _json["allowed"] = allowed.map((value) => (value).toJson()).toList();
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (network != null) {
+ _json["network"] = network;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (sourceRanges != null) {
+ _json["sourceRanges"] = sourceRanges;
+ }
+ if (sourceTags != null) {
+ _json["sourceTags"] = sourceTags;
+ }
+ if (targetTags != null) {
+ _json["targetTags"] = targetTags;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of firewall resources. */
+class FirewallList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The firewall resources. */
+ core.List<Firewall> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ FirewallList();
+
+ FirewallList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Firewall.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A ForwardingRule resource. A ForwardingRule resource specifies which pool of
+ * target VMs to forward a packet to if it matches the given [IPAddress,
+ * IPProtocol, portRange] tuple.
+ */
+class ForwardingRule {
+ /**
+ * Value of the reserved IP address that this forwarding rule is serving on
+ * behalf of. For global forwarding rules, the address must be a global IP;
+ * for regional forwarding rules, the address must live in the same region as
+ * the forwarding rule. If left empty (default value), an ephemeral IP from
+ * the same scope (global or regional) will be assigned.
+ */
+ core.String IPAddress;
+
+ /**
+ * The IP protocol to which this rule applies, valid options are 'TCP', 'UDP',
+ * 'ESP', 'AH' or 'SCTP'.
+ * Possible string values are:
+ * - "AH"
+ * - "ESP"
+ * - "SCTP"
+ * - "TCP"
+ * - "UDP"
+ */
+ core.String IPProtocol;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * Applicable only when 'IPProtocol' is 'TCP', 'UDP' or 'SCTP', only packets
+ * addressed to ports in the specified range will be forwarded to 'target'. If
+ * 'portRange' is left empty (default value), all ports are forwarded.
+ * Forwarding rules with the same [IPAddress, IPProtocol] pair must have
+ * disjoint port ranges.
+ */
+ core.String portRange;
+
+ /**
+ * URL of the region where the regional forwarding rule resides (output only).
+ * This field is not applicable to global forwarding rules.
+ */
+ core.String region;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The URL of the target resource to receive the matched traffic. For regional
+ * forwarding rules, this target must live in the same region as the
+ * forwarding rule. For global forwarding rules, this target must be a global
+ * TargetHttpProxy resource.
+ */
+ core.String target;
+
+
+ ForwardingRule();
+
+ ForwardingRule.fromJson(core.Map _json) {
+ if (_json.containsKey("IPAddress")) {
+ IPAddress = _json["IPAddress"];
+ }
+ if (_json.containsKey("IPProtocol")) {
+ IPProtocol = _json["IPProtocol"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("portRange")) {
+ portRange = _json["portRange"];
+ }
+ if (_json.containsKey("region")) {
+ region = _json["region"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("target")) {
+ target = _json["target"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (IPAddress != null) {
+ _json["IPAddress"] = IPAddress;
+ }
+ if (IPProtocol != null) {
+ _json["IPProtocol"] = IPProtocol;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (portRange != null) {
+ _json["portRange"] = portRange;
+ }
+ if (region != null) {
+ _json["region"] = region;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (target != null) {
+ _json["target"] = target;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class ForwardingRuleAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped forwarding rule lists. */
+ core.Map<core.String, ForwardingRulesScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ ForwardingRuleAggregatedList();
+
+ ForwardingRuleAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new ForwardingRulesScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of ForwardingRule resources. */
+class ForwardingRuleList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The ForwardingRule resources. */
+ core.List<ForwardingRule> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ ForwardingRuleList();
+
+ ForwardingRuleList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new ForwardingRule.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class ForwardingRulesScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ ForwardingRulesScopedListWarningData();
+
+ ForwardingRulesScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of forwarding rules when the
+ * list is empty.
+ */
+class ForwardingRulesScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<ForwardingRulesScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ ForwardingRulesScopedListWarning();
+
+ ForwardingRulesScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new ForwardingRulesScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class ForwardingRulesScopedList {
+ /** List of forwarding rules contained in this scope. */
+ core.List<ForwardingRule> forwardingRules;
+
+ /**
+ * Informational warning which replaces the list of forwarding rules when the
+ * list is empty.
+ */
+ ForwardingRulesScopedListWarning warning;
+
+
+ ForwardingRulesScopedList();
+
+ ForwardingRulesScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("forwardingRules")) {
+ forwardingRules = _json["forwardingRules"].map((value) => new ForwardingRule.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new ForwardingRulesScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (forwardingRules != null) {
+ _json["forwardingRules"] = forwardingRules.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class HealthCheckReference {
+ /** Not documented yet. */
+ core.String healthCheck;
+
+
+ HealthCheckReference();
+
+ HealthCheckReference.fromJson(core.Map _json) {
+ if (_json.containsKey("healthCheck")) {
+ healthCheck = _json["healthCheck"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (healthCheck != null) {
+ _json["healthCheck"] = healthCheck;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class HealthStatus {
+ /**
+ * Health state of the instance.
+ * Possible string values are:
+ * - "HEALTHY"
+ * - "UNHEALTHY"
+ */
+ core.String healthState;
+
+ /** URL of the instance resource. */
+ core.String instance;
+
+ /** The IP address represented by this resource. */
+ core.String ipAddress;
+
+ /** The port on the instance. */
+ core.int port;
+
+
+ HealthStatus();
+
+ HealthStatus.fromJson(core.Map _json) {
+ if (_json.containsKey("healthState")) {
+ healthState = _json["healthState"];
+ }
+ if (_json.containsKey("instance")) {
+ instance = _json["instance"];
+ }
+ if (_json.containsKey("ipAddress")) {
+ ipAddress = _json["ipAddress"];
+ }
+ if (_json.containsKey("port")) {
+ port = _json["port"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (healthState != null) {
+ _json["healthState"] = healthState;
+ }
+ if (instance != null) {
+ _json["instance"] = instance;
+ }
+ if (ipAddress != null) {
+ _json["ipAddress"] = ipAddress;
+ }
+ if (port != null) {
+ _json["port"] = port;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A host-matching rule for a URL. If matched, will use the named PathMatcher to
+ * select the BackendService.
+ */
+class HostRule {
+ /** Not documented yet. */
+ core.String description;
+
+ /**
+ * The list of host patterns to match. They must be valid hostnames except
+ * that they may start with *. or *-. The * acts like a glob and will match
+ * any string of atoms (separated by .s and -s) to the left.
+ */
+ core.List<core.String> hosts;
+
+ /**
+ * The name of the PathMatcher to match the path portion of the URL, if the
+ * this HostRule matches the URL's host portion.
+ */
+ core.String pathMatcher;
+
+
+ HostRule();
+
+ HostRule.fromJson(core.Map _json) {
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("hosts")) {
+ hosts = _json["hosts"];
+ }
+ if (_json.containsKey("pathMatcher")) {
+ pathMatcher = _json["pathMatcher"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (hosts != null) {
+ _json["hosts"] = hosts;
+ }
+ if (pathMatcher != null) {
+ _json["pathMatcher"] = pathMatcher;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * An HttpHealthCheck resource. This resource defines a template for how
+ * individual VMs should be checked for health, via HTTP.
+ */
+class HttpHealthCheck {
+ /**
+ * How often (in seconds) to send a health check. The default value is 5
+ * seconds.
+ */
+ core.int checkIntervalSec;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * A so-far unhealthy VM will be marked healthy after this many consecutive
+ * successes. The default value is 2.
+ */
+ core.int healthyThreshold;
+
+ /**
+ * The value of the host header in the HTTP health check request. If left
+ * empty (default value), the public IP on behalf of which this health check
+ * is performed will be used.
+ */
+ core.String host;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * The TCP port number for the HTTP health check request. The default value is
+ * 80.
+ */
+ core.int port;
+
+ /**
+ * The request path of the HTTP health check request. The default value is
+ * "/".
+ */
+ core.String requestPath;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * How long (in seconds) to wait before claiming failure. The default value is
+ * 5 seconds.
+ */
+ core.int timeoutSec;
+
+ /**
+ * A so-far healthy VM will be marked unhealthy after this many consecutive
+ * failures. The default value is 2.
+ */
+ core.int unhealthyThreshold;
+
+
+ HttpHealthCheck();
+
+ HttpHealthCheck.fromJson(core.Map _json) {
+ if (_json.containsKey("checkIntervalSec")) {
+ checkIntervalSec = _json["checkIntervalSec"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("healthyThreshold")) {
+ healthyThreshold = _json["healthyThreshold"];
+ }
+ if (_json.containsKey("host")) {
+ host = _json["host"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("port")) {
+ port = _json["port"];
+ }
+ if (_json.containsKey("requestPath")) {
+ requestPath = _json["requestPath"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("timeoutSec")) {
+ timeoutSec = _json["timeoutSec"];
+ }
+ if (_json.containsKey("unhealthyThreshold")) {
+ unhealthyThreshold = _json["unhealthyThreshold"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (checkIntervalSec != null) {
+ _json["checkIntervalSec"] = checkIntervalSec;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (healthyThreshold != null) {
+ _json["healthyThreshold"] = healthyThreshold;
+ }
+ if (host != null) {
+ _json["host"] = host;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (port != null) {
+ _json["port"] = port;
+ }
+ if (requestPath != null) {
+ _json["requestPath"] = requestPath;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (timeoutSec != null) {
+ _json["timeoutSec"] = timeoutSec;
+ }
+ if (unhealthyThreshold != null) {
+ _json["unhealthyThreshold"] = unhealthyThreshold;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of HttpHealthCheck resources. */
+class HttpHealthCheckList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The HttpHealthCheck resources. */
+ core.List<HttpHealthCheck> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ HttpHealthCheckList();
+
+ HttpHealthCheckList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new HttpHealthCheck.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** The raw disk image parameters. */
+class ImageRawDisk {
+ /**
+ * The format used to encode and transmit the block device. Should be TAR.
+ * This is just a container and transmission format and not a runtime format.
+ * Provided by the client when the disk image is created.
+ * Possible string values are:
+ * - "TAR"
+ */
+ core.String containerType;
+
+ /**
+ * An optional SHA1 checksum of the disk image before unpackaging; provided by
+ * the client when the disk image is created.
+ */
+ core.String sha1Checksum;
+
+ /**
+ * The full Google Cloud Storage URL where the disk image is stored; provided
+ * by the client when the disk image is created.
+ */
+ core.String source;
+
+
+ ImageRawDisk();
+
+ ImageRawDisk.fromJson(core.Map _json) {
+ if (_json.containsKey("containerType")) {
+ containerType = _json["containerType"];
+ }
+ if (_json.containsKey("sha1Checksum")) {
+ sha1Checksum = _json["sha1Checksum"];
+ }
+ if (_json.containsKey("source")) {
+ source = _json["source"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (containerType != null) {
+ _json["containerType"] = containerType;
+ }
+ if (sha1Checksum != null) {
+ _json["sha1Checksum"] = sha1Checksum;
+ }
+ if (source != null) {
+ _json["source"] = source;
+ }
+ return _json;
+ }
+}
+
+
+/** A disk image resource. */
+class Image {
+ /**
+ * Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
+ */
+ core.String archiveSizeBytes;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** The deprecation status associated with this image. */
+ DeprecationStatus deprecated;
+
+ /**
+ * Textual description of the resource; provided by the client when the
+ * resource is created.
+ */
+ core.String description;
+
+ /** Size of the image when restored onto a disk (in GiB). */
+ core.String diskSizeGb;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Public visible licenses. */
+ core.List<core.String> licenses;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** The raw disk image parameters. */
+ ImageRawDisk rawDisk;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The source disk used to create this image. Once the source disk has been
+ * deleted from the system, this field will be cleared, and will not be set
+ * even if a disk with the same name has been re-created.
+ */
+ core.String sourceDisk;
+
+ /**
+ * The 'id' value of the disk used to create this image. This value may be
+ * used to determine whether the image was taken from the current or a
+ * previous instance of a given disk name.
+ */
+ core.String sourceDiskId;
+
+ /**
+ * Must be "RAW"; provided by the client when the disk image is created.
+ * Possible string values are:
+ * - "RAW"
+ */
+ core.String sourceType;
+
+ /**
+ * Status of the image (output only). It will be one of the following READY -
+ * after image has been successfully created and is ready for use FAILED - if
+ * creating the image fails for some reason PENDING - the image creation is in
+ * progress An image can be used to create other resources suck as instances
+ * only after the image has been successfully created and the status is set to
+ * READY.
+ * Possible string values are:
+ * - "FAILED"
+ * - "PENDING"
+ * - "READY"
+ */
+ core.String status;
+
+
+ Image();
+
+ Image.fromJson(core.Map _json) {
+ if (_json.containsKey("archiveSizeBytes")) {
+ archiveSizeBytes = _json["archiveSizeBytes"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("deprecated")) {
+ deprecated = new DeprecationStatus.fromJson(_json["deprecated"]);
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("diskSizeGb")) {
+ diskSizeGb = _json["diskSizeGb"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("licenses")) {
+ licenses = _json["licenses"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("rawDisk")) {
+ rawDisk = new ImageRawDisk.fromJson(_json["rawDisk"]);
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("sourceDisk")) {
+ sourceDisk = _json["sourceDisk"];
+ }
+ if (_json.containsKey("sourceDiskId")) {
+ sourceDiskId = _json["sourceDiskId"];
+ }
+ if (_json.containsKey("sourceType")) {
+ sourceType = _json["sourceType"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (archiveSizeBytes != null) {
+ _json["archiveSizeBytes"] = archiveSizeBytes;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (deprecated != null) {
+ _json["deprecated"] = (deprecated).toJson();
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (diskSizeGb != null) {
+ _json["diskSizeGb"] = diskSizeGb;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (licenses != null) {
+ _json["licenses"] = licenses;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (rawDisk != null) {
+ _json["rawDisk"] = (rawDisk).toJson();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (sourceDisk != null) {
+ _json["sourceDisk"] = sourceDisk;
+ }
+ if (sourceDiskId != null) {
+ _json["sourceDiskId"] = sourceDiskId;
+ }
+ if (sourceType != null) {
+ _json["sourceType"] = sourceType;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of disk image resources. */
+class ImageList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The disk image resources. */
+ core.List<Image> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ ImageList();
+
+ ImageList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Image.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** An instance resource. */
+class Instance {
+ /**
+ * Allows this instance to send packets with source IP addresses other than
+ * its own and receive packets with destination IP addresses other than its
+ * own. If this instance will be used as an IP gateway or it will be set as
+ * the next-hop in a Route resource, say true. If unsure, leave this set to
+ * false.
+ */
+ core.bool canIpForward;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Array of disks associated with this instance. Persistent disks must be
+ * created before you can assign them.
+ */
+ core.List<AttachedDisk> disks;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * URL of the machine type resource describing which machine type to use to
+ * host the instance; provided by the client when the instance is created.
+ */
+ core.String machineType;
+
+ /**
+ * Metadata key/value pairs assigned to this instance. Consists of custom
+ * metadata or predefined keys; see Instance documentation for more
+ * information.
+ */
+ Metadata metadata;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * Array of configurations for this interface. This specifies how this
+ * interface is configured to interact with other network services, such as
+ * connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access
+ * config supported. If there are no accessConfigs specified, then this
+ * instance will have no external internet access.
+ */
+ core.List<NetworkInterface> networkInterfaces;
+
+ /** Scheduling options for this instance. */
+ Scheduling scheduling;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+ /**
+ * A list of service accounts each with specified scopes, for which access
+ * tokens are to be made available to the instance through metadata queries.
+ */
+ core.List<ServiceAccount> serviceAccounts;
+
+ /**
+ * Instance status. One of the following values: "PROVISIONING", "STAGING",
+ * "RUNNING", "STOPPING", "STOPPED", "TERMINATED" (output only).
+ * Possible string values are:
+ * - "PROVISIONING"
+ * - "RUNNING"
+ * - "STAGING"
+ * - "STOPPED"
+ * - "STOPPING"
+ * - "TERMINATED"
+ */
+ core.String status;
+
+ /** An optional, human-readable explanation of the status (output only). */
+ core.String statusMessage;
+
+ /**
+ * A list of tags to be applied to this instance. Used to identify valid
+ * sources or targets for network firewalls. Provided by the client on
+ * instance creation. The tags can be later modified by the setTags method.
+ * Each tag within the list must comply with RFC1035.
+ */
+ Tags tags;
+
+ /** URL of the zone where the instance resides (output only). */
+ core.String zone;
+
+
+ Instance();
+
+ Instance.fromJson(core.Map _json) {
+ if (_json.containsKey("canIpForward")) {
+ canIpForward = _json["canIpForward"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("disks")) {
+ disks = _json["disks"].map((value) => new AttachedDisk.fromJson(value)).toList();
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("machineType")) {
+ machineType = _json["machineType"];
+ }
+ if (_json.containsKey("metadata")) {
+ metadata = new Metadata.fromJson(_json["metadata"]);
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("networkInterfaces")) {
+ networkInterfaces = _json["networkInterfaces"].map((value) => new NetworkInterface.fromJson(value)).toList();
+ }
+ if (_json.containsKey("scheduling")) {
+ scheduling = new Scheduling.fromJson(_json["scheduling"]);
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("serviceAccounts")) {
+ serviceAccounts = _json["serviceAccounts"].map((value) => new ServiceAccount.fromJson(value)).toList();
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("statusMessage")) {
+ statusMessage = _json["statusMessage"];
+ }
+ if (_json.containsKey("tags")) {
+ tags = new Tags.fromJson(_json["tags"]);
+ }
+ if (_json.containsKey("zone")) {
+ zone = _json["zone"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (canIpForward != null) {
+ _json["canIpForward"] = canIpForward;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (disks != null) {
+ _json["disks"] = disks.map((value) => (value).toJson()).toList();
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (machineType != null) {
+ _json["machineType"] = machineType;
+ }
+ if (metadata != null) {
+ _json["metadata"] = (metadata).toJson();
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (networkInterfaces != null) {
+ _json["networkInterfaces"] = networkInterfaces.map((value) => (value).toJson()).toList();
+ }
+ if (scheduling != null) {
+ _json["scheduling"] = (scheduling).toJson();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (serviceAccounts != null) {
+ _json["serviceAccounts"] = serviceAccounts.map((value) => (value).toJson()).toList();
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (statusMessage != null) {
+ _json["statusMessage"] = statusMessage;
+ }
+ if (tags != null) {
+ _json["tags"] = (tags).toJson();
+ }
+ if (zone != null) {
+ _json["zone"] = zone;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class InstanceAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped instance lists. */
+ core.Map<core.String, InstancesScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ InstanceAggregatedList();
+
+ InstanceAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new InstancesScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of instance resources. */
+class InstanceList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A list of instance resources. */
+ core.List<Instance> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ InstanceList();
+
+ InstanceList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Instance.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class InstanceReference {
+ /** Not documented yet. */
+ core.String instance;
+
+
+ InstanceReference();
+
+ InstanceReference.fromJson(core.Map _json) {
+ if (_json.containsKey("instance")) {
+ instance = _json["instance"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (instance != null) {
+ _json["instance"] = instance;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class InstancesScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ InstancesScopedListWarningData();
+
+ InstancesScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of instances when the list is
+ * empty.
+ */
+class InstancesScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<InstancesScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ InstancesScopedListWarning();
+
+ InstancesScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new InstancesScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class InstancesScopedList {
+ /** List of instances contained in this scope. */
+ core.List<Instance> instances;
+
+ /**
+ * Informational warning which replaces the list of instances when the list is
+ * empty.
+ */
+ InstancesScopedListWarning warning;
+
+
+ InstancesScopedList();
+
+ InstancesScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("instances")) {
+ instances = _json["instances"].map((value) => new Instance.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new InstancesScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (instances != null) {
+ _json["instances"] = instances.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** A license resource. */
+class License {
+ /**
+ * If true, the customer will be charged license fee for running software that
+ * contains this license on an instance.
+ */
+ core.bool chargesUseFee;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+
+ License();
+
+ License.fromJson(core.Map _json) {
+ if (_json.containsKey("chargesUseFee")) {
+ chargesUseFee = _json["chargesUseFee"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (chargesUseFee != null) {
+ _json["chargesUseFee"] = chargesUseFee;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class MachineTypeScratchDisks {
+ /** Size of the scratch disk, defined in GB. */
+ core.int diskGb;
+
+
+ MachineTypeScratchDisks();
+
+ MachineTypeScratchDisks.fromJson(core.Map _json) {
+ if (_json.containsKey("diskGb")) {
+ diskGb = _json["diskGb"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (diskGb != null) {
+ _json["diskGb"] = diskGb;
+ }
+ return _json;
+ }
+}
+
+
+/** A machine type resource. */
+class MachineType {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** The deprecation status associated with this machine type. */
+ DeprecationStatus deprecated;
+
+ /** An optional textual description of the resource. */
+ core.String description;
+
+ /** Count of CPUs exposed to the instance. */
+ core.int guestCpus;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Space allotted for the image, defined in GB. */
+ core.int imageSpaceGb;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Maximum persistent disks allowed. */
+ core.int maximumPersistentDisks;
+
+ /** Maximum total persistent disks size (GB) allowed. */
+ core.String maximumPersistentDisksSizeGb;
+
+ /** Physical memory assigned to the instance, defined in MB. */
+ core.int memoryMb;
+
+ /** Name of the resource. */
+ core.String name;
+
+ /** List of extended scratch disks assigned to the instance. */
+ core.List<MachineTypeScratchDisks> scratchDisks;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /** Url of the zone where the machine type resides (output only). */
+ core.String zone;
+
+
+ MachineType();
+
+ MachineType.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("deprecated")) {
+ deprecated = new DeprecationStatus.fromJson(_json["deprecated"]);
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("guestCpus")) {
+ guestCpus = _json["guestCpus"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("imageSpaceGb")) {
+ imageSpaceGb = _json["imageSpaceGb"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("maximumPersistentDisks")) {
+ maximumPersistentDisks = _json["maximumPersistentDisks"];
+ }
+ if (_json.containsKey("maximumPersistentDisksSizeGb")) {
+ maximumPersistentDisksSizeGb = _json["maximumPersistentDisksSizeGb"];
+ }
+ if (_json.containsKey("memoryMb")) {
+ memoryMb = _json["memoryMb"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("scratchDisks")) {
+ scratchDisks = _json["scratchDisks"].map((value) => new MachineTypeScratchDisks.fromJson(value)).toList();
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("zone")) {
+ zone = _json["zone"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (deprecated != null) {
+ _json["deprecated"] = (deprecated).toJson();
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (guestCpus != null) {
+ _json["guestCpus"] = guestCpus;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (imageSpaceGb != null) {
+ _json["imageSpaceGb"] = imageSpaceGb;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (maximumPersistentDisks != null) {
+ _json["maximumPersistentDisks"] = maximumPersistentDisks;
+ }
+ if (maximumPersistentDisksSizeGb != null) {
+ _json["maximumPersistentDisksSizeGb"] = maximumPersistentDisksSizeGb;
+ }
+ if (memoryMb != null) {
+ _json["memoryMb"] = memoryMb;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (scratchDisks != null) {
+ _json["scratchDisks"] = scratchDisks.map((value) => (value).toJson()).toList();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (zone != null) {
+ _json["zone"] = zone;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class MachineTypeAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped machine type lists. */
+ core.Map<core.String, MachineTypesScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ MachineTypeAggregatedList();
+
+ MachineTypeAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new MachineTypesScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of machine type resources. */
+class MachineTypeList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The machine type resources. */
+ core.List<MachineType> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ MachineTypeList();
+
+ MachineTypeList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new MachineType.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class MachineTypesScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ MachineTypesScopedListWarningData();
+
+ MachineTypesScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of machine types when the list
+ * is empty.
+ */
+class MachineTypesScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<MachineTypesScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ MachineTypesScopedListWarning();
+
+ MachineTypesScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new MachineTypesScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class MachineTypesScopedList {
+ /** List of machine types contained in this scope. */
+ core.List<MachineType> machineTypes;
+
+ /**
+ * Informational warning which replaces the list of machine types when the
+ * list is empty.
+ */
+ MachineTypesScopedListWarning warning;
+
+
+ MachineTypesScopedList();
+
+ MachineTypesScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("machineTypes")) {
+ machineTypes = _json["machineTypes"].map((value) => new MachineType.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new MachineTypesScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (machineTypes != null) {
+ _json["machineTypes"] = machineTypes.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class MetadataItems {
+ /**
+ * Key for the metadata entry. Keys must conform to the following regexp:
+ * [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as
+ * part of a URL in the metadata server. Additionally, to avoid ambiguity,
+ * keys must not conflict with any other metadata keys for the project.
+ */
+ core.String key;
+
+ /**
+ * Value for the metadata entry. These are free-form strings, and only have
+ * meaning as interpreted by the image running in the instance. The only
+ * restriction placed on values is that their size must be less than or equal
+ * to 32768 bytes.
+ */
+ core.String value;
+
+
+ MetadataItems();
+
+ MetadataItems.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/** A metadata key/value entry. */
+class Metadata {
+ /**
+ * Fingerprint of this resource. A hash of the metadata's contents. This field
+ * is used for optimistic locking. An up-to-date metadata fingerprint must be
+ * provided in order to modify metadata.
+ */
+ core.String fingerprint;
+
+ core.List<core.int> get fingerprintAsBytes {
+ return crypto.CryptoUtils.base64StringToBytes(fingerprint);
+ }
+
+ void set fingerprintAsBytes(core.List<core.int> _bytes) {
+ fingerprint = crypto.CryptoUtils.bytesToBase64(_bytes, urlSafe: true);
+ }
+
+ /**
+ * Array of key/value pairs. The total size of all keys and values must be
+ * less than 512 KB.
+ */
+ core.List<MetadataItems> items;
+
+ /** Type of the resource. */
+ core.String kind;
+
+
+ Metadata();
+
+ Metadata.fromJson(core.Map _json) {
+ if (_json.containsKey("fingerprint")) {
+ fingerprint = _json["fingerprint"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new MetadataItems.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (fingerprint != null) {
+ _json["fingerprint"] = fingerprint;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/** A network resource. */
+class Network {
+ /**
+ * Required; The range of internal addresses that are legal on this network.
+ * This range is a CIDR specification, for example: 192.168.0.0/16. Provided
+ * by the client when the network is created.
+ */
+ core.String IPv4Range;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * An optional address that is used for default routing to other networks.
+ * This must be within the range specified by IPv4Range, and is typically the
+ * first usable address in that range. If not specified, the default value is
+ * the first usable address in IPv4Range.
+ */
+ core.String gatewayIPv4;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+
+ Network();
+
+ Network.fromJson(core.Map _json) {
+ if (_json.containsKey("IPv4Range")) {
+ IPv4Range = _json["IPv4Range"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("gatewayIPv4")) {
+ gatewayIPv4 = _json["gatewayIPv4"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (IPv4Range != null) {
+ _json["IPv4Range"] = IPv4Range;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (gatewayIPv4 != null) {
+ _json["gatewayIPv4"] = gatewayIPv4;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** A network interface resource attached to an instance. */
+class NetworkInterface {
+ /**
+ * Array of configurations for this interface. This specifies how this
+ * interface is configured to interact with other network services, such as
+ * connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access
+ * config supported. If there are no accessConfigs specified, then this
+ * instance will have no external internet access.
+ */
+ core.List<AccessConfig> accessConfigs;
+
+ /**
+ * Name of the network interface, determined by the server; for network
+ * devices, these are e.g. eth0, eth1, etc. (output only).
+ */
+ core.String name;
+
+ /** URL of the network resource attached to this interface. */
+ core.String network;
+
+ /**
+ * An optional IPV4 internal network address assigned to the instance for this
+ * network interface (output only).
+ */
+ core.String networkIP;
+
+
+ NetworkInterface();
+
+ NetworkInterface.fromJson(core.Map _json) {
+ if (_json.containsKey("accessConfigs")) {
+ accessConfigs = _json["accessConfigs"].map((value) => new AccessConfig.fromJson(value)).toList();
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("network")) {
+ network = _json["network"];
+ }
+ if (_json.containsKey("networkIP")) {
+ networkIP = _json["networkIP"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (accessConfigs != null) {
+ _json["accessConfigs"] = accessConfigs.map((value) => (value).toJson()).toList();
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (network != null) {
+ _json["network"] = network;
+ }
+ if (networkIP != null) {
+ _json["networkIP"] = networkIP;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of network resources. */
+class NetworkList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The network resources. */
+ core.List<Network> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ NetworkList();
+
+ NetworkList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Network.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class OperationErrorErrors {
+ /** The error type identifier for this error. */
+ core.String code;
+
+ /**
+ * Indicates the field in the request which caused the error. This property is
+ * optional.
+ */
+ core.String location;
+
+ /** An optional, human-readable error message. */
+ core.String message;
+
+
+ OperationErrorErrors();
+
+ OperationErrorErrors.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("location")) {
+ location = _json["location"];
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (location != null) {
+ _json["location"] = location;
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * If errors occurred during processing of this operation, this field will be
+ * populated (output only).
+ */
+class OperationError {
+ /** The array of errors encountered while processing this operation. */
+ core.List<OperationErrorErrors> errors;
+
+
+ OperationError();
+
+ OperationError.fromJson(core.Map _json) {
+ if (_json.containsKey("errors")) {
+ errors = _json["errors"].map((value) => new OperationErrorErrors.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (errors != null) {
+ _json["errors"] = errors.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class OperationWarningsData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ OperationWarningsData();
+
+ OperationWarningsData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class OperationWarnings {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<OperationWarningsData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ OperationWarnings();
+
+ OperationWarnings.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new OperationWarningsData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** An operation resource, used to manage asynchronous API requests. */
+class Operation {
+ /**
+ * An optional identifier specified by the client when the mutation was
+ * initiated. Must be unique for all operation resources in the project
+ * (output only).
+ */
+ core.String clientOperationId;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * The time that this operation was completed. This is in RFC 3339 format
+ * (output only).
+ */
+ core.String endTime;
+
+ /**
+ * If errors occurred during processing of this operation, this field will be
+ * populated (output only).
+ */
+ OperationError error;
+
+ /**
+ * If operation fails, the HTTP error message returned, e.g. NOT FOUND.
+ * (output only).
+ */
+ core.String httpErrorMessage;
+
+ /**
+ * If operation fails, the HTTP error status code returned, e.g. 404. (output
+ * only).
+ */
+ core.int httpErrorStatusCode;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /**
+ * The time that this operation was requested. This is in RFC 3339 format
+ * (output only).
+ */
+ core.String insertTime;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Name of the resource (output only). */
+ core.String name;
+
+ /**
+ * Type of the operation. Examples include "insert", "update", and "delete"
+ * (output only).
+ */
+ core.String operationType;
+
+ /**
+ * An optional progress indicator that ranges from 0 to 100. There is no
+ * requirement that this be linear or support any granularity of operations.
+ * This should not be used to guess at when the operation will be complete.
+ * This number should be monotonically increasing as the operation progresses
+ * (output only).
+ */
+ core.int progress;
+
+ /** URL of the region where the operation resides (output only). */
+ core.String region;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The time that this operation was started by the server. This is in RFC 3339
+ * format (output only).
+ */
+ core.String startTime;
+
+ /**
+ * Status of the operation. Can be one of the following: "PENDING", "RUNNING",
+ * or "DONE" (output only).
+ * Possible string values are:
+ * - "DONE"
+ * - "PENDING"
+ * - "RUNNING"
+ */
+ core.String status;
+
+ /**
+ * An optional textual description of the current status of the operation
+ * (output only).
+ */
+ core.String statusMessage;
+
+ /**
+ * Unique target id which identifies a particular incarnation of the target
+ * (output only).
+ */
+ core.String targetId;
+
+ /** URL of the resource the operation is mutating (output only). */
+ core.String targetLink;
+
+ /**
+ * User who requested the operation, for example "user@example.com" (output
+ * only).
+ */
+ core.String user;
+
+ /**
+ * If warning messages generated during processing of this operation, this
+ * field will be populated (output only).
+ */
+ core.List<OperationWarnings> warnings;
+
+ /** URL of the zone where the operation resides (output only). */
+ core.String zone;
+
+
+ Operation();
+
+ Operation.fromJson(core.Map _json) {
+ if (_json.containsKey("clientOperationId")) {
+ clientOperationId = _json["clientOperationId"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("endTime")) {
+ endTime = _json["endTime"];
+ }
+ if (_json.containsKey("error")) {
+ error = new OperationError.fromJson(_json["error"]);
+ }
+ if (_json.containsKey("httpErrorMessage")) {
+ httpErrorMessage = _json["httpErrorMessage"];
+ }
+ if (_json.containsKey("httpErrorStatusCode")) {
+ httpErrorStatusCode = _json["httpErrorStatusCode"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("insertTime")) {
+ insertTime = _json["insertTime"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("operationType")) {
+ operationType = _json["operationType"];
+ }
+ if (_json.containsKey("progress")) {
+ progress = _json["progress"];
+ }
+ if (_json.containsKey("region")) {
+ region = _json["region"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("startTime")) {
+ startTime = _json["startTime"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("statusMessage")) {
+ statusMessage = _json["statusMessage"];
+ }
+ if (_json.containsKey("targetId")) {
+ targetId = _json["targetId"];
+ }
+ if (_json.containsKey("targetLink")) {
+ targetLink = _json["targetLink"];
+ }
+ if (_json.containsKey("user")) {
+ user = _json["user"];
+ }
+ if (_json.containsKey("warnings")) {
+ warnings = _json["warnings"].map((value) => new OperationWarnings.fromJson(value)).toList();
+ }
+ if (_json.containsKey("zone")) {
+ zone = _json["zone"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (clientOperationId != null) {
+ _json["clientOperationId"] = clientOperationId;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (endTime != null) {
+ _json["endTime"] = endTime;
+ }
+ if (error != null) {
+ _json["error"] = (error).toJson();
+ }
+ if (httpErrorMessage != null) {
+ _json["httpErrorMessage"] = httpErrorMessage;
+ }
+ if (httpErrorStatusCode != null) {
+ _json["httpErrorStatusCode"] = httpErrorStatusCode;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (insertTime != null) {
+ _json["insertTime"] = insertTime;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (operationType != null) {
+ _json["operationType"] = operationType;
+ }
+ if (progress != null) {
+ _json["progress"] = progress;
+ }
+ if (region != null) {
+ _json["region"] = region;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (startTime != null) {
+ _json["startTime"] = startTime;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (statusMessage != null) {
+ _json["statusMessage"] = statusMessage;
+ }
+ if (targetId != null) {
+ _json["targetId"] = targetId;
+ }
+ if (targetLink != null) {
+ _json["targetLink"] = targetLink;
+ }
+ if (user != null) {
+ _json["user"] = user;
+ }
+ if (warnings != null) {
+ _json["warnings"] = warnings.map((value) => (value).toJson()).toList();
+ }
+ if (zone != null) {
+ _json["zone"] = zone;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class OperationAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped operation lists. */
+ core.Map<core.String, OperationsScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ OperationAggregatedList();
+
+ OperationAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new OperationsScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of operation resources. */
+class OperationList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The operation resources. */
+ core.List<Operation> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ OperationList();
+
+ OperationList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Operation.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class OperationsScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ OperationsScopedListWarningData();
+
+ OperationsScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of operations when the list is
+ * empty.
+ */
+class OperationsScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<OperationsScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ OperationsScopedListWarning();
+
+ OperationsScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new OperationsScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class OperationsScopedList {
+ /** List of operations contained in this scope. */
+ core.List<Operation> operations;
+
+ /**
+ * Informational warning which replaces the list of operations when the list
+ * is empty.
+ */
+ OperationsScopedListWarning warning;
+
+
+ OperationsScopedList();
+
+ OperationsScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("operations")) {
+ operations = _json["operations"].map((value) => new Operation.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new OperationsScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (operations != null) {
+ _json["operations"] = operations.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A matcher for the path portion of the URL. The BackendService from the
+ * longest-matched rule will serve the URL. If no rule was matched, the
+ * default_service will be used.
+ */
+class PathMatcher {
+ /**
+ * The URL to the BackendService resource. This will be used if none of the
+ * 'pathRules' defined by this PathMatcher is met by the URL's path portion.
+ */
+ core.String defaultService;
+
+ /** Not documented yet. */
+ core.String description;
+
+ /** The name to which this PathMatcher is referred by the HostRule. */
+ core.String name;
+
+ /** The list of path rules. */
+ core.List<PathRule> pathRules;
+
+
+ PathMatcher();
+
+ PathMatcher.fromJson(core.Map _json) {
+ if (_json.containsKey("defaultService")) {
+ defaultService = _json["defaultService"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("pathRules")) {
+ pathRules = _json["pathRules"].map((value) => new PathRule.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (defaultService != null) {
+ _json["defaultService"] = defaultService;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (pathRules != null) {
+ _json["pathRules"] = pathRules.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A path-matching rule for a URL. If matched, will use the specified
+ * BackendService to handle the traffic arriving at this URL.
+ */
+class PathRule {
+ /**
+ * The list of path patterns to match. Each must start with / and the only
+ * place a * is allowed is at the end following a /. The string fed to the
+ * path matcher does not include any text after the first ? or #, and those
+ * chars are not allowed here.
+ */
+ core.List<core.String> paths;
+
+ /** The URL of the BackendService resource if this rule is matched. */
+ core.String service;
+
+
+ PathRule();
+
+ PathRule.fromJson(core.Map _json) {
+ if (_json.containsKey("paths")) {
+ paths = _json["paths"];
+ }
+ if (_json.containsKey("service")) {
+ service = _json["service"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (paths != null) {
+ _json["paths"] = paths;
+ }
+ if (service != null) {
+ _json["service"] = service;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A project resource. Projects can be created only in the APIs Console. Unless
+ * marked otherwise, values can only be modified in the console.
+ */
+class Project {
+ /**
+ * Metadata key/value pairs available to all instances contained in this
+ * project.
+ */
+ Metadata commonInstanceMetadata;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** An optional textual description of the resource. */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Name of the resource. */
+ core.String name;
+
+ /** Quotas assigned to this project. */
+ core.List<Quota> quotas;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The location in Cloud Storage and naming method of the daily usage report.
+ */
+ UsageExportLocation usageExportLocation;
+
+
+ Project();
+
+ Project.fromJson(core.Map _json) {
+ if (_json.containsKey("commonInstanceMetadata")) {
+ commonInstanceMetadata = new Metadata.fromJson(_json["commonInstanceMetadata"]);
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("quotas")) {
+ quotas = _json["quotas"].map((value) => new Quota.fromJson(value)).toList();
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("usageExportLocation")) {
+ usageExportLocation = new UsageExportLocation.fromJson(_json["usageExportLocation"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (commonInstanceMetadata != null) {
+ _json["commonInstanceMetadata"] = (commonInstanceMetadata).toJson();
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (quotas != null) {
+ _json["quotas"] = quotas.map((value) => (value).toJson()).toList();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (usageExportLocation != null) {
+ _json["usageExportLocation"] = (usageExportLocation).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** A quotas entry. */
+class Quota {
+ /** Quota limit for this metric. */
+ core.double limit;
+
+ /**
+ * Name of the quota metric.
+ * Possible string values are:
+ * - "BACKEND_SERVICES"
+ * - "CPUS"
+ * - "DISKS"
+ * - "DISKS_TOTAL_GB"
+ * - "EPHEMERAL_ADDRESSES"
+ * - "FIREWALLS"
+ * - "FORWARDING_RULES"
+ * - "HEALTH_CHECKS"
+ * - "IMAGES"
+ * - "IMAGES_TOTAL_GB"
+ * - "INSTANCES"
+ * - "IN_USE_ADDRESSES"
+ * - "KERNELS"
+ * - "KERNELS_TOTAL_GB"
+ * - "NETWORKS"
+ * - "OPERATIONS"
+ * - "ROUTES"
+ * - "SNAPSHOTS"
+ * - "SSD_TOTAL_GB"
+ * - "STATIC_ADDRESSES"
+ * - "TARGET_HTTP_PROXIES"
+ * - "TARGET_INSTANCES"
+ * - "TARGET_POOLS"
+ * - "URL_MAPS"
+ */
+ core.String metric;
+
+ /** Current usage of this metric. */
+ core.double usage;
+
+
+ Quota();
+
+ Quota.fromJson(core.Map _json) {
+ if (_json.containsKey("limit")) {
+ limit = _json["limit"];
+ }
+ if (_json.containsKey("metric")) {
+ metric = _json["metric"];
+ }
+ if (_json.containsKey("usage")) {
+ usage = _json["usage"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (limit != null) {
+ _json["limit"] = limit;
+ }
+ if (metric != null) {
+ _json["metric"] = metric;
+ }
+ if (usage != null) {
+ _json["usage"] = usage;
+ }
+ return _json;
+ }
+}
+
+
+/** Region resource. */
+class Region {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** The deprecation status associated with this region. */
+ DeprecationStatus deprecated;
+
+ /** Textual description of the resource. */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Name of the resource. */
+ core.String name;
+
+ /** Quotas assigned to this region. */
+ core.List<Quota> quotas;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * Status of the region, "UP" or "DOWN".
+ * Possible string values are:
+ * - "DOWN"
+ * - "UP"
+ */
+ core.String status;
+
+ /** A list of zones homed in this region, in the form of resource URLs. */
+ core.List<core.String> zones;
+
+
+ Region();
+
+ Region.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("deprecated")) {
+ deprecated = new DeprecationStatus.fromJson(_json["deprecated"]);
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("quotas")) {
+ quotas = _json["quotas"].map((value) => new Quota.fromJson(value)).toList();
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("zones")) {
+ zones = _json["zones"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (deprecated != null) {
+ _json["deprecated"] = (deprecated).toJson();
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (quotas != null) {
+ _json["quotas"] = quotas.map((value) => (value).toJson()).toList();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (zones != null) {
+ _json["zones"] = zones;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of region resources. */
+class RegionList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The region resources. */
+ core.List<Region> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ RegionList();
+
+ RegionList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Region.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class ResourceGroupReference {
+ /**
+ * A URI referencing one of the resource views listed in the backend service.
+ */
+ core.String group;
+
+
+ ResourceGroupReference();
+
+ ResourceGroupReference.fromJson(core.Map _json) {
+ if (_json.containsKey("group")) {
+ group = _json["group"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (group != null) {
+ _json["group"] = group;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class RouteWarningsData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ RouteWarningsData();
+
+ RouteWarningsData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class RouteWarnings {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<RouteWarningsData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ RouteWarnings();
+
+ RouteWarnings.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new RouteWarningsData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * The route resource. A Route is a rule that specifies how certain packets
+ * should be handled by the virtual network. Routes are associated with VMs by
+ * tag and the set of Routes for a particular VM is called its routing table.
+ * For each packet leaving a VM, the system searches that VM's routing table for
+ * a single best matching Route. Routes match packets by destination IP address,
+ * preferring smaller or more specific ranges over larger ones. If there is a
+ * tie, the system selects the Route with the smallest priority value. If there
+ * is still a tie, it uses the layer three and four packet headers to select
+ * just one of the remaining matching Routes. The packet is then forwarded as
+ * specified by the next_hop field of the winning Route -- either to another VM
+ * destination, a VM gateway or a GCE operated gateway. Packets that do not
+ * match any Route in the sending VM's routing table will be dropped.
+ */
+class Route {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /** Which packets does this route apply to? */
+ core.String destRange;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * URL of the network to which this route is applied; provided by the client
+ * when the route is created.
+ */
+ core.String network;
+
+ /** The URL to a gateway that should handle matching packets. */
+ core.String nextHopGateway;
+
+ /** The URL to an instance that should handle matching packets. */
+ core.String nextHopInstance;
+
+ /**
+ * The network IP address of an instance that should handle matching packets.
+ */
+ core.String nextHopIp;
+
+ /** The URL of the local network if it should handle matching packets. */
+ core.String nextHopNetwork;
+
+ /**
+ * Breaks ties between Routes of equal specificity. Routes with smaller values
+ * win when tied with routes with larger values.
+ */
+ core.int priority;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /** A list of instance tags to which this route applies. */
+ core.List<core.String> tags;
+
+ /**
+ * If potential misconfigurations are detected for this route, this field will
+ * be populated with warning messages.
+ */
+ core.List<RouteWarnings> warnings;
+
+
+ Route();
+
+ Route.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("destRange")) {
+ destRange = _json["destRange"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("network")) {
+ network = _json["network"];
+ }
+ if (_json.containsKey("nextHopGateway")) {
+ nextHopGateway = _json["nextHopGateway"];
+ }
+ if (_json.containsKey("nextHopInstance")) {
+ nextHopInstance = _json["nextHopInstance"];
+ }
+ if (_json.containsKey("nextHopIp")) {
+ nextHopIp = _json["nextHopIp"];
+ }
+ if (_json.containsKey("nextHopNetwork")) {
+ nextHopNetwork = _json["nextHopNetwork"];
+ }
+ if (_json.containsKey("priority")) {
+ priority = _json["priority"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("tags")) {
+ tags = _json["tags"];
+ }
+ if (_json.containsKey("warnings")) {
+ warnings = _json["warnings"].map((value) => new RouteWarnings.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (destRange != null) {
+ _json["destRange"] = destRange;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (network != null) {
+ _json["network"] = network;
+ }
+ if (nextHopGateway != null) {
+ _json["nextHopGateway"] = nextHopGateway;
+ }
+ if (nextHopInstance != null) {
+ _json["nextHopInstance"] = nextHopInstance;
+ }
+ if (nextHopIp != null) {
+ _json["nextHopIp"] = nextHopIp;
+ }
+ if (nextHopNetwork != null) {
+ _json["nextHopNetwork"] = nextHopNetwork;
+ }
+ if (priority != null) {
+ _json["priority"] = priority;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (tags != null) {
+ _json["tags"] = tags;
+ }
+ if (warnings != null) {
+ _json["warnings"] = warnings.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of route resources. */
+class RouteList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The route resources. */
+ core.List<Route> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ RouteList();
+
+ RouteList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Route.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Scheduling options for an Instance. */
+class Scheduling {
+ /**
+ * Whether the Instance should be automatically restarted whenever it is
+ * terminated by Compute Engine (not terminated by user).
+ */
+ core.bool automaticRestart;
+
+ /**
+ * How the instance should behave when the host machine undergoes maintenance
+ * that may temporarily impact instance performance.
+ * Possible string values are:
+ * - "MIGRATE"
+ * - "TERMINATE"
+ */
+ core.String onHostMaintenance;
+
+
+ Scheduling();
+
+ Scheduling.fromJson(core.Map _json) {
+ if (_json.containsKey("automaticRestart")) {
+ automaticRestart = _json["automaticRestart"];
+ }
+ if (_json.containsKey("onHostMaintenance")) {
+ onHostMaintenance = _json["onHostMaintenance"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (automaticRestart != null) {
+ _json["automaticRestart"] = automaticRestart;
+ }
+ if (onHostMaintenance != null) {
+ _json["onHostMaintenance"] = onHostMaintenance;
+ }
+ return _json;
+ }
+}
+
+
+/** An instance serial console output. */
+class SerialPortOutput {
+ /** The contents of the console output. */
+ core.String contents;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+
+ SerialPortOutput();
+
+ SerialPortOutput.fromJson(core.Map _json) {
+ if (_json.containsKey("contents")) {
+ contents = _json["contents"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (contents != null) {
+ _json["contents"] = contents;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** A service account. */
+class ServiceAccount {
+ /** Email address of the service account. */
+ core.String email;
+
+ /** The list of scopes to be made available for this service account. */
+ core.List<core.String> scopes;
+
+
+ ServiceAccount();
+
+ ServiceAccount.fromJson(core.Map _json) {
+ if (_json.containsKey("email")) {
+ email = _json["email"];
+ }
+ if (_json.containsKey("scopes")) {
+ scopes = _json["scopes"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (email != null) {
+ _json["email"] = email;
+ }
+ if (scopes != null) {
+ _json["scopes"] = scopes;
+ }
+ return _json;
+ }
+}
+
+
+/** A persistent disk snapshot resource. */
+class Snapshot {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /** Size of the persistent disk snapshot, specified in GB (output only). */
+ core.String diskSizeGb;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /** Public visible licenses. */
+ core.List<core.String> licenses;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The source disk used to create this snapshot. Once the source disk has been
+ * deleted from the system, this field will be cleared, and will not be set
+ * even if a disk with the same name has been re-created (output only).
+ */
+ core.String sourceDisk;
+
+ /**
+ * The 'id' value of the disk used to create this snapshot. This value may be
+ * used to determine whether the snapshot was taken from the current or a
+ * previous instance of a given disk name.
+ */
+ core.String sourceDiskId;
+
+ /**
+ * The status of the persistent disk snapshot (output only).
+ * Possible string values are:
+ * - "CREATING"
+ * - "DELETING"
+ * - "FAILED"
+ * - "READY"
+ * - "UPLOADING"
+ */
+ core.String status;
+
+ /**
+ * A size of the the storage used by the snapshot. As snapshots share storage
+ * this number is expected to change with snapshot creation/deletion.
+ */
+ core.String storageBytes;
+
+ /**
+ * An indicator whether storageBytes is in a stable state, or it is being
+ * adjusted as a result of shared storage reallocation.
+ * Possible string values are:
+ * - "UPDATING"
+ * - "UP_TO_DATE"
+ */
+ core.String storageBytesStatus;
+
+
+ Snapshot();
+
+ Snapshot.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("diskSizeGb")) {
+ diskSizeGb = _json["diskSizeGb"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("licenses")) {
+ licenses = _json["licenses"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("sourceDisk")) {
+ sourceDisk = _json["sourceDisk"];
+ }
+ if (_json.containsKey("sourceDiskId")) {
+ sourceDiskId = _json["sourceDiskId"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("storageBytes")) {
+ storageBytes = _json["storageBytes"];
+ }
+ if (_json.containsKey("storageBytesStatus")) {
+ storageBytesStatus = _json["storageBytesStatus"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (diskSizeGb != null) {
+ _json["diskSizeGb"] = diskSizeGb;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (licenses != null) {
+ _json["licenses"] = licenses;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (sourceDisk != null) {
+ _json["sourceDisk"] = sourceDisk;
+ }
+ if (sourceDiskId != null) {
+ _json["sourceDiskId"] = sourceDiskId;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (storageBytes != null) {
+ _json["storageBytes"] = storageBytes;
+ }
+ if (storageBytesStatus != null) {
+ _json["storageBytesStatus"] = storageBytesStatus;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of persistent disk snapshot resources. */
+class SnapshotList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The persistent snapshot resources. */
+ core.List<Snapshot> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ SnapshotList();
+
+ SnapshotList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Snapshot.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** A set of instance tags. */
+class Tags {
+ /**
+ * Fingerprint of this resource. A hash of the tags stored in this object.
+ * This field is used optimistic locking. An up-to-date tags fingerprint must
+ * be provided in order to modify tags.
+ */
+ core.String fingerprint;
+
+ core.List<core.int> get fingerprintAsBytes {
+ return crypto.CryptoUtils.base64StringToBytes(fingerprint);
+ }
+
+ void set fingerprintAsBytes(core.List<core.int> _bytes) {
+ fingerprint = crypto.CryptoUtils.bytesToBase64(_bytes, urlSafe: true);
+ }
+
+ /**
+ * An array of tags. Each tag must be 1-63 characters long, and comply with
+ * RFC1035.
+ */
+ core.List<core.String> items;
+
+
+ Tags();
+
+ Tags.fromJson(core.Map _json) {
+ if (_json.containsKey("fingerprint")) {
+ fingerprint = _json["fingerprint"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (fingerprint != null) {
+ _json["fingerprint"] = fingerprint;
+ }
+ if (items != null) {
+ _json["items"] = items;
+ }
+ return _json;
+ }
+}
+
+
+/** A TargetHttpProxy resource. This resource defines an HTTP proxy. */
+class TargetHttpProxy {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * URL to the UrlMap resource that defines the mapping from URL to the
+ * BackendService.
+ */
+ core.String urlMap;
+
+
+ TargetHttpProxy();
+
+ TargetHttpProxy.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("urlMap")) {
+ urlMap = _json["urlMap"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (urlMap != null) {
+ _json["urlMap"] = urlMap;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of TargetHttpProxy resources. */
+class TargetHttpProxyList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The TargetHttpProxy resources. */
+ core.List<TargetHttpProxy> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ TargetHttpProxyList();
+
+ TargetHttpProxyList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new TargetHttpProxy.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A TargetInstance resource. This resource defines an endpoint VM that
+ * terminates traffic of certain protocols.
+ */
+class TargetInstance {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The URL to the instance that terminates the relevant traffic. */
+ core.String instance;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /**
+ * NAT option controlling how IPs are NAT'ed to the VM. Currently only NO_NAT
+ * (default value) is supported.
+ * Possible string values are:
+ * - "NO_NAT"
+ */
+ core.String natPolicy;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /** URL of the zone where the target instance resides (output only). */
+ core.String zone;
+
+
+ TargetInstance();
+
+ TargetInstance.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("instance")) {
+ instance = _json["instance"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("natPolicy")) {
+ natPolicy = _json["natPolicy"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("zone")) {
+ zone = _json["zone"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (instance != null) {
+ _json["instance"] = instance;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (natPolicy != null) {
+ _json["natPolicy"] = natPolicy;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (zone != null) {
+ _json["zone"] = zone;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetInstanceAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped target instance lists. */
+ core.Map<core.String, TargetInstancesScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ TargetInstanceAggregatedList();
+
+ TargetInstanceAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new TargetInstancesScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of TargetInstance resources. */
+class TargetInstanceList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The TargetInstance resources. */
+ core.List<TargetInstance> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ TargetInstanceList();
+
+ TargetInstanceList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new TargetInstance.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetInstancesScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ TargetInstancesScopedListWarningData();
+
+ TargetInstancesScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of addresses when the list is
+ * empty.
+ */
+class TargetInstancesScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<TargetInstancesScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ TargetInstancesScopedListWarning();
+
+ TargetInstancesScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new TargetInstancesScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetInstancesScopedList {
+ /** List of target instances contained in this scope. */
+ core.List<TargetInstance> targetInstances;
+
+ /**
+ * Informational warning which replaces the list of addresses when the list is
+ * empty.
+ */
+ TargetInstancesScopedListWarning warning;
+
+
+ TargetInstancesScopedList();
+
+ TargetInstancesScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("targetInstances")) {
+ targetInstances = _json["targetInstances"].map((value) => new TargetInstance.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new TargetInstancesScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (targetInstances != null) {
+ _json["targetInstances"] = targetInstances.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A TargetPool resource. This resource defines a pool of VMs, associated
+ * HttpHealthCheck resources, and the fallback TargetPool.
+ */
+class TargetPool {
+ /**
+ * This field is applicable only when the containing target pool is serving a
+ * forwarding rule as the primary pool, and its 'failoverRatio' field is
+ * properly set to a value between [0, 1].
+ *
+ * 'backupPool' and 'failoverRatio' together define the fallback behavior of
+ * the primary target pool: if the ratio of the healthy VMs in the primary
+ * pool is at or below 'failoverRatio', traffic arriving at the load-balanced
+ * IP will be directed to the backup pool.
+ *
+ * In case where 'failoverRatio' and 'backupPool' are not set, or all the VMs
+ * in the backup pool are unhealthy, the traffic will be directed back to the
+ * primary pool in the "force" mode, where traffic will be spread to the
+ * healthy VMs with the best effort, or to all VMs when no VM is healthy.
+ */
+ core.String backupPool;
+
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * This field is applicable only when the containing target pool is serving a
+ * forwarding rule as the primary pool (i.e., not as a backup pool to some
+ * other target pool). The value of the field must be in [0, 1].
+ *
+ * If set, 'backupPool' must also be set. They together define the fallback
+ * behavior of the primary target pool: if the ratio of the healthy VMs in the
+ * primary pool is at or below this number, traffic arriving at the
+ * load-balanced IP will be directed to the backup pool.
+ *
+ * In case where 'failoverRatio' is not set or all the VMs in the backup pool
+ * are unhealthy, the traffic will be directed back to the primary pool in the
+ * "force" mode, where traffic will be spread to the healthy VMs with the best
+ * effort, or to all VMs when no VM is healthy.
+ */
+ core.double failoverRatio;
+
+ /**
+ * A list of URLs to the HttpHealthCheck resource. A member VM in this pool is
+ * considered healthy if and only if all specified health checks pass. An
+ * empty list means all member VMs will be considered healthy at all times.
+ */
+ core.List<core.String> healthChecks;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /**
+ * A list of resource URLs to the member VMs serving this pool. They must live
+ * in zones contained in the same region as this pool.
+ */
+ core.List<core.String> instances;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** URL of the region where the target pool resides (output only). */
+ core.String region;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * Sesssion affinity option, must be one of the following values: 'NONE':
+ * Connections from the same client IP may go to any VM in the pool;
+ * 'CLIENT_IP': Connections from the same client IP will go to the same VM in
+ * the pool while that VM remains healthy. 'CLIENT_IP_PROTO': Connections from
+ * the same client IP with the same IP protocol will go to the same VM in the
+ * pool while that VM remains healthy.
+ * Possible string values are:
+ * - "CLIENT_IP"
+ * - "CLIENT_IP_PROTO"
+ * - "NONE"
+ */
+ core.String sessionAffinity;
+
+
+ TargetPool();
+
+ TargetPool.fromJson(core.Map _json) {
+ if (_json.containsKey("backupPool")) {
+ backupPool = _json["backupPool"];
+ }
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("failoverRatio")) {
+ failoverRatio = _json["failoverRatio"];
+ }
+ if (_json.containsKey("healthChecks")) {
+ healthChecks = _json["healthChecks"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("instances")) {
+ instances = _json["instances"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("region")) {
+ region = _json["region"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("sessionAffinity")) {
+ sessionAffinity = _json["sessionAffinity"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (backupPool != null) {
+ _json["backupPool"] = backupPool;
+ }
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (failoverRatio != null) {
+ _json["failoverRatio"] = failoverRatio;
+ }
+ if (healthChecks != null) {
+ _json["healthChecks"] = healthChecks;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (instances != null) {
+ _json["instances"] = instances;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (region != null) {
+ _json["region"] = region;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (sessionAffinity != null) {
+ _json["sessionAffinity"] = sessionAffinity;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolAggregatedList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** A map of scoped target pool lists. */
+ core.Map<core.String, TargetPoolsScopedList> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ TargetPoolAggregatedList();
+
+ TargetPoolAggregatedList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = common_internal.mapMap(_json["items"], (item) => new TargetPoolsScopedList.fromJson(item));
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = common_internal.mapMap(items, (item) => (item).toJson());
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolInstanceHealth {
+ /** Not documented yet. */
+ core.List<HealthStatus> healthStatus;
+
+ /** Type of resource. */
+ core.String kind;
+
+
+ TargetPoolInstanceHealth();
+
+ TargetPoolInstanceHealth.fromJson(core.Map _json) {
+ if (_json.containsKey("healthStatus")) {
+ healthStatus = _json["healthStatus"].map((value) => new HealthStatus.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (healthStatus != null) {
+ _json["healthStatus"] = healthStatus.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of TargetPool resources. */
+class TargetPoolList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The TargetPool resources. */
+ core.List<TargetPool> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ TargetPoolList();
+
+ TargetPoolList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new TargetPool.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolsAddHealthCheckRequest {
+ /** Health check URLs to be added to targetPool. */
+ core.List<HealthCheckReference> healthChecks;
+
+
+ TargetPoolsAddHealthCheckRequest();
+
+ TargetPoolsAddHealthCheckRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("healthChecks")) {
+ healthChecks = _json["healthChecks"].map((value) => new HealthCheckReference.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (healthChecks != null) {
+ _json["healthChecks"] = healthChecks.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolsAddInstanceRequest {
+ /** URLs of the instances to be added to targetPool. */
+ core.List<InstanceReference> instances;
+
+
+ TargetPoolsAddInstanceRequest();
+
+ TargetPoolsAddInstanceRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("instances")) {
+ instances = _json["instances"].map((value) => new InstanceReference.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (instances != null) {
+ _json["instances"] = instances.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolsRemoveHealthCheckRequest {
+ /** Health check URLs to be removed from targetPool. */
+ core.List<HealthCheckReference> healthChecks;
+
+
+ TargetPoolsRemoveHealthCheckRequest();
+
+ TargetPoolsRemoveHealthCheckRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("healthChecks")) {
+ healthChecks = _json["healthChecks"].map((value) => new HealthCheckReference.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (healthChecks != null) {
+ _json["healthChecks"] = healthChecks.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolsRemoveInstanceRequest {
+ /** URLs of the instances to be removed from targetPool. */
+ core.List<InstanceReference> instances;
+
+
+ TargetPoolsRemoveInstanceRequest();
+
+ TargetPoolsRemoveInstanceRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("instances")) {
+ instances = _json["instances"].map((value) => new InstanceReference.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (instances != null) {
+ _json["instances"] = instances.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolsScopedListWarningData {
+ /** A key for the warning data. */
+ core.String key;
+
+ /** A warning data value corresponding to the key. */
+ core.String value;
+
+
+ TargetPoolsScopedListWarningData();
+
+ TargetPoolsScopedListWarningData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Informational warning which replaces the list of addresses when the list is
+ * empty.
+ */
+class TargetPoolsScopedListWarning {
+ /**
+ * The warning type identifier for this warning.
+ * Possible string values are:
+ * - "DEPRECATED_RESOURCE_USED"
+ * - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
+ * - "INJECTED_KERNELS_DEPRECATED"
+ * - "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
+ * - "NEXT_HOP_CANNOT_IP_FORWARD"
+ * - "NEXT_HOP_INSTANCE_NOT_FOUND"
+ * - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
+ * - "NEXT_HOP_NOT_RUNNING"
+ * - "NO_RESULTS_ON_PAGE"
+ * - "REQUIRED_TOS_AGREEMENT"
+ * - "RESOURCE_NOT_DELETED"
+ * - "UNREACHABLE"
+ */
+ core.String code;
+
+ /** Metadata for this warning in 'key: value' format. */
+ core.List<TargetPoolsScopedListWarningData> data;
+
+ /** Optional human-readable details for this warning. */
+ core.String message;
+
+
+ TargetPoolsScopedListWarning();
+
+ TargetPoolsScopedListWarning.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("data")) {
+ data = _json["data"].map((value) => new TargetPoolsScopedListWarningData.fromJson(value)).toList();
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (data != null) {
+ _json["data"] = data.map((value) => (value).toJson()).toList();
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetPoolsScopedList {
+ /** List of target pools contained in this scope. */
+ core.List<TargetPool> targetPools;
+
+ /**
+ * Informational warning which replaces the list of addresses when the list is
+ * empty.
+ */
+ TargetPoolsScopedListWarning warning;
+
+
+ TargetPoolsScopedList();
+
+ TargetPoolsScopedList.fromJson(core.Map _json) {
+ if (_json.containsKey("targetPools")) {
+ targetPools = _json["targetPools"].map((value) => new TargetPool.fromJson(value)).toList();
+ }
+ if (_json.containsKey("warning")) {
+ warning = new TargetPoolsScopedListWarning.fromJson(_json["warning"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (targetPools != null) {
+ _json["targetPools"] = targetPools.map((value) => (value).toJson()).toList();
+ }
+ if (warning != null) {
+ _json["warning"] = (warning).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TargetReference {
+ /** Not documented yet. */
+ core.String target;
+
+
+ TargetReference();
+
+ TargetReference.fromJson(core.Map _json) {
+ if (_json.containsKey("target")) {
+ target = _json["target"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (target != null) {
+ _json["target"] = target;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class TestFailure {
+ /** Not documented yet. */
+ core.String actualService;
+
+ /** Not documented yet. */
+ core.String expectedService;
+
+ /** Not documented yet. */
+ core.String host;
+
+ /** Not documented yet. */
+ core.String path;
+
+
+ TestFailure();
+
+ TestFailure.fromJson(core.Map _json) {
+ if (_json.containsKey("actualService")) {
+ actualService = _json["actualService"];
+ }
+ if (_json.containsKey("expectedService")) {
+ expectedService = _json["expectedService"];
+ }
+ if (_json.containsKey("host")) {
+ host = _json["host"];
+ }
+ if (_json.containsKey("path")) {
+ path = _json["path"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (actualService != null) {
+ _json["actualService"] = actualService;
+ }
+ if (expectedService != null) {
+ _json["expectedService"] = expectedService;
+ }
+ if (host != null) {
+ _json["host"] = host;
+ }
+ if (path != null) {
+ _json["path"] = path;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A UrlMap resource. This resource defines the mapping from URL to the
+ * BackendService resource, based on the "longest-match" of the URL's host and
+ * path.
+ */
+class UrlMap {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** The URL of the BackendService resource if none of the hostRules match. */
+ core.String defaultService;
+
+ /**
+ * An optional textual description of the resource; provided by the client
+ * when the resource is created.
+ */
+ core.String description;
+
+ /**
+ * Fingerprint of this resource. A hash of the contents stored in this object.
+ * This field is used in optimistic locking. This field will be ignored when
+ * inserting a UrlMap. An up-to-date fingerprint must be provided in order to
+ * update the UrlMap.
+ */
+ core.String fingerprint;
+
+ core.List<core.int> get fingerprintAsBytes {
+ return crypto.CryptoUtils.base64StringToBytes(fingerprint);
+ }
+
+ void set fingerprintAsBytes(core.List<core.int> _bytes) {
+ fingerprint = crypto.CryptoUtils.bytesToBase64(_bytes, urlSafe: true);
+ }
+
+ /** The list of HostRules to use against the URL. */
+ core.List<HostRule> hostRules;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Name of the resource; provided by the client when the resource is created.
+ * The name must be 1-63 characters long, and comply with RFC1035.
+ */
+ core.String name;
+
+ /** The list of named PathMatchers to use against the URL. */
+ core.List<PathMatcher> pathMatchers;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * The list of expected URL mappings. Request to update this UrlMap will
+ * succeed only all of the test cases pass.
+ */
+ core.List<UrlMapTest> tests;
+
+
+ UrlMap();
+
+ UrlMap.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("defaultService")) {
+ defaultService = _json["defaultService"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("fingerprint")) {
+ fingerprint = _json["fingerprint"];
+ }
+ if (_json.containsKey("hostRules")) {
+ hostRules = _json["hostRules"].map((value) => new HostRule.fromJson(value)).toList();
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("pathMatchers")) {
+ pathMatchers = _json["pathMatchers"].map((value) => new PathMatcher.fromJson(value)).toList();
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("tests")) {
+ tests = _json["tests"].map((value) => new UrlMapTest.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (defaultService != null) {
+ _json["defaultService"] = defaultService;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (fingerprint != null) {
+ _json["fingerprint"] = fingerprint;
+ }
+ if (hostRules != null) {
+ _json["hostRules"] = hostRules.map((value) => (value).toJson()).toList();
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (pathMatchers != null) {
+ _json["pathMatchers"] = pathMatchers.map((value) => (value).toJson()).toList();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (tests != null) {
+ _json["tests"] = tests.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of UrlMap resources. */
+class UrlMapList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The UrlMap resources. */
+ core.List<UrlMap> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ UrlMapList();
+
+ UrlMapList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new UrlMap.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class UrlMapReference {
+ /** Not documented yet. */
+ core.String urlMap;
+
+
+ UrlMapReference();
+
+ UrlMapReference.fromJson(core.Map _json) {
+ if (_json.containsKey("urlMap")) {
+ urlMap = _json["urlMap"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (urlMap != null) {
+ _json["urlMap"] = urlMap;
+ }
+ return _json;
+ }
+}
+
+
+/** Message for the expected URL mappings. */
+class UrlMapTest {
+ /** Description of this test case. */
+ core.String description;
+
+ /** Host portion of the URL. */
+ core.String host;
+
+ /** Path portion of the URL. */
+ core.String path;
+
+ /** Expected BackendService resource the given URL should be mapped to. */
+ core.String service;
+
+
+ UrlMapTest();
+
+ UrlMapTest.fromJson(core.Map _json) {
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("host")) {
+ host = _json["host"];
+ }
+ if (_json.containsKey("path")) {
+ path = _json["path"];
+ }
+ if (_json.containsKey("service")) {
+ service = _json["service"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (host != null) {
+ _json["host"] = host;
+ }
+ if (path != null) {
+ _json["path"] = path;
+ }
+ if (service != null) {
+ _json["service"] = service;
+ }
+ return _json;
+ }
+}
+
+
+/** Message representing the validation result for a UrlMap. */
+class UrlMapValidationResult {
+ /** Not documented yet. */
+ core.List<core.String> loadErrors;
+
+ /**
+ * Whether the given UrlMap can be successfully loaded. If false, 'loadErrors'
+ * indicates the reasons.
+ */
+ core.bool loadSucceeded;
+
+ /** Not documented yet. */
+ core.List<TestFailure> testFailures;
+
+ /**
+ * If successfully loaded, this field indicates whether the test passed. If
+ * false, 'testFailures's indicate the reason of failure.
+ */
+ core.bool testPassed;
+
+
+ UrlMapValidationResult();
+
+ UrlMapValidationResult.fromJson(core.Map _json) {
+ if (_json.containsKey("loadErrors")) {
+ loadErrors = _json["loadErrors"];
+ }
+ if (_json.containsKey("loadSucceeded")) {
+ loadSucceeded = _json["loadSucceeded"];
+ }
+ if (_json.containsKey("testFailures")) {
+ testFailures = _json["testFailures"].map((value) => new TestFailure.fromJson(value)).toList();
+ }
+ if (_json.containsKey("testPassed")) {
+ testPassed = _json["testPassed"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (loadErrors != null) {
+ _json["loadErrors"] = loadErrors;
+ }
+ if (loadSucceeded != null) {
+ _json["loadSucceeded"] = loadSucceeded;
+ }
+ if (testFailures != null) {
+ _json["testFailures"] = testFailures.map((value) => (value).toJson()).toList();
+ }
+ if (testPassed != null) {
+ _json["testPassed"] = testPassed;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class UrlMapsValidateRequest {
+ /** Content of the UrlMap to be validated. */
+ UrlMap resource;
+
+
+ UrlMapsValidateRequest();
+
+ UrlMapsValidateRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("resource")) {
+ resource = new UrlMap.fromJson(_json["resource"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (resource != null) {
+ _json["resource"] = (resource).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class UrlMapsValidateResponse {
+ /** Not documented yet. */
+ UrlMapValidationResult result;
+
+
+ UrlMapsValidateResponse();
+
+ UrlMapsValidateResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("result")) {
+ result = new UrlMapValidationResult.fromJson(_json["result"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (result != null) {
+ _json["result"] = (result).toJson();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * The location in Cloud Storage and naming method of the daily usage report.
+ * Contains bucket_name and report_name prefix.
+ */
+class UsageExportLocation {
+ /**
+ * The name of an existing bucket in Cloud Storage where the usage report
+ * object is stored. The Google Service Account is granted write access to
+ * this bucket. This is simply the bucket name, with no "gs://" or
+ * "https://storage.googleapis.com/" in front of it.
+ */
+ core.String bucketName;
+
+ /**
+ * An optional prefix for the name of the usage report object stored in
+ * bucket_name. If not supplied, defaults to "usage_". The report is stored as
+ * a CSV file named _gce_.csv. where is the day of the usage according to
+ * Pacific Time. The prefix should conform to Cloud Storage object naming
+ * conventions.
+ */
+ core.String reportNamePrefix;
+
+
+ UsageExportLocation();
+
+ UsageExportLocation.fromJson(core.Map _json) {
+ if (_json.containsKey("bucketName")) {
+ bucketName = _json["bucketName"];
+ }
+ if (_json.containsKey("reportNamePrefix")) {
+ reportNamePrefix = _json["reportNamePrefix"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (bucketName != null) {
+ _json["bucketName"] = bucketName;
+ }
+ if (reportNamePrefix != null) {
+ _json["reportNamePrefix"] = reportNamePrefix;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class ZoneMaintenanceWindows {
+ /** Begin time of the maintenance window, in RFC 3339 format. */
+ core.String beginTime;
+
+ /** Textual description of the maintenance window. */
+ core.String description;
+
+ /** End time of the maintenance window, in RFC 3339 format. */
+ core.String endTime;
+
+ /** Name of the maintenance window. */
+ core.String name;
+
+
+ ZoneMaintenanceWindows();
+
+ ZoneMaintenanceWindows.fromJson(core.Map _json) {
+ if (_json.containsKey("beginTime")) {
+ beginTime = _json["beginTime"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("endTime")) {
+ endTime = _json["endTime"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (beginTime != null) {
+ _json["beginTime"] = beginTime;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (endTime != null) {
+ _json["endTime"] = endTime;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ return _json;
+ }
+}
+
+
+/** A zone resource. */
+class Zone {
+ /** Creation timestamp in RFC3339 text format (output only). */
+ core.String creationTimestamp;
+
+ /** The deprecation status associated with this zone. */
+ DeprecationStatus deprecated;
+
+ /** Textual description of the resource. */
+ core.String description;
+
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** Type of the resource. */
+ core.String kind;
+
+ /**
+ * Scheduled maintenance windows for the zone. When the zone is in a
+ * maintenance window, all resources which reside in the zone will be
+ * unavailable.
+ */
+ core.List<ZoneMaintenanceWindows> maintenanceWindows;
+
+ /** Name of the resource. */
+ core.String name;
+
+ /** Full URL reference to the region which hosts the zone (output only). */
+ core.String region;
+
+ /** Server defined URL for the resource (output only). */
+ core.String selfLink;
+
+ /**
+ * Status of the zone. "UP" or "DOWN".
+ * Possible string values are:
+ * - "DOWN"
+ * - "UP"
+ */
+ core.String status;
+
+
+ Zone();
+
+ Zone.fromJson(core.Map _json) {
+ if (_json.containsKey("creationTimestamp")) {
+ creationTimestamp = _json["creationTimestamp"];
+ }
+ if (_json.containsKey("deprecated")) {
+ deprecated = new DeprecationStatus.fromJson(_json["deprecated"]);
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("maintenanceWindows")) {
+ maintenanceWindows = _json["maintenanceWindows"].map((value) => new ZoneMaintenanceWindows.fromJson(value)).toList();
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("region")) {
+ region = _json["region"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (creationTimestamp != null) {
+ _json["creationTimestamp"] = creationTimestamp;
+ }
+ if (deprecated != null) {
+ _json["deprecated"] = (deprecated).toJson();
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (maintenanceWindows != null) {
+ _json["maintenanceWindows"] = maintenanceWindows.map((value) => (value).toJson()).toList();
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (region != null) {
+ _json["region"] = region;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ return _json;
+ }
+}
+
+
+/** Contains a list of zone resources. */
+class ZoneList {
+ /**
+ * Unique identifier for the resource; defined by the server (output only).
+ */
+ core.String id;
+
+ /** The zone resources. */
+ core.List<Zone> items;
+
+ /** Type of resource. */
+ core.String kind;
+
+ /** A token used to continue a truncated list request (output only). */
+ core.String nextPageToken;
+
+ /** Server defined URL for this resource (output only). */
+ core.String selfLink;
+
+
+ ZoneList();
+
+ ZoneList.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Zone.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ return _json;
+ }
+}
+
+

Powered by Google App Engine
This is Rietveld 408576698