2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-18 11:05:18 +00:00
restic/vendor/google.golang.org/api/appengine/v1/appengine-api.json
2017-09-21 17:48:45 +02:00

3178 lines
139 KiB
JSON

{
"servicePath": "",
"description": "The App Engine Admin API enables developers to provision and manage their App Engine applications.",
"kind": "discovery#restDescription",
"rootUrl": "https://appengine.googleapis.com/",
"basePath": "",
"ownerDomain": "google.com",
"name": "appengine",
"batchPath": "batch",
"documentationLink": "https://cloud.google.com/appengine/docs/admin-api/",
"id": "appengine:v1",
"revision": "20170912",
"title": "Google App Engine Admin API",
"ownerName": "Google",
"discoveryVersion": "v1",
"version_module": true,
"resources": {
"apps": {
"methods": {
"repair": {
"path": "v1/apps/{appsId}:repair",
"id": "appengine.apps.repair",
"request": {
"$ref": "RepairApplicationRequest"
},
"description": "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.",
"httpMethod": "POST",
"parameterOrder": [
"appsId"
],
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"appsId": {
"description": "Part of `name`. Name of the application to repair. Example: apps/myapp",
"type": "string",
"required": true,
"location": "path"
}
},
"flatPath": "v1/apps/{appsId}:repair"
},
"patch": {
"httpMethod": "PATCH",
"parameterOrder": [
"appsId"
],
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"updateMask": {
"location": "query",
"format": "google-fieldmask",
"description": "Standard field mask for the set of fields to be updated.",
"type": "string"
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the Application resource to update. Example: apps/myapp.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}",
"path": "v1/apps/{appsId}",
"id": "appengine.apps.patch",
"request": {
"$ref": "Application"
},
"description": "Updates the specified Application resource. You can update the following fields:\nauth_domain - Google authentication domain for controlling user access to the application.\ndefault_cookie_expiration - Cookie expiration policy for the application."
},
"get": {
"description": "Gets information about an application.",
"response": {
"$ref": "Application"
},
"parameterOrder": [
"appsId"
],
"httpMethod": "GET",
"parameters": {
"appsId": {
"description": "Part of `name`. Name of the Application resource to get. Example: apps/myapp.",
"type": "string",
"required": true,
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}",
"id": "appengine.apps.get",
"path": "v1/apps/{appsId}"
},
"create": {
"httpMethod": "POST",
"parameterOrder": [],
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {},
"flatPath": "v1/apps",
"path": "v1/apps",
"id": "appengine.apps.create",
"request": {
"$ref": "Application"
},
"description": "Creates an App Engine application for a Google Cloud Platform project. Required fields:\nid - The ID of the target Cloud Platform project.\nlocation - 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/python/console/)."
}
},
"resources": {
"locations": {
"methods": {
"get": {
"flatPath": "v1/apps/{appsId}/locations/{locationsId}",
"id": "appengine.apps.locations.get",
"path": "v1/apps/{appsId}/locations/{locationsId}",
"description": "Get information about a location.",
"response": {
"$ref": "Location"
},
"parameterOrder": [
"appsId",
"locationsId"
],
"httpMethod": "GET",
"parameters": {
"locationsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"appsId": {
"location": "path",
"description": "Part of `name`. Resource name for the location.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
]
},
"list": {
"description": "Lists information about the supported locations for this service.",
"response": {
"$ref": "ListLocationsResponse"
},
"parameterOrder": [
"appsId"
],
"httpMethod": "GET",
"parameters": {
"filter": {
"description": "The standard list filter.",
"type": "string",
"location": "query"
},
"pageToken": {
"description": "The standard list page token.",
"type": "string",
"location": "query"
},
"appsId": {
"location": "path",
"description": "Part of `name`. The resource that owns the locations collection, if applicable.",
"type": "string",
"required": true
},
"pageSize": {
"format": "int32",
"description": "The standard list page size.",
"type": "integer",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/locations",
"id": "appengine.apps.locations.list",
"path": "v1/apps/{appsId}/locations"
}
}
},
"authorizedCertificates": {
"methods": {
"delete": {
"parameterOrder": [
"appsId",
"authorizedCertificatesId"
],
"httpMethod": "DELETE",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"authorizedCertificatesId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"appsId": {
"description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345.",
"type": "string",
"required": true,
"location": "path"
}
},
"flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
"id": "appengine.apps.authorizedCertificates.delete",
"path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
"description": "Deletes the specified SSL certificate."
},
"patch": {
"description": "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": {
"$ref": "AuthorizedCertificate"
},
"httpMethod": "PATCH",
"parameterOrder": [
"appsId",
"authorizedCertificatesId"
],
"response": {
"$ref": "AuthorizedCertificate"
},
"parameters": {
"authorizedCertificatesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"updateMask": {
"location": "query",
"format": "google-fieldmask",
"description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.",
"type": "string"
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/authorizedCertificates/12345.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
"path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
"id": "appengine.apps.authorizedCertificates.patch"
},
"get": {
"description": "Gets the specified SSL certificate.",
"httpMethod": "GET",
"response": {
"$ref": "AuthorizedCertificate"
},
"parameterOrder": [
"appsId",
"authorizedCertificatesId"
],
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"authorizedCertificatesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.",
"type": "string",
"required": true,
"location": "path"
},
"view": {
"description": "Controls the set of fields returned in the GET response.",
"type": "string",
"location": "query",
"enum": [
"BASIC_CERTIFICATE",
"FULL_CERTIFICATE"
]
}
},
"flatPath": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
"path": "v1/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
"id": "appengine.apps.authorizedCertificates.get"
},
"list": {
"description": "Lists all SSL certificates the user is authorized to administer.",
"response": {
"$ref": "ListAuthorizedCertificatesResponse"
},
"parameterOrder": [
"appsId"
],
"httpMethod": "GET",
"parameters": {
"pageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string",
"location": "query"
},
"appsId": {
"location": "path",
"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.",
"type": "string",
"required": true
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "Maximum results to return per page.",
"type": "integer"
},
"view": {
"location": "query",
"enum": [
"BASIC_CERTIFICATE",
"FULL_CERTIFICATE"
],
"description": "Controls the set of fields returned in the LIST response.",
"type": "string"
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/authorizedCertificates",
"id": "appengine.apps.authorizedCertificates.list",
"path": "v1/apps/{appsId}/authorizedCertificates"
},
"create": {
"httpMethod": "POST",
"parameterOrder": [
"appsId"
],
"response": {
"$ref": "AuthorizedCertificate"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"appsId": {
"location": "path",
"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}/authorizedCertificates",
"path": "v1/apps/{appsId}/authorizedCertificates",
"id": "appengine.apps.authorizedCertificates.create",
"request": {
"$ref": "AuthorizedCertificate"
},
"description": "Uploads the specified SSL certificate."
}
}
},
"services": {
"methods": {
"delete": {
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"servicesId"
],
"httpMethod": "DELETE",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"appsId": {
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.",
"type": "string",
"required": true,
"location": "path"
},
"servicesId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}/services/{servicesId}",
"id": "appengine.apps.services.delete",
"path": "v1/apps/{appsId}/services/{servicesId}",
"description": "Deletes the specified service and all enclosed versions."
},
"patch": {
"flatPath": "v1/apps/{appsId}/services/{servicesId}",
"id": "appengine.apps.services.patch",
"path": "v1/apps/{appsId}/services/{servicesId}",
"request": {
"$ref": "Service"
},
"description": "Updates the configuration of the specified service.",
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"servicesId"
],
"httpMethod": "PATCH",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"updateMask": {
"location": "query",
"format": "google-fieldmask",
"description": "Standard field mask for the set of fields to be updated.",
"type": "string"
},
"servicesId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default.",
"type": "string",
"required": true
},
"migrateTraffic": {
"location": "query",
"description": "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).",
"type": "boolean"
}
}
},
"get": {
"id": "appengine.apps.services.get",
"path": "v1/apps/{appsId}/services/{servicesId}",
"description": "Gets the current configuration of the specified service.",
"parameterOrder": [
"appsId",
"servicesId"
],
"httpMethod": "GET",
"response": {
"$ref": "Service"
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"servicesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default.",
"type": "string",
"required": true,
"location": "path"
}
},
"flatPath": "v1/apps/{appsId}/services/{servicesId}"
},
"list": {
"response": {
"$ref": "ListServicesResponse"
},
"parameterOrder": [
"appsId"
],
"httpMethod": "GET",
"parameters": {
"pageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string",
"location": "query"
},
"appsId": {
"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.",
"type": "string",
"required": true,
"location": "path"
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "Maximum results to return per page.",
"type": "integer"
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/services",
"id": "appengine.apps.services.list",
"path": "v1/apps/{appsId}/services",
"description": "Lists all the services in the application."
}
},
"resources": {
"versions": {
"methods": {
"delete": {
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}",
"id": "appengine.apps.services.versions.delete",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}",
"description": "Deletes an existing Version resource.",
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"servicesId",
"versionsId"
],
"httpMethod": "DELETE",
"parameters": {
"versionsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"servicesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"request": {
"$ref": "Version"
},
"description": "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:\nserving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment.\ninstance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment.\nautomatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.\nautomatic_scaling.min_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.max_total_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cool_down_period_sec (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.\nautomatic_scaling.cpu_utilization.target_utilization (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine Flexible environment.",
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"servicesId",
"versionsId"
],
"httpMethod": "PATCH",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"updateMask": {
"format": "google-fieldmask",
"description": "Standard field mask for the set of fields to be updated.",
"type": "string",
"location": "query"
},
"servicesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1.",
"type": "string",
"required": true,
"location": "path"
},
"versionsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}",
"id": "appengine.apps.services.versions.patch",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}"
},
"get": {
"httpMethod": "GET",
"parameterOrder": [
"appsId",
"servicesId",
"versionsId"
],
"response": {
"$ref": "Version"
},
"parameters": {
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1.",
"type": "string",
"required": true
},
"view": {
"location": "query",
"enum": [
"BASIC",
"FULL"
],
"description": "Controls the set of fields returned in the Get response.",
"type": "string"
},
"versionsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"servicesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}",
"id": "appengine.apps.services.versions.get",
"description": "Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource."
},
"list": {
"description": "Lists the versions of a service.",
"response": {
"$ref": "ListVersionsResponse"
},
"parameterOrder": [
"appsId",
"servicesId"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"servicesId": {
"location": "path",
"description": "Part of `parent`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"pageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string",
"location": "query"
},
"appsId": {
"location": "path",
"description": "Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default.",
"type": "string",
"required": true
},
"pageSize": {
"location": "query",
"format": "int32",
"description": "Maximum results to return per page.",
"type": "integer"
},
"view": {
"location": "query",
"enum": [
"BASIC",
"FULL"
],
"description": "Controls the set of fields returned in the List response.",
"type": "string"
}
},
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions",
"id": "appengine.apps.services.versions.list",
"path": "v1/apps/{appsId}/services/{servicesId}/versions"
},
"create": {
"httpMethod": "POST",
"parameterOrder": [
"appsId",
"servicesId"
],
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"appsId": {
"description": "Part of `parent`. Name of the parent resource to create this version under. Example: apps/myapp/services/default.",
"type": "string",
"required": true,
"location": "path"
},
"servicesId": {
"description": "Part of `parent`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
}
},
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions",
"path": "v1/apps/{appsId}/services/{servicesId}/versions",
"id": "appengine.apps.services.versions.create",
"request": {
"$ref": "Version"
},
"description": "Deploys code and resource files to a new version."
}
},
"resources": {
"instances": {
"methods": {
"delete": {
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"servicesId",
"versionsId",
"instancesId"
],
"httpMethod": "DELETE",
"parameters": {
"servicesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"instancesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.",
"type": "string",
"required": true
},
"versionsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}",
"id": "appengine.apps.services.versions.instances.delete",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}",
"description": "Stops a running instance."
},
"get": {
"response": {
"$ref": "Instance"
},
"parameterOrder": [
"appsId",
"servicesId",
"versionsId",
"instancesId"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"versionsId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"servicesId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"instancesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}",
"id": "appengine.apps.services.versions.instances.get",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}",
"description": "Gets instance information."
},
"list": {
"description": "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).",
"httpMethod": "GET",
"response": {
"$ref": "ListInstancesResponse"
},
"parameterOrder": [
"appsId",
"servicesId",
"versionsId"
],
"parameters": {
"servicesId": {
"description": "Part of `parent`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"pageToken": {
"location": "query",
"description": "Continuation token for fetching the next page of results.",
"type": "string"
},
"appsId": {
"location": "path",
"description": "Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1.",
"type": "string",
"required": true
},
"pageSize": {
"format": "int32",
"description": "Maximum results to return per page.",
"type": "integer",
"location": "query"
},
"versionsId": {
"location": "path",
"description": "Part of `parent`. See documentation of `appsId`.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances",
"id": "appengine.apps.services.versions.instances.list"
},
"debug": {
"description": "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": {
"$ref": "DebugInstanceRequest"
},
"httpMethod": "POST",
"parameterOrder": [
"appsId",
"servicesId",
"versionsId",
"instancesId"
],
"response": {
"$ref": "Operation"
},
"parameters": {
"servicesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"instancesId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
},
"appsId": {
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1.",
"type": "string",
"required": true,
"location": "path"
},
"versionsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug",
"path": "v1/apps/{appsId}/services/{servicesId}/versions/{versionsId}/instances/{instancesId}:debug",
"id": "appengine.apps.services.versions.instances.debug"
}
}
}
}
}
}
},
"authorizedDomains": {
"methods": {
"list": {
"httpMethod": "GET",
"response": {
"$ref": "ListAuthorizedDomainsResponse"
},
"parameterOrder": [
"appsId"
],
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"pageSize": {
"format": "int32",
"description": "Maximum results to return per page.",
"type": "integer",
"location": "query"
},
"pageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string",
"location": "query"
},
"appsId": {
"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.",
"type": "string",
"required": true,
"location": "path"
}
},
"flatPath": "v1/apps/{appsId}/authorizedDomains",
"path": "v1/apps/{appsId}/authorizedDomains",
"id": "appengine.apps.authorizedDomains.list",
"description": "Lists all domains the user is authorized to administer."
}
}
},
"operations": {
"methods": {
"get": {
"path": "v1/apps/{appsId}/operations/{operationsId}",
"id": "appengine.apps.operations.get",
"description": "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.",
"httpMethod": "GET",
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"operationsId"
],
"parameters": {
"appsId": {
"description": "Part of `name`. The name of the operation resource.",
"type": "string",
"required": true,
"location": "path"
},
"operationsId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/operations/{operationsId}"
},
"list": {
"description": "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.",
"response": {
"$ref": "ListOperationsResponse"
},
"parameterOrder": [
"appsId"
],
"httpMethod": "GET",
"parameters": {
"pageSize": {
"format": "int32",
"description": "The standard list page size.",
"type": "integer",
"location": "query"
},
"filter": {
"location": "query",
"description": "The standard list filter.",
"type": "string"
},
"pageToken": {
"description": "The standard list page token.",
"type": "string",
"location": "query"
},
"appsId": {
"location": "path",
"description": "Part of `name`. The name of the operation's parent resource.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"flatPath": "v1/apps/{appsId}/operations",
"id": "appengine.apps.operations.list",
"path": "v1/apps/{appsId}/operations"
}
}
},
"domainMappings": {
"methods": {
"patch": {
"httpMethod": "PATCH",
"parameterOrder": [
"appsId",
"domainMappingsId"
],
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"domainMappingsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"updateMask": {
"location": "query",
"format": "google-fieldmask",
"description": "Standard field mask for the set of fields to be updated.",
"type": "string"
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}",
"path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}",
"id": "appengine.apps.domainMappings.patch",
"request": {
"$ref": "DomainMapping"
},
"description": "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."
},
"get": {
"id": "appengine.apps.domainMappings.get",
"path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}",
"description": "Gets the specified domain mapping.",
"response": {
"$ref": "DomainMapping"
},
"parameterOrder": [
"appsId",
"domainMappingsId"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.",
"type": "string",
"required": true
},
"domainMappingsId": {
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true,
"location": "path"
}
},
"flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}"
},
"list": {
"description": "Lists the domain mappings on an application.",
"parameterOrder": [
"appsId"
],
"response": {
"$ref": "ListDomainMappingsResponse"
},
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/appengine.admin",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
],
"parameters": {
"pageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string",
"location": "query"
},
"appsId": {
"location": "path",
"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.",
"type": "string",
"required": true
},
"pageSize": {
"format": "int32",
"description": "Maximum results to return per page.",
"type": "integer",
"location": "query"
}
},
"flatPath": "v1/apps/{appsId}/domainMappings",
"id": "appengine.apps.domainMappings.list",
"path": "v1/apps/{appsId}/domainMappings"
},
"create": {
"request": {
"$ref": "DomainMapping"
},
"description": "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.",
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId"
],
"httpMethod": "POST",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"appsId": {
"location": "path",
"description": "Part of `parent`. Name of the parent Application resource. Example: apps/myapp.",
"type": "string",
"required": true
}
},
"flatPath": "v1/apps/{appsId}/domainMappings",
"id": "appengine.apps.domainMappings.create",
"path": "v1/apps/{appsId}/domainMappings"
},
"delete": {
"response": {
"$ref": "Operation"
},
"parameterOrder": [
"appsId",
"domainMappingsId"
],
"httpMethod": "DELETE",
"parameters": {
"domainMappingsId": {
"location": "path",
"description": "Part of `name`. See documentation of `appsId`.",
"type": "string",
"required": true
},
"appsId": {
"location": "path",
"description": "Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.",
"type": "string",
"required": true
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1/apps/{appsId}/domainMappings/{domainMappingsId}",
"id": "appengine.apps.domainMappings.delete",
"path": "v1/apps/{appsId}/domainMappings/{domainMappingsId}",
"description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource."
}
}
}
}
}
},
"parameters": {
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"type": "string",
"location": "query"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string",
"location": "query"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
},
"callback": {
"description": "JSONP",
"type": "string",
"location": "query"
},
"alt": {
"enum": [
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"description": "Data format for response.",
"default": "json"
},
"access_token": {
"description": "OAuth access token.",
"type": "string",
"location": "query"
},
"key": {
"location": "query",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string"
}
},
"schemas": {
"OperationMetadataExperimental": {
"description": "Metadata for the given google.longrunning.Operation.",
"type": "object",
"properties": {
"method": {
"description": "API method that initiated this operation. Example: google.appengine.experimental.CustomDomains.CreateCustomDomain.@OutputOnly",
"type": "string"
},
"insertTime": {
"format": "google-datetime",
"description": "Time that this operation was created.@OutputOnly",
"type": "string"
},
"endTime": {
"format": "google-datetime",
"description": "Time that this operation completed.@OutputOnly",
"type": "string"
},
"target": {
"description": "Name of the resource that this operation is acting on. Example: apps/myapp/customDomains/example.com.@OutputOnly",
"type": "string"
},
"user": {
"description": "User who requested this operation.@OutputOnly",
"type": "string"
}
},
"id": "OperationMetadataExperimental"
},
"AuthorizedDomain": {
"description": "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).",
"type": "object",
"properties": {
"id": {
"description": "Fully qualified domain name of the domain authorized for use. Example: example.com.",
"type": "string"
},
"name": {
"description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly",
"type": "string"
}
},
"id": "AuthorizedDomain"
},
"TrafficSplit": {
"properties": {
"allocations": {
"additionalProperties": {
"format": "double",
"type": "number"
},
"description": "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.",
"type": "object"
},
"shardBy": {
"description": "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.",
"type": "string",
"enumDescriptions": [
"Diversion method unspecified.",
"Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie must be set by the application itself or no diversion will occur.",
"Diversion based on applying the modulus operation to a fingerprint of the IP address.",
"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."
],
"enum": [
"UNSPECIFIED",
"COOKIE",
"IP",
"RANDOM"
]
}
},
"id": "TrafficSplit",
"description": "Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions.",
"type": "object"
},
"OperationMetadataV1Beta": {
"properties": {
"warning": {
"description": "Durable messages that persist on every operation poll. @OutputOnly",
"items": {
"type": "string"
},
"type": "array"
},
"insertTime": {
"format": "google-datetime",
"description": "Time that this operation was created.@OutputOnly",
"type": "string"
},
"target": {
"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly",
"type": "string"
},
"user": {
"description": "User who requested this operation.@OutputOnly",
"type": "string"
},
"ephemeralMessage": {
"description": "Ephemeral message that may change every time the operation is polled. @OutputOnly",
"type": "string"
},
"method": {
"description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly",
"type": "string"
},
"endTime": {
"format": "google-datetime",
"description": "Time that this operation completed.@OutputOnly",
"type": "string"
}
},
"id": "OperationMetadataV1Beta",
"description": "Metadata for the given google.longrunning.Operation.",
"type": "object"
},
"ListServicesResponse": {
"description": "Response message for Services.ListServices.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string"
},
"services": {
"description": "The services belonging to the requested application.",
"items": {
"$ref": "Service"
},
"type": "array"
}
},
"id": "ListServicesResponse"
},
"Resources": {
"properties": {
"volumes": {
"description": "User specified volumes.",
"items": {
"$ref": "Volume"
},
"type": "array"
},
"diskGb": {
"format": "double",
"description": "Disk size (GB) needed.",
"type": "number"
},
"memoryGb": {
"format": "double",
"description": "Memory (GB) needed.",
"type": "number"
},
"cpu": {
"format": "double",
"description": "Number of CPU cores needed.",
"type": "number"
}
},
"id": "Resources",
"description": "Machine resources for a version.",
"type": "object"
},
"Deployment": {
"description": "Code and application artifacts used to deploy a version to App Engine.",
"type": "object",
"properties": {
"zip": {
"description": "The zip file for this deployment, if this is a zip deployment.",
"$ref": "ZipInfo"
},
"container": {
"description": "The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.",
"$ref": "ContainerInfo"
},
"files": {
"additionalProperties": {
"$ref": "FileInfo"
},
"description": "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.",
"type": "object"
}
},
"id": "Deployment"
},
"Volume": {
"properties": {
"sizeGb": {
"format": "double",
"description": "Volume size in gigabytes.",
"type": "number"
},
"name": {
"description": "Unique name for the volume.",
"type": "string"
},
"volumeType": {
"description": "Underlying volume type, e.g. 'tmpfs'.",
"type": "string"
}
},
"id": "Volume",
"description": "Volumes mounted within the app container. Only applicable for VM runtimes.",
"type": "object"
},
"ListInstancesResponse": {
"properties": {
"instances": {
"description": "The instances belonging to the requested version.",
"items": {
"$ref": "Instance"
},
"type": "array"
},
"nextPageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string"
}
},
"id": "ListInstancesResponse",
"description": "Response message for Instances.ListInstances.",
"type": "object"
},
"ListDomainMappingsResponse": {
"description": "Response message for DomainMappings.ListDomainMappings.",
"type": "object",
"properties": {
"domainMappings": {
"description": "The domain mappings for the application.",
"items": {
"$ref": "DomainMapping"
},
"type": "array"
},
"nextPageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string"
}
},
"id": "ListDomainMappingsResponse"
},
"OperationMetadataV1Alpha": {
"description": "Metadata for the given google.longrunning.Operation.",
"type": "object",
"properties": {
"method": {
"description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly",
"type": "string"
},
"endTime": {
"format": "google-datetime",
"description": "Time that this operation completed.@OutputOnly",
"type": "string"
},
"warning": {
"description": "Durable messages that persist on every operation poll. @OutputOnly",
"items": {
"type": "string"
},
"type": "array"
},
"insertTime": {
"format": "google-datetime",
"description": "Time that this operation was created.@OutputOnly",
"type": "string"
},
"target": {
"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly",
"type": "string"
},
"user": {
"description": "User who requested this operation.@OutputOnly",
"type": "string"
},
"ephemeralMessage": {
"description": "Ephemeral message that may change every time the operation is polled. @OutputOnly",
"type": "string"
}
},
"id": "OperationMetadataV1Alpha"
},
"UrlDispatchRule": {
"properties": {
"service": {
"description": "Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.",
"type": "string"
},
"domain": {
"description": "Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".Defaults to matching all domains: \"*\".",
"type": "string"
},
"path": {
"description": "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.",
"type": "string"
}
},
"id": "UrlDispatchRule",
"description": "Rules to match an HTTP request and dispatch that request to a service.",
"type": "object"
},
"ListVersionsResponse": {
"description": "Response message for Versions.ListVersions.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string"
},
"versions": {
"description": "The versions belonging to the requested service.",
"items": {
"$ref": "Version"
},
"type": "array"
}
},
"id": "ListVersionsResponse"
},
"ListAuthorizedDomainsResponse": {
"description": "Response message for AuthorizedDomains.ListAuthorizedDomains.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string"
},
"domains": {
"description": "The authorized domains belonging to the user.",
"items": {
"$ref": "AuthorizedDomain"
},
"type": "array"
}
},
"id": "ListAuthorizedDomainsResponse"
},
"DomainMapping": {
"properties": {
"sslSettings": {
"description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.",
"$ref": "SslSettings"
},
"name": {
"description": "Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly",
"type": "string"
},
"resourceRecords": {
"description": "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",
"items": {
"$ref": "ResourceRecord"
},
"type": "array"
},
"id": {
"description": "Relative name of the domain serving the application. Example: example.com.",
"type": "string"
}
},
"id": "DomainMapping",
"description": "A domain serving an App Engine application.",
"type": "object"
},
"ApiEndpointHandler": {
"description": "Uses Google Cloud Endpoints to handle requests.",
"type": "object",
"properties": {
"scriptPath": {
"description": "Path to the script from the application root directory.",
"type": "string"
}
},
"id": "ApiEndpointHandler"
},
"Empty": {
"description": "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:\nservice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\nThe JSON representation for Empty is empty JSON object {}.",
"type": "object",
"properties": {},
"id": "Empty"
},
"AutomaticScaling": {
"description": "Automatic scaling is based on request rate, response latencies, and other application metrics.",
"type": "object",
"properties": {
"diskUtilization": {
"description": "Target scaling by disk usage.",
"$ref": "DiskUtilization"
},
"minPendingLatency": {
"format": "google-duration",
"description": "Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.",
"type": "string"
},
"requestUtilization": {
"description": "Target scaling by request utilization.",
"$ref": "RequestUtilization"
},
"maxIdleInstances": {
"format": "int32",
"description": "Maximum number of idle instances that should be maintained for this version.",
"type": "integer"
},
"minIdleInstances": {
"format": "int32",
"description": "Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.",
"type": "integer"
},
"maxTotalInstances": {
"format": "int32",
"description": "Maximum number of instances that should be started to handle requests.",
"type": "integer"
},
"minTotalInstances": {
"format": "int32",
"description": "Minimum number of instances that should be maintained for this version.",
"type": "integer"
},
"networkUtilization": {
"$ref": "NetworkUtilization",
"description": "Target scaling by network usage."
},
"coolDownPeriod": {
"format": "google-duration",
"description": "Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.",
"type": "string"
},
"maxConcurrentRequests": {
"format": "int32",
"description": "Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.",
"type": "integer"
},
"maxPendingLatency": {
"format": "google-duration",
"description": "Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.",
"type": "string"
},
"cpuUtilization": {
"$ref": "CpuUtilization",
"description": "Target scaling by CPU usage."
}
},
"id": "AutomaticScaling"
},
"ZipInfo": {
"description": "The zip file information for a zip deployment.",
"type": "object",
"properties": {
"sourceUrl": {
"description": "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/\u003cbucket\u003e/\u003cobject\u003e'.",
"type": "string"
},
"filesCount": {
"format": "int32",
"description": "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.",
"type": "integer"
}
},
"id": "ZipInfo"
},
"AuthorizedCertificate": {
"properties": {
"visibleDomainMappings": {
"description": "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",
"items": {
"type": "string"
},
"type": "array"
},
"expireTime": {
"format": "google-datetime",
"description": "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",
"type": "string"
},
"name": {
"description": "Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly",
"type": "string"
},
"domainMappingsCount": {
"format": "int32",
"description": "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",
"type": "integer"
},
"domainNames": {
"description": "Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly",
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"description": "Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly",
"type": "string"
},
"displayName": {
"description": "The user-specified display name of the certificate. This is not guaranteed to be unique. Example: My Certificate.",
"type": "string"
},
"certificateRawData": {
"description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.",
"$ref": "CertificateRawData"
}
},
"id": "AuthorizedCertificate",
"description": "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.",
"type": "object"
},
"ResourceRecord": {
"description": "A DNS resource record.",
"type": "object",
"properties": {
"name": {
"description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.",
"type": "string"
},
"type": {
"enumDescriptions": [
"An unknown resource record.",
"An A resource record. Data is an IPv4 address.",
"An AAAA resource record. Data is an IPv6 address.",
"A CNAME resource record. Data is a domain name to be aliased."
],
"enum": [
"RECORD_TYPE_UNSPECIFIED",
"A",
"AAAA",
"CNAME"
],
"description": "Resource record type. Example: AAAA.",
"type": "string"
},
"rrdata": {
"description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).",
"type": "string"
}
},
"id": "ResourceRecord"
},
"Library": {
"description": "Third-party Python runtime library that is required by the application.",
"type": "object",
"properties": {
"version": {
"description": "Version of the library to select, or \"latest\".",
"type": "string"
},
"name": {
"description": "Name of the library. Example: \"django\".",
"type": "string"
}
},
"id": "Library"
},
"ListLocationsResponse": {
"properties": {
"locations": {
"description": "A list of locations that matches the specified filter in the request.",
"items": {
"$ref": "Location"
},
"type": "array"
},
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
}
},
"id": "ListLocationsResponse",
"description": "The response message for Locations.ListLocations.",
"type": "object"
},
"ContainerInfo": {
"description": "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.",
"type": "object",
"properties": {
"image": {
"description": "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\"",
"type": "string"
}
},
"id": "ContainerInfo"
},
"RequestUtilization": {
"description": "Target scaling by request utilization. Only applicable for VM runtimes.",
"type": "object",
"properties": {
"targetRequestCountPerSecond": {
"format": "int32",
"description": "Target requests per second.",
"type": "integer"
},
"targetConcurrentRequests": {
"format": "int32",
"description": "Target number of concurrent requests.",
"type": "integer"
}
},
"id": "RequestUtilization"
},
"UrlMap": {
"description": "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.",
"type": "object",
"properties": {
"securityLevel": {
"enumDescriptions": [
"Not specified.",
"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.",
"Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.",
"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.",
"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."
],
"enum": [
"SECURE_UNSPECIFIED",
"SECURE_DEFAULT",
"SECURE_NEVER",
"SECURE_OPTIONAL",
"SECURE_ALWAYS"
],
"description": "Security (HTTPS) enforcement for this URL.",
"type": "string"
},
"authFailAction": {
"enumDescriptions": [
"Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.",
"Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.",
"Rejects request with a 401 HTTP status code and an error message."
],
"enum": [
"AUTH_FAIL_ACTION_UNSPECIFIED",
"AUTH_FAIL_ACTION_REDIRECT",
"AUTH_FAIL_ACTION_UNAUTHORIZED"
],
"description": "Action to take when users access resources that require authentication. Defaults to redirect.",
"type": "string"
},
"script": {
"$ref": "ScriptHandler",
"description": "Executes a script to handle the request that matches this URL pattern."
},
"urlRegex": {
"description": "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.",
"type": "string"
},
"login": {
"description": "Level of login required to access this resource.",
"type": "string",
"enumDescriptions": [
"Not specified. LOGIN_OPTIONAL is assumed.",
"Does not require that the user is signed in.",
"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.",
"If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken."
],
"enum": [
"LOGIN_UNSPECIFIED",
"LOGIN_OPTIONAL",
"LOGIN_ADMIN",
"LOGIN_REQUIRED"
]
},
"apiEndpoint": {
"description": "Uses API Endpoints to handle requests.",
"$ref": "ApiEndpointHandler"
},
"staticFiles": {
"$ref": "StaticFilesHandler",
"description": "Returns the contents of a file, such as an image, as the response."
},
"redirectHttpResponseCode": {
"description": "30x code to use when performing redirects for the secure field. Defaults to 302.",
"type": "string",
"enumDescriptions": [
"Not specified. 302 is assumed.",
"301 Moved Permanently code.",
"302 Moved Temporarily code.",
"303 See Other code.",
"307 Temporary Redirect code."
],
"enum": [
"REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED",
"REDIRECT_HTTP_RESPONSE_CODE_301",
"REDIRECT_HTTP_RESPONSE_CODE_302",
"REDIRECT_HTTP_RESPONSE_CODE_303",
"REDIRECT_HTTP_RESPONSE_CODE_307"
]
}
},
"id": "UrlMap"
},
"EndpointsApiService": {
"description": "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.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).",
"type": "object",
"properties": {
"configId": {
"description": "Endpoints service configuration id as specified by the Service Management API. For example \"2016-09-19r1\"",
"type": "string"
},
"name": {
"description": "Endpoints service name which is the name of the \"service\" resource in the Service Management API. For example \"myapi.endpoints.myproject.cloud.goog\"",
"type": "string"
}
},
"id": "EndpointsApiService"
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a network API call.",
"type": "object",
"properties": {
"response": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "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.",
"type": "object"
},
"name": {
"description": "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 have the format of operations/some/unique/name.",
"type": "string"
},
"error": {
"description": "The error result of the operation in case of failure or cancellation.",
"$ref": "Status"
},
"metadata": {
"description": "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.",
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
},
"done": {
"description": "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.",
"type": "boolean"
}
},
"id": "Operation"
},
"ApiConfigHandler": {
"description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.",
"type": "object",
"properties": {
"url": {
"description": "URL to serve the endpoint at.",
"type": "string"
},
"securityLevel": {
"description": "Security (HTTPS) enforcement for this URL.",
"type": "string",
"enumDescriptions": [
"Not specified.",
"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.",
"Requests for a URL that match this handler that use HTTPS are automatically redirected to the HTTP equivalent URL.",
"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.",
"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."
],
"enum": [
"SECURE_UNSPECIFIED",
"SECURE_DEFAULT",
"SECURE_NEVER",
"SECURE_OPTIONAL",
"SECURE_ALWAYS"
]
},
"authFailAction": {
"description": "Action to take when users access resources that require authentication. Defaults to redirect.",
"type": "string",
"enumDescriptions": [
"Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.",
"Redirects user to \"accounts.google.com\". The user is redirected back to the application URL after signing in or creating an account.",
"Rejects request with a 401 HTTP status code and an error message."
],
"enum": [
"AUTH_FAIL_ACTION_UNSPECIFIED",
"AUTH_FAIL_ACTION_REDIRECT",
"AUTH_FAIL_ACTION_UNAUTHORIZED"
]
},
"script": {
"description": "Path to the script from the application root directory.",
"type": "string"
},
"login": {
"enumDescriptions": [
"Not specified. LOGIN_OPTIONAL is assumed.",
"Does not require that the user is signed in.",
"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.",
"If the user has signed in, the handler proceeds normally. Otherwise, the auth_fail_action is taken."
],
"enum": [
"LOGIN_UNSPECIFIED",
"LOGIN_OPTIONAL",
"LOGIN_ADMIN",
"LOGIN_REQUIRED"
],
"description": "Level of login required to access this resource. Defaults to optional.",
"type": "string"
}
},
"id": "ApiConfigHandler"
},
"StaticFilesHandler": {
"properties": {
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers to use for all responses from these URLs.",
"type": "object"
},
"applicationReadable": {
"description": "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.",
"type": "boolean"
},
"uploadPathRegex": {
"description": "Regular expression that matches the file paths for all files that should be referenced by this handler.",
"type": "string"
},
"path": {
"description": "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.",
"type": "string"
},
"mimeType": {
"description": "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.",
"type": "string"
},
"requireMatchingFile": {
"description": "Whether this handler should match the request if the file referenced by the handler does not exist.",
"type": "boolean"
},
"expiration": {
"format": "google-duration",
"description": "Time a static file served by this handler should be cached by web proxies and browsers.",
"type": "string"
}
},
"id": "StaticFilesHandler",
"description": "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.",
"type": "object"
},
"BasicScaling": {
"description": "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.",
"type": "object",
"properties": {
"maxInstances": {
"format": "int32",
"description": "Maximum number of instances to create for this version.",
"type": "integer"
},
"idleTimeout": {
"format": "google-duration",
"description": "Duration of time after the last request that an instance must wait before the instance is shut down.",
"type": "string"
}
},
"id": "BasicScaling"
},
"DiskUtilization": {
"properties": {
"targetWriteOpsPerSecond": {
"format": "int32",
"description": "Target ops written per second.",
"type": "integer"
},
"targetWriteBytesPerSecond": {
"format": "int32",
"description": "Target bytes written per second.",
"type": "integer"
},
"targetReadOpsPerSecond": {
"format": "int32",
"description": "Target ops read per seconds.",
"type": "integer"
},
"targetReadBytesPerSecond": {
"format": "int32",
"description": "Target bytes read per second.",
"type": "integer"
}
},
"id": "DiskUtilization",
"description": "Target scaling by disk usage. Only applicable for VM runtimes.",
"type": "object"
},
"CpuUtilization": {
"description": "Target scaling by CPU usage.",
"type": "object",
"properties": {
"aggregationWindowLength": {
"format": "google-duration",
"description": "Period of time over which CPU utilization is calculated.",
"type": "string"
},
"targetUtilization": {
"format": "double",
"description": "Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.",
"type": "number"
}
},
"id": "CpuUtilization"
},
"Status": {
"description": "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). The error model is designed to be:\nSimple to use and understand for most users\nFlexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:\nPartial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.\nWorkflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.\nBatch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.\nAsynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.\nLogging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.",
"type": "object",
"properties": {
"details": {
"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
"items": {
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
},
"type": "array"
},
"code": {
"format": "int32",
"description": "The status code, which should be an enum value of google.rpc.Code.",
"type": "integer"
},
"message": {
"description": "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.",
"type": "string"
}
},
"id": "Status"
},
"IdentityAwareProxy": {
"description": "Identity-Aware Proxy",
"type": "object",
"properties": {
"oauth2ClientSecret": {
"description": "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",
"type": "string"
},
"oauth2ClientId": {
"description": "OAuth2 client ID to use for the authentication flow.",
"type": "string"
},
"oauth2ClientSecretSha256": {
"description": "Hex-encoded SHA-256 hash of the client secret.@OutputOnly",
"type": "string"
},
"enabled": {
"description": "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.",
"type": "boolean"
}
},
"id": "IdentityAwareProxy"
},
"ManualScaling": {
"description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.",
"type": "object",
"properties": {
"instances": {
"format": "int32",
"description": "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.",
"type": "integer"
}
},
"id": "ManualScaling"
},
"LocationMetadata": {
"properties": {
"flexibleEnvironmentAvailable": {
"description": "App Engine Flexible Environment is available in the given location.@OutputOnly",
"type": "boolean"
},
"standardEnvironmentAvailable": {
"description": "App Engine Standard Environment is available in the given location.@OutputOnly",
"type": "boolean"
}
},
"id": "LocationMetadata",
"description": "Metadata for the given google.cloud.location.Location.",
"type": "object"
},
"Service": {
"description": "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.",
"type": "object",
"properties": {
"name": {
"description": "Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly",
"type": "string"
},
"split": {
"description": "Mapping that defines fractional HTTP traffic diversion to different versions within the service.",
"$ref": "TrafficSplit"
},
"id": {
"description": "Relative name of the service within the application. Example: default.@OutputOnly",
"type": "string"
}
},
"id": "Service"
},
"ListOperationsResponse": {
"description": "The response message for Operations.ListOperations.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
},
"operations": {
"description": "A list of operations that matches the specified filter in the request.",
"items": {
"$ref": "Operation"
},
"type": "array"
}
},
"id": "ListOperationsResponse"
},
"OperationMetadata": {
"properties": {
"operationType": {
"description": "Type of this operation. Deprecated, use method field instead. Example: \"create_version\".@OutputOnly",
"type": "string"
},
"insertTime": {
"format": "google-datetime",
"description": "Timestamp that this operation was created.@OutputOnly",
"type": "string"
},
"user": {
"description": "User who requested this operation.@OutputOnly",
"type": "string"
},
"target": {
"description": "Name of the resource that this operation is acting on. Example: apps/myapp/modules/default.@OutputOnly",
"type": "string"
},
"method": {
"description": "API method that initiated this operation. Example: google.appengine.v1beta4.Version.CreateVersion.@OutputOnly",
"type": "string"
},
"endTime": {
"format": "google-datetime",
"description": "Timestamp that this operation completed.@OutputOnly",
"type": "string"
}
},
"id": "OperationMetadata",
"description": "Metadata for the given google.longrunning.Operation.",
"type": "object"
},
"ListAuthorizedCertificatesResponse": {
"properties": {
"nextPageToken": {
"description": "Continuation token for fetching the next page of results.",
"type": "string"
},
"certificates": {
"description": "The SSL certificates the user is authorized to administer.",
"items": {
"$ref": "AuthorizedCertificate"
},
"type": "array"
}
},
"id": "ListAuthorizedCertificatesResponse",
"description": "Response message for AuthorizedCertificates.ListAuthorizedCertificates.",
"type": "object"
},
"FeatureSettings": {
"description": "The feature specific settings to be used in the application. These define behaviors that are user configurable.",
"type": "object",
"properties": {
"splitHealthChecks": {
"description": "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.",
"type": "boolean"
}
},
"id": "FeatureSettings"
},
"OperationMetadataV1": {
"description": "Metadata for the given google.longrunning.Operation.",
"type": "object",
"properties": {
"endTime": {
"format": "google-datetime",
"description": "Time that this operation completed.@OutputOnly",
"type": "string"
},
"insertTime": {
"format": "google-datetime",
"description": "Time that this operation was created.@OutputOnly",
"type": "string"
},
"warning": {
"description": "Durable messages that persist on every operation poll. @OutputOnly",
"items": {
"type": "string"
},
"type": "array"
},
"user": {
"description": "User who requested this operation.@OutputOnly",
"type": "string"
},
"target": {
"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly",
"type": "string"
},
"ephemeralMessage": {
"description": "Ephemeral message that may change every time the operation is polled. @OutputOnly",
"type": "string"
},
"method": {
"description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly",
"type": "string"
}
},
"id": "OperationMetadataV1"
},
"SslSettings": {
"description": "SSL configuration for a DomainMapping resource.",
"type": "object",
"properties": {
"certificateId": {
"description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.",
"type": "string"
}
},
"id": "SslSettings"
},
"ErrorHandler": {
"properties": {
"mimeType": {
"description": "MIME type of file. Defaults to text/html.",
"type": "string"
},
"errorCode": {
"enumDescriptions": [
"Not specified. ERROR_CODE_DEFAULT is assumed.",
"All other error types.",
"Application has exceeded a resource quota.",
"Client blocked by the application's Denial of Service protection configuration.",
"Deadline reached before the application responds."
],
"enum": [
"ERROR_CODE_UNSPECIFIED",
"ERROR_CODE_DEFAULT",
"ERROR_CODE_OVER_QUOTA",
"ERROR_CODE_DOS_API_DENIAL",
"ERROR_CODE_TIMEOUT"
],
"description": "Error condition this handler applies to.",
"type": "string"
},
"staticFile": {
"description": "Static file content to be served for this error.",
"type": "string"
}
},
"id": "ErrorHandler",
"description": "Custom static error page to be served when an error occurs.",
"type": "object"
},
"Network": {
"description": "Extra network settings. Only applicable for App Engine flexible environment versions",
"type": "object",
"properties": {
"subnetworkName": {
"description": "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.\nIf the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network the VM 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.\nIf the network the VM 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.",
"type": "string"
},
"instanceTag": {
"description": "Tag to apply to the VM instance during creation. Only applicable for for App Engine flexible environment versions.",
"type": "string"
},
"forwardedPorts": {
"description": "List of ports, or port pairs, to forward from the virtual machine to the application container. Only applicable for App Engine flexible environment versions.",
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"description": "Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.",
"type": "string"
}
},
"id": "Network"
},
"Application": {
"description": "An Application resource contains the top-level configuration of an App Engine application. Next tag: 20",
"type": "object",
"properties": {
"locationId": {
"description": "Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US",
"type": "string"
},
"servingStatus": {
"description": "Serving status of this application.",
"type": "string",
"enumDescriptions": [
"Serving status is unspecified.",
"Application is serving.",
"Application has been disabled by the user.",
"Application has been disabled by the system."
],
"enum": [
"UNSPECIFIED",
"SERVING",
"USER_DISABLED",
"SYSTEM_DISABLED"
]
},
"defaultHostname": {
"description": "Hostname used to reach this application, as resolved by App Engine.@OutputOnly",
"type": "string"
},
"featureSettings": {
"$ref": "FeatureSettings",
"description": "The feature specific settings to be used in the application."
},
"iap": {
"$ref": "IdentityAwareProxy"
},
"authDomain": {
"description": "Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.",
"type": "string"
},
"codeBucket": {
"description": "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",
"type": "string"
},
"defaultBucket": {
"description": "Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly",
"type": "string"
},
"dispatchRules": {
"description": "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.@OutputOnly",
"items": {
"$ref": "UrlDispatchRule"
},
"type": "array"
},
"gcrDomain": {
"description": "The Google Container Registry domain used for storing managed build docker images for this application.",
"type": "string"
},
"name": {
"description": "Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly",
"type": "string"
},
"defaultCookieExpiration": {
"format": "google-duration",
"description": "Cookie expiration policy for this application.",
"type": "string"
},
"id": {
"description": "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.",
"type": "string"
}
},
"id": "Application"
},
"Instance": {
"properties": {
"vmName": {
"description": "Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly",
"type": "string"
},
"vmId": {
"description": "Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly",
"type": "string"
},
"qps": {
"format": "float",
"description": "Average queries per second (QPS) over the last minute.@OutputOnly",
"type": "number"
},
"vmZoneName": {
"description": "Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly",
"type": "string"
},
"name": {
"description": "Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly",
"type": "string"
},
"averageLatency": {
"format": "int32",
"description": "Average latency (ms) over the last minute.@OutputOnly",
"type": "integer"
},
"memoryUsage": {
"format": "int64",
"description": "Total memory in use (bytes).@OutputOnly",
"type": "string"
},
"vmIp": {
"description": "The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly",
"type": "string"
},
"id": {
"description": "Relative name of the instance within the version. Example: instance-1.@OutputOnly",
"type": "string"
},
"vmStatus": {
"description": "Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly",
"type": "string"
},
"availability": {
"description": "Availability of the instance.@OutputOnly",
"type": "string",
"enumDescriptions": [
"",
"",
""
],
"enum": [
"UNSPECIFIED",
"RESIDENT",
"DYNAMIC"
]
},
"errors": {
"format": "int32",
"description": "Number of errors since this instance was started.@OutputOnly",
"type": "integer"
},
"startTime": {
"format": "google-datetime",
"description": "Time that this instance was started.@OutputOnly",
"type": "string"
},
"vmDebugEnabled": {
"description": "Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly",
"type": "boolean"
},
"requests": {
"format": "int32",
"description": "Number of requests since this instance was started.@OutputOnly",
"type": "integer"
},
"appEngineRelease": {
"description": "App Engine release this instance is running on.@OutputOnly",
"type": "string"
}
},
"id": "Instance",
"description": "An Instance resource is the computing unit that App Engine uses to automatically scale an application.",
"type": "object"
},
"LivenessCheck": {
"description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances.",
"type": "object",
"properties": {
"timeout": {
"format": "google-duration",
"description": "Time before the check is considered failed.",
"type": "string"
},
"failureThreshold": {
"format": "uint32",
"description": "Number of consecutive failed checks required before considering the VM unhealthy.",
"type": "integer"
},
"initialDelay": {
"format": "google-duration",
"description": "The initial delay before starting to execute the checks.",
"type": "string"
},
"path": {
"description": "The request path.",
"type": "string"
},
"host": {
"description": "Host header to send when performing a HTTP Liveness check. Example: \"myapp.appspot.com\"",
"type": "string"
},
"successThreshold": {
"format": "uint32",
"description": "Number of consecutive successful checks required before considering the VM healthy.",
"type": "integer"
},
"checkInterval": {
"format": "google-duration",
"description": "Interval between health checks.",
"type": "string"
}
},
"id": "LivenessCheck"
},
"Location": {
"description": "A resource that represents Google Cloud Platform location.",
"type": "object",
"properties": {
"name": {
"description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"",
"type": "string"
},
"locationId": {
"description": "The canonical id for this location. For example: \"us-east1\".",
"type": "string"
},
"metadata": {
"description": "Service-specific metadata. For example the available capacity at the given location.",
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Cross-service attributes for the location. For example\n{\"cloud.googleapis.com/region\": \"us-east1\"}\n",
"type": "object"
}
},
"id": "Location"
},
"NetworkUtilization": {
"description": "Target scaling by network usage. Only applicable for VM runtimes.",
"type": "object",
"properties": {
"targetSentBytesPerSecond": {
"format": "int32",
"description": "Target bytes sent per second.",
"type": "integer"
},
"targetReceivedBytesPerSecond": {
"format": "int32",
"description": "Target bytes received per second.",
"type": "integer"
},
"targetSentPacketsPerSecond": {
"format": "int32",
"description": "Target packets sent per second.",
"type": "integer"
},
"targetReceivedPacketsPerSecond": {
"format": "int32",
"description": "Target packets received per second.",
"type": "integer"
}
},
"id": "NetworkUtilization"
},
"HealthCheck": {
"properties": {
"disableHealthCheck": {
"description": "Whether to explicitly disable health checks for this instance.",
"type": "boolean"
},
"host": {
"description": "Host header to send when performing an HTTP health check. Example: \"myapp.appspot.com\"",
"type": "string"
},
"restartThreshold": {
"format": "uint32",
"description": "Number of consecutive failed health checks required before an instance is restarted.",
"type": "integer"
},
"healthyThreshold": {
"format": "uint32",
"description": "Number of consecutive successful health checks required before receiving traffic.",
"type": "integer"
},
"checkInterval": {
"format": "google-duration",
"description": "Interval between health checks.",
"type": "string"
},
"timeout": {
"format": "google-duration",
"description": "Time before the health check is considered failed.",
"type": "string"
},
"unhealthyThreshold": {
"format": "uint32",
"description": "Number of consecutive failed health checks required before removing traffic.",
"type": "integer"
}
},
"id": "HealthCheck",
"description": "Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment.",
"type": "object"
},
"ReadinessCheck": {
"description": "Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation.",
"type": "object",
"properties": {
"timeout": {
"format": "google-duration",
"description": "Time before the check is considered failed.",
"type": "string"
},
"failureThreshold": {
"format": "uint32",
"description": "Number of consecutive failed checks required before removing traffic.",
"type": "integer"
},
"appStartTimeout": {
"format": "google-duration",
"description": "A maximum time limit on application initialization, measured from moment the application successfully replies to a healthcheck until it is ready to serve traffic.",
"type": "string"
},
"path": {
"description": "The request path.",
"type": "string"
},
"host": {
"description": "Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"",
"type": "string"
},
"successThreshold": {
"format": "uint32",
"description": "Number of consecutive successful checks required before receiving traffic.",
"type": "integer"
},
"checkInterval": {
"format": "google-duration",
"description": "Interval between health checks.",
"type": "string"
}
},
"id": "ReadinessCheck"
},
"DebugInstanceRequest": {
"properties": {
"sshKey": {
"description": "Public SSH key to add to the instance. Examples:\n[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]\n[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).",
"type": "string"
}
},
"id": "DebugInstanceRequest",
"description": "Request message for Instances.DebugInstance.",
"type": "object"
},
"OperationMetadataV1Beta5": {
"description": "Metadata for the given google.longrunning.Operation.",
"type": "object",
"properties": {
"target": {
"description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly",
"type": "string"
},
"user": {
"description": "User who requested this operation.@OutputOnly",
"type": "string"
},
"method": {
"description": "API method name that initiated this operation. Example: google.appengine.v1beta5.Version.CreateVersion.@OutputOnly",
"type": "string"
},
"insertTime": {
"format": "google-datetime",
"description": "Timestamp that this operation was created.@OutputOnly",
"type": "string"
},
"endTime": {
"format": "google-datetime",
"description": "Timestamp that this operation completed.@OutputOnly",
"type": "string"
}
},
"id": "OperationMetadataV1Beta5"
},
"Version": {
"properties": {
"apiConfig": {
"$ref": "ApiConfigHandler",
"description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set."
},
"endpointsApiService": {
"description": "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.",
"$ref": "EndpointsApiService"
},
"versionUrl": {
"description": "Serving URL for this version. Example: \"https://myversion-dot-myservice-dot-myapp.appspot.com\"@OutputOnly",
"type": "string"
},
"vm": {
"description": "Whether to deploy this version in a container on a virtual machine.",
"type": "boolean"
},
"instanceClass": {
"description": "Instance class that is used to run this version. Valid values are:\nAutomaticScaling: F1, F2, F4, F4_1G\nManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.",
"type": "string"
},
"servingStatus": {
"enumDescriptions": [
"Not specified.",
"Currently serving. Instances are created according to the scaling settings of the version.",
"Disabled. No instances will be created and the scaling settings are ignored until the state of the version changes to SERVING."
],
"enum": [
"SERVING_STATUS_UNSPECIFIED",
"SERVING",
"STOPPED"
],
"description": "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.",
"type": "string"
},
"runtimeApiVersion": {
"description": "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/\u003clanguage\u003e/config/appref",
"type": "string"
},
"deployment": {
"$ref": "Deployment",
"description": "Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set."
},
"createTime": {
"format": "google-datetime",
"description": "Time that this version was created.@OutputOnly",
"type": "string"
},
"inboundServices": {
"description": "Before an application can receive email or XMPP messages, the application must be configured to enable the service.",
"items": {
"enum": [
"INBOUND_SERVICE_UNSPECIFIED",
"INBOUND_SERVICE_MAIL",
"INBOUND_SERVICE_MAIL_BOUNCE",
"INBOUND_SERVICE_XMPP_ERROR",
"INBOUND_SERVICE_XMPP_MESSAGE",
"INBOUND_SERVICE_XMPP_SUBSCRIBE",
"INBOUND_SERVICE_XMPP_PRESENCE",
"INBOUND_SERVICE_CHANNEL_PRESENCE",
"INBOUND_SERVICE_WARMUP"
],
"type": "string"
},
"type": "array",
"enumDescriptions": [
"Not specified.",
"Allows an application to receive mail.",
"Allows an application to receive email-bound notifications.",
"Allows an application to receive error stanzas.",
"Allows an application to receive instant messages.",
"Allows an application to receive user subscription POSTs.",
"Allows an application to receive a user's chat presence.",
"Registers an application for notifications when a client connects or disconnects from a channel.",
"Enables warmup requests."
]
},
"resources": {
"$ref": "Resources",
"description": "Machine resources for this version. Only applicable for VM runtimes."
},
"errorHandlers": {
"description": "Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.",
"items": {
"$ref": "ErrorHandler"
},
"type": "array"
},
"defaultExpiration": {
"format": "google-duration",
"description": "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.",
"type": "string"
},
"libraries": {
"description": "Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.",
"items": {
"$ref": "Library"
},
"type": "array"
},
"nobuildFilesRegex": {
"description": "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.",
"type": "string"
},
"basicScaling": {
"description": "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.",
"$ref": "BasicScaling"
},
"runtime": {
"description": "Desired runtime. Example: python27.",
"type": "string"
},
"createdBy": {
"description": "Email address of the user who created this version.@OutputOnly",
"type": "string"
},
"id": {
"description": "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-\".",
"type": "string"
},
"envVariables": {
"additionalProperties": {
"type": "string"
},
"description": "Environment variables available to the application.Only returned in GET requests if view=FULL is set.",
"type": "object"
},
"livenessCheck": {
"$ref": "LivenessCheck",
"description": "Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set."
},
"network": {
"$ref": "Network",
"description": "Extra network settings. Only applicable for App Engine flexible environment versions."
},
"betaSettings": {
"additionalProperties": {
"type": "string"
},
"description": "Metadata settings that are supplied to this version to enable beta runtime features.",
"type": "object"
},
"env": {
"description": "App Engine execution environment for this version.Defaults to standard.",
"type": "string"
},
"handlers": {
"description": "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.",
"items": {
"$ref": "UrlMap"
},
"type": "array"
},
"automaticScaling": {
"description": "Automatic scaling is based on request rate, response latencies, and other application metrics.",
"$ref": "AutomaticScaling"
},
"diskUsageBytes": {
"format": "int64",
"description": "Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly",
"type": "string"
},
"healthCheck": {
"description": "Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.",
"$ref": "HealthCheck"
},
"threadsafe": {
"description": "Whether multiple requests can be dispatched to this version at once.",
"type": "boolean"
},
"readinessCheck": {
"description": "Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.",
"$ref": "ReadinessCheck"
},
"manualScaling": {
"description": "A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.",
"$ref": "ManualScaling"
},
"name": {
"description": "Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly",
"type": "string"
}
},
"id": "Version",
"description": "A Version resource is a specific set of source code and configuration files that are deployed into a service.",
"type": "object"
},
"RepairApplicationRequest": {
"description": "Request message for 'Applications.RepairApplication'.",
"type": "object",
"properties": {},
"id": "RepairApplicationRequest"
},
"CertificateRawData": {
"description": "An SSL certificate obtained from a certificate authority.",
"type": "object",
"properties": {
"privateKey": {
"description": "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: \u003cpre\u003e -----BEGIN RSA PRIVATE KEY----- \u003cunencrypted_key_value\u003e -----END RSA PRIVATE KEY----- \u003c/pre\u003e @InputOnly",
"type": "string"
},
"publicCertificate": {
"description": "PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: \u003cpre\u003e -----BEGIN CERTIFICATE----- \u003ccertificate_value\u003e -----END CERTIFICATE----- \u003c/pre\u003e",
"type": "string"
}
},
"id": "CertificateRawData"
},
"ScriptHandler": {
"description": "Executes a script to handle the request that matches the URL pattern.",
"type": "object",
"properties": {
"scriptPath": {
"description": "Path to the script from the application root directory.",
"type": "string"
}
},
"id": "ScriptHandler"
},
"FileInfo": {
"properties": {
"mimeType": {
"description": "The MIME type of the file.Defaults to the value from Google Cloud Storage.",
"type": "string"
},
"sourceUrl": {
"description": "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/\u003cbucket\u003e/\u003cobject\u003e'.",
"type": "string"
},
"sha1Sum": {
"description": "The SHA1 hash of the file, in hex.",
"type": "string"
}
},
"id": "FileInfo",
"description": "Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.",
"type": "object"
}
},
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
},
"protocol": "rest",
"version": "v1",
"baseUrl": "https://appengine.googleapis.com/",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/appengine.admin": {
"description": "View and manage your applications deployed on Google App Engine"
},
"https://www.googleapis.com/auth/cloud-platform.read-only": {
"description": "View your data across Google Cloud Platform services"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
}
}