| // Copyright 2016 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| syntax = "proto3"; |
| |
| package google.appengine.v1; |
| |
| import "google/api/annotations.proto"; |
| import "google/appengine/v1/application.proto"; |
| import "google/appengine/v1/instance.proto"; |
| import "google/appengine/v1/service.proto"; |
| import "google/appengine/v1/version.proto"; |
| import "google/iam/v1/iam_policy.proto"; |
| import "google/iam/v1/policy.proto"; |
| import "google/longrunning/operations.proto"; |
| import "google/protobuf/empty.proto"; |
| import "google/protobuf/field_mask.proto"; |
| |
| option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine"; |
| option java_multiple_files = true; |
| option java_outer_classname = "AppengineProto"; |
| option java_package = "com.google.appengine.v1"; |
| |
| |
| // Manages instances of a version. |
| service Instances { |
| // Lists the instances of a version. |
| rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { |
| option (google.api.http) = { get: "/v1/{parent=apps/*/services/*/versions/*}/instances" }; |
| } |
| |
| // Gets instance information. |
| rpc GetInstance(GetInstanceRequest) returns (Instance) { |
| option (google.api.http) = { get: "/v1/{name=apps/*/services/*/versions/*/instances/*}" }; |
| } |
| |
| // Stops a running instance. |
| rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { delete: "/v1/{name=apps/*/services/*/versions/*/instances/*}" }; |
| } |
| |
| // 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. |
| rpc DebugInstance(DebugInstanceRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { post: "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug" body: "*" }; |
| } |
| } |
| |
| // Manages versions of a service. |
| service Versions { |
| // Lists the versions of a service. |
| rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) { |
| option (google.api.http) = { get: "/v1/{parent=apps/*/services/*}/versions" }; |
| } |
| |
| // Gets the specified Version resource. |
| // By default, only a `BASIC_VIEW` will be returned. |
| // Specify the `FULL_VIEW` parameter to get the full resource. |
| rpc GetVersion(GetVersionRequest) returns (Version) { |
| option (google.api.http) = { get: "/v1/{name=apps/*/services/*/versions/*}" }; |
| } |
| |
| // Deploys code and resource files to a new version. |
| rpc CreateVersion(CreateVersionRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { post: "/v1/{parent=apps/*/services/*}/versions" body: "version" }; |
| } |
| |
| // 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: |
| // |
| // * [`serving_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. |
| // * [`instance_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. |
| // * [`automatic_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. |
| // * [`automatic_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. |
| rpc UpdateVersion(UpdateVersionRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { patch: "/v1/{name=apps/*/services/*/versions/*}" body: "version" }; |
| } |
| |
| // Deletes an existing Version resource. |
| rpc DeleteVersion(DeleteVersionRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { delete: "/v1/{name=apps/*/services/*/versions/*}" }; |
| } |
| } |
| |
| // Manages services of an application. |
| service Services { |
| // Lists all the services in the application. |
| rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { |
| option (google.api.http) = { get: "/v1/{parent=apps/*}/services" }; |
| } |
| |
| // Gets the current configuration of the specified service. |
| rpc GetService(GetServiceRequest) returns (Service) { |
| option (google.api.http) = { get: "/v1/{name=apps/*/services/*}" }; |
| } |
| |
| // Updates the configuration of the specified service. |
| rpc UpdateService(UpdateServiceRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { patch: "/v1/{name=apps/*/services/*}" body: "service" }; |
| } |
| |
| // Deletes the specified service and all enclosed versions. |
| rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { delete: "/v1/{name=apps/*/services/*}" }; |
| } |
| } |
| |
| // Manages App Engine applications. |
| service Applications { |
| // Gets information about an application. |
| rpc GetApplication(GetApplicationRequest) returns (Application) { |
| option (google.api.http) = { get: "/v1/{name=apps/*}" }; |
| } |
| |
| // Recreates the required App Engine features for the application in your |
| // project, 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*". |
| rpc RepairApplication(RepairApplicationRequest) returns (google.longrunning.Operation) { |
| option (google.api.http) = { post: "/v1/{name=apps/*}:repair" body: "*" }; |
| } |
| } |
| |
| // Request message for `Applications.GetApplication`. |
| message GetApplicationRequest { |
| // Name of the Application resource to get. Example: `apps/myapp`. |
| string name = 1; |
| } |
| |
| // Request message for 'Applications.RepairApplication'. |
| message RepairApplicationRequest { |
| // Name of the application to repair. Example: `apps/myapp` |
| string name = 1; |
| } |
| |
| // Request message for `Services.ListServices`. |
| message ListServicesRequest { |
| // Name of the parent Application resource. Example: `apps/myapp`. |
| string parent = 1; |
| |
| // Maximum results to return per page. |
| int32 page_size = 2; |
| |
| // Continuation token for fetching the next page of results. |
| string page_token = 3; |
| } |
| |
| // Response message for `Services.ListServices`. |
| message ListServicesResponse { |
| // The services belonging to the requested application. |
| repeated Service services = 1; |
| |
| // Continuation token for fetching the next page of results. |
| string next_page_token = 2; |
| } |
| |
| // Request message for `Services.GetService`. |
| message GetServiceRequest { |
| // Name of the resource requested. Example: `apps/myapp/services/default`. |
| string name = 1; |
| } |
| |
| // Request message for `Services.UpdateService`. |
| message UpdateServiceRequest { |
| // Name of the resource to update. Example: `apps/myapp/services/default`. |
| string name = 1; |
| |
| // A Service resource containing the updated service. Only fields set in the |
| // field mask will be updated. |
| Service service = 2; |
| |
| // Standard field mask for the set of fields to be updated. |
| google.protobuf.FieldMask update_mask = 3; |
| |
| // Set to `true` to gradually shift traffic from one version to another |
| // single version. By default, traffic is shifted immediately. |
| // For gradual traffic migration, the target version |
| // 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). |
| bool migrate_traffic = 4; |
| } |
| |
| // Request message for `Services.DeleteService`. |
| message DeleteServiceRequest { |
| // Name of the resource requested. Example: `apps/myapp/services/default`. |
| string name = 1; |
| } |
| |
| // Request message for `Versions.ListVersions`. |
| message ListVersionsRequest { |
| // Name of the parent Service resource. Example: |
| // `apps/myapp/services/default`. |
| string parent = 1; |
| |
| // Controls the set of fields returned in the `List` response. |
| VersionView view = 2; |
| |
| // Maximum results to return per page. |
| int32 page_size = 3; |
| |
| // Continuation token for fetching the next page of results. |
| string page_token = 4; |
| } |
| |
| // Response message for `Versions.ListVersions`. |
| message ListVersionsResponse { |
| // The versions belonging to the requested service. |
| repeated Version versions = 1; |
| |
| // Continuation token for fetching the next page of results. |
| string next_page_token = 2; |
| } |
| |
| // Request message for `Versions.GetVersion`. |
| message GetVersionRequest { |
| // Name of the resource requested. Example: |
| // `apps/myapp/services/default/versions/v1`. |
| string name = 1; |
| |
| // Controls the set of fields returned in the `Get` response. |
| VersionView view = 2; |
| } |
| |
| // Request message for `Versions.CreateVersion`. |
| message CreateVersionRequest { |
| // Name of the parent resource to create this version under. Example: |
| // `apps/myapp/services/default`. |
| string parent = 1; |
| |
| // Application deployment configuration. |
| Version version = 2; |
| } |
| |
| // Request message for `Versions.UpdateVersion`. |
| message UpdateVersionRequest { |
| // Name of the resource to update. Example: |
| // `apps/myapp/services/default/versions/1`. |
| string name = 1; |
| |
| // A Version containing the updated resource. Only fields set in the field |
| // mask will be updated. |
| Version version = 2; |
| |
| // Standard field mask for the set of fields to be updated. |
| google.protobuf.FieldMask update_mask = 3; |
| } |
| |
| // Request message for `Versions.DeleteVersion`. |
| message DeleteVersionRequest { |
| // Name of the resource requested. Example: |
| // `apps/myapp/services/default/versions/v1`. |
| string name = 1; |
| } |
| |
| // Request message for `Instances.ListInstances`. |
| message ListInstancesRequest { |
| // Name of the parent Version resource. Example: |
| // `apps/myapp/services/default/versions/v1`. |
| string parent = 1; |
| |
| // Maximum results to return per page. |
| int32 page_size = 2; |
| |
| // Continuation token for fetching the next page of results. |
| string page_token = 3; |
| } |
| |
| // Response message for `Instances.ListInstances`. |
| message ListInstancesResponse { |
| // The instances belonging to the requested version. |
| repeated Instance instances = 1; |
| |
| // Continuation token for fetching the next page of results. |
| string next_page_token = 2; |
| } |
| |
| // Request message for `Instances.GetInstance`. |
| message GetInstanceRequest { |
| // Name of the resource requested. Example: |
| // `apps/myapp/services/default/versions/v1/instances/instance-1`. |
| string name = 1; |
| } |
| |
| // Request message for `Instances.DeleteInstance`. |
| message DeleteInstanceRequest { |
| // Name of the resource requested. Example: |
| // `apps/myapp/services/default/versions/v1/instances/instance-1`. |
| string name = 1; |
| } |
| |
| // Request message for `Instances.DebugInstance`. |
| message DebugInstanceRequest { |
| // Name of the resource requested. Example: |
| // `apps/myapp/services/default/versions/v1/instances/instance-1`. |
| string name = 1; |
| } |
| |
| // Fields that should be returned when [Version][google.appengine.v1.Version] resources |
| // are retreived. |
| enum VersionView { |
| // Basic version information including scaling and inbound services, |
| // but not detailed deployment information. |
| BASIC = 0; |
| |
| // The information from `BASIC`, plus detailed information about the |
| // deployment. This format is required when creating resources, but |
| // is not returned in `Get` or `List` by default. |
| FULL = 1; |
| } |