blob: aa5222de6ece30f7c94232e315f9ec3dd3828c94 [file] [log] [blame]
// This is a generated file (see the discoveryapis_generator project).
// ignore_for_file: camel_case_types
// ignore_for_file: comment_references
// ignore_for_file: file_names
// ignore_for_file: library_names
// ignore_for_file: lines_longer_than_80_chars
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: prefer_expression_function_bodies
// ignore_for_file: prefer_interpolation_to_compose_strings
// ignore_for_file: unnecessary_brace_in_string_interps
// ignore_for_file: unnecessary_cast
// ignore_for_file: unnecessary_lambdas
// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: unnecessary_string_interpolations
/// App Engine Admin API - v1
///
/// Provisions and manages developers' App Engine applications.
///
/// For more information, see
/// <https://cloud.google.com/appengine/docs/admin-api/>
///
/// Create an instance of [AppengineApi] to access these resources:
///
/// - [AppsResource]
/// - [AppsAuthorizedCertificatesResource]
/// - [AppsAuthorizedDomainsResource]
/// - [AppsDomainMappingsResource]
/// - [AppsFirewallResource]
/// - [AppsFirewallIngressRulesResource]
/// - [AppsLocationsResource]
/// - [AppsOperationsResource]
/// - [AppsServicesResource]
/// - [AppsServicesVersionsResource]
/// - [AppsServicesVersionsInstancesResource]
library appengine.v1;
import 'dart:async' as async;
import 'dart:convert' as convert;
import 'dart:core' as core;
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
import 'package:http/http.dart' as http;
import '../src/user_agent.dart';
export 'package:_discoveryapis_commons/_discoveryapis_commons.dart'
show ApiRequestError, DetailedApiRequestError;
/// Provisions and manages developers' App Engine applications.
class AppengineApi {
/// View and manage your applications deployed on Google App Engine
static const appengineAdminScope =
'https://www.googleapis.com/auth/appengine.admin';
/// View and manage your data across Google Cloud Platform services
static const cloudPlatformScope =
'https://www.googleapis.com/auth/cloud-platform';
/// View your data across Google Cloud Platform services
static const cloudPlatformReadOnlyScope =
'https://www.googleapis.com/auth/cloud-platform.read-only';
final commons.ApiRequester _requester;
AppsResource get apps => AppsResource(_requester);
AppengineApi(http.Client client,
{core.String rootUrl = 'https://appengine.googleapis.com/',
core.String servicePath = ''})
: _requester =
commons.ApiRequester(client, rootUrl, servicePath, userAgent);
}
class AppsResource {
final commons.ApiRequester _requester;
AppsAuthorizedCertificatesResource get authorizedCertificates =>
AppsAuthorizedCertificatesResource(_requester);
AppsAuthorizedDomainsResource get authorizedDomains =>
AppsAuthorizedDomainsResource(_requester);
AppsDomainMappingsResource get domainMappings =>
AppsDomainMappingsResource(_requester);
AppsFirewallResource get firewall => AppsFirewallResource(_requester);
AppsLocationsResource get locations => AppsLocationsResource(_requester);
AppsOperationsResource get operations => AppsOperationsResource(_requester);
AppsServicesResource get services => AppsServicesResource(_requester);
AppsResource(commons.ApiRequester client) : _requester = client;
/// Creates an App Engine application for a Google Cloud Platform project.
///
/// Required fields: id - The ID of the target Cloud Platform project.
/// location - The region (https://cloud.google.com/appengine/docs/locations)
/// where you want the App Engine application located.For more information
/// about App Engine applications, see Managing Projects, Applications, and
/// Billing
/// (https://cloud.google.com/appengine/docs/standard/python/console/).
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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(
Application request, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
const _url = 'v1/apps';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets information about an application.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the Application resource to get.
/// Example: apps/myapp.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' + commons.Escaper.ecapeVariable('$appsId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return Application.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Updates the specified Application resource.
///
/// You can update the following fields: auth_domain - Google authentication
/// domain for controlling user access to the application.
/// default_cookie_expiration - Cookie expiration policy for the application.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the Application resource to update.
/// Example: apps/myapp.
///
/// [updateMask] - Standard field mask for the set of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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(
Application request,
core.String appsId, {
core.String? updateMask,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (updateMask != null) 'updateMask': [updateMask],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' + commons.Escaper.ecapeVariable('$appsId');
final _response = await _requester.request(
_url,
'PATCH',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Recreates the required App Engine features for the specified App Engine
/// application, for example a Cloud Storage bucket or App Engine service
/// account.
///
/// Use this method if you receive an error message about a missing feature,
/// for example, Error retrieving the App Engine service account. If you have
/// deleted your App Engine service account, this will not be able to recreate
/// it. Instead, you should attempt to use the IAM undelete API if possible at
/// https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete?apix_params=%7B"name"%3A"projects%2F-%2FserviceAccounts%2Funique_id"%2C"resource"%3A%7B%7D%7D
/// . If the deletion was recent, the numeric ID can be found in the Cloud
/// Console Activity Log.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the application to repair. Example:
/// apps/myapp
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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> repair(
RepairApplicationRequest request,
core.String appsId, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url =
'v1/apps/' + commons.Escaper.ecapeVariable('$appsId') + ':repair';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
}
class AppsAuthorizedCertificatesResource {
final commons.ApiRequester _requester;
AppsAuthorizedCertificatesResource(commons.ApiRequester client)
: _requester = client;
/// Uploads the specified SSL certificate.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Application resource.
/// Example: apps/myapp.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [AuthorizedCertificate].
///
/// 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<AuthorizedCertificate> create(
AuthorizedCertificate request,
core.String appsId, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/authorizedCertificates';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return AuthorizedCertificate.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Deletes the specified SSL certificate.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource to delete. Example:
/// apps/myapp/authorizedCertificates/12345.
///
/// [authorizedCertificatesId] - Part of `name`. See documentation of
/// `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Empty].
///
/// 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<Empty> delete(
core.String appsId,
core.String authorizedCertificatesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/authorizedCertificates/' +
commons.Escaper.ecapeVariable('$authorizedCertificatesId');
final _response = await _requester.request(
_url,
'DELETE',
queryParams: _queryParams,
);
return Empty.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets the specified SSL certificate.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/authorizedCertificates/12345.
///
/// [authorizedCertificatesId] - Part of `name`. See documentation of
/// `appsId`.
///
/// [view] - Controls the set of fields returned in the GET response.
/// Possible string values are:
/// - "BASIC_CERTIFICATE" : Basic certificate information, including
/// applicable domains and expiration date.
/// - "FULL_CERTIFICATE" : The information from BASIC_CERTIFICATE, plus
/// detailed information on the domain mappings that have this certificate
/// mapped.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [AuthorizedCertificate].
///
/// 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<AuthorizedCertificate> get(
core.String appsId,
core.String authorizedCertificatesId, {
core.String? view,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (view != null) 'view': [view],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/authorizedCertificates/' +
commons.Escaper.ecapeVariable('$authorizedCertificatesId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return AuthorizedCertificate.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Lists all SSL certificates the user is authorized to administer.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Application resource.
/// Example: apps/myapp.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [view] - Controls the set of fields returned in the LIST response.
/// Possible string values are:
/// - "BASIC_CERTIFICATE" : Basic certificate information, including
/// applicable domains and expiration date.
/// - "FULL_CERTIFICATE" : The information from BASIC_CERTIFICATE, plus
/// detailed information on the domain mappings that have this certificate
/// mapped.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListAuthorizedCertificatesResponse].
///
/// 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<ListAuthorizedCertificatesResponse> list(
core.String appsId, {
core.int? pageSize,
core.String? pageToken,
core.String? view,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if (view != null) 'view': [view],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/authorizedCertificates';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListAuthorizedCertificatesResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Updates the specified SSL certificate.
///
/// To renew a certificate and maintain its existing domain mappings, update
/// certificate_data with a new certificate. The new certificate must be
/// applicable to the same domains as the original certificate. The
/// certificate display_name may also be updated.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource to update. Example:
/// apps/myapp/authorizedCertificates/12345.
///
/// [authorizedCertificatesId] - Part of `name`. See documentation of
/// `appsId`.
///
/// [updateMask] - Standard field mask for the set of fields to be updated.
/// Updates are only supported on the certificate_raw_data and display_name
/// fields.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [AuthorizedCertificate].
///
/// 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<AuthorizedCertificate> patch(
AuthorizedCertificate request,
core.String appsId,
core.String authorizedCertificatesId, {
core.String? updateMask,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (updateMask != null) 'updateMask': [updateMask],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/authorizedCertificates/' +
commons.Escaper.ecapeVariable('$authorizedCertificatesId');
final _response = await _requester.request(
_url,
'PATCH',
body: _body,
queryParams: _queryParams,
);
return AuthorizedCertificate.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
}
class AppsAuthorizedDomainsResource {
final commons.ApiRequester _requester;
AppsAuthorizedDomainsResource(commons.ApiRequester client)
: _requester = client;
/// Lists all domains the user is authorized to administer.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Application resource.
/// Example: apps/myapp.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListAuthorizedDomainsResponse].
///
/// 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<ListAuthorizedDomainsResponse> list(
core.String appsId, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/authorizedDomains';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListAuthorizedDomainsResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
}
class AppsDomainMappingsResource {
final commons.ApiRequester _requester;
AppsDomainMappingsResource(commons.ApiRequester client) : _requester = client;
/// Maps a domain to an application.
///
/// A user must be authorized to administer a domain in order to map it to an
/// application. For a list of available authorized domains, see
/// AuthorizedDomains.ListAuthorizedDomains.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Application resource.
/// Example: apps/myapp.
///
/// [overrideStrategy] - Whether the domain creation should override any
/// existing mappings for this domain. By default, overrides are rejected.
/// Possible string values are:
/// - "UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY" : Strategy unspecified. Defaults
/// to STRICT.
/// - "STRICT" : Overrides not allowed. If a mapping already exists for the
/// specified domain, the request will return an ALREADY_EXISTS (409).
/// - "OVERRIDE" : Overrides allowed. If a mapping already exists for the
/// specified domain, the request will overwrite it. Note that this might stop
/// another Google product from serving. For example, if the domain is mapped
/// to another App Engine application, that app will no longer serve from that
/// domain.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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(
DomainMapping request,
core.String appsId, {
core.String? overrideStrategy,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (overrideStrategy != null) 'overrideStrategy': [overrideStrategy],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/domainMappings';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Deletes the specified domain mapping.
///
/// A user must be authorized to administer the associated domain in order to
/// delete a DomainMapping resource.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource to delete. Example:
/// apps/myapp/domainMappings/example.com.
///
/// [domainMappingsId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 domainMappingsId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/domainMappings/' +
commons.Escaper.ecapeVariable('$domainMappingsId');
final _response = await _requester.request(
_url,
'DELETE',
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets the specified domain mapping.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/domainMappings/example.com.
///
/// [domainMappingsId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [DomainMapping].
///
/// 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<DomainMapping> get(
core.String appsId,
core.String domainMappingsId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/domainMappings/' +
commons.Escaper.ecapeVariable('$domainMappingsId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return DomainMapping.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Lists the domain mappings on an application.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Application resource.
/// Example: apps/myapp.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListDomainMappingsResponse].
///
/// 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<ListDomainMappingsResponse> list(
core.String appsId, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/domainMappings';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListDomainMappingsResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Updates the specified domain mapping.
///
/// To map an SSL certificate to a domain mapping, update certificate_id to
/// point to an AuthorizedCertificate resource. A user must be authorized to
/// administer the associated domain in order to update a DomainMapping
/// resource.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource to update. Example:
/// apps/myapp/domainMappings/example.com.
///
/// [domainMappingsId] - Part of `name`. See documentation of `appsId`.
///
/// [updateMask] - Standard field mask for the set of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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(
DomainMapping request,
core.String appsId,
core.String domainMappingsId, {
core.String? updateMask,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (updateMask != null) 'updateMask': [updateMask],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/domainMappings/' +
commons.Escaper.ecapeVariable('$domainMappingsId');
final _response = await _requester.request(
_url,
'PATCH',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
}
class AppsFirewallResource {
final commons.ApiRequester _requester;
AppsFirewallIngressRulesResource get ingressRules =>
AppsFirewallIngressRulesResource(_requester);
AppsFirewallResource(commons.ApiRequester client) : _requester = client;
}
class AppsFirewallIngressRulesResource {
final commons.ApiRequester _requester;
AppsFirewallIngressRulesResource(commons.ApiRequester client)
: _requester = client;
/// Replaces the entire firewall ruleset in one bulk operation.
///
/// This overrides and replaces the rules of an existing firewall with the new
/// rules.If the final rule does not match traffic with the '*' wildcard IP
/// range, then an "allow all" rule is explicitly added to the end of the
/// list.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the Firewall collection to set.
/// Example: apps/myapp/firewall/ingressRules.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [BatchUpdateIngressRulesResponse].
///
/// 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<BatchUpdateIngressRulesResponse> batchUpdate(
BatchUpdateIngressRulesRequest request,
core.String appsId, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/firewall/ingressRules:batchUpdate';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return BatchUpdateIngressRulesResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Creates a firewall rule for the application.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Firewall collection in
/// which to create a new rule. Example: apps/myapp/firewall/ingressRules.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [FirewallRule].
///
/// 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<FirewallRule> create(
FirewallRule request,
core.String appsId, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/firewall/ingressRules';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return FirewallRule.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Deletes the specified firewall rule.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the Firewall resource to delete.
/// Example: apps/myapp/firewall/ingressRules/100.
///
/// [ingressRulesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Empty].
///
/// 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<Empty> delete(
core.String appsId,
core.String ingressRulesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/firewall/ingressRules/' +
commons.Escaper.ecapeVariable('$ingressRulesId');
final _response = await _requester.request(
_url,
'DELETE',
queryParams: _queryParams,
);
return Empty.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets the specified firewall rule.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the Firewall resource to retrieve.
/// Example: apps/myapp/firewall/ingressRules/100.
///
/// [ingressRulesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [FirewallRule].
///
/// 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<FirewallRule> get(
core.String appsId,
core.String ingressRulesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/firewall/ingressRules/' +
commons.Escaper.ecapeVariable('$ingressRulesId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return FirewallRule.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Lists the firewall rules of an application.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the Firewall collection to retrieve.
/// Example: apps/myapp/firewall/ingressRules.
///
/// [matchingAddress] - A valid IP Address. If set, only rules matching this
/// address will be returned. The first returned rule will be the rule that
/// fires on requests from this IP.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListIngressRulesResponse].
///
/// 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<ListIngressRulesResponse> list(
core.String appsId, {
core.String? matchingAddress,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (matchingAddress != null) 'matchingAddress': [matchingAddress],
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/firewall/ingressRules';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListIngressRulesResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Updates the specified firewall rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the Firewall resource to update.
/// Example: apps/myapp/firewall/ingressRules/100.
///
/// [ingressRulesId] - Part of `name`. See documentation of `appsId`.
///
/// [updateMask] - Standard field mask for the set of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [FirewallRule].
///
/// 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<FirewallRule> patch(
FirewallRule request,
core.String appsId,
core.String ingressRulesId, {
core.String? updateMask,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (updateMask != null) 'updateMask': [updateMask],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/firewall/ingressRules/' +
commons.Escaper.ecapeVariable('$ingressRulesId');
final _response = await _requester.request(
_url,
'PATCH',
body: _body,
queryParams: _queryParams,
);
return FirewallRule.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
}
class AppsLocationsResource {
final commons.ApiRequester _requester;
AppsLocationsResource(commons.ApiRequester client) : _requester = client;
/// Gets information about a location.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Resource name for the location.
///
/// [locationsId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Location].
///
/// 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<Location> get(
core.String appsId,
core.String locationsId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/locations/' +
commons.Escaper.ecapeVariable('$locationsId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return Location.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Lists information about the supported locations for this service.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. The resource that owns the locations
/// collection, if applicable.
///
/// [filter] - The standard list filter.
///
/// [pageSize] - The standard list page size.
///
/// [pageToken] - The standard list page token.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListLocationsResponse].
///
/// 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<ListLocationsResponse> list(
core.String appsId, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (filter != null) 'filter': [filter],
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url =
'v1/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/locations';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListLocationsResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
}
class AppsOperationsResource {
final commons.ApiRequester _requester;
AppsOperationsResource(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`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/operations/' +
commons.Escaper.ecapeVariable('$operationsId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// 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 allows API services to override the binding to use
/// different resource name schemes, such as users / * /operations. To
/// override the binding, API services can add a binding such as
/// "/v1/{name=users / * }/operations" to their service configuration. For
/// backwards compatibility, the default name includes the operations
/// collection id, however overriding users must ensure the name binding is
/// the parent resource, without the operations collection id.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. The name of the operation's parent resource.
///
/// [filter] - The standard list filter.
///
/// [pageSize] - The standard list page size.
///
/// [pageToken] - The standard list page token.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (filter != null) 'filter': [filter],
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url =
'v1/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/operations';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListOperationsResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
}
class AppsServicesResource {
final commons.ApiRequester _requester;
AppsServicesVersionsResource get versions =>
AppsServicesVersionsResource(_requester);
AppsServicesResource(commons.ApiRequester client) : _requester = client;
/// Deletes the specified service and all enclosed versions.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 servicesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId');
final _response = await _requester.request(
_url,
'DELETE',
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets the current configuration of the specified service.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Service].
///
/// 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<Service> get(
core.String appsId,
core.String servicesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return Service.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Lists all the services in the application.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Application resource.
/// Example: apps/myapp.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListServicesResponse].
///
/// 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<ListServicesResponse> list(
core.String appsId, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url =
'v1/apps/' + commons.Escaper.ecapeVariable('$appsId') + '/services';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListServicesResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Updates the configuration of the specified service.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource to update. Example:
/// apps/myapp/services/default.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [migrateTraffic] - Set to true to gradually shift traffic to one or more
/// versions that you specify. By default, traffic is shifted immediately. For
/// gradual traffic migration, the target versions must be located within
/// instances that are configured for both warmup requests
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#InboundServiceType)
/// and automatic scaling
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#AutomaticScaling).
/// You must specify the shardBy
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services#ShardBy)
/// field in the Service resource. Gradual traffic migration is not supported
/// in the App Engine flexible environment. For examples, see Migrating and
/// Splitting Traffic
/// (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
///
/// [updateMask] - Standard field mask for the set of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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(
Service request,
core.String appsId,
core.String servicesId, {
core.bool? migrateTraffic,
core.String? updateMask,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (migrateTraffic != null) 'migrateTraffic': ['${migrateTraffic}'],
if (updateMask != null) 'updateMask': [updateMask],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId');
final _response = await _requester.request(
_url,
'PATCH',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
}
class AppsServicesVersionsResource {
final commons.ApiRequester _requester;
AppsServicesVersionsInstancesResource get instances =>
AppsServicesVersionsInstancesResource(_requester);
AppsServicesVersionsResource(commons.ApiRequester client)
: _requester = client;
/// Deploys code and resource files to a new version.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent resource to create this
/// version under. Example: apps/myapp/services/default.
///
/// [servicesId] - Part of `parent`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 servicesId, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Deletes an existing Version resource.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default/versions/v1.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [versionsId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 servicesId,
core.String versionsId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId');
final _response = await _requester.request(
_url,
'DELETE',
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets the specified Version resource.
///
/// By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW
/// parameter to get the full resource.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default/versions/v1.
///
/// [servicesId] - 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" : Basic version information including scaling and inbound
/// services, but not detailed deployment information.
/// - "FULL" : The information from BASIC, plus detailed information about the
/// deployment. This format is required when creating resources, but is not
/// returned in Get or List by default.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 servicesId,
core.String versionsId, {
core.String? view,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (view != null) 'view': [view],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return Version.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Lists the versions of a service.
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Service resource. Example:
/// apps/myapp/services/default.
///
/// [servicesId] - Part of `parent`. See documentation of `appsId`.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [view] - Controls the set of fields returned in the List response.
/// Possible string values are:
/// - "BASIC" : Basic version information including scaling and inbound
/// services, but not detailed deployment information.
/// - "FULL" : The information from BASIC, plus detailed information about the
/// deployment. This format is required when creating resources, but is not
/// returned in Get or List by default.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 servicesId, {
core.int? pageSize,
core.String? pageToken,
core.String? view,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if (view != null) 'view': [view],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListVersionsResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
/// Updates the specified Version resource.
///
/// You can specify the following fields depending on the App Engine
/// environment and type of scaling that the version resource uses:Standard
/// environment instance_class
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class)automatic
/// scaling in the standard environment: automatic_scaling.min_idle_instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
/// automatic_scaling.max_idle_instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
/// automaticScaling.standard_scheduler_settings.max_instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
/// automaticScaling.standard_scheduler_settings.min_instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
/// automaticScaling.standard_scheduler_settings.target_cpu_utilization
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
/// automaticScaling.standard_scheduler_settings.target_throughput_utilization
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)basic
/// scaling or manual scaling in the standard environment: serving_status
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status)
/// manual_scaling.instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#manualscaling)Flexible
/// environment serving_status
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status)automatic
/// scaling in the flexible environment: automatic_scaling.min_total_instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
/// automatic_scaling.max_total_instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
/// automatic_scaling.cool_down_period_sec
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
/// automatic_scaling.cpu_utilization.target_utilization
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)manual
/// scaling in the flexible environment: manual_scaling.instances
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#manualscaling)
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource to update. Example:
/// apps/myapp/services/default/versions/1.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [versionsId] - Part of `name`. See documentation of `appsId`.
///
/// [updateMask] - Standard field mask for the set of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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(
Version request,
core.String appsId,
core.String servicesId,
core.String versionsId, {
core.String? updateMask,
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if (updateMask != null) 'updateMask': [updateMask],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId');
final _response = await _requester.request(
_url,
'PATCH',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
}
class AppsServicesVersionsInstancesResource {
final commons.ApiRequester _requester;
AppsServicesVersionsInstancesResource(commons.ApiRequester client)
: _requester = client;
/// Enables debugging on a VM instance.
///
/// This allows you to use the SSH command to connect to the virtual machine
/// where the instance lives. While in "debug mode", the instance continues to
/// serve live traffic. You should delete the instance when you are done
/// debugging and then allow the system to take over and determine if another
/// instance should be started.Only applicable for instances in App Engine
/// flexible environment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default/versions/v1/instances/instance-1.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [versionsId] - Part of `name`. See documentation of `appsId`.
///
/// [instancesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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> debug(
DebugInstanceRequest request,
core.String appsId,
core.String servicesId,
core.String versionsId,
core.String instancesId, {
core.String? $fields,
}) async {
final _body = convert.json.encode(request.toJson());
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId') +
'/instances/' +
commons.Escaper.ecapeVariable('$instancesId') +
':debug';
final _response = await _requester.request(
_url,
'POST',
body: _body,
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Stops a running instance.The instance might be automatically recreated
/// based on the scaling settings of the version.
///
/// For more information, see "How Instances are Managed" (standard
/// environment
/// (https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed)
/// | flexible environment
/// (https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)).To
/// ensure that instances are not re-created and avoid getting billed, you can
/// stop all instances within the target version by changing the serving
/// status of the version to STOPPED with the apps.services.versions.patch
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch)
/// method.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default/versions/v1/instances/instance-1.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [versionsId] - Part of `name`. See documentation of `appsId`.
///
/// [instancesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// 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 servicesId,
core.String versionsId,
core.String instancesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId') +
'/instances/' +
commons.Escaper.ecapeVariable('$instancesId');
final _response = await _requester.request(
_url,
'DELETE',
queryParams: _queryParams,
);
return Operation.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Gets instance information.
///
/// Request parameters:
///
/// [appsId] - Part of `name`. Name of the resource requested. Example:
/// apps/myapp/services/default/versions/v1/instances/instance-1.
///
/// [servicesId] - Part of `name`. See documentation of `appsId`.
///
/// [versionsId] - Part of `name`. See documentation of `appsId`.
///
/// [instancesId] - Part of `name`. See documentation of `appsId`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Instance].
///
/// 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<Instance> get(
core.String appsId,
core.String servicesId,
core.String versionsId,
core.String instancesId, {
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId') +
'/instances/' +
commons.Escaper.ecapeVariable('$instancesId');
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return Instance.fromJson(_response as core.Map<core.String, core.dynamic>);
}
/// Lists the instances of a version.Tip: To aggregate details about instances
/// over time, see the Stackdriver Monitoring API
/// (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
///
/// Request parameters:
///
/// [appsId] - Part of `parent`. Name of the parent Version resource. Example:
/// apps/myapp/services/default/versions/v1.
///
/// [servicesId] - Part of `parent`. See documentation of `appsId`.
///
/// [versionsId] - Part of `parent`. See documentation of `appsId`.
///
/// [pageSize] - Maximum results to return per page.
///
/// [pageToken] - Continuation token for fetching the next page of results.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [ListInstancesResponse].
///
/// 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<ListInstancesResponse> list(
core.String appsId,
core.String servicesId,
core.String versionsId, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final _queryParams = <core.String, core.List<core.String>>{
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
final _url = 'v1/apps/' +
commons.Escaper.ecapeVariable('$appsId') +
'/services/' +
commons.Escaper.ecapeVariable('$servicesId') +
'/versions/' +
commons.Escaper.ecapeVariable('$versionsId') +
'/instances';
final _response = await _requester.request(
_url,
'GET',
queryParams: _queryParams,
);
return ListInstancesResponse.fromJson(
_response as core.Map<core.String, core.dynamic>);
}
}
/// Google Cloud Endpoints
/// (https://cloud.google.com/appengine/docs/python/endpoints/) configuration
/// for API handlers.
class ApiConfigHandler {
/// Action to take when users access resources that require authentication.
///
/// Defaults to redirect.
/// Possible string values are:
/// - "AUTH_FAIL_ACTION_UNSPECIFIED" : Not specified.
/// AUTH_FAIL_ACTION_REDIRECT is assumed.
/// - "AUTH_FAIL_ACTION_REDIRECT" : Redirects user to "accounts.google.com".
/// The user is redirected back to the application URL after signing in or
/// creating an account.
/// - "AUTH_FAIL_ACTION_UNAUTHORIZED" : Rejects request with a 401 HTTP status
/// code and an error message.
core.String? authFailAction;
/// Level of login required to access this resource.
///
/// Defaults to optional.
/// Possible string values are:
/// - "LOGIN_UNSPECIFIED" : Not specified. LOGIN_OPTIONAL is assumed.
/// - "LOGIN_OPTIONAL" : Does not require that the user is signed in.
/// - "LOGIN_ADMIN" : If the user is not signed in, the auth_fail_action is
/// taken. In addition, if the user is not an administrator for the
/// application, they are given an error message regardless of
/// auth_fail_action. If the user is an administrator, the handler proceeds.
/// - "LOGIN_REQUIRED" : If the user has signed in, the handler proceeds
/// normally. Otherwise, the auth_fail_action is taken.
core.String? login;
/// Path to the script from the application root directory.
core.String? script;
/// Security (HTTPS) enforcement for this URL.
/// Possible string values are:
/// - "SECURE_UNSPECIFIED" : Not specified.
/// - "SECURE_DEFAULT" : Both HTTP and HTTPS requests with URLs that match the
/// handler succeed without redirects. The application can examine the request
/// to determine which protocol was used, and respond accordingly.
/// - "SECURE_NEVER" : Requests for a URL that match this handler that use
/// HTTPS are automatically redirected to the HTTP equivalent URL.
/// - "SECURE_OPTIONAL" : Both HTTP and HTTPS requests with URLs that match
/// the handler succeed without redirects. The application can examine the
/// request to determine which protocol was used and respond accordingly.
/// - "SECURE_ALWAYS" : Requests for a URL that match this handler that do not
/// use HTTPS are automatically redirected to the HTTPS URL with the same
/// path. Query parameters are reserved for the redirect.
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'] as core.String;
}
if (_json.containsKey('login')) {
login = _json['login'] as core.String;
}
if (_json.containsKey('script')) {
script = _json['script'] as core.String;
}
if (_json.containsKey('securityLevel')) {
securityLevel = _json['securityLevel'] as core.String;
}
if (_json.containsKey('url')) {
url = _json['url'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (authFailAction != null) 'authFailAction': authFailAction!,
if (login != null) 'login': login!,
if (script != null) 'script': script!,
if (securityLevel != null) 'securityLevel': securityLevel!,
if (url != null) 'url': url!,
};
}
/// Uses Google Cloud Endpoints to handle requests.
class ApiEndpointHandler {
/// 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'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (scriptPath != null) 'scriptPath': scriptPath!,
};
}
/// An Application resource contains the top-level configuration of an App
/// Engine application.
class Application {
/// Google Apps authentication domain that controls which users can access
/// this application.Defaults to open access for any Google Account.
core.String? authDomain;
/// Google Cloud Storage bucket that can be used for storing files associated
/// with this application.
///
/// This bucket is associated with the application and can be used by the
/// gcloud deployment commands.@OutputOnly
core.String? codeBucket;
/// The type of the Cloud Firestore or Cloud Datastore database associated
/// with this application.
/// Possible string values are:
/// - "DATABASE_TYPE_UNSPECIFIED" : Database type is unspecified.
/// - "CLOUD_DATASTORE" : Cloud Datastore
/// - "CLOUD_FIRESTORE" : Cloud Firestore Native
/// - "CLOUD_DATASTORE_COMPATIBILITY" : Cloud Firestore in Datastore Mode
core.String? databaseType;
/// Google Cloud Storage bucket that can be used by this application to store
/// content.@OutputOnly
core.String? defaultBucket;
/// Cookie expiration policy for this application.
core.String? defaultCookieExpiration;
/// Hostname used to reach this application, as resolved by App
/// Engine.@OutputOnly
core.String? defaultHostname;
/// HTTP path dispatch rules for requests to the application that do not
/// explicitly target a service or version.
///
/// Rules are order-dependent. Up to 20 dispatch rules can be supported.
core.List<UrlDispatchRule>? dispatchRules;
/// The feature specific settings to be used in the application.
FeatureSettings? featureSettings;
/// The Google Container Registry domain used for storing managed build docker
/// images for this application.
core.String? gcrDomain;
IdentityAwareProxy? iap;
/// Identifier of the Application resource.
///
/// This identifier is equivalent to the project ID of the Google Cloud
/// Platform project where you want to deploy your application. Example:
/// myapp.
core.String? id;
/// Location from which this application runs.
///
/// Application instances run out of the data centers in the specified
/// location, which is also where all of the application's end user content is
/// stored.Defaults to us-central.View the list of supported locations
/// (https://cloud.google.com/appengine/docs/locations).
core.String? locationId;
/// Full path to the Application resource in the API.
///
/// Example: apps/myapp.@OutputOnly
core.String? name;
/// Serving status of this application.
/// Possible string values are:
/// - "UNSPECIFIED" : Serving status is unspecified.
/// - "SERVING" : Application is serving.
/// - "USER_DISABLED" : Application has been disabled by the user.
/// - "SYSTEM_DISABLED" : Application has been disabled by the system.
core.String? servingStatus;
Application();
Application.fromJson(core.Map _json) {
if (_json.containsKey('authDomain')) {
authDomain = _json['authDomain'] as core.String;
}
if (_json.containsKey('codeBucket')) {
codeBucket = _json['codeBucket'] as core.String;
}
if (_json.containsKey('databaseType')) {
databaseType = _json['databaseType'] as core.String;
}
if (_json.containsKey('defaultBucket')) {
defaultBucket = _json['defaultBucket'] as core.String;
}
if (_json.containsKey('defaultCookieExpiration')) {
defaultCookieExpiration = _json['defaultCookieExpiration'] as core.String;
}
if (_json.containsKey('defaultHostname')) {
defaultHostname = _json['defaultHostname'] as core.String;
}
if (_json.containsKey('dispatchRules')) {
dispatchRules = (_json['dispatchRules'] as core.List)
.map<UrlDispatchRule>((value) => UrlDispatchRule.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('featureSettings')) {
featureSettings = FeatureSettings.fromJson(
_json['featureSettings'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('gcrDomain')) {
gcrDomain = _json['gcrDomain'] as core.String;
}
if (_json.containsKey('iap')) {
iap = IdentityAwareProxy.fromJson(
_json['iap'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('locationId')) {
locationId = _json['locationId'] as core.String;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('servingStatus')) {
servingStatus = _json['servingStatus'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (authDomain != null) 'authDomain': authDomain!,
if (codeBucket != null) 'codeBucket': codeBucket!,
if (databaseType != null) 'databaseType': databaseType!,
if (defaultBucket != null) 'defaultBucket': defaultBucket!,
if (defaultCookieExpiration != null)
'defaultCookieExpiration': defaultCookieExpiration!,
if (defaultHostname != null) 'defaultHostname': defaultHostname!,
if (dispatchRules != null)
'dispatchRules':
dispatchRules!.map((value) => value.toJson()).toList(),
if (featureSettings != null)
'featureSettings': featureSettings!.toJson(),
if (gcrDomain != null) 'gcrDomain': gcrDomain!,
if (iap != null) 'iap': iap!.toJson(),
if (id != null) 'id': id!,
if (locationId != null) 'locationId': locationId!,
if (name != null) 'name': name!,
if (servingStatus != null) 'servingStatus': servingStatus!,
};
}
/// An SSL certificate that a user has been authorized to administer.
///
/// A user is authorized to administer any certificate that applies to one of
/// their authorized domains.
class AuthorizedCertificate {
/// The SSL certificate serving the AuthorizedCertificate resource.
///
/// This must be obtained independently from a certificate authority.
CertificateRawData? certificateRawData;
/// The user-specified display name of the certificate.
///
/// This is not guaranteed to be unique. Example: My Certificate.
core.String? displayName;
/// Aggregate count of the domain mappings with this certificate mapped.
///
/// This count includes domain mappings on applications for which the user
/// does not have VIEWER permissions.Only returned by GET or LIST requests
/// when specifically requested by the view=FULL_CERTIFICATE
/// option.@OutputOnly
core.int? domainMappingsCount;
/// Topmost applicable domains of this certificate.
///
/// This certificate applies to these domains and their subdomains. Example:
/// example.com.@OutputOnly
core.List<core.String>? domainNames;
/// The time when this certificate expires.
///
/// To update the renewal time on this certificate, upload an SSL certificate
/// with a different expiration time using
/// AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
core.String? expireTime;
/// Relative name of the certificate.
///
/// This is a unique value autogenerated on AuthorizedCertificate resource
/// creation. Example: 12345.@OutputOnly
core.String? id;
/// Only applicable if this certificate is managed by App Engine.
///
/// Managed certificates are tied to the lifecycle of a DomainMapping and
/// cannot be updated or deleted via the AuthorizedCertificates API. If this
/// certificate is manually administered by the user, this field will be
/// empty.@OutputOnly
ManagedCertificate? managedCertificate;
/// Full path to the AuthorizedCertificate resource in the API.
///
/// Example: apps/myapp/authorizedCertificates/12345.@OutputOnly
core.String? name;
/// The full paths to user visible Domain Mapping resources that have this
/// certificate mapped.
///
/// Example: apps/myapp/domainMappings/example.com.This may not represent the
/// full list of mapped domain mappings if the user does not have VIEWER
/// permissions on all of the applications that have this certificate mapped.
/// See domain_mappings_count for a complete count.Only returned by GET or
/// LIST requests when specifically requested by the view=FULL_CERTIFICATE
/// option.@OutputOnly
core.List<core.String>? visibleDomainMappings;
AuthorizedCertificate();
AuthorizedCertificate.fromJson(core.Map _json) {
if (_json.containsKey('certificateRawData')) {
certificateRawData = CertificateRawData.fromJson(
_json['certificateRawData'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('displayName')) {
displayName = _json['displayName'] as core.String;
}
if (_json.containsKey('domainMappingsCount')) {
domainMappingsCount = _json['domainMappingsCount'] as core.int;
}
if (_json.containsKey('domainNames')) {
domainNames = (_json['domainNames'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
if (_json.containsKey('expireTime')) {
expireTime = _json['expireTime'] as core.String;
}
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('managedCertificate')) {
managedCertificate = ManagedCertificate.fromJson(
_json['managedCertificate'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('visibleDomainMappings')) {
visibleDomainMappings = (_json['visibleDomainMappings'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (certificateRawData != null)
'certificateRawData': certificateRawData!.toJson(),
if (displayName != null) 'displayName': displayName!,
if (domainMappingsCount != null)
'domainMappingsCount': domainMappingsCount!,
if (domainNames != null) 'domainNames': domainNames!,
if (expireTime != null) 'expireTime': expireTime!,
if (id != null) 'id': id!,
if (managedCertificate != null)
'managedCertificate': managedCertificate!.toJson(),
if (name != null) 'name': name!,
if (visibleDomainMappings != null)
'visibleDomainMappings': visibleDomainMappings!,
};
}
/// A domain that a user has been authorized to administer.
///
/// To authorize use of a domain, verify ownership via Webmaster Central
/// (https://www.google.com/webmasters/verification/home).
class AuthorizedDomain {
/// Fully qualified domain name of the domain authorized for use.
///
/// Example: example.com.
core.String? id;
/// Full path to the AuthorizedDomain resource in the API.
///
/// Example: apps/myapp/authorizedDomains/example.com.@OutputOnly
core.String? name;
AuthorizedDomain();
AuthorizedDomain.fromJson(core.Map _json) {
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (id != null) 'id': id!,
if (name != null) 'name': name!,
};
}
/// Automatic scaling is based on request rate, response latencies, and other
/// application metrics.
class AutomaticScaling {
/// The time period that the Autoscaler
/// (https://cloud.google.com/compute/docs/autoscaler/) should wait before it
/// starts collecting information from a new instance.
///
/// This prevents the autoscaler from collecting information when the instance
/// is initializing, during which the collected usage would not be reliable.
/// Only applicable in the App Engine flexible environment.
core.String? coolDownPeriod;
/// Target scaling by CPU usage.
CpuUtilization? cpuUtilization;
/// Target scaling by disk usage.
DiskUtilization? diskUtilization;
/// Number of concurrent requests an automatic scaling instance can accept
/// before the scheduler spawns a new instance.Defaults to a runtime-specific
/// value.
core.int? maxConcurrentRequests;
/// Maximum number of idle instances that should be maintained for this
/// version.
core.int? maxIdleInstances;
/// Maximum amount of time that a request should wait in the pending queue
/// before starting a new instance to handle it.
core.String? maxPendingLatency;
/// Maximum number of instances that should be started to handle requests for
/// this version.
core.int? maxTotalInstances;
/// Minimum number of idle instances that should be maintained for this
/// version.
///
/// Only applicable for the default version of a service.
core.int? minIdleInstances;
/// Minimum amount of time a request should wait in the pending queue before
/// starting a new instance to handle it.
core.String? minPendingLatency;
/// Minimum number of running instances that should be maintained for this
/// version.
core.int? minTotalInstances;
/// Target scaling by network usage.
NetworkUtilization? networkUtilization;
/// Target scaling by request utilization.
RequestUtilization? requestUtilization;
/// Scheduler settings for standard environment.
StandardSchedulerSettings? standardSchedulerSettings;
AutomaticScaling();
AutomaticScaling.fromJson(core.Map _json) {
if (_json.containsKey('coolDownPeriod')) {
coolDownPeriod = _json['coolDownPeriod'] as core.String;
}
if (_json.containsKey('cpuUtilization')) {
cpuUtilization = CpuUtilization.fromJson(
_json['cpuUtilization'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('diskUtilization')) {
diskUtilization = DiskUtilization.fromJson(
_json['diskUtilization'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('maxConcurrentRequests')) {
maxConcurrentRequests = _json['maxConcurrentRequests'] as core.int;
}
if (_json.containsKey('maxIdleInstances')) {
maxIdleInstances = _json['maxIdleInstances'] as core.int;
}
if (_json.containsKey('maxPendingLatency')) {
maxPendingLatency = _json['maxPendingLatency'] as core.String;
}
if (_json.containsKey('maxTotalInstances')) {
maxTotalInstances = _json['maxTotalInstances'] as core.int;
}
if (_json.containsKey('minIdleInstances')) {
minIdleInstances = _json['minIdleInstances'] as core.int;
}
if (_json.containsKey('minPendingLatency')) {
minPendingLatency = _json['minPendingLatency'] as core.String;
}
if (_json.containsKey('minTotalInstances')) {
minTotalInstances = _json['minTotalInstances'] as core.int;
}
if (_json.containsKey('networkUtilization')) {
networkUtilization = NetworkUtilization.fromJson(
_json['networkUtilization'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('requestUtilization')) {
requestUtilization = RequestUtilization.fromJson(
_json['requestUtilization'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('standardSchedulerSettings')) {
standardSchedulerSettings = StandardSchedulerSettings.fromJson(
_json['standardSchedulerSettings']
as core.Map<core.String, core.dynamic>);
}
}
core.Map<core.String, core.Object?> toJson() => {
if (coolDownPeriod != null) 'coolDownPeriod': coolDownPeriod!,
if (cpuUtilization != null) 'cpuUtilization': cpuUtilization!.toJson(),
if (diskUtilization != null)
'diskUtilization': diskUtilization!.toJson(),
if (maxConcurrentRequests != null)
'maxConcurrentRequests': maxConcurrentRequests!,
if (maxIdleInstances != null) 'maxIdleInstances': maxIdleInstances!,
if (maxPendingLatency != null) 'maxPendingLatency': maxPendingLatency!,
if (maxTotalInstances != null) 'maxTotalInstances': maxTotalInstances!,
if (minIdleInstances != null) 'minIdleInstances': minIdleInstances!,
if (minPendingLatency != null) 'minPendingLatency': minPendingLatency!,
if (minTotalInstances != null) 'minTotalInstances': minTotalInstances!,
if (networkUtilization != null)
'networkUtilization': networkUtilization!.toJson(),
if (requestUtilization != null)
'requestUtilization': requestUtilization!.toJson(),
if (standardSchedulerSettings != null)
'standardSchedulerSettings': standardSchedulerSettings!.toJson(),
};
}
/// A service 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 {
/// Duration of time after the last request that an instance must wait before
/// the instance is shut down.
core.String? idleTimeout;
/// Maximum number of instances to create for this version.
core.int? maxInstances;
BasicScaling();
BasicScaling.fromJson(core.Map _json) {
if (_json.containsKey('idleTimeout')) {
idleTimeout = _json['idleTimeout'] as core.String;
}
if (_json.containsKey('maxInstances')) {
maxInstances = _json['maxInstances'] as core.int;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (idleTimeout != null) 'idleTimeout': idleTimeout!,
if (maxInstances != null) 'maxInstances': maxInstances!,
};
}
/// Request message for Firewall.BatchUpdateIngressRules.
class BatchUpdateIngressRulesRequest {
/// A list of FirewallRules to replace the existing set.
core.List<FirewallRule>? ingressRules;
BatchUpdateIngressRulesRequest();
BatchUpdateIngressRulesRequest.fromJson(core.Map _json) {
if (_json.containsKey('ingressRules')) {
ingressRules = (_json['ingressRules'] as core.List)
.map<FirewallRule>((value) => FirewallRule.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (ingressRules != null)
'ingressRules': ingressRules!.map((value) => value.toJson()).toList(),
};
}
/// Response message for Firewall.UpdateAllIngressRules.
class BatchUpdateIngressRulesResponse {
/// The full list of ingress FirewallRules for this application.
core.List<FirewallRule>? ingressRules;
BatchUpdateIngressRulesResponse();
BatchUpdateIngressRulesResponse.fromJson(core.Map _json) {
if (_json.containsKey('ingressRules')) {
ingressRules = (_json['ingressRules'] as core.List)
.map<FirewallRule>((value) => FirewallRule.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (ingressRules != null)
'ingressRules': ingressRules!.map((value) => value.toJson()).toList(),
};
}
/// An SSL certificate obtained from a certificate authority.
class CertificateRawData {
/// Unencrypted PEM encoded RSA private key.
///
/// This field is set once on certificate creation and then encrypted. The key
/// size must be 2048 bits or fewer. Must include the header and footer.
/// Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
/// @InputOnly
core.String? privateKey;
/// PEM encoded x.509 public key certificate.
///
/// This field is set once on certificate creation. Must include the header
/// and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
core.String? publicCertificate;
CertificateRawData();
CertificateRawData.fromJson(core.Map _json) {
if (_json.containsKey('privateKey')) {
privateKey = _json['privateKey'] as core.String;
}
if (_json.containsKey('publicCertificate')) {
publicCertificate = _json['publicCertificate'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (privateKey != null) 'privateKey': privateKey!,
if (publicCertificate != null) 'publicCertificate': publicCertificate!,
};
}
/// Options for the build operations performed as a part of the version
/// deployment.
///
/// Only applicable for App Engine flexible environment when creating a version
/// using source code directly.
class CloudBuildOptions {
/// Path to the yaml file used in deployment, used to determine runtime
/// configuration details.Required for flexible environment builds.See
/// https://cloud.google.com/appengine/docs/standard/python/config/appref for
/// more details.
core.String? appYamlPath;
/// The Cloud Build timeout used as part of any dependent builds performed by
/// version creation.
///
/// Defaults to 10 minutes.
core.String? cloudBuildTimeout;
CloudBuildOptions();
CloudBuildOptions.fromJson(core.Map _json) {
if (_json.containsKey('appYamlPath')) {
appYamlPath = _json['appYamlPath'] as core.String;
}
if (_json.containsKey('cloudBuildTimeout')) {
cloudBuildTimeout = _json['cloudBuildTimeout'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (appYamlPath != null) 'appYamlPath': appYamlPath!,
if (cloudBuildTimeout != null) 'cloudBuildTimeout': cloudBuildTimeout!,
};
}
/// Docker image that is used to create a container and start a VM instance for
/// the version that you deploy.
///
/// Only applicable for instances running in the App Engine flexible
/// environment.
class ContainerInfo {
/// URI to the hosted container image in Google Container Registry.
///
/// The URI must be fully qualified and include a tag or digest. Examples:
/// "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
core.String? image;
ContainerInfo();
ContainerInfo.fromJson(core.Map _json) {
if (_json.containsKey('image')) {
image = _json['image'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (image != null) 'image': image!,
};
}
/// Target scaling by CPU usage.
class CpuUtilization {
/// Period of time over which CPU utilization is calculated.
core.String? aggregationWindowLength;
/// Target CPU utilization ratio to maintain when scaling.
///
/// Must be between 0 and 1.
core.double? targetUtilization;
CpuUtilization();
CpuUtilization.fromJson(core.Map _json) {
if (_json.containsKey('aggregationWindowLength')) {
aggregationWindowLength = _json['aggregationWindowLength'] as core.String;
}
if (_json.containsKey('targetUtilization')) {
targetUtilization = (_json['targetUtilization'] as core.num).toDouble();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (aggregationWindowLength != null)
'aggregationWindowLength': aggregationWindowLength!,
if (targetUtilization != null) 'targetUtilization': targetUtilization!,
};
}
/// Metadata for the given google.longrunning.Operation during a
/// google.appengine.v1.CreateVersionRequest.
class CreateVersionMetadataV1 {
/// The Cloud Build ID if one was created as part of the version create.
///
/// @OutputOnly
core.String? cloudBuildId;
CreateVersionMetadataV1();
CreateVersionMetadataV1.fromJson(core.Map _json) {
if (_json.containsKey('cloudBuildId')) {
cloudBuildId = _json['cloudBuildId'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (cloudBuildId != null) 'cloudBuildId': cloudBuildId!,
};
}
/// Metadata for the given google.longrunning.Operation during a
/// google.appengine.v1alpha.CreateVersionRequest.
class CreateVersionMetadataV1Alpha {
/// The Cloud Build ID if one was created as part of the version create.
///
/// @OutputOnly
core.String? cloudBuildId;
CreateVersionMetadataV1Alpha();
CreateVersionMetadataV1Alpha.fromJson(core.Map _json) {
if (_json.containsKey('cloudBuildId')) {
cloudBuildId = _json['cloudBuildId'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (cloudBuildId != null) 'cloudBuildId': cloudBuildId!,
};
}
/// Metadata for the given google.longrunning.Operation during a
/// google.appengine.v1beta.CreateVersionRequest.
class CreateVersionMetadataV1Beta {
/// The Cloud Build ID if one was created as part of the version create.
///
/// @OutputOnly
core.String? cloudBuildId;
CreateVersionMetadataV1Beta();
CreateVersionMetadataV1Beta.fromJson(core.Map _json) {
if (_json.containsKey('cloudBuildId')) {
cloudBuildId = _json['cloudBuildId'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (cloudBuildId != null) 'cloudBuildId': cloudBuildId!,
};
}
/// Request message for Instances.DebugInstance.
class DebugInstanceRequest {
/// Public SSH key to add to the instance.
///
/// Examples: \[USERNAME\]:ssh-rsa \[KEY_VALUE\] \[USERNAME\]
/// \[USERNAME\]:ssh-rsa \[KEY_VALUE\] google-ssh
/// {"userName":"\[USERNAME\]","expireOn":"\[EXPIRE_TIME\]"}For more
/// information, see Adding and Removing SSH Keys
/// (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
core.String? sshKey;
DebugInstanceRequest();
DebugInstanceRequest.fromJson(core.Map _json) {
if (_json.containsKey('sshKey')) {
sshKey = _json['sshKey'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (sshKey != null) 'sshKey': sshKey!,
};
}
/// Code and application artifacts used to deploy a version to App Engine.
class Deployment {
/// Options for any Google Cloud Build builds created as a part of this
/// deployment.These options will only be used if a new build is created, such
/// as when deploying to the App Engine flexible environment using files or
/// zip.
CloudBuildOptions? cloudBuildOptions;
/// The Docker image for the container that runs the version.
///
/// Only applicable for instances running in the App Engine flexible
/// environment.
ContainerInfo? container;
/// Manifest of the files stored in Google Cloud Storage that are included as
/// part of this version.
///
/// All files must be readable using the credentials supplied with this call.
core.Map<core.String, FileInfo>? files;
/// The zip file for this deployment, if this is a zip deployment.
ZipInfo? zip;
Deployment();
Deployment.fromJson(core.Map _json) {
if (_json.containsKey('cloudBuildOptions')) {
cloudBuildOptions = CloudBuildOptions.fromJson(
_json['cloudBuildOptions'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('container')) {
container = ContainerInfo.fromJson(
_json['container'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('files')) {
files = (_json['files'] as core.Map)
.cast<core.String, core.Map<core.String, core.Object?>>()
.map(
(key, item) => core.MapEntry(
key,
FileInfo.fromJson(item as core.Map<core.String, core.dynamic>),
),
);
}
if (_json.containsKey('zip')) {
zip =
ZipInfo.fromJson(_json['zip'] as core.Map<core.String, core.dynamic>);
}
}
core.Map<core.String, core.Object?> toJson() => {
if (cloudBuildOptions != null)
'cloudBuildOptions': cloudBuildOptions!.toJson(),
if (container != null) 'container': container!.toJson(),
if (files != null)
'files': files!.map((key, item) => core.MapEntry(key, item.toJson())),
if (zip != null) 'zip': zip!.toJson(),
};
}
/// Target scaling by disk usage.
///
/// Only applicable in the App Engine flexible environment.
class DiskUtilization {
/// Target bytes read per second.
core.int? targetReadBytesPerSecond;
/// Target ops read per seconds.
core.int? targetReadOpsPerSecond;
/// Target bytes written per second.
core.int? targetWriteBytesPerSecond;
/// Target ops written per second.
core.int? targetWriteOpsPerSecond;
DiskUtilization();
DiskUtilization.fromJson(core.Map _json) {
if (_json.containsKey('targetReadBytesPerSecond')) {
targetReadBytesPerSecond = _json['targetReadBytesPerSecond'] as core.int;
}
if (_json.containsKey('targetReadOpsPerSecond')) {
targetReadOpsPerSecond = _json['targetReadOpsPerSecond'] as core.int;
}
if (_json.containsKey('targetWriteBytesPerSecond')) {
targetWriteBytesPerSecond =
_json['targetWriteBytesPerSecond'] as core.int;
}
if (_json.containsKey('targetWriteOpsPerSecond')) {
targetWriteOpsPerSecond = _json['targetWriteOpsPerSecond'] as core.int;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (targetReadBytesPerSecond != null)
'targetReadBytesPerSecond': targetReadBytesPerSecond!,
if (targetReadOpsPerSecond != null)
'targetReadOpsPerSecond': targetReadOpsPerSecond!,
if (targetWriteBytesPerSecond != null)
'targetWriteBytesPerSecond': targetWriteBytesPerSecond!,
if (targetWriteOpsPerSecond != null)
'targetWriteOpsPerSecond': targetWriteOpsPerSecond!,
};
}
/// A domain serving an App Engine application.
class DomainMapping {
/// Relative name of the domain serving the application.
///
/// Example: example.com.
core.String? id;
/// Full path to the DomainMapping resource in the API.
///
/// Example: apps/myapp/domainMapping/example.com.@OutputOnly
core.String? name;
/// The resource records required to configure this domain mapping.
///
/// These records must be added to the domain's DNS configuration in order to
/// serve the application via this domain mapping.@OutputOnly
core.List<ResourceRecord>? resourceRecords;
/// SSL configuration for this domain.
///
/// If unconfigured, this domain will not serve with SSL.
SslSettings? sslSettings;
DomainMapping();
DomainMapping.fromJson(core.Map _json) {
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('resourceRecords')) {
resourceRecords = (_json['resourceRecords'] as core.List)
.map<ResourceRecord>((value) => ResourceRecord.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('sslSettings')) {
sslSettings = SslSettings.fromJson(
_json['sslSettings'] as core.Map<core.String, core.dynamic>);
}
}
core.Map<core.String, core.Object?> toJson() => {
if (id != null) 'id': id!,
if (name != null) 'name': name!,
if (resourceRecords != null)
'resourceRecords':
resourceRecords!.map((value) => value.toJson()).toList(),
if (sslSettings != null) 'sslSettings': sslSettings!.toJson(),
};
}
/// A generic empty message that you can re-use to avoid defining duplicated
/// empty messages in your APIs.
///
/// A typical example is to use it as the request or the response type of an API
/// method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns
/// (google.protobuf.Empty); } The JSON representation for Empty is empty JSON
/// object {}.
class Empty {
Empty();
Empty.fromJson(
// ignore: avoid_unused_constructor_parameters
core.Map _json);
core.Map<core.String, core.Object?> toJson() => {};
}
/// Cloud Endpoints (https://cloud.google.com/endpoints) configuration.
///
/// The Endpoints API Service provides tooling for serving Open API and gRPC
/// endpoints via an NGINX proxy. Only valid for App Engine Flexible environment
/// deployments.The fields here refer to the name and configuration ID of a
/// "service" resource in the Service Management API
/// (https://cloud.google.com/service-management/overview).
class EndpointsApiService {
/// Endpoints service configuration ID as specified by the Service Management
/// API.
///
/// For example "2016-09-19r1".By default, the rollout strategy for Endpoints
/// is RolloutStrategy.FIXED. This means that Endpoints starts up with a
/// particular configuration ID. When a new configuration is rolled out,
/// Endpoints must be given the new configuration ID. The config_id field is
/// used to give the configuration ID and is required in this case.Endpoints
/// also has a rollout strategy called RolloutStrategy.MANAGED. When using
/// this, Endpoints fetches the latest configuration and does not need the
/// configuration ID. In this case, config_id must be omitted.
core.String? configId;
/// Enable or disable trace sampling.
///
/// By default, this is set to false for enabled.
core.bool? disableTraceSampling;
/// Endpoints service name which is the name of the "service" resource in the
/// Service Management API.
///
/// For example "myapi.endpoints.myproject.cloud.goog"
core.String? name;
/// Endpoints rollout strategy.
///
/// If FIXED, config_id must be specified. If MANAGED, config_id must be
/// omitted.
/// Possible string values are:
/// - "UNSPECIFIED_ROLLOUT_STRATEGY" : Not specified. Defaults to FIXED.
/// - "FIXED" : Endpoints service configuration ID will be fixed to the
/// configuration ID specified by config_id.
/// - "MANAGED" : Endpoints service configuration ID will be updated with each
/// rollout.
core.String? rolloutStrategy;
EndpointsApiService();
EndpointsApiService.fromJson(core.Map _json) {
if (_json.containsKey('configId')) {
configId = _json['configId'] as core.String;
}
if (_json.containsKey('disableTraceSampling')) {
disableTraceSampling = _json['disableTraceSampling'] as core.bool;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('rolloutStrategy')) {
rolloutStrategy = _json['rolloutStrategy'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (configId != null) 'configId': configId!,
if (disableTraceSampling != null)
'disableTraceSampling': disableTraceSampling!,
if (name != null) 'name': name!,
if (rolloutStrategy != null) 'rolloutStrategy': rolloutStrategy!,
};
}
/// The entrypoint for the application.
class Entrypoint {
/// The format should be a shell command that can be fed to bash -c.
core.String? shell;
Entrypoint();
Entrypoint.fromJson(core.Map _json) {
if (_json.containsKey('shell')) {
shell = _json['shell'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (shell != null) 'shell': shell!,
};
}
/// Custom static error page to be served when an error occurs.
class ErrorHandler {
/// Error condition this handler applies to.
/// Possible string values are:
/// - "ERROR_CODE_UNSPECIFIED" : Not specified. ERROR_CODE_DEFAULT is assumed.
/// - "ERROR_CODE_DEFAULT" : All other error types.
/// - "ERROR_CODE_OVER_QUOTA" : Application has exceeded a resource quota.
/// - "ERROR_CODE_DOS_API_DENIAL" : Client blocked by the application's Denial
/// of Service protection configuration.
/// - "ERROR_CODE_TIMEOUT" : Deadline reached before the application responds.
core.String? errorCode;
/// MIME type of file.
///
/// Defaults to text/html.
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'] as core.String;
}
if (_json.containsKey('mimeType')) {
mimeType = _json['mimeType'] as core.String;
}
if (_json.containsKey('staticFile')) {
staticFile = _json['staticFile'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (errorCode != null) 'errorCode': errorCode!,
if (mimeType != null) 'mimeType': mimeType!,
if (staticFile != null) 'staticFile': staticFile!,
};
}
/// The feature specific settings to be used in the application.
///
/// These define behaviors that are user configurable.
class FeatureSettings {
/// Boolean value indicating if split health checks should be used instead of
/// the legacy health checks.
///
/// At an app.yaml level, this means defaulting to 'readiness_check' and
/// 'liveness_check' values instead of 'health_check' ones. Once the legacy
/// 'health_check' behavior is deprecated, and this value is always true, this
/// setting can be removed.
core.bool? splitHealthChecks;
/// If true, use Container-Optimized OS
/// (https://cloud.google.com/container-optimized-os/) base image for VMs,
/// rather than a base Debian image.
core.bool? useContainerOptimizedOs;
FeatureSettings();
FeatureSettings.fromJson(core.Map _json) {
if (_json.containsKey('splitHealthChecks')) {
splitHealthChecks = _json['splitHealthChecks'] as core.bool;
}
if (_json.containsKey('useContainerOptimizedOs')) {
useContainerOptimizedOs = _json['useContainerOptimizedOs'] as core.bool;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (splitHealthChecks != null) 'splitHealthChecks': splitHealthChecks!,
if (useContainerOptimizedOs != null)
'useContainerOptimizedOs': useContainerOptimizedOs!,
};
}
/// Single source file that is part of the version to be deployed.
///
/// Each source file that is deployed must be specified separately.
class FileInfo {
/// The MIME type of the file.Defaults to the value from Google Cloud Storage.
core.String? mimeType;
/// The SHA1 hash of the file, in hex.
core.String? sha1Sum;
/// URL source to use to fetch this file.
///
/// Must be a URL to a resource in Google Cloud Storage in the form
/// 'http(s)://storage.googleapis.com//'.
core.String? sourceUrl;
FileInfo();
FileInfo.fromJson(core.Map _json) {
if (_json.containsKey('mimeType')) {
mimeType = _json['mimeType'] as core.String;
}
if (_json.containsKey('sha1Sum')) {
sha1Sum = _json['sha1Sum'] as core.String;
}
if (_json.containsKey('sourceUrl')) {
sourceUrl = _json['sourceUrl'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (mimeType != null) 'mimeType': mimeType!,
if (sha1Sum != null) 'sha1Sum': sha1Sum!,
if (sourceUrl != null) 'sourceUrl': sourceUrl!,
};
}
/// A single firewall rule that is evaluated against incoming traffic and
/// provides an action to take on matched requests.
class FirewallRule {
/// The action to take on matched requests.
/// Possible string values are:
/// - "UNSPECIFIED_ACTION"
/// - "ALLOW" : Matching requests are allowed.
/// - "DENY" : Matching requests are denied.
core.String? action;
/// An optional string description of this rule.
///
/// This field has a maximum length of 100 characters.
core.String? description;
/// A positive integer between 1, Int32.MaxValue-1 that defines the order of
/// rule evaluation.
///
/// Rules with the lowest priority are evaluated first.A default rule at
/// priority Int32.MaxValue matches all IPv4 and IPv6 traffic when no previous
/// rule matches. Only the action of this rule can be modified by the user.
core.int? priority;
/// IP address or range, defined using CIDR notation, of requests that this
/// rule applies to.
///
/// You can use the wildcard character "*" to match all IPs equivalent to
/// "0/0" and "::/0" together. Examples: 192.168.1.1 or 192.168.0.0/16 or
/// 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. Truncation will
/// be silently performed on addresses which are not properly truncated. For
/// example, 1.2.3.4/24 is accepted as the same address as 1.2.3.0/24.
/// Similarly, for IPv6, 2001:db8::1/32 is accepted as the same address as
/// 2001:db8::/32.
core.String? sourceRange;
FirewallRule();
FirewallRule.fromJson(core.Map _json) {
if (_json.containsKey('action')) {
action = _json['action'] as core.String;
}
if (_json.containsKey('description')) {
description = _json['description'] as core.String;
}
if (_json.containsKey('priority')) {
priority = _json['priority'] as core.int;
}
if (_json.containsKey('sourceRange')) {
sourceRange = _json['sourceRange'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (action != null) 'action': action!,
if (description != null) 'description': description!,
if (priority != null) 'priority': priority!,
if (sourceRange != null) 'sourceRange': sourceRange!,
};
}
/// Health checking configuration for VM instances.
///
/// Unhealthy instances are killed and replaced with new instances. Only
/// applicable for instances in App Engine flexible environment.
class HealthCheck {
/// Interval between health checks.
core.String? checkInterval;
/// Whether to explicitly disable health checks for this instance.
core.bool? disableHealthCheck;
/// Number of consecutive successful health checks required before receiving
/// traffic.
core.int? healthyThreshold;
/// Host header to send when performing an HTTP health check.
///
/// Example: "myapp.appspot.com"
core.String? host;
/// Number of consecutive failed health checks required before an instance is
/// restarted.
core.int? restartThreshold;
/// Time before the health check is considered failed.
core.String? timeout;
/// Number of consecutive failed health checks required before removing
/// traffic.
core.int? unhealthyThreshold;
HealthCheck();
HealthCheck.fromJson(core.Map _json) {
if (_json.containsKey('checkInterval')) {
checkInterval = _json['checkInterval'] as core.String;
}
if (_json.containsKey('disableHealthCheck')) {
disableHealthCheck = _json['disableHealthCheck'] as core.bool;
}
if (_json.containsKey('healthyThreshold')) {
healthyThreshold = _json['healthyThreshold'] as core.int;
}
if (_json.containsKey('host')) {
host = _json['host'] as core.String;
}
if (_json.containsKey('restartThreshold')) {
restartThreshold = _json['restartThreshold'] as core.int;
}
if (_json.containsKey('timeout')) {
timeout = _json['timeout'] as core.String;
}
if (_json.containsKey('unhealthyThreshold')) {
unhealthyThreshold = _json['unhealthyThreshold'] as core.int;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (checkInterval != null) 'checkInterval': checkInterval!,
if (disableHealthCheck != null)
'disableHealthCheck': disableHealthCheck!,
if (healthyThreshold != null) 'healthyThreshold': healthyThreshold!,
if (host != null) 'host': host!,
if (restartThreshold != null) 'restartThreshold': restartThreshold!,
if (timeout != null) 'timeout': timeout!,
if (unhealthyThreshold != null)
'unhealthyThreshold': unhealthyThreshold!,
};
}
/// Identity-Aware Proxy
class IdentityAwareProxy {
/// Whether the serving infrastructure will authenticate and authorize all
/// incoming requests.If true, the oauth2_client_id and oauth2_client_secret
/// fields must be non-empty.
core.bool? enabled;
/// OAuth2 client ID to use for the authentication flow.
core.String? oauth2ClientId;
/// OAuth2 client secret to use for the authentication flow.For security
/// reasons, this value cannot be retrieved via the API.
///
/// Instead, the SHA-256 hash of the value is returned in the
/// oauth2_client_secret_sha256 field.@InputOnly
core.String? oauth2ClientSecret;
/// Hex-encoded SHA-256 hash of the client secret.@OutputOnly
core.String? oauth2ClientSecretSha256;
IdentityAwareProxy();
IdentityAwareProxy.fromJson(core.Map _json) {
if (_json.containsKey('enabled')) {
enabled = _json['enabled'] as core.bool;
}
if (_json.containsKey('oauth2ClientId')) {
oauth2ClientId = _json['oauth2ClientId'] as core.String;
}
if (_json.containsKey('oauth2ClientSecret')) {
oauth2ClientSecret = _json['oauth2ClientSecret'] as core.String;
}
if (_json.containsKey('oauth2ClientSecretSha256')) {
oauth2ClientSecretSha256 =
_json['oauth2ClientSecretSha256'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (enabled != null) 'enabled': enabled!,
if (oauth2ClientId != null) 'oauth2ClientId': oauth2ClientId!,
if (oauth2ClientSecret != null)
'oauth2ClientSecret': oauth2ClientSecret!,
if (oauth2ClientSecretSha256 != null)
'oauth2ClientSecretSha256': oauth2ClientSecretSha256!,
};
}
/// An Instance resource is the computing unit that App Engine uses to
/// automatically scale an application.
class Instance {
/// App Engine release this instance is running on.
///
/// Output only.
core.String? appEngineRelease;
/// Availability of the instance.
///
/// Output only.
/// Possible string values are:
/// - "UNSPECIFIED"
/// - "RESIDENT"
/// - "DYNAMIC"
core.String? availability;
/// Average latency (ms) over the last minute.
///
/// Output only.
core.int? averageLatency;
/// Number of errors since this instance was started.
///
/// Output only.
core.int? errors;
/// Relative name of the instance within the version.
///
/// Example: instance-1.
///
/// Output only.
core.String? id;
/// Total memory in use (bytes).
///
/// Output only.
core.String? memoryUsage;
/// Full path to the Instance resource in the API.
///
/// Example: apps/myapp/services/default/versions/v1/instances/instance-1.
///
/// Output only.
core.String? name;
/// Average queries per second (QPS) over the last minute.
///
/// Output only.
core.double? qps;
/// Number of requests since this instance was started.
///
/// Output only.
core.int? requests;
/// Time that this instance was started.@OutputOnly
///
/// Output only.
core.String? startTime;
/// Whether this instance is in debug mode.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
core.bool? vmDebugEnabled;
/// Virtual machine ID of this instance.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
core.String? vmId;
/// The IP address of this instance.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
core.String? vmIp;
/// The liveness health check of this instance.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
/// Possible string values are:
/// - "LIVENESS_STATE_UNSPECIFIED" : There is no liveness health check for the
/// instance. Only applicable for instances in App Engine standard
/// environment.
/// - "UNKNOWN" : The health checking system is aware of the instance but its
/// health is not known at the moment.
/// - "HEALTHY" : The instance is reachable i.e. a connection to the
/// application health checking endpoint can be established, and conforms to
/// the requirements defined by the health check.
/// - "UNHEALTHY" : The instance is reachable, but does not conform to the
/// requirements defined by the health check.
/// - "DRAINING" : The instance is being drained. The existing connections to
/// the instance have time to complete, but the new ones are being refused.
/// - "TIMEOUT" : The instance is unreachable i.e. a connection to the
/// application health checking endpoint cannot be established, or the server
/// does not respond within the specified timeout.
core.String? vmLiveness;
/// Name of the virtual machine where this instance lives.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
core.String? vmName;
/// Status of the virtual machine where this instance lives.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
core.String? vmStatus;
/// Zone where the virtual machine is located.
///
/// Only applicable for instances in App Engine flexible environment.
///
/// Output only.
core.String? vmZoneName;
Instance();
Instance.fromJson(core.Map _json) {
if (_json.containsKey('appEngineRelease')) {
appEngineRelease = _json['appEngineRelease'] as core.String;
}
if (_json.containsKey('availability')) {
availability = _json['availability'] as core.String;
}
if (_json.containsKey('averageLatency')) {
averageLatency = _json['averageLatency'] as core.int;
}
if (_json.containsKey('errors')) {
errors = _json['errors'] as core.int;
}
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('memoryUsage')) {
memoryUsage = _json['memoryUsage'] as core.String;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('qps')) {
qps = (_json['qps'] as core.num).toDouble();
}
if (_json.containsKey('requests')) {
requests = _json['requests'] as core.int;
}
if (_json.containsKey('startTime')) {
startTime = _json['startTime'] as core.String;
}
if (_json.containsKey('vmDebugEnabled')) {
vmDebugEnabled = _json['vmDebugEnabled'] as core.bool;
}
if (_json.containsKey('vmId')) {
vmId = _json['vmId'] as core.String;
}
if (_json.containsKey('vmIp')) {
vmIp = _json['vmIp'] as core.String;
}
if (_json.containsKey('vmLiveness')) {
vmLiveness = _json['vmLiveness'] as core.String;
}
if (_json.containsKey('vmName')) {
vmName = _json['vmName'] as core.String;
}
if (_json.containsKey('vmStatus')) {
vmStatus = _json['vmStatus'] as core.String;
}
if (_json.containsKey('vmZoneName')) {
vmZoneName = _json['vmZoneName'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (appEngineRelease != null) 'appEngineRelease': appEngineRelease!,
if (availability != null) 'availability': availability!,
if (averageLatency != null) 'averageLatency': averageLatency!,
if (errors != null) 'errors': errors!,
if (id != null) 'id': id!,
if (memoryUsage != null) 'memoryUsage': memoryUsage!,
if (name != null) 'name': name!,
if (qps != null) 'qps': qps!,
if (requests != null) 'requests': requests!,
if (startTime != null) 'startTime': startTime!,
if (vmDebugEnabled != null) 'vmDebugEnabled': vmDebugEnabled!,
if (vmId != null) 'vmId': vmId!,
if (vmIp != null) 'vmIp': vmIp!,
if (vmLiveness != null) 'vmLiveness': vmLiveness!,
if (vmName != null) 'vmName': vmName!,
if (vmStatus != null) 'vmStatus': vmStatus!,
if (vmZoneName != null) 'vmZoneName': vmZoneName!,
};
}
/// Third-party Python runtime library that is required by the application.
class Library {
/// Name of the library.
///
/// Example: "django".
core.String? name;
/// Version of the library to select, or "latest".
core.String? version;
Library();
Library.fromJson(core.Map _json) {
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('version')) {
version = _json['version'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (name != null) 'name': name!,
if (version != null) 'version': version!,
};
}
/// Response message for AuthorizedCertificates.ListAuthorizedCertificates.
class ListAuthorizedCertificatesResponse {
/// The SSL certificates the user is authorized to administer.
core.List<AuthorizedCertificate>? certificates;
/// Continuation token for fetching the next page of results.
core.String? nextPageToken;
ListAuthorizedCertificatesResponse();
ListAuthorizedCertificatesResponse.fromJson(core.Map _json) {
if (_json.containsKey('certificates')) {
certificates = (_json['certificates'] as core.List)
.map<AuthorizedCertificate>((value) => AuthorizedCertificate.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (certificates != null)
'certificates': certificates!.map((value) => value.toJson()).toList(),
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
};
}
/// Response message for AuthorizedDomains.ListAuthorizedDomains.
class ListAuthorizedDomainsResponse {
/// The authorized domains belonging to the user.
core.List<AuthorizedDomain>? domains;
/// Continuation token for fetching the next page of results.
core.String? nextPageToken;
ListAuthorizedDomainsResponse();
ListAuthorizedDomainsResponse.fromJson(core.Map _json) {
if (_json.containsKey('domains')) {
domains = (_json['domains'] as core.List)
.map<AuthorizedDomain>((value) => AuthorizedDomain.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (domains != null)
'domains': domains!.map((value) => value.toJson()).toList(),
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
};
}
/// Response message for DomainMappings.ListDomainMappings.
class ListDomainMappingsResponse {
/// The domain mappings for the application.
core.List<DomainMapping>? domainMappings;
/// Continuation token for fetching the next page of results.
core.String? nextPageToken;
ListDomainMappingsResponse();
ListDomainMappingsResponse.fromJson(core.Map _json) {
if (_json.containsKey('domainMappings')) {
domainMappings = (_json['domainMappings'] as core.List)
.map<DomainMapping>((value) => DomainMapping.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (domainMappings != null)
'domainMappings':
domainMappings!.map((value) => value.toJson()).toList(),
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
};
}
/// Response message for Firewall.ListIngressRules.
class ListIngressRulesResponse {
/// The ingress FirewallRules for this application.
core.List<FirewallRule>? ingressRules;
/// Continuation token for fetching the next page of results.
core.String? nextPageToken;
ListIngressRulesResponse();
ListIngressRulesResponse.fromJson(core.Map _json) {
if (_json.containsKey('ingressRules')) {
ingressRules = (_json['ingressRules'] as core.List)
.map<FirewallRule>((value) => FirewallRule.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (ingressRules != null)
'ingressRules': ingressRules!.map((value) => value.toJson()).toList(),
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
};
}
/// Response message for Instances.ListInstances.
class ListInstancesResponse {
/// The instances belonging to the requested version.
core.List<Instance>? instances;
/// Continuation token for fetching the next page of results.
core.String? nextPageToken;
ListInstancesResponse();
ListInstancesResponse.fromJson(core.Map _json) {
if (_json.containsKey('instances')) {
instances = (_json['instances'] as core.List)
.map<Instance>((value) =>
Instance.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (instances != null)
'instances': instances!.map((value) => value.toJson()).toList(),
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
};
}
/// The response message for Locations.ListLocations.
class ListLocationsResponse {
/// A list of locations that matches the specified filter in the request.
core.List<Location>? locations;
/// The standard List next-page token.
core.String? nextPageToken;
ListLocationsResponse();
ListLocationsResponse.fromJson(core.Map _json) {
if (_json.containsKey('locations')) {
locations = (_json['locations'] as core.List)
.map<Location>((value) =>
Location.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (locations != null)
'locations': locations!.map((value) => value.toJson()).toList(),
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
};
}
/// The response message for Operations.ListOperations.
class ListOperationsResponse {
/// The standard List next-page token.
core.String? nextPageToken;
/// 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'] as core.String;
}
if (_json.containsKey('operations')) {
operations = (_json['operations'] as core.List)
.map<Operation>((value) =>
Operation.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
if (operations != null)
'operations': operations!.map((value) => value.toJson()).toList(),
};
}
/// Response message for Services.ListServices.
class ListServicesResponse {
/// Continuation token for fetching the next page of results.
core.String? nextPageToken;
/// The services belonging to the requested application.
core.List<Service>? services;
ListServicesResponse();
ListServicesResponse.fromJson(core.Map _json) {
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
if (_json.containsKey('services')) {
services = (_json['services'] as core.List)
.map<Service>((value) =>
Service.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
if (services != null)
'services': services!.map((value) => value.toJson()).toList(),
};
}
/// 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 service.
core.List<Version>? versions;
ListVersionsResponse();
ListVersionsResponse.fromJson(core.Map _json) {
if (_json.containsKey('nextPageToken')) {
nextPageToken = _json['nextPageToken'] as core.String;
}
if (_json.containsKey('versions')) {
versions = (_json['versions'] as core.List)
.map<Version>((value) =>
Version.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (nextPageToken != null) 'nextPageToken': nextPageToken!,
if (versions != null)
'versions': versions!.map((value) => value.toJson()).toList(),
};
}
/// Health checking configuration for VM instances.
///
/// Unhealthy instances are killed and replaced with new instances.
class LivenessCheck {
/// Interval between health checks.
core.String? checkInterval;
/// Number of consecutive failed checks required before considering the VM
/// unhealthy.
core.int? failureThreshold;
/// Host header to send when performing a HTTP Liveness check.
///
/// Example: "myapp.appspot.com"
core.String? host;
/// The initial delay before starting to execute the checks.
core.String? initialDelay;
/// The request path.
core.String? path;
/// Number of consecutive successful checks required before considering the VM
/// healthy.
core.int? successThreshold;
/// Time before the check is considered failed.
core.String? timeout;
LivenessCheck();
LivenessCheck.fromJson(core.Map _json) {
if (_json.containsKey('checkInterval')) {
checkInterval = _json['checkInterval'] as core.String;
}
if (_json.containsKey('failureThreshold')) {
failureThreshold = _json['failureThreshold'] as core.int;
}
if (_json.containsKey('host')) {
host = _json['host'] as core.String;
}
if (_json.containsKey('initialDelay')) {
initialDelay = _json['initialDelay'] as core.String;
}
if (_json.containsKey('path')) {
path = _json['path'] as core.String;
}
if (_json.containsKey('successThreshold')) {
successThreshold = _json['successThreshold'] as core.int;
}
if (_json.containsKey('timeout')) {
timeout = _json['timeout'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (checkInterval != null) 'checkInterval': checkInterval!,
if (failureThreshold != null) 'failureThreshold': failureThreshold!,
if (host != null) 'host': host!,
if (initialDelay != null) 'initialDelay': initialDelay!,
if (path != null) 'path': path!,
if (successThreshold != null) 'successThreshold': successThreshold!,
if (timeout != null) 'timeout': timeout!,
};
}
/// A resource that represents Google Cloud Platform location.
class Location {
/// The friendly name for this location, typically a nearby city name.
///
/// For example, "Tokyo".
core.String? displayName;
/// Cross-service attributes for the location.
///
/// For example {"cloud.googleapis.com/region": "us-east1"}
core.Map<core.String, core.String>? labels;
/// The canonical id for this location.
///
/// For example: "us-east1".
core.String? locationId;
/// Service-specific metadata.
///
/// For example the available capacity at the given location.
///
/// 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;
/// Resource name for the location, which may vary between implementations.
///
/// For example: "projects/example-project/locations/us-east1"
core.String? name;
Location();
Location.fromJson(core.Map _json) {
if (_json.containsKey('displayName')) {
displayName = _json['displayName'] as core.String;
}
if (_json.containsKey('labels')) {
labels =
(_json['labels'] as core.Map).cast<core.String, core.String>().map(
(key, item) => core.MapEntry(
key,
item as core.String,
),
);
}
if (_json.containsKey('locationId')) {
locationId = _json['locationId'] as core.String;
}
if (_json.containsKey('metadata')) {
metadata =
(_json['metadata'] as core.Map).cast<core.String, core.Object>().map(
(key, item) => core.MapEntry(
key,
item as core.Object,
),
);
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (displayName != null) 'displayName': displayName!,
if (labels != null) 'labels': labels!,
if (locationId != null) 'locationId': locationId!,
if (metadata != null) 'metadata': metadata!,
if (name != null) 'name': name!,
};
}
/// Metadata for the given google.cloud.location.Location.
class LocationMetadata {
/// App Engine flexible environment is available in the given
/// location.@OutputOnly
core.bool? flexibleEnvironmentAvailable;
/// Search API
/// (https://cloud.google.com/appengine/docs/standard/python/search) is
/// available in the given location.
///
/// Output only.
core.bool? searchApiAvailable;
/// App Engine standard environment is available in the given
/// location.@OutputOnly
core.bool? standardEnvironmentAvailable;
LocationMetadata();
LocationMetadata.fromJson(core.Map _json) {
if (_json.containsKey('flexibleEnvironmentAvailable')) {
flexibleEnvironmentAvailable =
_json['flexibleEnvironmentAvailable'] as core.bool;
}
if (_json.containsKey('searchApiAvailable')) {
searchApiAvailable = _json['searchApiAvailable'] as core.bool;
}
if (_json.containsKey('standardEnvironmentAvailable')) {
standardEnvironmentAvailable =
_json['standardEnvironmentAvailable'] as core.bool;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (flexibleEnvironmentAvailable != null)
'flexibleEnvironmentAvailable': flexibleEnvironmentAvailable!,
if (searchApiAvailable != null)
'searchApiAvailable': searchApiAvailable!,
if (standardEnvironmentAvailable != null)
'standardEnvironmentAvailable': standardEnvironmentAvailable!,
};
}
/// A certificate managed by App Engine.
class ManagedCertificate {
/// Time at which the certificate was last renewed.
///
/// The renewal process is fully managed. Certificate renewal will
/// automatically occur before the certificate expires. Renewal errors can be
/// tracked via ManagementStatus.@OutputOnly
core.String? lastRenewalTime;
/// Status of certificate management.
///
/// Refers to the most recent certificate acquisition or renewal
/// attempt.@OutputOnly
/// Possible string values are:
/// - "MANAGEMENT_STATUS_UNSPECIFIED"
/// - "OK" : Certificate was successfully obtained and inserted into the
/// serving system.
/// - "PENDING" : Certificate is under active attempts to acquire or renew.
/// - "FAILED_RETRYING_NOT_VISIBLE" : Most recent renewal failed due to an
/// invalid DNS setup and will be retried. Renewal attempts will continue to
/// fail until the certificate domain's DNS configuration is fixed. The last
/// successfully provisioned certificate may still be serving.
/// - "FAILED_PERMANENT" : All renewal attempts have been exhausted, likely
/// due to an invalid DNS setup.
/// - "FAILED_RETRYING_CAA_FORBIDDEN" : Most recent renewal failed due to an
/// explicit CAA record that does not include one of the in-use CAs (Google CA
/// and Let's Encrypt). Renewals will continue to fail until the CAA is
/// reconfigured. The last successfully provisioned certificate may still be
/// serving.
/// - "FAILED_RETRYING_CAA_CHECKING" : Most recent renewal failed due to a CAA
/// retrieval failure. This means that the domain's DNS provider does not
/// properly handle CAA records, failing requests for CAA records when no CAA
/// records are defined. Renewals will continue to fail until the DNS provider
/// is changed or a CAA record is added for the given domain. The last
/// successfully provisioned certificate may still be serving.
core.String? status;
ManagedCertificate();
ManagedCertificate.fromJson(core.Map _json) {
if (_json.containsKey('lastRenewalTime')) {
lastRenewalTime = _json['lastRenewalTime'] as core.String;
}
if (_json.containsKey('status')) {
status = _json['status'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (lastRenewalTime != null) 'lastRenewalTime': lastRenewalTime!,
if (status != null) 'status': status!,
};
}
/// A service with manual scaling runs continuously, allowing you to perform
/// complex initialization and rely on the state of its memory over time.
class ManualScaling {
/// Number of instances to assign to the service 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'] as core.int;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (instances != null) 'instances': instances!,
};
}
/// Extra network settings.
///
/// Only applicable in the App Engine flexible environment.
class Network {
/// List of ports, or port pairs, to forward from the virtual machine to the
/// application container.
///
/// Only applicable in the App Engine flexible environment.
core.List<core.String>? forwardedPorts;
/// Tag to apply to the instance during creation.
///
/// Only applicable in the App Engine flexible environment.
core.String? instanceTag;
/// Google Compute Engine network where the virtual machines are created.
///
/// Specify the short name, not the resource path.Defaults to default.
core.String? name;
/// Enable session affinity.
///
/// Only applicable in the App Engine flexible environment.
core.bool? sessionAffinity;
/// Google Cloud Platform sub-network where the virtual machines are created.
///
/// Specify the short name, not the resource path.If a subnetwork name is
/// specified, a network name will also be required unless it is for the
/// default network. If the network that the instance is being created in is a
/// Legacy network, then the IP address is allocated from the IPv4Range. If
/// the network that the instance is being created in is an auto Subnet Mode
/// Network, then only network name should be specified (not the
/// subnetwork_name) and the IP address is created from the IPCidrRange of the
/// subnetwork that exists in that zone for that network. If the network that
/// the instance is being created in is a custom Subnet Mode Network, then the
/// subnetwork_name must be specified and the IP address is created from the
/// IPCidrRange of the subnetwork.If specified, the subnetwork must exist in
/// the same region as the App Engine flexible environment application.
core.String? subnetworkName;
Network();
Network.fromJson(core.Map _json) {
if (_json.containsKey('forwardedPorts')) {
forwardedPorts = (_json['forwardedPorts'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
if (_json.containsKey('instanceTag')) {
instanceTag = _json['instanceTag'] as core.String;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('sessionAffinity')) {
sessionAffinity = _json['sessionAffinity'] as core.bool;
}
if (_json.containsKey('subnetworkName')) {
subnetworkName = _json['subnetworkName'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (forwardedPorts != null) 'forwardedPorts': forwardedPorts!,
if (instanceTag != null) 'instanceTag': instanceTag!,
if (name != null) 'name': name!,
if (sessionAffinity != null) 'sessionAffinity': sessionAffinity!,
if (subnetworkName != null) 'subnetworkName': subnetworkName!,
};
}
/// A NetworkSettings resource is a container for ingress settings for a version
/// or service.
class NetworkSettings {
/// The ingress settings for version or service.
/// Possible string values are:
/// - "INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED" : Unspecified
/// - "INGRESS_TRAFFIC_ALLOWED_ALL" : Allow HTTP traffic from public and
/// private sources.
/// - "INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY" : Allow HTTP traffic from only
/// private VPC sources.
/// - "INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB" : Allow HTTP traffic from
/// private VPC sources and through load balancers.
core.String? ingressTrafficAllowed;
NetworkSettings();
NetworkSettings.fromJson(core.Map _json) {
if (_json.containsKey('ingressTrafficAllowed')) {
ingressTrafficAllowed = _json['ingressTrafficAllowed'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (ingressTrafficAllowed != null)
'ingressTrafficAllowed': ingressTrafficAllowed!,
};
}
/// Target scaling by network usage.
///
/// Only applicable in the App Engine flexible environment.
class NetworkUtilization {
/// Target bytes received per second.
core.int? targetReceivedBytesPerSecond;
/// Target packets received per second.
core.int? targetReceivedPacketsPerSecond;
/// Target bytes sent per second.
core.int? targetSentBytesPerSecond;
/// Target packets sent per second.
core.int? targetSentPacketsPerSecond;
NetworkUtilization();
NetworkUtilization.fromJson(core.Map _json) {
if (_json.containsKey('targetReceivedBytesPerSecond')) {
targetReceivedBytesPerSecond =
_json['targetReceivedBytesPerSecond'] as core.int;
}
if (_json.containsKey('targetReceivedPacketsPerSecond')) {
targetReceivedPacketsPerSecond =
_json['targetReceivedPacketsPerSecond'] as core.int;
}
if (_json.containsKey('targetSentBytesPerSecond')) {
targetSentBytesPerSecond = _json['targetSentBytesPerSecond'] as core.int;
}
if (_json.containsKey('targetSentPacketsPerSecond')) {
targetSentPacketsPerSecond =
_json['targetSentPacketsPerSecond'] as core.int;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (targetReceivedBytesPerSecond != null)
'targetReceivedBytesPerSecond': targetReceivedBytesPerSecond!,
if (targetReceivedPacketsPerSecond != null)
'targetReceivedPacketsPerSecond': targetReceivedPacketsPerSecond!,
if (targetSentBytesPerSecond != null)
'targetSentBytesPerSecond': targetSentBytesPerSecond!,
if (targetSentPacketsPerSecond != null)
'targetSentPacketsPerSecond': targetSentPacketsPerSecond!,
};
}
/// 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 either error or response is
/// available.
core.bool? done;
/// The error result of the operation in case of failure or cancellation.
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, the name should be a resource name
/// ending with operations/{unique_id}.
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'] as core.bool;
}
if (_json.containsKey('error')) {
error = Status.fromJson(
_json['error'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('metadata')) {
metadata =
(_json['metadata'] as core.Map).cast<core.String, core.Object>().map(
(key, item) => core.MapEntry(
key,
item as core.Object,
),
);
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('response')) {
response =
(_json['response'] as core.Map).cast<core.String, core.Object>().map(
(key, item) => core.MapEntry(
key,
item as core.Object,
),
);
}
}
core.Map<core.String, core.Object?> toJson() => {
if (done != null) 'done': done!,
if (error != null) 'error': error!.toJson(),
if (metadata != null) 'metadata': metadata!,
if (name != null) 'name': name!,
if (response != null) 'response': response!,
};
}
/// Metadata for the given google.longrunning.Operation.
class OperationMetadataV1 {
CreateVersionMetadataV1? createVersionMetadata;
/// Time that this operation completed.@OutputOnly
core.String? endTime;
/// Ephemeral message that may change every time the operation is polled.
///
/// @OutputOnly
core.String? ephemeralMessage;
/// Time that this operation was created.@OutputOnly
core.String? insertTime;
/// API method that initiated this operation.
///
/// Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly
core.String? method;
/// Name of the resource that this operation is acting on.
///
/// Example: apps/myapp/services/default.@OutputOnly
core.String? target;
/// User who requested this operation.@OutputOnly
core.String? user;
/// Durable messages that persist on every operation poll.
///
/// @OutputOnly
core.List<core.String>? warning;
OperationMetadataV1();
OperationMetadataV1.fromJson(core.Map _json) {
if (_json.containsKey('createVersionMetadata')) {
createVersionMetadata = CreateVersionMetadataV1.fromJson(
_json['createVersionMetadata']
as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('endTime')) {
endTime = _json['endTime'] as core.String;
}
if (_json.containsKey('ephemeralMessage')) {
ephemeralMessage = _json['ephemeralMessage'] as core.String;
}
if (_json.containsKey('insertTime')) {
insertTime = _json['insertTime'] as core.String;
}
if (_json.containsKey('method')) {
method = _json['method'] as core.String;
}
if (_json.containsKey('target')) {
target = _json['target'] as core.String;
}
if (_json.containsKey('user')) {
user = _json['user'] as core.String;
}
if (_json.containsKey('warning')) {
warning = (_json['warning'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (createVersionMetadata != null)
'createVersionMetadata': createVersionMetadata!.toJson(),
if (endTime != null) 'endTime': endTime!,
if (ephemeralMessage != null) 'ephemeralMessage': ephemeralMessage!,
if (insertTime != null) 'insertTime': insertTime!,
if (method != null) 'method': method!,
if (target != null) 'target': target!,
if (user != null) 'user': user!,
if (warning != null) 'warning': warning!,
};
}
/// Metadata for the given google.longrunning.Operation.
class OperationMetadataV1Alpha {
CreateVersionMetadataV1Alpha? createVersionMetadata;
/// Time that this operation completed.@OutputOnly
core.String? endTime;
/// Ephemeral message that may change every time the operation is polled.
///
/// @OutputOnly
core.String? ephemeralMessage;
/// Time that this operation was created.@OutputOnly
core.String? insertTime;
/// API method that initiated this operation.
///
/// Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly
core.String? method;
/// Name of the resource that this operation is acting on.
///
/// Example: apps/myapp/services/default.@OutputOnly
core.String? target;
/// User who requested this operation.@OutputOnly
core.String? user;
/// Durable messages that persist on every operation poll.
///
/// @OutputOnly
core.List<core.String>? warning;
OperationMetadataV1Alpha();
OperationMetadataV1Alpha.fromJson(core.Map _json) {
if (_json.containsKey('createVersionMetadata')) {
createVersionMetadata = CreateVersionMetadataV1Alpha.fromJson(
_json['createVersionMetadata']
as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('endTime')) {
endTime = _json['endTime'] as core.String;
}
if (_json.containsKey('ephemeralMessage')) {
ephemeralMessage = _json['ephemeralMessage'] as core.String;
}
if (_json.containsKey('insertTime')) {
insertTime = _json['insertTime'] as core.String;
}
if (_json.containsKey('method')) {
method = _json['method'] as core.String;
}
if (_json.containsKey('target')) {
target = _json['target'] as core.String;
}
if (_json.containsKey('user')) {
user = _json['user'] as core.String;
}
if (_json.containsKey('warning')) {
warning = (_json['warning'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (createVersionMetadata != null)
'createVersionMetadata': createVersionMetadata!.toJson(),
if (endTime != null) 'endTime': endTime!,
if (ephemeralMessage != null) 'ephemeralMessage': ephemeralMessage!,
if (insertTime != null) 'insertTime': insertTime!,
if (method != null) 'method': method!,
if (target != null) 'target': target!,
if (user != null) 'user': user!,
if (warning != null) 'warning': warning!,
};
}
/// Metadata for the given google.longrunning.Operation.
class OperationMetadataV1Beta {
CreateVersionMetadataV1Beta? createVersionMetadata;
/// Time that this operation completed.@OutputOnly
core.String? endTime;
/// Ephemeral message that may change every time the operation is polled.
///
/// @OutputOnly
core.String? ephemeralMessage;
/// Time that this operation was created.@OutputOnly
core.String? insertTime;
/// API method that initiated this operation.
///
/// Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly
core.String? method;
/// Name of the resource that this operation is acting on.
///
/// Example: apps/myapp/services/default.@OutputOnly
core.String? target;
/// User who requested this operation.@OutputOnly
core.String? user;
/// Durable messages that persist on every operation poll.
///
/// @OutputOnly
core.List<core.String>? warning;
OperationMetadataV1Beta();
OperationMetadataV1Beta.fromJson(core.Map _json) {
if (_json.containsKey('createVersionMetadata')) {
createVersionMetadata = CreateVersionMetadataV1Beta.fromJson(
_json['createVersionMetadata']
as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('endTime')) {
endTime = _json['endTime'] as core.String;
}
if (_json.containsKey('ephemeralMessage')) {
ephemeralMessage = _json['ephemeralMessage'] as core.String;
}
if (_json.containsKey('insertTime')) {
insertTime = _json['insertTime'] as core.String;
}
if (_json.containsKey('method')) {
method = _json['method'] as core.String;
}
if (_json.containsKey('target')) {
target = _json['target'] as core.String;
}
if (_json.containsKey('user')) {
user = _json['user'] as core.String;
}
if (_json.containsKey('warning')) {
warning = (_json['warning'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (createVersionMetadata != null)
'createVersionMetadata': createVersionMetadata!.toJson(),
if (endTime != null) 'endTime': endTime!,
if (ephemeralMessage != null) 'ephemeralMessage': ephemeralMessage!,
if (insertTime != null) 'insertTime': insertTime!,
if (method != null) 'method': method!,
if (target != null) 'target': target!,
if (user != null) 'user': user!,
if (warning != null) 'warning': warning!,
};
}
/// Readiness checking configuration for VM instances.
///
/// Unhealthy instances are removed from traffic rotation.
class ReadinessCheck {
/// A maximum time limit on application initialization, measured from moment
/// the application successfully replies to a healthcheck until it is ready to
/// serve traffic.
core.String? appStartTimeout;
/// Interval between health checks.
core.String? checkInterval;
/// Number of consecutive failed checks required before removing traffic.
core.int? failureThreshold;
/// Host header to send when performing a HTTP Readiness check.
///
/// Example: "myapp.appspot.com"
core.String? host;
/// The request path.
core.String? path;
/// Number of consecutive successful checks required before receiving traffic.
core.int? successThreshold;
/// Time before the check is considered failed.
core.String? timeout;
ReadinessCheck();
ReadinessCheck.fromJson(core.Map _json) {
if (_json.containsKey('appStartTimeout')) {
appStartTimeout = _json['appStartTimeout'] as core.String;
}
if (_json.containsKey('checkInterval')) {
checkInterval = _json['checkInterval'] as core.String;
}
if (_json.containsKey('failureThreshold')) {
failureThreshold = _json['failureThreshold'] as core.int;
}
if (_json.containsKey('host')) {
host = _json['host'] as core.String;
}
if (_json.containsKey('path')) {
path = _json['path'] as core.String;
}
if (_json.containsKey('successThreshold')) {
successThreshold = _json['successThreshold'] as core.int;
}
if (_json.containsKey('timeout')) {
timeout = _json['timeout'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (appStartTimeout != null) 'appStartTimeout': appStartTimeout!,
if (checkInterval != null) 'checkInterval': checkInterval!,
if (failureThreshold != null) 'failureThreshold': failureThreshold!,
if (host != null) 'host': host!,
if (path != null) 'path': path!,
if (successThreshold != null) 'successThreshold': successThreshold!,
if (timeout != null) 'timeout': timeout!,
};
}
/// Request message for 'Applications.RepairApplication'.
class RepairApplicationRequest {
RepairApplicationRequest();
RepairApplicationRequest.fromJson(
// ignore: avoid_unused_constructor_parameters
core.Map _json);
core.Map<core.String, core.Object?> toJson() => {};
}
/// Target scaling by request utilization.
///
/// Only applicable in the App Engine flexible environment.
class RequestUtilization {
/// Target number of concurrent requests.
core.int? targetConcurrentRequests;
/// Target requests per second.
core.int? targetRequestCountPerSecond;
RequestUtilization();
RequestUtilization.fromJson(core.Map _json) {
if (_json.containsKey('targetConcurrentRequests')) {
targetConcurrentRequests = _json['targetConcurrentRequests'] as core.int;
}
if (_json.containsKey('targetRequestCountPerSecond')) {
targetRequestCountPerSecond =
_json['targetRequestCountPerSecond'] as core.int;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (targetConcurrentRequests != null)
'targetConcurrentRequests': targetConcurrentRequests!,
if (targetRequestCountPerSecond != null)
'targetRequestCountPerSecond': targetRequestCountPerSecond!,
};
}
/// A DNS resource record.
class ResourceRecord {
/// Relative name of the object affected by this record.
///
/// Only applicable for CNAME records. Example: 'www'.
core.String? name;
/// Data for this record.
///
/// Values vary by record type, as defined in RFC 1035 (section 5) and RFC
/// 1034 (section 3.6.1).
core.String? rrdata;
/// Resource record type.
///
/// Example: AAAA.
/// Possible string values are:
/// - "RECORD_TYPE_UNSPECIFIED" : An unknown resource record.
/// - "A" : An A resource record. Data is an IPv4 address.
/// - "AAAA" : An AAAA resource record. Data is an IPv6 address.
/// - "CNAME" : A CNAME resource record. Data is a domain name to be aliased.
core.String? type;
ResourceRecord();
ResourceRecord.fromJson(core.Map _json) {
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('rrdata')) {
rrdata = _json['rrdata'] as core.String;
}
if (_json.containsKey('type')) {
type = _json['type'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (name != null) 'name': name!,
if (rrdata != null) 'rrdata': rrdata!,
if (type != null) 'type': type!,
};
}
/// Machine resources for a version.
class Resources {
/// Number of CPU cores needed.
core.double? cpu;
/// Disk size (GB) needed.
core.double? diskGb;
/// The name of the encryption key that is stored in Google Cloud KMS.
///
/// Only should be used by Cloud Composer to encrypt the vm disk
core.String? kmsKeyReference;
/// Memory (GB) needed.
core.double? memoryGb;
/// User specified volumes.
core.List<Volume>? volumes;
Resources();
Resources.fromJson(core.Map _json) {
if (_json.containsKey('cpu')) {
cpu = (_json['cpu'] as core.num).toDouble();
}
if (_json.containsKey('diskGb')) {
diskGb = (_json['diskGb'] as core.num).toDouble();
}
if (_json.containsKey('kmsKeyReference')) {
kmsKeyReference = _json['kmsKeyReference'] as core.String;
}
if (_json.containsKey('memoryGb')) {
memoryGb = (_json['memoryGb'] as core.num).toDouble();
}
if (_json.containsKey('volumes')) {
volumes = (_json['volumes'] as core.List)
.map<Volume>((value) =>
Volume.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (cpu != null) 'cpu': cpu!,
if (diskGb != null) 'diskGb': diskGb!,
if (kmsKeyReference != null) 'kmsKeyReference': kmsKeyReference!,
if (memoryGb != null) 'memoryGb': memoryGb!,
if (volumes != null)
'volumes': volumes!.map((value) => value.toJson()).toList(),
};
}
/// Executes a script to handle the request that matches the URL pattern.
class ScriptHandler {
/// 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'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (scriptPath != null) 'scriptPath': scriptPath!,
};
}
/// A Service resource is a logical component of an application that can share
/// state and communicate in a secure fashion with other services.
///
/// For example, an application that handles customer requests might include
/// separate services to handle tasks such as backend data analysis or API
/// requests from mobile devices. Each service has a collection of versions that
/// define a specific set of code used to implement the functionality of that
/// service.
class Service {
/// Relative name of the service within the application.
///
/// Example: default.@OutputOnly
core.String? id;
/// Full path to the Service resource in the API.
///
/// Example: apps/myapp/services/default.@OutputOnly
core.String? name;
/// Ingress settings for this service.
///
/// Will apply to all versions.
NetworkSettings? networkSettings;
/// Mapping that defines fractional HTTP traffic diversion to different
/// versions within the service.
TrafficSplit? split;
Service();
Service.fromJson(core.Map _json) {
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('networkSettings')) {
networkSettings = NetworkSettings.fromJson(
_json['networkSettings'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('split')) {
split = TrafficSplit.fromJson(
_json['split'] as core.Map<core.String, core.dynamic>);
}
}
core.Map<core.String, core.Object?> toJson() => {
if (id != null) 'id': id!,
if (name != null) 'name': name!,
if (networkSettings != null)
'networkSettings': networkSettings!.toJson(),
if (split != null) 'split': split!.toJson(),
};
}
/// SSL configuration for a DomainMapping resource.
class SslSettings {
/// ID of the AuthorizedCertificate resource configuring SSL for the
/// application.
///
/// Clearing this field will remove SSL support.By default, a managed
/// certificate is automatically created for every domain mapping. To omit SSL
/// support or to configure SSL manually, specify SslManagementType.MANUAL on
/// a CREATE or UPDATE request. You must be authorized to administer the
/// AuthorizedCertificate resource to manually map it to a DomainMapping
/// resource. Example: 12345.
core.String? certificateId;
/// ID of the managed AuthorizedCertificate resource currently being
/// provisioned, if applicable.
///
/// Until the new managed certificate has been successfully provisioned, the
/// previous SSL state will be preserved. Once the provisioning process
/// completes, the certificate_id field will reflect the new managed
/// certificate and this field will be left empty. To remove SSL support while
/// there is still a pending managed certificate, clear the certificate_id
/// field with an UpdateDomainMappingRequest.@OutputOnly
core.String? pendingManagedCertificateId;
/// SSL management type for this domain.
///
/// If AUTOMATIC, a managed certificate is automatically provisioned. If
/// MANUAL, certificate_id must be manually specified in order to configure
/// SSL for this domain.
/// Possible string values are:
/// - "SSL_MANAGEMENT_TYPE_UNSPECIFIED" : Defaults to AUTOMATIC.
/// - "AUTOMATIC" : SSL support for this domain is configured automatically.
/// The mapped SSL certificate will be automatically renewed.
/// - "MANUAL" : SSL support for this domain is configured manually by the
/// user. Either the domain has no SSL support or a user-obtained SSL
/// certificate has been explictly mapped to this domain.
core.String? sslManagementType;
SslSettings();
SslSettings.fromJson(core.Map _json) {
if (_json.containsKey('certificateId')) {
certificateId = _json['certificateId'] as core.String;
}
if (_json.containsKey('pendingManagedCertificateId')) {
pendingManagedCertificateId =
_json['pendingManagedCertificateId'] as core.String;
}
if (_json.containsKey('sslManagementType')) {
sslManagementType = _json['sslManagementType'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (certificateId != null) 'certificateId': certificateId!,
if (pendingManagedCertificateId != null)
'pendingManagedCertificateId': pendingManagedCertificateId!,
if (sslManagementType != null) 'sslManagementType': sslManagementType!,
};
}
/// Scheduler settings for standard environment.
class StandardSchedulerSettings {
/// Maximum number of instances to run for this version.
///
/// Set to zero to disable max_instances configuration.
core.int? maxInstances;
/// Minimum number of instances to run for this version.
///
/// Set to zero to disable min_instances configuration.
core.int? minInstances;
/// Target CPU utilization ratio to maintain when scaling.
core.double? targetCpuUtilization;
/// Target throughput utilization ratio to maintain when scaling
core.double? targetThroughputUtilization;
StandardSchedulerSettings();
StandardSchedulerSettings.fromJson(core.Map _json) {
if (_json.containsKey('maxInstances')) {
maxInstances = _json['maxInstances'] as core.int;
}
if (_json.containsKey('minInstances')) {
minInstances = _json['minInstances'] as core.int;
}
if (_json.containsKey('targetCpuUtilization')) {
targetCpuUtilization =
(_json['targetCpuUtilization'] as core.num).toDouble();
}
if (_json.containsKey('targetThroughputUtilization')) {
targetThroughputUtilization =
(_json['targetThroughputUtilization'] as core.num).toDouble();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (maxInstances != null) 'maxInstances': maxInstances!,
if (minInstances != null) 'minInstances': minInstances!,
if (targetCpuUtilization != null)
'targetCpuUtilization': targetCpuUtilization!,
if (targetThroughputUtilization != null)
'targetThroughputUtilization': targetThroughputUtilization!,
};
}
/// 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 {
/// Whether files should also be uploaded as code data.
///
/// 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 the
/// application. If enabled, uploads are charged against both your code and
/// static data storage resource quotas.
core.bool? applicationReadable;
/// Time a static file served by this handler should 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;
/// MIME type used to serve all files served by this handler.Defaults to
/// file-specific MIME types, which are derived from each file's filename
/// extension.
core.String? mimeType;
/// 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;
/// Whether this handler should match the request if the file referenced by
/// the handler does not exist.
core.bool? requireMatchingFile;
/// Regular expression that matches the file paths for all files that should
/// be referenced by this handler.
core.String? uploadPathRegex;
StaticFilesHandler();
StaticFilesHandler.fromJson(core.Map _json) {
if (_json.containsKey('applicationReadable')) {
applicationReadable = _json['applicationReadable'] as core.bool;
}
if (_json.containsKey('expiration')) {
expiration = _json['expiration'] as core.String;
}
if (_json.containsKey('httpHeaders')) {
httpHeaders = (_json['httpHeaders'] as core.Map)
.cast<core.String, core.String>()
.map(
(key, item) => core.MapEntry(
key,
item as core.String,
),
);
}
if (_json.containsKey('mimeType')) {
mimeType = _json['mimeType'] as core.String;
}
if (_json.containsKey('path')) {
path = _json['path'] as core.String;
}
if (_json.containsKey('requireMatchingFile')) {
requireMatchingFile = _json['requireMatchingFile'] as core.bool;
}
if (_json.containsKey('uploadPathRegex')) {
uploadPathRegex = _json['uploadPathRegex'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (applicationReadable != null)
'applicationReadable': applicationReadable!,
if (expiration != null) 'expiration': expiration!,
if (httpHeaders != null) 'httpHeaders': httpHeaders!,
if (mimeType != null) 'mimeType': mimeType!,
if (path != null) 'path': path!,
if (requireMatchingFile != null)
'requireMatchingFile': requireMatchingFile!,
if (uploadPathRegex != null) 'uploadPathRegex': uploadPathRegex!,
};
}
/// The Status type 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). Each Status message contains
/// three pieces of data: error code, error message, and error details.You can
/// find out more about this error model and how to work with it in the API
/// Design Guide (https://cloud.google.com/apis/design/errors).
class Status {
/// The status code, which should be an enum value of google.rpc.Code.
core.int? code;
/// A list of messages that carry the error details.
///
/// There is 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 field, or localized by the client.
core.String? message;
Status();
Status.fromJson(core.Map _json) {
if (_json.containsKey('code')) {
code = _json['code'] as core.int;
}
if (_json.containsKey('details')) {
details = (_json['details'] as core.List)
.map<core.Map<core.String, core.Object>>((value) =>
(value as core.Map).cast<core.String, core.Object>().map(
(key, item) => core.MapEntry(
key,
item as core.Object,
),
))
.toList();
}
if (_json.containsKey('message')) {
message = _json['message'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (code != null) 'code': code!,
if (details != null) 'details': details!,
if (message != null) 'message': message!,
};
}
/// Traffic routing configuration for versions within a single service.
///
/// Traffic splits define how traffic directed to the service is assigned to
/// versions.
class TrafficSplit {
/// Mapping from version IDs within the service to fractional (0.000, 1\]
/// allocations of traffic for that version.
///
/// Each version can be specified only once, but some versions in the service
/// may not have any traffic allocation. Services that have traffic allocated
/// cannot be deleted until either the service is deleted or their traffic
/// allocation is removed. Allocations must sum to 1. Up to two decimal place
/// precision is supported for IP-based splits and up to three decimal places
/// is supported for cookie-based splits.
core.Map<core.String, core.double>? allocations;
/// Mechanism used to determine which version a request is sent to.
///
/// The traffic selection algorithm will be stable for either type until
/// allocations are changed.
/// Possible string values are:
/// - "UNSPECIFIED" : Diversion method unspecified.
/// - "COOKIE" : Diversion based on a specially named cookie, "GOOGAPPUID."
/// The cookie must be set by the application itself or no diversion will
/// occur.
/// - "IP" : Diversion based on applying the modulus operation to a
/// fingerprint of the IP address.
/// - "RANDOM" : Diversion based on weighted random assignment. An incoming
/// request is randomly routed to a version in the traffic split, with
/// probability proportional to the version's traffic share.
core.String? shardBy;
TrafficSplit();
TrafficSplit.fromJson(core.Map _json) {
if (_json.containsKey('allocations')) {
allocations = (_json['allocations'] as core.Map)
.cast<core.String, core.double>()
.map(
(key, item) => core.MapEntry(
key,
(item as core.num).toDouble(),
),
);
}
if (_json.containsKey('shardBy')) {
shardBy = _json['shardBy'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (allocations != null) 'allocations': allocations!,
if (shardBy != null) 'shardBy': shardBy!,
};
}
/// Rules to match an HTTP request and dispatch that request to a service.
class UrlDispatchRule {
/// Domain name to match against.
///
/// The wildcard "*" is supported if specified before a period: "*.".Defaults
/// to matching all domains: "*".
core.String? domain;
/// Pathname within the host.
///
/// Must start with a "/". A single "*" 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;
/// Resource ID of a service in this application that should serve the matched
/// request.
///
/// The service must already exist. Example: default.
core.String? service;
UrlDispatchRule();
UrlDispatchRule.fromJson(core.Map _json) {
if (_json.containsKey('domain')) {
domain = _json['domain'] as core.String;
}
if (_json.containsKey('path')) {
path = _json['path'] as core.String;
}
if (_json.containsKey('service')) {
service = _json['service'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (domain != null) 'domain': domain!,
if (path != null) 'path': path!,
if (service != null) 'service': service!,
};
}
/// URL pattern and description of how the URL should be handled.
///
/// App Engine can handle URLs by executing application code or by serving
/// static files uploaded with the version, such as images, CSS, or JavaScript.
class UrlMap {
/// Uses API Endpoints to handle requests.
ApiEndpointHandler? apiEndpoint;
/// Action to take when users access resources that require authentication.
///
/// Defaults to redirect.
/// Possible string values are:
/// - "AUTH_FAIL_ACTION_UNSPECIFIED" : Not specified.
/// AUTH_FAIL_ACTION_REDIRECT is assumed.
/// - "AUTH_FAIL_ACTION_REDIRECT" : Redirects user to "accounts.google.com".
/// The user is redirected back to the application URL after signing in or
/// creating an account.
/// - "AUTH_FAIL_ACTION_UNAUTHORIZED" : Rejects request with a 401 HTTP status
/// code and an error message.
core.String? authFailAction;
/// Level of login required to access this resource.
///
/// Not supported for Node.js in the App Engine standard environment.
/// Possible string values are:
/// - "LOGIN_UNSPECIFIED" : Not specified. LOGIN_OPTIONAL is assumed.
/// - "LOGIN_OPTIONAL" : Does not require that the user is signed in.
/// - "LOGIN_ADMIN" : If the user is not signed in, the auth_fail_action is
/// taken. In addition, if the user is not an administrator for the
/// application, they are given an error message regardless of
/// auth_fail_action. If the user is an administrator, the handler proceeds.
/// - "LOGIN_REQUIRED" : If the user has signed in, the handler proceeds
/// normally. Otherwise, the auth_fail_action is taken.
core.String? login;
/// 30x code to use when performing redirects for the secure field.
///
/// Defaults to 302.
/// Possible string values are:
/// - "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED" : Not specified. 302 is
/// assumed.
/// - "REDIRECT_HTTP_RESPONSE_CODE_301" : 301 Moved Permanently code.
/// - "REDIRECT_HTTP_RESPONSE_CODE_302" : 302 Moved Temporarily code.
/// - "REDIRECT_HTTP_RESPONSE_CODE_303" : 303 See Other code.
/// - "REDIRECT_HTTP_RESPONSE_CODE_307" : 307 Temporary Redirect code.
core.String? redirectHttpResponseCode;
/// Executes a script to handle the requests that match this URL pattern.
///
/// Only the auto value is supported for Node.js in the App Engine standard
/// environment, for example "script": "auto".
ScriptHandler? script;
/// Security (HTTPS) enforcement for this URL.
/// Possible string values are:
/// - "SECURE_UNSPECIFIED" : Not specified.
/// - "SECURE_DEFAULT" : Both HTTP and HTTPS requests with URLs that match the
/// handler succeed without redirects. The application can examine the request
/// to determine which protocol was used, and respond accordingly.
/// - "SECURE_NEVER" : Requests for a URL that match this handler that use
/// HTTPS are automatically redirected to the HTTP equivalent URL.
/// - "SECURE_OPTIONAL" : Both HTTP and HTTPS requests with URLs that match
/// the handler succeed without redirects. The application can examine the
/// request to determine which protocol was used and respond accordingly.
/// - "SECURE_ALWAYS" : Requests for a URL that match this handler that do not
/// use HTTPS are automatically redirected to the HTTPS URL with the same
/// path. Query parameters are reserved for the redirect.
core.String? securityLevel;
/// Returns the contents of a file, such as an image, as the response.
StaticFilesHandler? staticFiles;
/// URL prefix.
///
/// Uses regular expression syntax, which means regexp special characters must
/// be escaped, but 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.
core.String? urlRegex;
UrlMap();
UrlMap.fromJson(core.Map _json) {
if (_json.containsKey('apiEndpoint')) {
apiEndpoint = ApiEndpointHandler.fromJson(
_json['apiEndpoint'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('authFailAction')) {
authFailAction = _json['authFailAction'] as core.String;
}
if (_json.containsKey('login')) {
login = _json['login'] as core.String;
}
if (_json.containsKey('redirectHttpResponseCode')) {
redirectHttpResponseCode =
_json['redirectHttpResponseCode'] as core.String;
}
if (_json.containsKey('script')) {
script = ScriptHandler.fromJson(
_json['script'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('securityLevel')) {
securityLevel = _json['securityLevel'] as core.String;
}
if (_json.containsKey('staticFiles')) {
staticFiles = StaticFilesHandler.fromJson(
_json['staticFiles'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('urlRegex')) {
urlRegex = _json['urlRegex'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (apiEndpoint != null) 'apiEndpoint': apiEndpoint!.toJson(),
if (authFailAction != null) 'authFailAction': authFailAction!,
if (login != null) 'login': login!,
if (redirectHttpResponseCode != null)
'redirectHttpResponseCode': redirectHttpResponseCode!,
if (script != null) 'script': script!.toJson(),
if (securityLevel != null) 'securityLevel': securityLevel!,
if (staticFiles != null) 'staticFiles': staticFiles!.toJson(),
if (urlRegex != null) 'urlRegex': urlRegex!,
};
}
/// A Version resource is a specific set of source code and configuration files
/// that are deployed into a service.
class Version {
/// Serving configuration for Google Cloud Endpoints
/// (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned
/// in GET requests if view=FULL is set.
ApiConfigHandler? apiConfig;
/// Automatic scaling is based on request rate, response latencies, and other
/// application metrics.
///
/// Instances are dynamically created and destroyed as needed in order to
/// handle traffic.
AutomaticScaling? automaticScaling;
/// A service 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;
/// Metadata settings that are supplied to this version to enable beta runtime
/// features.
core.Map<core.String, core.String>? betaSettings;
/// Environment variables available to the build environment.Only returned in
/// GET requests if view=FULL is set.
core.Map<core.String, core.String>? buildEnvVariables;
/// Time that this version was created.@OutputOnly
core.String? createTime;
/// Email address of the user who created this version.@OutputOnly
core.String? createdBy;
/// Duration that static files should be cached by web proxies and browsers.
///
/// Only applicable if the corresponding StaticFilesHandler
/// (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StaticFilesHandler)
/// does not specify its own expiration time.Only returned in GET requests if
/// view=FULL is set.
core.String? defaultExpiration;
/// Code and application artifacts that make up this version.Only returned in
/// GET requests if view=FULL is set.
Deployment? deployment;
/// Total size in bytes of all the files that are included in this version and
/// currently hosted on the App Engine disk.@OutputOnly
core.String? diskUsageBytes;
/// Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud
/// Endpoints Extensible Service Proxy will be provided to serve the API
/// implemented by the app.
EndpointsApiService? endpointsApiService;
/// The entrypoint for the application.
Entrypoint? entrypoint;
/// App Engine execution environment for this version.Defaults to standard.
core.String? env;
/// Environment variables available to the application.Only returned in GET
/// requests if view=FULL is set.
core.Map<core.String, core.String>? envVariables;
/// Custom static error pages.
///
/// Limited to 10KB per page.Only returned in GET requests if view=FULL is
/// set.
core.List<ErrorHandler>? errorHandlers;
/// An ordered list of URL-matching patterns that should be applied to
/// incoming requests.
///
/// The first matching URL handles the request and other request handlers are
/// not attempted.Only returned in GET requests if view=FULL is set.
core.List<UrlMap>? handlers;
/// Configures health checking for instances.
///
/// Unhealthy instances are stopped and replaced with new instances. Only
/// applicable in the App Engine flexible environment.Only returned in GET
/// requests if view=FULL is set.
HealthCheck? healthCheck;
/// Relative name of the version within the service.
///
/// Example: v1. Version names can contain only lowercase letters, numbers, or
/// hyphens. Reserved names: "default", "latest", and any name with the prefix
/// "ah-".
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;
/// Instance class that is used to run this version.
///
/// Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or
/// BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and
/// B1 for ManualScaling or BasicScaling.
core.String? instanceClass;
/// Configuration for third-party Python runtime libraries that are required
/// by the application.Only returned in GET requests if view=FULL is set.
core.List<Library>? libraries;
/// Configures liveness health checking for instances.
///
/// Unhealthy instances are stopped and replaced with new instancesOnly
/// returned in GET requests if view=FULL is set.
LivenessCheck? livenessCheck;
/// A service with manual scaling runs continuously, allowing you to perform
/// complex initialization and rely on the state of its memory over time.
///
/// Manually scaled versions are sometimes referred to as "backends".
ManualScaling? manualScaling;
/// Full path to the Version resource in the API.
///
/// Example: apps/myapp/services/default/versions/v1.@OutputOnly
core.String? name;
/// Extra network settings.
///
/// Only applicable in the App Engine flexible environment.
Network? network;
/// Files that match this pattern will not be built into this version.
///
/// Only applicable for Go runtimes.Only returned in GET requests if view=FULL
/// is set.
core.String? nobuildFilesRegex;
/// Configures readiness health checking for instances.
///
/// Unhealthy instances are not put into the backend traffic rotation.Only
/// returned in GET requests if view=FULL is set.
ReadinessCheck? readinessCheck;
/// Machine resources for this version.
///
/// Only applicable in the App Engine flexible environment.
Resources? resources;
/// Desired runtime.
///
/// Example: python27.
core.String? runtime;
/// The version of the API in the given runtime environment.
///
/// Please see the app.yaml reference for valid values at
/// https://cloud.google.com/appengine/docs/standard//config/appref
core.String? runtimeApiVersion;
/// The channel of the runtime to use.
///
/// Only available for some runtimes. Defaults to the default channel.
core.String? runtimeChannel;
/// The path or name of the app's main executable.
core.String? runtimeMainExecutablePath;
/// Current serving status of this version.
///
/// Only the versions with a SERVING status create instances and can be
/// billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to
/// SERVING.
/// Possible string values are:
/// - "SERVING_STATUS_UNSPECIFIED" : Not specified.
/// - "SERVING" : Currently serving. Instances are created according to the
/// scaling settings of the version.
/// - "STOPPED" : Disabled. No instances will be created and the scaling
/// settings are ignored until the state of the version changes to SERVING.
core.String? servingStatus;
/// Whether multiple requests can be dispatched to this version at once.
core.bool? threadsafe;
/// Serving URL for this version.
///
/// Example:
/// "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
core.String? versionUrl;
/// Whether to deploy this version in a container on a virtual machine.
core.bool? vm;
/// Enables VPC connectivity for standard apps.
VpcAccessConnector? vpcAccessConnector;
/// The Google Compute Engine zones that are supported by this version in the
/// App Engine flexible environment.
///
/// Deprecated.
core.List<core.String>? zones;
Version();
Version.fromJson(core.Map _json) {
if (_json.containsKey('apiConfig')) {
apiConfig = ApiConfigHandler.fromJson(
_json['apiConfig'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('automaticScaling')) {
automaticScaling = AutomaticScaling.fromJson(
_json['automaticScaling'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('basicScaling')) {
basicScaling = BasicScaling.fromJson(
_json['basicScaling'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('betaSettings')) {
betaSettings = (_json['betaSettings'] as core.Map)
.cast<core.String, core.String>()
.map(
(key, item) => core.MapEntry(
key,
item as core.String,
),
);
}
if (_json.containsKey('buildEnvVariables')) {
buildEnvVariables = (_json['buildEnvVariables'] as core.Map)
.cast<core.String, core.String>()
.map(
(key, item) => core.MapEntry(
key,
item as core.String,
),
);
}
if (_json.containsKey('createTime')) {
createTime = _json['createTime'] as core.String;
}
if (_json.containsKey('createdBy')) {
createdBy = _json['createdBy'] as core.String;
}
if (_json.containsKey('defaultExpiration')) {
defaultExpiration = _json['defaultExpiration'] as core.String;
}
if (_json.containsKey('deployment')) {
deployment = Deployment.fromJson(
_json['deployment'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('diskUsageBytes')) {
diskUsageBytes = _json['diskUsageBytes'] as core.String;
}
if (_json.containsKey('endpointsApiService')) {
endpointsApiService = EndpointsApiService.fromJson(
_json['endpointsApiService'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('entrypoint')) {
entrypoint = Entrypoint.fromJson(
_json['entrypoint'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('env')) {
env = _json['env'] as core.String;
}
if (_json.containsKey('envVariables')) {
envVariables = (_json['envVariables'] as core.Map)
.cast<core.String, core.String>()
.map(
(key, item) => core.MapEntry(
key,
item as core.String,
),
);
}
if (_json.containsKey('errorHandlers')) {
errorHandlers = (_json['errorHandlers'] as core.List)
.map<ErrorHandler>((value) => ErrorHandler.fromJson(
value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('handlers')) {
handlers = (_json['handlers'] as core.List)
.map<UrlMap>((value) =>
UrlMap.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('healthCheck')) {
healthCheck = HealthCheck.fromJson(
_json['healthCheck'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('id')) {
id = _json['id'] as core.String;
}
if (_json.containsKey('inboundServices')) {
inboundServices = (_json['inboundServices'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
if (_json.containsKey('instanceClass')) {
instanceClass = _json['instanceClass'] as core.String;
}
if (_json.containsKey('libraries')) {
libraries = (_json['libraries'] as core.List)
.map<Library>((value) =>
Library.fromJson(value as core.Map<core.String, core.dynamic>))
.toList();
}
if (_json.containsKey('livenessCheck')) {
livenessCheck = LivenessCheck.fromJson(
_json['livenessCheck'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('manualScaling')) {
manualScaling = ManualScaling.fromJson(
_json['manualScaling'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('network')) {
network = Network.fromJson(
_json['network'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('nobuildFilesRegex')) {
nobuildFilesRegex = _json['nobuildFilesRegex'] as core.String;
}
if (_json.containsKey('readinessCheck')) {
readinessCheck = ReadinessCheck.fromJson(
_json['readinessCheck'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('resources')) {
resources = Resources.fromJson(
_json['resources'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('runtime')) {
runtime = _json['runtime'] as core.String;
}
if (_json.containsKey('runtimeApiVersion')) {
runtimeApiVersion = _json['runtimeApiVersion'] as core.String;
}
if (_json.containsKey('runtimeChannel')) {
runtimeChannel = _json['runtimeChannel'] as core.String;
}
if (_json.containsKey('runtimeMainExecutablePath')) {
runtimeMainExecutablePath =
_json['runtimeMainExecutablePath'] as core.String;
}
if (_json.containsKey('servingStatus')) {
servingStatus = _json['servingStatus'] as core.String;
}
if (_json.containsKey('threadsafe')) {
threadsafe = _json['threadsafe'] as core.bool;
}
if (_json.containsKey('versionUrl')) {
versionUrl = _json['versionUrl'] as core.String;
}
if (_json.containsKey('vm')) {
vm = _json['vm'] as core.bool;
}
if (_json.containsKey('vpcAccessConnector')) {
vpcAccessConnector = VpcAccessConnector.fromJson(
_json['vpcAccessConnector'] as core.Map<core.String, core.dynamic>);
}
if (_json.containsKey('zones')) {
zones = (_json['zones'] as core.List)
.map<core.String>((value) => value as core.String)
.toList();
}
}
core.Map<core.String, core.Object?> toJson() => {
if (apiConfig != null) 'apiConfig': apiConfig!.toJson(),
if (automaticScaling != null)
'automaticScaling': automaticScaling!.toJson(),
if (basicScaling != null) 'basicScaling': basicScaling!.toJson(),
if (betaSettings != null) 'betaSettings': betaSettings!,
if (buildEnvVariables != null) 'buildEnvVariables': buildEnvVariables!,
if (createTime != null) 'createTime': createTime!,
if (createdBy != null) 'createdBy': createdBy!,
if (defaultExpiration != null) 'defaultExpiration': defaultExpiration!,
if (deployment != null) 'deployment': deployment!.toJson(),
if (diskUsageBytes != null) 'diskUsageBytes': diskUsageBytes!,
if (endpointsApiService != null)
'endpointsApiService': endpointsApiService!.toJson(),
if (entrypoint != null) 'entrypoint': entrypoint!.toJson(),
if (env != null) 'env': env!,
if (envVariables != null) 'envVariables': envVariables!,
if (errorHandlers != null)
'errorHandlers':
errorHandlers!.map((value) => value.toJson()).toList(),
if (handlers != null)
'handlers': handlers!.map((value) => value.toJson()).toList(),
if (healthCheck != null) 'healthCheck': healthCheck!.toJson(),
if (id != null) 'id': id!,
if (inboundServices != null) 'inboundServices': inboundServices!,
if (instanceClass != null) 'instanceClass': instanceClass!,
if (libraries != null)
'libraries': libraries!.map((value) => value.toJson()).toList(),
if (livenessCheck != null) 'livenessCheck': livenessCheck!.toJson(),
if (manualScaling != null) 'manualScaling': manualScaling!.toJson(),
if (name != null) 'name': name!,
if (network != null) 'network': network!.toJson(),
if (nobuildFilesRegex != null) 'nobuildFilesRegex': nobuildFilesRegex!,
if (readinessCheck != null) 'readinessCheck': readinessCheck!.toJson(),
if (resources != null) 'resources': resources!.toJson(),
if (runtime != null) 'runtime': runtime!,
if (runtimeApiVersion != null) 'runtimeApiVersion': runtimeApiVersion!,
if (runtimeChannel != null) 'runtimeChannel': runtimeChannel!,
if (runtimeMainExecutablePath != null)
'runtimeMainExecutablePath': runtimeMainExecutablePath!,
if (servingStatus != null) 'servingStatus': servingStatus!,
if (threadsafe != null) 'threadsafe': threadsafe!,
if (versionUrl != null) 'versionUrl': versionUrl!,
if (vm != null) 'vm': vm!,
if (vpcAccessConnector != null)
'vpcAccessConnector': vpcAccessConnector!.toJson(),
if (zones != null) 'zones': zones!,
};
}
/// Volumes mounted within the app container.
///
/// Only applicable in the App Engine flexible environment.
class Volume {
/// Unique name for the volume.
core.String? name;
/// Volume size in gigabytes.
core.double? sizeGb;
/// Underlying volume type, e.g. 'tmpfs'.
core.String? volumeType;
Volume();
Volume.fromJson(core.Map _json) {
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
if (_json.containsKey('sizeGb')) {
sizeGb = (_json['sizeGb'] as core.num).toDouble();
}
if (_json.containsKey('volumeType')) {
volumeType = _json['volumeType'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (name != null) 'name': name!,
if (sizeGb != null) 'sizeGb': sizeGb!,
if (volumeType != null) 'volumeType': volumeType!,
};
}
/// VPC access connector specification.
class VpcAccessConnector {
/// Full Serverless VPC Access Connector name e.g.
/// /projects/my-project/locations/us-central1/connectors/c1.
core.String? name;
VpcAccessConnector();
VpcAccessConnector.fromJson(core.Map _json) {
if (_json.containsKey('name')) {
name = _json['name'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (name != null) 'name': name!,
};
}
/// The zip file information for a zip deployment.
class ZipInfo {
/// An estimate of the number of files in a zip for a zip deployment.
///
/// If set, must be greater than or equal to the actual number of files. Used
/// for optimizing performance; if not provided, deployment may be slow.
core.int? filesCount;
/// URL of the zip file to deploy from.
///
/// Must be a URL to a resource in Google Cloud Storage in the form
/// 'http(s)://storage.googleapis.com//'.
core.String? sourceUrl;
ZipInfo();
ZipInfo.fromJson(core.Map _json) {
if (_json.containsKey('filesCount')) {
filesCount = _json['filesCount'] as core.int;
}
if (_json.containsKey('sourceUrl')) {
sourceUrl = _json['sourceUrl'] as core.String;
}
}
core.Map<core.String, core.Object?> toJson() => {
if (filesCount != null) 'filesCount': filesCount!,
if (sourceUrl != null) 'sourceUrl': sourceUrl!,
};
}