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

Unified Diff: generated/googleapis_beta/lib/appengine/v1beta4.dart

Issue 1268013003: Api-roll 21: 2015-08-04 (Closed) Base URL: git@github.com:dart-lang/googleapis.git@master
Patch Set: Created 5 years, 4 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_beta/lib/appengine/v1beta4.dart
diff --git a/generated/googleapis_beta/lib/appengine/v1beta4.dart b/generated/googleapis_beta/lib/appengine/v1beta4.dart
new file mode 100644
index 0000000000000000000000000000000000000000..3e26c8fd670bb8d8da9f1ba9ffc57e9c2e1b1205
--- /dev/null
+++ b/generated/googleapis_beta/lib/appengine/v1beta4.dart
@@ -0,0 +1,2759 @@
+// This is a generated file (see the discoveryapis_generator project).
+
+library googleapis_beta.appengine.v1beta4;
+
+import 'dart:core' as core;
+import 'dart:async' as async;
+import 'dart:convert' as convert;
+
+import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
+import 'package:http/http.dart' as http;
+
+export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show
+ ApiRequestError, DetailedApiRequestError;
+
+const core.String USER_AGENT = 'dart-api-client appengine/v1beta4';
+
+/**
+ * The App Engine Admin API enables developers to provision and manage their App
+ * Engine applications.
+ */
+class AppengineApi {
+ /** View and manage your data across Google Cloud Platform services */
+ static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
+
+
+ final commons.ApiRequester _requester;
+
+ AppsResourceApi get apps => new AppsResourceApi(_requester);
+
+ AppengineApi(http.Client client, {core.String rootUrl: "https://appengine.googleapis.com/", core.String servicePath: ""}) :
+ _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT);
+}
+
+
+class AppsResourceApi {
+ final commons.ApiRequester _requester;
+
+ AppsModulesResourceApi get modules => new AppsModulesResourceApi(_requester);
+ AppsOperationsResourceApi get operations => new AppsOperationsResourceApi(_requester);
+
+ AppsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Gets information about an application.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the application to get. For example:
+ * "apps/myapp".
+ *
+ * [ensureResourcesExist] - Certain resources associated with an application
+ * are created on-demand. Controls whether these resources should be created
+ * when performing the `GET` operation. If specified and any resources cloud
+ * not be created, the request will fail with an error code.
+ *
+ * Completes with a [Application].
+ *
+ * Completes with a [commons.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<Application> get(core.String appsId, {core.bool ensureResourcesExist}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (ensureResourcesExist != null) {
+ _queryParams["ensureResourcesExist"] = ["${ensureResourcesExist}"];
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Application.fromJson(data));
+ }
+
+}
+
+
+class AppsModulesResourceApi {
+ final commons.ApiRequester _requester;
+
+ AppsModulesVersionsResourceApi get versions => new AppsModulesVersionsResourceApi(_requester);
+
+ AppsModulesResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes a module and all enclosed versions.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource requested. For example:
+ * "apps/myapp/modules/default".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [commons.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 appsId, core.String modulesId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Gets the current configuration of the module.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource requested. For example:
+ * "/apps/myapp/modules/default".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * Completes with a [Module].
+ *
+ * Completes with a [commons.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<Module> get(core.String appsId, core.String modulesId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Module.fromJson(data));
+ }
+
+ /**
+ * Lists all the modules in the application.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource requested. For example:
+ * "/apps/myapp".
+ *
+ * [pageSize] - Maximum results to return per page.
+ *
+ * [pageToken] - Continuation token for fetching the next page of results.
+ *
+ * Completes with a [ListModulesResponse].
+ *
+ * Completes with a [commons.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<ListModulesResponse> list(core.String appsId, {core.int pageSize, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListModulesResponse.fromJson(data));
+ }
+
+ /**
+ * Updates the configuration of the specified module.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource to update. For example:
+ * "apps/myapp/modules/default".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * [mask] - Standard field mask for the set of fields to be updated.
+ *
+ * [migrateTraffic] - Whether to use Traffic Migration to shift traffic
+ * gradually. Traffic can only be migrated from a single version to another
+ * single version.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [commons.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(Module request, core.String appsId, core.String modulesId, {core.String mask, core.bool migrateTraffic}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+ if (mask != null) {
+ _queryParams["mask"] = [mask];
+ }
+ if (migrateTraffic != null) {
+ _queryParams["migrateTraffic"] = ["${migrateTraffic}"];
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+}
+
+
+class AppsModulesVersionsResourceApi {
+ final commons.ApiRequester _requester;
+
+ AppsModulesVersionsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deploys new code and resource files to a version.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource to update. For example:
+ * "apps/myapp/modules/default".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [commons.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> create(Version request, core.String appsId, core.String modulesId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId') + '/versions';
+
+ 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 an existing version.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource requested. For example:
+ * "apps/myapp/modules/default/versions/v1".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * [versionsId] - Part of `name`. See documentation of `appsId`.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [commons.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 appsId, core.String modulesId, core.String versionsId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+ if (versionsId == null) {
+ throw new core.ArgumentError("Parameter versionsId is required.");
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId') + '/versions/' + commons.Escaper.ecapeVariable('$versionsId');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Gets application deployment information.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource requested. For example:
+ * "apps/myapp/modules/default/versions/v1".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * [versionsId] - Part of `name`. See documentation of `appsId`.
+ *
+ * [view] - Controls the set of fields returned in the `Get` response.
+ * Possible string values are:
+ * - "BASIC" : A BASIC.
+ * - "FULL" : A FULL.
+ *
+ * Completes with a [Version].
+ *
+ * Completes with a [commons.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<Version> get(core.String appsId, core.String modulesId, core.String versionsId, {core.String view}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+ if (versionsId == null) {
+ throw new core.ArgumentError("Parameter versionsId is required.");
+ }
+ if (view != null) {
+ _queryParams["view"] = [view];
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId') + '/versions/' + commons.Escaper.ecapeVariable('$versionsId');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Version.fromJson(data));
+ }
+
+ /**
+ * Lists the versions of a module.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. Name of the resource requested. For example:
+ * "apps/myapp/modules/default".
+ *
+ * [modulesId] - Part of `name`. See documentation of `appsId`.
+ *
+ * [view] - Controls the set of fields returned in the `List` response.
+ * Possible string values are:
+ * - "BASIC" : A BASIC.
+ * - "FULL" : A FULL.
+ *
+ * [pageSize] - Maximum results to return per page.
+ *
+ * [pageToken] - Continuation token for fetching the next page of results.
+ *
+ * Completes with a [ListVersionsResponse].
+ *
+ * Completes with a [commons.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<ListVersionsResponse> list(core.String appsId, core.String modulesId, {core.String view, core.int pageSize, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (modulesId == null) {
+ throw new core.ArgumentError("Parameter modulesId is required.");
+ }
+ if (view != null) {
+ _queryParams["view"] = [view];
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/modules/' + commons.Escaper.ecapeVariable('$modulesId') + '/versions';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListVersionsResponse.fromJson(data));
+ }
+
+}
+
+
+class AppsOperationsResourceApi {
+ final commons.ApiRequester _requester;
+
+ AppsOperationsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Gets the latest state of a long-running operation. Clients can use this
+ * method to poll the operation result at intervals as recommended by the API
+ * service.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. The name of the operation resource.
+ *
+ * [operationsId] - Part of `name`. See documentation of `appsId`.
+ *
+ * Completes with a [Operation].
+ *
+ * Completes with a [commons.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 appsId, core.String operationsId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (operationsId == null) {
+ throw new core.ArgumentError("Parameter operationsId is required.");
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/operations/' + commons.Escaper.ecapeVariable('$operationsId');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Operation.fromJson(data));
+ }
+
+ /**
+ * Lists operations that match the specified filter in the request. If the
+ * server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the
+ * `name` binding below allows API services to override the binding to use
+ * different resource name schemes, such as `users / * /operations`.
+ *
+ * Request parameters:
+ *
+ * [appsId] - Part of `name`. The name of the operation collection.
+ *
+ * [filter] - The standard List filter.
+ *
+ * [pageSize] - The standard List page size.
+ *
+ * [pageToken] - The standard List page token.
+ *
+ * Completes with a [ListOperationsResponse].
+ *
+ * Completes with a [commons.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<ListOperationsResponse> list(core.String appsId, {core.String filter, core.int pageSize, core.String pageToken}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (appsId == null) {
+ throw new core.ArgumentError("Parameter appsId is required.");
+ }
+ if (filter != null) {
+ _queryParams["filter"] = [filter];
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+
+ _url = 'v1beta4/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/operations';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListOperationsResponse.fromJson(data));
+ }
+
+}
+
+
+
+/** API Serving configuration for Cloud Endpoints. */
+class ApiConfigHandler {
+ /**
+ * For users not logged in, how to handle access to resources with required
+ * login. Defaults to "redirect".
+ * Possible string values are:
+ * - "AUTH_FAIL_ACTION_UNSPECIFIED" : A AUTH_FAIL_ACTION_UNSPECIFIED.
+ * - "AUTH_FAIL_ACTION_REDIRECT" : A AUTH_FAIL_ACTION_REDIRECT.
+ * - "AUTH_FAIL_ACTION_UNAUTHORIZED" : A AUTH_FAIL_ACTION_UNAUTHORIZED.
+ */
+ core.String authFailAction;
+ /**
+ * What level of login is required to access this resource. Default is
+ * "optional".
+ * Possible string values are:
+ * - "LOGIN_UNSPECIFIED" : A LOGIN_UNSPECIFIED.
+ * - "LOGIN_OPTIONAL" : A LOGIN_OPTIONAL.
+ * - "LOGIN_ADMIN" : A LOGIN_ADMIN.
+ * - "LOGIN_REQUIRED" : A LOGIN_REQUIRED.
+ */
+ core.String login;
+ /** Specifies the path to the script from the application root directory. */
+ core.String script;
+ /**
+ * Configures whether security (HTTPS) should be enforced for this URL.
+ * Possible string values are:
+ * - "SECURE_UNSPECIFIED" : A SECURE_UNSPECIFIED.
+ * - "SECURE_DEFAULT" : A SECURE_DEFAULT.
+ * - "SECURE_NEVER" : A SECURE_NEVER.
+ * - "SECURE_OPTIONAL" : A SECURE_OPTIONAL.
+ * - "SECURE_ALWAYS" : A SECURE_ALWAYS.
+ */
+ core.String securityLevel;
+ /** URL to serve the endpoint at. */
+ core.String url;
+
+ ApiConfigHandler();
+
+ ApiConfigHandler.fromJson(core.Map _json) {
+ if (_json.containsKey("authFailAction")) {
+ authFailAction = _json["authFailAction"];
+ }
+ if (_json.containsKey("login")) {
+ login = _json["login"];
+ }
+ if (_json.containsKey("script")) {
+ script = _json["script"];
+ }
+ if (_json.containsKey("securityLevel")) {
+ securityLevel = _json["securityLevel"];
+ }
+ if (_json.containsKey("url")) {
+ url = _json["url"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (authFailAction != null) {
+ _json["authFailAction"] = authFailAction;
+ }
+ if (login != null) {
+ _json["login"] = login;
+ }
+ if (script != null) {
+ _json["script"] = script;
+ }
+ if (securityLevel != null) {
+ _json["securityLevel"] = securityLevel;
+ }
+ if (url != null) {
+ _json["url"] = url;
+ }
+ return _json;
+ }
+}
+
+/** Use Google Cloud Endpoints to handle requests. */
+class ApiEndpointHandler {
+ /** Specifies the path to the script from the application root directory. */
+ core.String scriptPath;
+
+ ApiEndpointHandler();
+
+ ApiEndpointHandler.fromJson(core.Map _json) {
+ if (_json.containsKey("scriptPath")) {
+ scriptPath = _json["scriptPath"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (scriptPath != null) {
+ _json["scriptPath"] = scriptPath;
+ }
+ return _json;
+ }
+}
+
+/**
+ * An Application contains the top-level configuration of an App Engine
+ * application.
+ */
+class Application {
+ /**
+ * A Google Cloud Storage bucket which can be used for storing files
+ * associated with an application. This bucket is associated with the
+ * application and can be used by the gcloud deployment commands. @OutputOnly
+ */
+ core.String codeBucket;
+ /**
+ * HTTP path dispatch rules for requests to the app that do not explicitly
+ * target a module or version. The rules are order-dependent.
+ */
+ core.List<UrlDispatchRule> dispatchRules;
+ /**
+ * The relative name/path of the application. Example: "myapp". @OutputOnly
+ */
+ core.String id;
+ /**
+ * The location from which the application will be run. Choices are "us" for
+ * United States and "eu" for European Union. Application instances will run
+ * out of data centers in the chosen location and all of the application's End
+ * User Content will be stored at rest in the chosen location. The default is
+ * "us".
+ */
+ core.String location;
+ /**
+ * The full path to the application in the API. Example: "apps/myapp".
+ * @OutputOnly
+ */
+ core.String name;
+
+ Application();
+
+ Application.fromJson(core.Map _json) {
+ if (_json.containsKey("codeBucket")) {
+ codeBucket = _json["codeBucket"];
+ }
+ if (_json.containsKey("dispatchRules")) {
+ dispatchRules = _json["dispatchRules"].map((value) => new UrlDispatchRule.fromJson(value)).toList();
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("location")) {
+ location = _json["location"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (codeBucket != null) {
+ _json["codeBucket"] = codeBucket;
+ }
+ if (dispatchRules != null) {
+ _json["dispatchRules"] = dispatchRules.map((value) => (value).toJson()).toList();
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (location != null) {
+ _json["location"] = location;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Automatic scaling is the scaling policy that App Engine has used since its
+ * inception. It is based on request rate, response latencies, and other
+ * application metrics.
+ */
+class AutomaticScaling {
+ /**
+ * The amount of time that the
+ * [Autoscaler](https://cloud.google.com/compute/docs/autoscaler/) should wait
+ * between changes to the number of virtual machines. Applies only to the VM
+ * runtime.
+ */
+ core.String coolDownPeriod;
+ /** Target scaling by CPU usage. */
+ CpuUtilization cpuUtilization;
+ /**
+ * The number of concurrent requests an automatic scaling instance can accept
+ * before the scheduler spawns a new instance. Default value is chosen based
+ * on the runtime.
+ */
+ core.int maxConcurrentRequests;
+ /**
+ * The maximum number of idle instances that App Engine should maintain for
+ * this version.
+ */
+ core.int maxIdleInstances;
+ /**
+ * The maximum amount of time that App Engine should allow a request to wait
+ * in the pending queue before starting a new instance to handle it.
+ */
+ core.String maxPendingLatency;
+ /**
+ * Max number of instances that App Engine should start to handle requests.
+ */
+ core.int maxTotalInstances;
+ /**
+ * The minimum number of idle instances that App Engine should maintain for
+ * this version. Only applies to the default version of a module, since other
+ * versions are not expected to receive significant traffic.
+ */
+ core.int minIdleInstances;
+ /**
+ * The minimum amount of time that App Engine should allow a request to wait
+ * in the pending queue before starting a new instance to handle it.
+ */
+ core.String minPendingLatency;
+ /** Minimum number of instances that App Engine should maintain. */
+ core.int minTotalInstances;
+
+ AutomaticScaling();
+
+ AutomaticScaling.fromJson(core.Map _json) {
+ if (_json.containsKey("coolDownPeriod")) {
+ coolDownPeriod = _json["coolDownPeriod"];
+ }
+ if (_json.containsKey("cpuUtilization")) {
+ cpuUtilization = new CpuUtilization.fromJson(_json["cpuUtilization"]);
+ }
+ if (_json.containsKey("maxConcurrentRequests")) {
+ maxConcurrentRequests = _json["maxConcurrentRequests"];
+ }
+ if (_json.containsKey("maxIdleInstances")) {
+ maxIdleInstances = _json["maxIdleInstances"];
+ }
+ if (_json.containsKey("maxPendingLatency")) {
+ maxPendingLatency = _json["maxPendingLatency"];
+ }
+ if (_json.containsKey("maxTotalInstances")) {
+ maxTotalInstances = _json["maxTotalInstances"];
+ }
+ if (_json.containsKey("minIdleInstances")) {
+ minIdleInstances = _json["minIdleInstances"];
+ }
+ if (_json.containsKey("minPendingLatency")) {
+ minPendingLatency = _json["minPendingLatency"];
+ }
+ if (_json.containsKey("minTotalInstances")) {
+ minTotalInstances = _json["minTotalInstances"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (coolDownPeriod != null) {
+ _json["coolDownPeriod"] = coolDownPeriod;
+ }
+ if (cpuUtilization != null) {
+ _json["cpuUtilization"] = (cpuUtilization).toJson();
+ }
+ if (maxConcurrentRequests != null) {
+ _json["maxConcurrentRequests"] = maxConcurrentRequests;
+ }
+ if (maxIdleInstances != null) {
+ _json["maxIdleInstances"] = maxIdleInstances;
+ }
+ if (maxPendingLatency != null) {
+ _json["maxPendingLatency"] = maxPendingLatency;
+ }
+ if (maxTotalInstances != null) {
+ _json["maxTotalInstances"] = maxTotalInstances;
+ }
+ if (minIdleInstances != null) {
+ _json["minIdleInstances"] = minIdleInstances;
+ }
+ if (minPendingLatency != null) {
+ _json["minPendingLatency"] = minPendingLatency;
+ }
+ if (minTotalInstances != null) {
+ _json["minTotalInstances"] = minTotalInstances;
+ }
+ return _json;
+ }
+}
+
+/**
+ * A module with basic scaling will create an instance when the application
+ * receives a request. The instance will be turned down when the app becomes
+ * idle. Basic scaling is ideal for work that is intermittent or driven by user
+ * activity.
+ */
+class BasicScaling {
+ /**
+ * The instance will be shut down this amount of time after receiving its last
+ * request.
+ */
+ core.String idleTimeout;
+ /**
+ * The maximum number of instances for App Engine to create for this version.
+ */
+ core.int maxInstances;
+
+ BasicScaling();
+
+ BasicScaling.fromJson(core.Map _json) {
+ if (_json.containsKey("idleTimeout")) {
+ idleTimeout = _json["idleTimeout"];
+ }
+ if (_json.containsKey("maxInstances")) {
+ maxInstances = _json["maxInstances"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (idleTimeout != null) {
+ _json["idleTimeout"] = idleTimeout;
+ }
+ if (maxInstances != null) {
+ _json["maxInstances"] = maxInstances;
+ }
+ return _json;
+ }
+}
+
+/**
+ * A Docker (container) image which should be used to start the application.
+ */
+class ContainerInfo {
+ /**
+ * Reference to a hosted container image. Must be a URI to a resource in a
+ * Docker repository. Must be fully qualified, including tag or digest. e.g.
+ * gcr.io/my-project/image:tag or gcr.io/my-project/image@digest
+ */
+ core.String image;
+ /** The SHA256 hash of the image in hex. */
+ core.String sha256;
+
+ ContainerInfo();
+
+ ContainerInfo.fromJson(core.Map _json) {
+ if (_json.containsKey("image")) {
+ image = _json["image"];
+ }
+ if (_json.containsKey("sha256")) {
+ sha256 = _json["sha256"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (image != null) {
+ _json["image"] = image;
+ }
+ if (sha256 != null) {
+ _json["sha256"] = sha256;
+ }
+ return _json;
+ }
+}
+
+/** Target scaling by CPU usage. */
+class CpuUtilization {
+ /** The period of time over which CPU utilization is calculated. */
+ core.String aggregationWindowLength;
+ /** Target (0-1) CPU utilization ratio to maintain when scaling. */
+ core.double targetUtilization;
+
+ CpuUtilization();
+
+ CpuUtilization.fromJson(core.Map _json) {
+ if (_json.containsKey("aggregationWindowLength")) {
+ aggregationWindowLength = _json["aggregationWindowLength"];
+ }
+ if (_json.containsKey("targetUtilization")) {
+ targetUtilization = _json["targetUtilization"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (aggregationWindowLength != null) {
+ _json["aggregationWindowLength"] = aggregationWindowLength;
+ }
+ if (targetUtilization != null) {
+ _json["targetUtilization"] = targetUtilization;
+ }
+ return _json;
+ }
+}
+
+/** Code and application artifacts used to deploy a version to App Engine. */
+class Deployment {
+ /**
+ * If supplied, a docker (container) image which should be used to start the
+ * application. Only applicable to the 'vm' runtime.
+ */
+ ContainerInfo container;
+ /**
+ * A manifest of files stored in Google Cloud Storage which should be included
+ * as part of this application. All files must be readable using the
+ * credentials supplied with this call.
+ */
+ core.Map<core.String, FileInfo> files;
+ /**
+ * The origin of the source code for this deployment. There can be more than
+ * one source reference per Version if source code is distributed among
+ * multiple repositories.
+ */
+ core.List<SourceReference> sourceReferences;
+
+ Deployment();
+
+ Deployment.fromJson(core.Map _json) {
+ if (_json.containsKey("container")) {
+ container = new ContainerInfo.fromJson(_json["container"]);
+ }
+ if (_json.containsKey("files")) {
+ files = commons.mapMap(_json["files"], (item) => new FileInfo.fromJson(item));
+ }
+ if (_json.containsKey("sourceReferences")) {
+ sourceReferences = _json["sourceReferences"].map((value) => new SourceReference.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (container != null) {
+ _json["container"] = (container).toJson();
+ }
+ if (files != null) {
+ _json["files"] = commons.mapMap(files, (item) => (item).toJson());
+ }
+ if (sourceReferences != null) {
+ _json["sourceReferences"] = sourceReferences.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/** A custom static error page to be served when an error occurs. */
+class ErrorHandler {
+ /**
+ * The error condition this handler applies to.
+ * Possible string values are:
+ * - "ERROR_CODE_UNSPECIFIED" : A ERROR_CODE_UNSPECIFIED.
+ * - "ERROR_CODE_DEFAULT" : A ERROR_CODE_DEFAULT.
+ * - "ERROR_CODE_OVER_QUOTA" : A ERROR_CODE_OVER_QUOTA.
+ * - "ERROR_CODE_DOS_API_DENIAL" : A ERROR_CODE_DOS_API_DENIAL.
+ * - "ERROR_CODE_TIMEOUT" : A ERROR_CODE_TIMEOUT.
+ */
+ core.String errorCode;
+ /** MIME type of file. If unspecified, "text/html" is assumed. */
+ core.String mimeType;
+ /** Static file content to be served for this error. */
+ core.String staticFile;
+
+ ErrorHandler();
+
+ ErrorHandler.fromJson(core.Map _json) {
+ if (_json.containsKey("errorCode")) {
+ errorCode = _json["errorCode"];
+ }
+ if (_json.containsKey("mimeType")) {
+ mimeType = _json["mimeType"];
+ }
+ if (_json.containsKey("staticFile")) {
+ staticFile = _json["staticFile"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (errorCode != null) {
+ _json["errorCode"] = errorCode;
+ }
+ if (mimeType != null) {
+ _json["mimeType"] = mimeType;
+ }
+ if (staticFile != null) {
+ _json["staticFile"] = staticFile;
+ }
+ return _json;
+ }
+}
+
+/** Field represents a single field of a message type. */
+class Field {
+ /**
+ * The field cardinality, i.e. optional/required/repeated.
+ * Possible string values are:
+ * - "CARDINALITY_UNKNOWN" : A CARDINALITY_UNKNOWN.
+ * - "CARDINALITY_OPTIONAL" : A CARDINALITY_OPTIONAL.
+ * - "CARDINALITY_REQUIRED" : A CARDINALITY_REQUIRED.
+ * - "CARDINALITY_REPEATED" : A CARDINALITY_REPEATED.
+ */
+ core.String cardinality;
+ /** The JSON name for this field. */
+ core.String jsonName;
+ /**
+ * The field kind.
+ * Possible string values are:
+ * - "TYPE_UNKNOWN" : A TYPE_UNKNOWN.
+ * - "TYPE_DOUBLE" : A TYPE_DOUBLE.
+ * - "TYPE_FLOAT" : A TYPE_FLOAT.
+ * - "TYPE_INT64" : A TYPE_INT64.
+ * - "TYPE_UINT64" : A TYPE_UINT64.
+ * - "TYPE_INT32" : A TYPE_INT32.
+ * - "TYPE_FIXED64" : A TYPE_FIXED64.
+ * - "TYPE_FIXED32" : A TYPE_FIXED32.
+ * - "TYPE_BOOL" : A TYPE_BOOL.
+ * - "TYPE_STRING" : A TYPE_STRING.
+ * - "TYPE_GROUP" : A TYPE_GROUP.
+ * - "TYPE_MESSAGE" : A TYPE_MESSAGE.
+ * - "TYPE_BYTES" : A TYPE_BYTES.
+ * - "TYPE_UINT32" : A TYPE_UINT32.
+ * - "TYPE_ENUM" : A TYPE_ENUM.
+ * - "TYPE_SFIXED32" : A TYPE_SFIXED32.
+ * - "TYPE_SFIXED64" : A TYPE_SFIXED64.
+ * - "TYPE_SINT32" : A TYPE_SINT32.
+ * - "TYPE_SINT64" : A TYPE_SINT64.
+ */
+ core.String kind;
+ /** The field name. */
+ core.String name;
+ /** The proto field number. */
+ core.int number;
+ /** Index in Type.oneofs. Starts at 1. Zero means no oneof mapping. */
+ core.int oneofIndex;
+ /** The proto options. */
+ core.List<Option> options;
+ /** Whether to use alternative packed wire representation. */
+ core.bool packed;
+ /**
+ * The type URL (without the scheme) when the type is MESSAGE or ENUM, such as
+ * `type.googleapis.com/google.protobuf.Empty`.
+ */
+ core.String typeUrl;
+
+ Field();
+
+ Field.fromJson(core.Map _json) {
+ if (_json.containsKey("cardinality")) {
+ cardinality = _json["cardinality"];
+ }
+ if (_json.containsKey("jsonName")) {
+ jsonName = _json["jsonName"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("number")) {
+ number = _json["number"];
+ }
+ if (_json.containsKey("oneofIndex")) {
+ oneofIndex = _json["oneofIndex"];
+ }
+ if (_json.containsKey("options")) {
+ options = _json["options"].map((value) => new Option.fromJson(value)).toList();
+ }
+ if (_json.containsKey("packed")) {
+ packed = _json["packed"];
+ }
+ if (_json.containsKey("typeUrl")) {
+ typeUrl = _json["typeUrl"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (cardinality != null) {
+ _json["cardinality"] = cardinality;
+ }
+ if (jsonName != null) {
+ _json["jsonName"] = jsonName;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (number != null) {
+ _json["number"] = number;
+ }
+ if (oneofIndex != null) {
+ _json["oneofIndex"] = oneofIndex;
+ }
+ if (options != null) {
+ _json["options"] = options.map((value) => (value).toJson()).toList();
+ }
+ if (packed != null) {
+ _json["packed"] = packed;
+ }
+ if (typeUrl != null) {
+ _json["typeUrl"] = typeUrl;
+ }
+ return _json;
+ }
+}
+
+/** A single source file which is part of the application to be deployed. */
+class FileInfo {
+ /**
+ * The MIME type of the file; if unspecified, the value from Google Cloud
+ * Storage will be used.
+ */
+ core.String mimeType;
+ /** The SHA1 (160 bits) hash of the file in hex. */
+ core.String sha1Sum;
+ /**
+ * The URL source to use to fetch this file. Must be a URL to a resource in
+ * Google Cloud Storage.
+ */
+ core.String sourceUrl;
+
+ FileInfo();
+
+ FileInfo.fromJson(core.Map _json) {
+ if (_json.containsKey("mimeType")) {
+ mimeType = _json["mimeType"];
+ }
+ if (_json.containsKey("sha1Sum")) {
+ sha1Sum = _json["sha1Sum"];
+ }
+ if (_json.containsKey("sourceUrl")) {
+ sourceUrl = _json["sourceUrl"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (mimeType != null) {
+ _json["mimeType"] = mimeType;
+ }
+ if (sha1Sum != null) {
+ _json["sha1Sum"] = sha1Sum;
+ }
+ if (sourceUrl != null) {
+ _json["sourceUrl"] = sourceUrl;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Configure health checking for the VM instances. Unhealthy VM instances will
+ * be killed and replaced with new instances.
+ */
+class HealthCheck {
+ /** The interval between health checks. */
+ core.String checkInterval;
+ /** Whether to explicitly disable health checks for this instance. */
+ core.bool disableHealthCheck;
+ /**
+ * The number of consecutive successful health checks before receiving
+ * traffic.
+ */
+ core.int healthyThreshold;
+ /**
+ * The host header to send when performing an HTTP health check (e.g.
+ * myapp.appspot.com)
+ */
+ core.String host;
+ /**
+ * The number of consecutive failed health checks before an instance is
+ * restarted.
+ */
+ core.int restartThreshold;
+ /** The amount of time before the health check is considered failed. */
+ core.String timeout;
+ /**
+ * The number of consecutive failed health checks before removing traffic.
+ */
+ core.int unhealthyThreshold;
+
+ HealthCheck();
+
+ HealthCheck.fromJson(core.Map _json) {
+ if (_json.containsKey("checkInterval")) {
+ checkInterval = _json["checkInterval"];
+ }
+ if (_json.containsKey("disableHealthCheck")) {
+ disableHealthCheck = _json["disableHealthCheck"];
+ }
+ if (_json.containsKey("healthyThreshold")) {
+ healthyThreshold = _json["healthyThreshold"];
+ }
+ if (_json.containsKey("host")) {
+ host = _json["host"];
+ }
+ if (_json.containsKey("restartThreshold")) {
+ restartThreshold = _json["restartThreshold"];
+ }
+ if (_json.containsKey("timeout")) {
+ timeout = _json["timeout"];
+ }
+ if (_json.containsKey("unhealthyThreshold")) {
+ unhealthyThreshold = _json["unhealthyThreshold"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (checkInterval != null) {
+ _json["checkInterval"] = checkInterval;
+ }
+ if (disableHealthCheck != null) {
+ _json["disableHealthCheck"] = disableHealthCheck;
+ }
+ if (healthyThreshold != null) {
+ _json["healthyThreshold"] = healthyThreshold;
+ }
+ if (host != null) {
+ _json["host"] = host;
+ }
+ if (restartThreshold != null) {
+ _json["restartThreshold"] = restartThreshold;
+ }
+ if (timeout != null) {
+ _json["timeout"] = timeout;
+ }
+ if (unhealthyThreshold != null) {
+ _json["unhealthyThreshold"] = unhealthyThreshold;
+ }
+ return _json;
+ }
+}
+
+/** A Python runtime third-party library required by the application. */
+class Library {
+ /** The name of the library, e.g. "PIL" or "django". */
+ core.String name;
+ /** The version of the library to select, or "latest". */
+ core.String version;
+
+ Library();
+
+ Library.fromJson(core.Map _json) {
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("version")) {
+ version = _json["version"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (version != null) {
+ _json["version"] = version;
+ }
+ return _json;
+ }
+}
+
+/** Response message for `Modules.ListModules`. */
+class ListModulesResponse {
+ /** The modules belonging to the requested application. */
+ core.List<Module> modules;
+ /** Continuation token for fetching the next page of results. */
+ core.String nextPageToken;
+
+ ListModulesResponse();
+
+ ListModulesResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("modules")) {
+ modules = _json["modules"].map((value) => new Module.fromJson(value)).toList();
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (modules != null) {
+ _json["modules"] = modules.map((value) => (value).toJson()).toList();
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ return _json;
+ }
+}
+
+/**
+ * The response message for
+ * [Operations.ListOperations][google.longrunning.Operations.ListOperations].
+ */
+class ListOperationsResponse {
+ /** The standard List next-page token. */
+ core.String nextPageToken;
+ /** A list of operations that matches the specified filter in the request. */
+ core.List<Operation> operations;
+
+ ListOperationsResponse();
+
+ ListOperationsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("operations")) {
+ operations = _json["operations"].map((value) => new Operation.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (operations != null) {
+ _json["operations"] = operations.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/** Response message for `Versions.ListVersions`. */
+class ListVersionsResponse {
+ /** Continuation token for fetching the next page of results. */
+ core.String nextPageToken;
+ /** The versions belonging to the requested application module. */
+ core.List<Version> versions;
+
+ ListVersionsResponse();
+
+ ListVersionsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("versions")) {
+ versions = _json["versions"].map((value) => new Version.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (versions != null) {
+ _json["versions"] = versions.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/**
+ * A module with manual scaling runs continuously, allowing you to perform
+ * complex initialization and rely on the state of its memory over time.
+ */
+class ManualScaling {
+ /**
+ * The number of instances to assign to the module at the start. This number
+ * can later be altered by using the [Modules
+ * API](https://cloud.google.com/appengine/docs/python/modules/functions)
+ * `set_num_instances()` function.
+ */
+ core.int instances;
+
+ ManualScaling();
+
+ ManualScaling.fromJson(core.Map _json) {
+ if (_json.containsKey("instances")) {
+ instances = _json["instances"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (instances != null) {
+ _json["instances"] = instances;
+ }
+ return _json;
+ }
+}
+
+/**
+ * A module is a component of an application that provides a single service or
+ * configuration. A module has a collection of versions that define a specific
+ * set of code used to implement the functionality of that module.
+ */
+class Module {
+ /**
+ * The relative name/path of the module within the application. Example:
+ * "default" @OutputOnly
+ */
+ core.String id;
+ /**
+ * The full path to the Module resource in the API. Example:
+ * "apps/myapp/modules/default" @OutputOnly
+ */
+ core.String name;
+ /**
+ * A mapping that defines fractional HTTP traffic diversion to different
+ * versions within the module.
+ */
+ TrafficSplit split;
+
+ Module();
+
+ Module.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("split")) {
+ split = new TrafficSplit.fromJson(_json["split"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (split != null) {
+ _json["split"] = (split).toJson();
+ }
+ return _json;
+ }
+}
+
+/** Used to specify extra network settings (for VM runtimes only). */
+class Network {
+ /**
+ * A list of ports (or port pairs) to forward from the VM into the app
+ * container.
+ */
+ core.List<core.String> forwardedPorts;
+ /** A tag to apply to the VM instance during creation. */
+ core.String instanceTag;
+ /**
+ * The Google Compute Engine network where the VMs will be created. If not
+ * specified, or empty, the network named 'default' will be used. (The short
+ * name should be specified, not the resource path.)
+ */
+ core.String name;
+
+ Network();
+
+ Network.fromJson(core.Map _json) {
+ if (_json.containsKey("forwardedPorts")) {
+ forwardedPorts = _json["forwardedPorts"];
+ }
+ if (_json.containsKey("instanceTag")) {
+ instanceTag = _json["instanceTag"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (forwardedPorts != null) {
+ _json["forwardedPorts"] = forwardedPorts;
+ }
+ if (instanceTag != null) {
+ _json["instanceTag"] = instanceTag;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ return _json;
+ }
+}
+
+/**
+ * This resource represents a long-running operation that is the result of a
+ * network API call.
+ */
+class Operation {
+ /**
+ * If the value is `false`, it means the operation is still in progress. If
+ * true, the operation is completed and the `result` is available.
+ */
+ core.bool done;
+ /** The error result of the operation in case of failure. */
+ Status error;
+ /**
+ * Service-specific metadata associated with the operation. It typically
+ * contains progress information and common metadata such as create time. Some
+ * services might not provide such metadata. Any method that returns a
+ * long-running operation should document the metadata type, if any.
+ *
+ * The values for Object must be JSON objects. It can consist of `num`,
+ * `String`, `bool` and `null` as well as `Map` and `List` values.
+ */
+ core.Map<core.String, core.Object> metadata;
+ /**
+ * The server-assigned name, which is only unique within the same service that
+ * originally returns it. If you use the default HTTP mapping above, the
+ * `name` should have the format of `operations/some/unique/name`.
+ */
+ core.String name;
+ /**
+ * The normal response of the operation in case of success. If the original
+ * method returns no data on success, such as `Delete`, the response is
+ * `google.protobuf.Empty`. If the original method is standard
+ * `Get`/`Create`/`Update`, the response should be the resource. For other
+ * methods, the response should have the type `XxxResponse`, where `Xxx` is
+ * the original method name. For example, if the original method name is
+ * `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+ *
+ * The values for Object must be JSON objects. It can consist of `num`,
+ * `String`, `bool` and `null` as well as `Map` and `List` values.
+ */
+ core.Map<core.String, core.Object> response;
+
+ Operation();
+
+ Operation.fromJson(core.Map _json) {
+ if (_json.containsKey("done")) {
+ done = _json["done"];
+ }
+ if (_json.containsKey("error")) {
+ error = new Status.fromJson(_json["error"]);
+ }
+ if (_json.containsKey("metadata")) {
+ metadata = _json["metadata"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("response")) {
+ response = _json["response"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (done != null) {
+ _json["done"] = done;
+ }
+ if (error != null) {
+ _json["error"] = (error).toJson();
+ }
+ if (metadata != null) {
+ _json["metadata"] = metadata;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (response != null) {
+ _json["response"] = response;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Metadata for the given
+ * [google.longrunning.Operation][google.longrunning.Operation].
+ */
+class OperationMetadata {
+ /**
+ * Timestamp that this operation was completed. (Not present if the operation
+ * is still in progress.) @OutputOnly
+ */
+ core.String endTime;
+ /** Timestamp that this operation was received. @OutputOnly */
+ core.String insertTime;
+ /** The type of the operation, e.g. 'deployment'. @OutputOnly */
+ core.String operationType;
+ /** The user who requested this operation. @OutputOnly */
+ core.String user;
+
+ OperationMetadata();
+
+ OperationMetadata.fromJson(core.Map _json) {
+ if (_json.containsKey("endTime")) {
+ endTime = _json["endTime"];
+ }
+ if (_json.containsKey("insertTime")) {
+ insertTime = _json["insertTime"];
+ }
+ if (_json.containsKey("operationType")) {
+ operationType = _json["operationType"];
+ }
+ if (_json.containsKey("user")) {
+ user = _json["user"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (endTime != null) {
+ _json["endTime"] = endTime;
+ }
+ if (insertTime != null) {
+ _json["insertTime"] = insertTime;
+ }
+ if (operationType != null) {
+ _json["operationType"] = operationType;
+ }
+ if (user != null) {
+ _json["user"] = user;
+ }
+ return _json;
+ }
+}
+
+/** Proto option attached to messages/fields/enums etc. */
+class Option {
+ /** Proto option name. */
+ core.String name;
+ /**
+ * Proto option value.
+ *
+ * The values for Object must be JSON objects. It can consist of `num`,
+ * `String`, `bool` and `null` as well as `Map` and `List` values.
+ */
+ core.Map<core.String, core.Object> value;
+
+ Option();
+
+ Option.fromJson(core.Map _json) {
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+/** Used to specify how many machine resources an app version needs. */
+class Resources {
+ /** How many CPU cores an app version needs. */
+ core.double cpu;
+ /** How much disk size, in GB, an app version needs. */
+ core.double diskGb;
+ /** How much memory, in GB, an app version needs. */
+ core.double memoryGb;
+
+ Resources();
+
+ Resources.fromJson(core.Map _json) {
+ if (_json.containsKey("cpu")) {
+ cpu = _json["cpu"];
+ }
+ if (_json.containsKey("diskGb")) {
+ diskGb = _json["diskGb"];
+ }
+ if (_json.containsKey("memoryGb")) {
+ memoryGb = _json["memoryGb"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (cpu != null) {
+ _json["cpu"] = cpu;
+ }
+ if (diskGb != null) {
+ _json["diskGb"] = diskGb;
+ }
+ if (memoryGb != null) {
+ _json["memoryGb"] = memoryGb;
+ }
+ return _json;
+ }
+}
+
+/** Executes a script to handle the request that matches the URL pattern. */
+class ScriptHandler {
+ /** Specifies the path to the script from the application root directory. */
+ core.String scriptPath;
+
+ ScriptHandler();
+
+ ScriptHandler.fromJson(core.Map _json) {
+ if (_json.containsKey("scriptPath")) {
+ scriptPath = _json["scriptPath"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (scriptPath != null) {
+ _json["scriptPath"] = scriptPath;
+ }
+ return _json;
+ }
+}
+
+/**
+ * `SourceContext` represents information about the source of a protobuf
+ * element, like the file in which it is defined.
+ */
+class SourceContext {
+ /**
+ * The path-qualified name of the .proto file that contained the associated
+ * protobuf element. For example: `"google/protobuf/source.proto"`.
+ */
+ core.String fileName;
+
+ SourceContext();
+
+ SourceContext.fromJson(core.Map _json) {
+ if (_json.containsKey("fileName")) {
+ fileName = _json["fileName"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (fileName != null) {
+ _json["fileName"] = fileName;
+ }
+ return _json;
+ }
+}
+
+/**
+ * A reference to a particular snapshot of the source tree used to build and
+ * deploy the application.
+ */
+class SourceReference {
+ /**
+ * Optional. A URI string identifying the repository. Example:
+ * "https://source.developers.google.com/p/app-123/r/default"
+ */
+ core.String repository;
+ /**
+ * The canonical (and persistent) identifier of the deployed revision, i.e.
+ * any kind of aliases including tags or branch names are not allowed. Example
+ * (git): "2198322f89e0bb2e25021667c2ed489d1fd34e6b"
+ */
+ core.String revisionId;
+
+ SourceReference();
+
+ SourceReference.fromJson(core.Map _json) {
+ if (_json.containsKey("repository")) {
+ repository = _json["repository"];
+ }
+ if (_json.containsKey("revisionId")) {
+ revisionId = _json["revisionId"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (repository != null) {
+ _json["repository"] = repository;
+ }
+ if (revisionId != null) {
+ _json["revisionId"] = revisionId;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Files served directly to the user for a given URL, such as images, CSS
+ * stylesheets, or JavaScript source files. Static directory handlers make it
+ * easy to serve the entire contents of a directory as static files.
+ */
+class StaticDirectoryHandler {
+ /**
+ * By default, files declared in static file handlers are uploaded as static
+ * data and are only served to end users, they cannot be read by an
+ * application. If this field is set to true, the files are also uploaded as
+ * code data so your application can read them. Both uploads are charged
+ * against your code and static data storage resource quotas.
+ */
+ core.bool applicationReadable;
+ /**
+ * The path to the directory containing the static files, from the application
+ * root directory. Everything after the end of the matched url pattern is
+ * appended to static_dir to form the full path to the requested file.
+ */
+ core.String directory;
+ /**
+ * The length of time a static file served by this handler ought to be cached
+ * by web proxies and browsers.
+ */
+ core.String expiration;
+ /** HTTP headers to use for all responses from these URLs. */
+ core.Map<core.String, core.String> httpHeaders;
+ /**
+ * If specified, all files served by this handler will be served using the
+ * specified MIME type. If not specified, the MIME type for a file will be
+ * derived from the file's filename extension.
+ */
+ core.String mimeType;
+ /**
+ * If true, this UrlMap entry does not match the request unless the file
+ * referenced by the handler also exists. If no such file exists, processing
+ * will continue with the next UrlMap that matches the requested URL.
+ */
+ core.bool requireMatchingFile;
+
+ StaticDirectoryHandler();
+
+ StaticDirectoryHandler.fromJson(core.Map _json) {
+ if (_json.containsKey("applicationReadable")) {
+ applicationReadable = _json["applicationReadable"];
+ }
+ if (_json.containsKey("directory")) {
+ directory = _json["directory"];
+ }
+ if (_json.containsKey("expiration")) {
+ expiration = _json["expiration"];
+ }
+ if (_json.containsKey("httpHeaders")) {
+ httpHeaders = _json["httpHeaders"];
+ }
+ if (_json.containsKey("mimeType")) {
+ mimeType = _json["mimeType"];
+ }
+ if (_json.containsKey("requireMatchingFile")) {
+ requireMatchingFile = _json["requireMatchingFile"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (applicationReadable != null) {
+ _json["applicationReadable"] = applicationReadable;
+ }
+ if (directory != null) {
+ _json["directory"] = directory;
+ }
+ if (expiration != null) {
+ _json["expiration"] = expiration;
+ }
+ if (httpHeaders != null) {
+ _json["httpHeaders"] = httpHeaders;
+ }
+ if (mimeType != null) {
+ _json["mimeType"] = mimeType;
+ }
+ if (requireMatchingFile != null) {
+ _json["requireMatchingFile"] = requireMatchingFile;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Files served directly to the user for a given URL, such as images, CSS
+ * stylesheets, or JavaScript source files. Static file handlers describe which
+ * files in the application directory are static files, and which URLs serve
+ * them.
+ */
+class StaticFilesHandler {
+ /**
+ * By default, files declared in static file handlers are uploaded as static
+ * data and are only served to end users, they cannot be read by an
+ * application. If this field is set to true, the files are also uploaded as
+ * code data so your application can read them. Both uploads are charged
+ * against your code and static data storage resource quotas.
+ */
+ core.bool applicationReadable;
+ /**
+ * The length of time a static file served by this handler ought to be cached
+ * by web proxies and browsers.
+ */
+ core.String expiration;
+ /** HTTP headers to use for all responses from these URLs. */
+ core.Map<core.String, core.String> httpHeaders;
+ /**
+ * If specified, all files served by this handler will be served using the
+ * specified MIME type. If not specified, the MIME type for a file will be
+ * derived from the file's filename extension.
+ */
+ core.String mimeType;
+ /**
+ * The path to the static files matched by the URL pattern, from the
+ * application root directory. The path can refer to text matched in groupings
+ * in the URL pattern.
+ */
+ core.String path;
+ /**
+ * If true, this [UrlMap][google.appengine.v1beta4.UrlMap] entry does not
+ * match the request unless the file referenced by the handler also exists. If
+ * no such file exists, processing will continue with the next
+ * [UrlMap][google.appengine.v1beta4.UrlMap] that matches the requested URL.
+ */
+ core.bool requireMatchingFile;
+ /**
+ * A regular expression that matches the file paths for all files that will be
+ * referenced by this handler.
+ */
+ core.String uploadPathRegex;
+
+ StaticFilesHandler();
+
+ StaticFilesHandler.fromJson(core.Map _json) {
+ if (_json.containsKey("applicationReadable")) {
+ applicationReadable = _json["applicationReadable"];
+ }
+ if (_json.containsKey("expiration")) {
+ expiration = _json["expiration"];
+ }
+ if (_json.containsKey("httpHeaders")) {
+ httpHeaders = _json["httpHeaders"];
+ }
+ if (_json.containsKey("mimeType")) {
+ mimeType = _json["mimeType"];
+ }
+ if (_json.containsKey("path")) {
+ path = _json["path"];
+ }
+ if (_json.containsKey("requireMatchingFile")) {
+ requireMatchingFile = _json["requireMatchingFile"];
+ }
+ if (_json.containsKey("uploadPathRegex")) {
+ uploadPathRegex = _json["uploadPathRegex"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (applicationReadable != null) {
+ _json["applicationReadable"] = applicationReadable;
+ }
+ if (expiration != null) {
+ _json["expiration"] = expiration;
+ }
+ if (httpHeaders != null) {
+ _json["httpHeaders"] = httpHeaders;
+ }
+ if (mimeType != null) {
+ _json["mimeType"] = mimeType;
+ }
+ if (path != null) {
+ _json["path"] = path;
+ }
+ if (requireMatchingFile != null) {
+ _json["requireMatchingFile"] = requireMatchingFile;
+ }
+ if (uploadPathRegex != null) {
+ _json["uploadPathRegex"] = uploadPathRegex;
+ }
+ return _json;
+ }
+}
+
+/**
+ * The `Status` defines a logical error model that is suitable for different
+ * programming environments, including REST APIs and RPC APIs. It is used by
+ * [gRPC](https://github.com/grpc). The error model is designed to be: - Simple
+ * to use and understand for most users. - Flexible enough to meet unexpected
+ * needs. # Overview The `Status` message contains 3 pieces of data: error code,
+ * error message, and error details. The error code should be an enum value of
+ * [google.rpc.Code][google.rpc.Code], but it may accept additional error codes
+ * if needed. The error message should be a developer-facing English message
+ * that helps developers *understand* and *resolve* the error. If a localized
+ * user-facing error message is needed, it can be sent in the error details or
+ * localized by the client. The optional error details may contain arbitrary
+ * information about the error. There is a predefined set of error detail types
+ * in the package `google.rpc` which can be used for common error conditions. #
+ * Language mapping The `Status` message is the logical representation of the
+ * error model, but it is not necessarily the actual wire format. When the
+ * `Status` message is exposed in different client libraries and different wire
+ * protocols, it can be mapped differently. For example, it will likely be
+ * mapped to some exceptions in Java, but more likely mapped to some error codes
+ * in C. # Other uses The error model and the `Status` message can be used in a
+ * variety of environments - either with or without APIs - to provide consistent
+ * developer experience across different environments. Example uses of this
+ * error model include: - Partial errors. If a service needs to return partial
+ * errors to the client, it may embed the `Status` in the normal response to
+ * indicate the partial errors. - Workflow errors. A typical workflow has
+ * multiple steps. Each step may have a `Status` message for error reporting
+ * purpose. - Batch operations. If a client uses batch request and batch
+ * response, the `Status` message should be used directly inside batch response,
+ * one for each error sub-response. - Asynchronous operations. If an API call
+ * embeds asynchronous operation results in its response, the status of those
+ * operations should be represented directly using the `Status` message. -
+ * Logging. If some API errors are stored in logs, the message `Status` could be
+ * used directly after any stripping needed for security/privacy reasons.
+ */
+class Status {
+ /**
+ * The status code, which should be an enum value of
+ * [google.rpc.Code][google.rpc.Code].
+ */
+ core.int code;
+ /**
+ * A list of messages that carry the error details. There will be a common set
+ * of message types for APIs to use.
+ *
+ * The values for Object must be JSON objects. It can consist of `num`,
+ * `String`, `bool` and `null` as well as `Map` and `List` values.
+ */
+ core.List<core.Map<core.String, core.Object>> details;
+ /**
+ * A developer-facing error message, which should be in English. Any
+ * user-facing error message should be localized and sent in the
+ * [google.rpc.Status.details][google.rpc.Status.details] field, or localized
+ * by the client.
+ */
+ core.String message;
+
+ Status();
+
+ Status.fromJson(core.Map _json) {
+ if (_json.containsKey("code")) {
+ code = _json["code"];
+ }
+ if (_json.containsKey("details")) {
+ details = _json["details"];
+ }
+ if (_json.containsKey("message")) {
+ message = _json["message"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (code != null) {
+ _json["code"] = code;
+ }
+ if (details != null) {
+ _json["details"] = details;
+ }
+ if (message != null) {
+ _json["message"] = message;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Configuration for traffic splitting for versions within a single module.
+ * Traffic splitting allows traffic directed to the module to be assigned to one
+ * of several versions in a fractional way, enabling experiments and canarying
+ * new builds, for example.
+ */
+class TrafficSplit {
+ /**
+ * Mapping from module version IDs within the module to fractional (0.000, 1]
+ * allocations of traffic for that version. Each version may only be specified
+ * once, but some versions in the module may not have any traffic allocation.
+ * Modules that have traffic allocated in this field may not be deleted until
+ * the module is deleted, or their traffic allocation is removed. Allocations
+ * must sum to 1. Supports precision up to two decimal places for IP-based
+ * splits and up to three decimal places for cookie-based splits.
+ */
+ core.Map<core.String, core.double> allocations;
+ /**
+ * Which mechanism should be used as a selector when choosing a version to
+ * send a request to. The traffic selection algorithm will be stable for
+ * either type until allocations are changed.
+ * Possible string values are:
+ * - "UNSPECIFIED" : A UNSPECIFIED.
+ * - "COOKIE" : A COOKIE.
+ * - "IP" : A IP.
+ */
+ core.String shardBy;
+
+ TrafficSplit();
+
+ TrafficSplit.fromJson(core.Map _json) {
+ if (_json.containsKey("allocations")) {
+ allocations = _json["allocations"];
+ }
+ if (_json.containsKey("shardBy")) {
+ shardBy = _json["shardBy"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (allocations != null) {
+ _json["allocations"] = allocations;
+ }
+ if (shardBy != null) {
+ _json["shardBy"] = shardBy;
+ }
+ return _json;
+ }
+}
+
+/** A light-weight descriptor for a proto message type. */
+class Type {
+ /** The list of fields. */
+ core.List<Field> fields;
+ /** The fully qualified message name. */
+ core.String name;
+ /**
+ * The list of oneof definitions. The list of oneofs declared in this Type
+ */
+ core.List<core.String> oneofs;
+ /** The proto options. */
+ core.List<Option> options;
+ /** The source context. */
+ SourceContext sourceContext;
+ /**
+ * The source syntax.
+ * Possible string values are:
+ * - "SYNTAX_PROTO2" : A SYNTAX_PROTO2.
+ * - "SYNTAX_PROTO3" : A SYNTAX_PROTO3.
+ */
+ core.String syntax;
+
+ Type();
+
+ Type.fromJson(core.Map _json) {
+ if (_json.containsKey("fields")) {
+ fields = _json["fields"].map((value) => new Field.fromJson(value)).toList();
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("oneofs")) {
+ oneofs = _json["oneofs"];
+ }
+ if (_json.containsKey("options")) {
+ options = _json["options"].map((value) => new Option.fromJson(value)).toList();
+ }
+ if (_json.containsKey("sourceContext")) {
+ sourceContext = new SourceContext.fromJson(_json["sourceContext"]);
+ }
+ if (_json.containsKey("syntax")) {
+ syntax = _json["syntax"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (fields != null) {
+ _json["fields"] = fields.map((value) => (value).toJson()).toList();
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (oneofs != null) {
+ _json["oneofs"] = oneofs;
+ }
+ if (options != null) {
+ _json["options"] = options.map((value) => (value).toJson()).toList();
+ }
+ if (sourceContext != null) {
+ _json["sourceContext"] = (sourceContext).toJson();
+ }
+ if (syntax != null) {
+ _json["syntax"] = syntax;
+ }
+ return _json;
+ }
+}
+
+/** Rules to match an HTTP request and dispatch that request to a module. */
+class UrlDispatchRule {
+ /**
+ * The domain name to match on. Supports '*' (glob) wildcarding on the
+ * left-hand side of a '.'. If empty, all domains will be matched (the same as
+ * '*').
+ */
+ core.String domain;
+ /**
+ * The resource id of a Module in this application that should service the
+ * matched request. The Module must already exist. Example: "default".
+ */
+ core.String module;
+ /**
+ * The pathname within the host. This must start with a '/'. A single '*'
+ * (glob) can be included at the end of the path. The sum of the lengths of
+ * the domain and path may not exceed 100 characters.
+ */
+ core.String path;
+
+ UrlDispatchRule();
+
+ UrlDispatchRule.fromJson(core.Map _json) {
+ if (_json.containsKey("domain")) {
+ domain = _json["domain"];
+ }
+ if (_json.containsKey("module")) {
+ module = _json["module"];
+ }
+ if (_json.containsKey("path")) {
+ path = _json["path"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (domain != null) {
+ _json["domain"] = domain;
+ }
+ if (module != null) {
+ _json["module"] = module;
+ }
+ if (path != null) {
+ _json["path"] = path;
+ }
+ return _json;
+ }
+}
+
+/**
+ * A URL pattern and description of how it should be handled. App Engine can
+ * handle URLs by executing application code, or by serving static files
+ * uploaded with the code, such as images, CSS or JavaScript.
+ */
+class UrlMap {
+ /** Use API Endpoints to handle requests. */
+ ApiEndpointHandler apiEndpoint;
+ /**
+ * For users not logged in, how to handle access to resources with required
+ * login. Defaults to "redirect".
+ * Possible string values are:
+ * - "AUTH_FAIL_ACTION_UNSPECIFIED" : A AUTH_FAIL_ACTION_UNSPECIFIED.
+ * - "AUTH_FAIL_ACTION_REDIRECT" : A AUTH_FAIL_ACTION_REDIRECT.
+ * - "AUTH_FAIL_ACTION_UNAUTHORIZED" : A AUTH_FAIL_ACTION_UNAUTHORIZED.
+ */
+ core.String authFailAction;
+ /**
+ * What level of login is required to access this resource.
+ * Possible string values are:
+ * - "LOGIN_UNSPECIFIED" : A LOGIN_UNSPECIFIED.
+ * - "LOGIN_OPTIONAL" : A LOGIN_OPTIONAL.
+ * - "LOGIN_ADMIN" : A LOGIN_ADMIN.
+ * - "LOGIN_REQUIRED" : A LOGIN_REQUIRED.
+ */
+ core.String login;
+ /**
+ * `30x` code to use when performing redirects for the `secure` field. A `302`
+ * is used by default.
+ * Possible string values are:
+ * - "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED" : A
+ * REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED.
+ * - "REDIRECT_HTTP_RESPONSE_CODE_301" : A REDIRECT_HTTP_RESPONSE_CODE_301.
+ * - "REDIRECT_HTTP_RESPONSE_CODE_302" : A REDIRECT_HTTP_RESPONSE_CODE_302.
+ * - "REDIRECT_HTTP_RESPONSE_CODE_303" : A REDIRECT_HTTP_RESPONSE_CODE_303.
+ * - "REDIRECT_HTTP_RESPONSE_CODE_307" : A REDIRECT_HTTP_RESPONSE_CODE_307.
+ */
+ core.String redirectHttpResponseCode;
+ /** Executes a script to handle the request that matches the URL pattern. */
+ ScriptHandler script;
+ /**
+ * Configures whether security (HTTPS) should be enforced for this URL.
+ * Possible string values are:
+ * - "SECURE_UNSPECIFIED" : A SECURE_UNSPECIFIED.
+ * - "SECURE_DEFAULT" : A SECURE_DEFAULT.
+ * - "SECURE_NEVER" : A SECURE_NEVER.
+ * - "SECURE_OPTIONAL" : A SECURE_OPTIONAL.
+ * - "SECURE_ALWAYS" : A SECURE_ALWAYS.
+ */
+ core.String securityLevel;
+ /**
+ * Serves the entire contents of a directory as static files. This attribute
+ * is deprecated. You can mimic the behavior of static directories using
+ * static files.
+ */
+ StaticDirectoryHandler staticDirectory;
+ /** Returns the contents of a file, such as an image, as the response. */
+ StaticFilesHandler staticFiles;
+ /**
+ * A URL prefix. This value uses regular expression syntax (and so regexp
+ * special characters must be escaped), but it should not contain groupings.
+ * All URLs that begin with this prefix are handled by this handler, using the
+ * portion of the URL after the prefix as part of the file path. This is
+ * always required.
+ */
+ core.String urlRegex;
+
+ UrlMap();
+
+ UrlMap.fromJson(core.Map _json) {
+ if (_json.containsKey("apiEndpoint")) {
+ apiEndpoint = new ApiEndpointHandler.fromJson(_json["apiEndpoint"]);
+ }
+ if (_json.containsKey("authFailAction")) {
+ authFailAction = _json["authFailAction"];
+ }
+ if (_json.containsKey("login")) {
+ login = _json["login"];
+ }
+ if (_json.containsKey("redirectHttpResponseCode")) {
+ redirectHttpResponseCode = _json["redirectHttpResponseCode"];
+ }
+ if (_json.containsKey("script")) {
+ script = new ScriptHandler.fromJson(_json["script"]);
+ }
+ if (_json.containsKey("securityLevel")) {
+ securityLevel = _json["securityLevel"];
+ }
+ if (_json.containsKey("staticDirectory")) {
+ staticDirectory = new StaticDirectoryHandler.fromJson(_json["staticDirectory"]);
+ }
+ if (_json.containsKey("staticFiles")) {
+ staticFiles = new StaticFilesHandler.fromJson(_json["staticFiles"]);
+ }
+ if (_json.containsKey("urlRegex")) {
+ urlRegex = _json["urlRegex"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (apiEndpoint != null) {
+ _json["apiEndpoint"] = (apiEndpoint).toJson();
+ }
+ if (authFailAction != null) {
+ _json["authFailAction"] = authFailAction;
+ }
+ if (login != null) {
+ _json["login"] = login;
+ }
+ if (redirectHttpResponseCode != null) {
+ _json["redirectHttpResponseCode"] = redirectHttpResponseCode;
+ }
+ if (script != null) {
+ _json["script"] = (script).toJson();
+ }
+ if (securityLevel != null) {
+ _json["securityLevel"] = securityLevel;
+ }
+ if (staticDirectory != null) {
+ _json["staticDirectory"] = (staticDirectory).toJson();
+ }
+ if (staticFiles != null) {
+ _json["staticFiles"] = (staticFiles).toJson();
+ }
+ if (urlRegex != null) {
+ _json["urlRegex"] = urlRegex;
+ }
+ return _json;
+ }
+}
+
+/**
+ * A Version is a specific set of source code and configuration files deployed
+ * to a module.
+ */
+class Version {
+ /**
+ * Serving configuration for Google Cloud Endpoints. Only returned in `GET`
+ * requests if `view=FULL` is set. May only be set on create requests; once
+ * created, is immutable.
+ */
+ ApiConfigHandler apiConfig;
+ /**
+ * Automatic scaling is the scaling policy that App Engine has used since its
+ * inception. It is based on request rate, response latencies, and other
+ * application metrics.
+ */
+ AutomaticScaling automaticScaling;
+ /**
+ * A module with basic scaling will create an instance when the application
+ * receives a request. The instance will be turned down when the app becomes
+ * idle. Basic scaling is ideal for work that is intermittent or driven by
+ * user activity.
+ */
+ BasicScaling basicScaling;
+ /** Beta settings supplied to the application via metadata. */
+ core.Map<core.String, core.String> betaSettings;
+ /**
+ * The length of time a static file served by a static file handler ought to
+ * be cached by web proxies and browsers, if the handler does not specify its
+ * own expiration. Only returned in `GET` requests if `view=FULL` is set. May
+ * only be set on create requests; once created, is immutable.
+ */
+ core.String defaultExpiration;
+ /**
+ * Code and application artifacts that make up this version. Only returned in
+ * `GET` requests if `view=FULL` is set. May only be set on create requests;
+ * once created, is immutable.
+ */
+ Deployment deployment;
+ /**
+ * Environment variables made available to the application. Only returned in
+ * `GET` requests if `view=FULL` is set. May only be set on create requests;
+ * once created, is immutable.
+ */
+ core.Map<core.String, core.String> envVariables;
+ /**
+ * Custom static error pages instead of these generic error pages, (limit 10
+ * KB/page) Only returned in `GET` requests if `view=FULL` is set. May only be
+ * set on create requests; once created, is immutable.
+ */
+ core.List<ErrorHandler> errorHandlers;
+ /**
+ * An ordered list of URL Matching patterns that should be applied to incoming
+ * requests. The first matching URL consumes the request, and subsequent
+ * handlers are not attempted. Only returned in `GET` requests if `view=FULL`
+ * is set. May only be set on create requests; once created, is immutable.
+ */
+ core.List<UrlMap> handlers;
+ /**
+ * Configure health checking for the VM instances. Unhealthy VM instances will
+ * be stopped and replaced with new instances. Only returned in `GET` requests
+ * if `view=FULL` is set. May only be set on create requests; once created, is
+ * immutable.
+ */
+ HealthCheck healthCheck;
+ /** The relative name/path of the Version within the module. Example: "v1" */
+ core.String id;
+ /**
+ * Before an application can receive email or XMPP messages, the application
+ * must be configured to enable the service.
+ */
+ core.List<core.String> inboundServices;
+ /**
+ * The frontend instance class to use to run this app. Valid values are `[F1,
+ * F2, F4, F4_1G]`.
+ */
+ core.String instanceClass;
+ /**
+ * Configuration for Python runtime third-party libraries required by the
+ * application. Only returned in `GET` requests if `view=FULL` is set. May
+ * only be set on create requests; once created, is immutable.
+ */
+ core.List<Library> libraries;
+ /**
+ * A module with manual scaling runs continuously, allowing you to perform
+ * complex initialization and rely on the state of its memory over time.
+ */
+ ManualScaling manualScaling;
+ /**
+ * The full path to the Version resource in the API. Example:
+ * "apps/myapp/modules/default/versions/v1". @OutputOnly
+ */
+ core.String name;
+ /** Used to specify extra network settings (for VM runtimes only). */
+ Network network;
+ /**
+ * Go only. Files that match this pattern will not be built into the app. May
+ * only be set on create requests.
+ */
+ core.String nobuildFilesRegex;
+ /**
+ * Used to specify how many machine resources an app version needs (for VM
+ * runtimes only).
+ */
+ Resources resources;
+ /** The desired runtime. Values can include python27, java7, go, etc. */
+ core.String runtime;
+ /** If true, multiple requests can be dispatched to the app at once. */
+ core.bool threadsafe;
+ /** Whether to deploy this app in a VM container. */
+ core.bool vm;
+
+ Version();
+
+ Version.fromJson(core.Map _json) {
+ if (_json.containsKey("apiConfig")) {
+ apiConfig = new ApiConfigHandler.fromJson(_json["apiConfig"]);
+ }
+ if (_json.containsKey("automaticScaling")) {
+ automaticScaling = new AutomaticScaling.fromJson(_json["automaticScaling"]);
+ }
+ if (_json.containsKey("basicScaling")) {
+ basicScaling = new BasicScaling.fromJson(_json["basicScaling"]);
+ }
+ if (_json.containsKey("betaSettings")) {
+ betaSettings = _json["betaSettings"];
+ }
+ if (_json.containsKey("defaultExpiration")) {
+ defaultExpiration = _json["defaultExpiration"];
+ }
+ if (_json.containsKey("deployment")) {
+ deployment = new Deployment.fromJson(_json["deployment"]);
+ }
+ if (_json.containsKey("envVariables")) {
+ envVariables = _json["envVariables"];
+ }
+ if (_json.containsKey("errorHandlers")) {
+ errorHandlers = _json["errorHandlers"].map((value) => new ErrorHandler.fromJson(value)).toList();
+ }
+ if (_json.containsKey("handlers")) {
+ handlers = _json["handlers"].map((value) => new UrlMap.fromJson(value)).toList();
+ }
+ if (_json.containsKey("healthCheck")) {
+ healthCheck = new HealthCheck.fromJson(_json["healthCheck"]);
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("inboundServices")) {
+ inboundServices = _json["inboundServices"];
+ }
+ if (_json.containsKey("instanceClass")) {
+ instanceClass = _json["instanceClass"];
+ }
+ if (_json.containsKey("libraries")) {
+ libraries = _json["libraries"].map((value) => new Library.fromJson(value)).toList();
+ }
+ if (_json.containsKey("manualScaling")) {
+ manualScaling = new ManualScaling.fromJson(_json["manualScaling"]);
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("network")) {
+ network = new Network.fromJson(_json["network"]);
+ }
+ if (_json.containsKey("nobuildFilesRegex")) {
+ nobuildFilesRegex = _json["nobuildFilesRegex"];
+ }
+ if (_json.containsKey("resources")) {
+ resources = new Resources.fromJson(_json["resources"]);
+ }
+ if (_json.containsKey("runtime")) {
+ runtime = _json["runtime"];
+ }
+ if (_json.containsKey("threadsafe")) {
+ threadsafe = _json["threadsafe"];
+ }
+ if (_json.containsKey("vm")) {
+ vm = _json["vm"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (apiConfig != null) {
+ _json["apiConfig"] = (apiConfig).toJson();
+ }
+ if (automaticScaling != null) {
+ _json["automaticScaling"] = (automaticScaling).toJson();
+ }
+ if (basicScaling != null) {
+ _json["basicScaling"] = (basicScaling).toJson();
+ }
+ if (betaSettings != null) {
+ _json["betaSettings"] = betaSettings;
+ }
+ if (defaultExpiration != null) {
+ _json["defaultExpiration"] = defaultExpiration;
+ }
+ if (deployment != null) {
+ _json["deployment"] = (deployment).toJson();
+ }
+ if (envVariables != null) {
+ _json["envVariables"] = envVariables;
+ }
+ if (errorHandlers != null) {
+ _json["errorHandlers"] = errorHandlers.map((value) => (value).toJson()).toList();
+ }
+ if (handlers != null) {
+ _json["handlers"] = handlers.map((value) => (value).toJson()).toList();
+ }
+ if (healthCheck != null) {
+ _json["healthCheck"] = (healthCheck).toJson();
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (inboundServices != null) {
+ _json["inboundServices"] = inboundServices;
+ }
+ if (instanceClass != null) {
+ _json["instanceClass"] = instanceClass;
+ }
+ if (libraries != null) {
+ _json["libraries"] = libraries.map((value) => (value).toJson()).toList();
+ }
+ if (manualScaling != null) {
+ _json["manualScaling"] = (manualScaling).toJson();
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (network != null) {
+ _json["network"] = (network).toJson();
+ }
+ if (nobuildFilesRegex != null) {
+ _json["nobuildFilesRegex"] = nobuildFilesRegex;
+ }
+ if (resources != null) {
+ _json["resources"] = (resources).toJson();
+ }
+ if (runtime != null) {
+ _json["runtime"] = runtime;
+ }
+ if (threadsafe != null) {
+ _json["threadsafe"] = threadsafe;
+ }
+ if (vm != null) {
+ _json["vm"] = vm;
+ }
+ return _json;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698