242 lines
8.3 KiB
Protocol Buffer
242 lines
8.3 KiB
Protocol Buffer
// Copyright 2020 Google LLC
|
|
//
|
|
// 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.cloud.gaming.v1beta;
|
|
|
|
import "google/api/field_behavior.proto";
|
|
import "google/protobuf/duration.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/api/annotations.proto";
|
|
|
|
option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta;gaming";
|
|
|
|
option java_multiple_files = true;
|
|
option java_package = "com.google.cloud.gaming.v1beta";
|
|
|
|
// Represents the metadata of the long-running operation.
|
|
message OperationMetadata {
|
|
// Output only. The time the operation was created.
|
|
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The time the operation finished running.
|
|
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Server-defined resource path for the target of the operation.
|
|
string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Name of the verb executed by the operation.
|
|
string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Human-readable status of the operation, if any.
|
|
string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Identifies whether the user has requested cancellation
|
|
// of the operation. Operations that have successfully been cancelled
|
|
// have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
|
|
// corresponding to `Code.CANCELLED`.
|
|
bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. API version used to start the operation.
|
|
string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. List of Locations that could not be reached.
|
|
repeated string unreachable = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Operation status for Game Services API operations. Operation status is in
|
|
// the form of key-value pairs where keys are resource IDs and the values show
|
|
// the status of the operation. In case of failures, the value includes an
|
|
// error code and error message.
|
|
map<string, OperationStatus> operation_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
message OperationStatus {
|
|
enum ErrorCode {
|
|
ERROR_CODE_UNSPECIFIED = 0;
|
|
|
|
INTERNAL_ERROR = 1;
|
|
|
|
PERMISSION_DENIED = 2;
|
|
|
|
CLUSTER_CONNECTION = 3;
|
|
}
|
|
|
|
// Output only. Whether the operation is done or still in progress.
|
|
bool done = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// The error code in case of failures.
|
|
ErrorCode error_code = 2;
|
|
|
|
// The human-readable error message.
|
|
string error_message = 3;
|
|
}
|
|
|
|
// The label selector, used to group labels on the resources.
|
|
message LabelSelector {
|
|
// Resource labels for this selector.
|
|
map<string, string> labels = 1;
|
|
}
|
|
|
|
// The realm selector, used to match realm resources.
|
|
message RealmSelector {
|
|
// List of realms to match.
|
|
repeated string realms = 1;
|
|
}
|
|
|
|
// The schedule of a recurring or one time event. The event's time span is
|
|
// specified by start_time and end_time. If the scheduled event's timespan is
|
|
// larger than the cron_spec + cron_job_duration, the event will be recurring.
|
|
// If only cron_spec + cron_job_duration are specified, the event is effective
|
|
// starting at the local time specified by cron_spec, and is recurring.
|
|
//
|
|
// start_time|-------[cron job]-------[cron job]-------[cron job]---|end_time
|
|
// cron job: cron spec start time + duration
|
|
message Schedule {
|
|
// The start time of the event.
|
|
google.protobuf.Timestamp start_time = 1;
|
|
|
|
// The end time of the event.
|
|
google.protobuf.Timestamp end_time = 2;
|
|
|
|
// The duration for the cron job event. The duration of the event is effective
|
|
// after the cron job's start time.
|
|
google.protobuf.Duration cron_job_duration = 3;
|
|
|
|
// The cron definition of the scheduled event. See
|
|
// https://en.wikipedia.org/wiki/Cron. Cron spec specifies the local time as
|
|
// defined by the realm.
|
|
string cron_spec = 4;
|
|
}
|
|
|
|
// Encapsulates Agones fleet spec and Agones autoscaler spec sources.
|
|
message SpecSource {
|
|
// The game server config resource. Uses the form:
|
|
//
|
|
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment_id}/configs/{config_id}`.
|
|
string game_server_config_name = 1;
|
|
|
|
// The name of the Agones leet config or Agones scaling config used to derive
|
|
// the Agones fleet or Agones autoscaler spec.
|
|
string name = 2;
|
|
}
|
|
|
|
// Details about the Agones resources.
|
|
message TargetDetails {
|
|
// Details of the target Agones fleet.
|
|
message TargetFleetDetails {
|
|
// Target Agones fleet specification.
|
|
message TargetFleet {
|
|
// The name of the Agones fleet.
|
|
string name = 1;
|
|
|
|
// Encapsulates the source of the Agones fleet spec.
|
|
// The Agones fleet spec source.
|
|
SpecSource spec_source = 2;
|
|
}
|
|
|
|
// Target Agones autoscaler policy reference.
|
|
message TargetFleetAutoscaler {
|
|
// The name of the Agones autoscaler.
|
|
string name = 1;
|
|
|
|
// Encapsulates the source of the Agones fleet spec.
|
|
// Details about the Agones autoscaler spec.
|
|
SpecSource spec_source = 2;
|
|
}
|
|
|
|
// Reference to target Agones fleet.
|
|
TargetFleet fleet = 1;
|
|
|
|
// Reference to target Agones fleet autoscaling policy.
|
|
TargetFleetAutoscaler autoscaler = 2;
|
|
}
|
|
|
|
// The game server cluster name. Uses the form:
|
|
//
|
|
// `projects/{project}/locations/{location}/realms/{realm}/gameServerClusters/{cluster}`.
|
|
string game_server_cluster_name = 1;
|
|
|
|
// The game server deployment name. Uses the form:
|
|
//
|
|
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment_id}`.
|
|
string game_server_deployment_name = 2;
|
|
|
|
// Agones fleet details for game server clusters and game server deployments.
|
|
repeated TargetFleetDetails fleet_details = 3;
|
|
}
|
|
|
|
// Encapsulates the Target state.
|
|
message TargetState {
|
|
// Details about Agones fleets.
|
|
repeated TargetDetails details = 1;
|
|
}
|
|
|
|
// Details of the deployed Agones fleet.
|
|
message DeployedFleetDetails {
|
|
// Agones fleet specification and details.
|
|
message DeployedFleet {
|
|
// DeployedFleetStatus has details about the Agones fleets such as how many
|
|
// are running, how many allocated, and so on.
|
|
message DeployedFleetStatus {
|
|
// The number of GameServer replicas in the READY state in this fleet.
|
|
int64 ready_replicas = 1;
|
|
|
|
// The number of GameServer replicas in the ALLOCATED state in this fleet.
|
|
int64 allocated_replicas = 2;
|
|
|
|
// The number of GameServer replicas in the RESERVED state in this fleet.
|
|
// Reserved instances won't be deleted on scale down, but won't cause
|
|
// an autoscaler to scale up.
|
|
int64 reserved_replicas = 3;
|
|
|
|
// The total number of current GameServer replicas in this fleet.
|
|
int64 replicas = 4;
|
|
}
|
|
|
|
// The name of the Agones fleet.
|
|
string fleet = 1;
|
|
|
|
// The fleet spec retrieved from the Agones fleet.
|
|
string fleet_spec = 2;
|
|
|
|
// The source spec that is used to create the Agones fleet.
|
|
// The GameServerConfig resource may no longer exist in the system.
|
|
SpecSource spec_source = 3;
|
|
|
|
// The current status of the Agones fleet.
|
|
// Includes count of game servers in various states.
|
|
DeployedFleetStatus status = 5;
|
|
}
|
|
|
|
// Details about the Agones autoscaler.
|
|
message DeployedFleetAutoscaler {
|
|
// The name of the Agones autoscaler.
|
|
string autoscaler = 1;
|
|
|
|
// The source spec that is used to create the autoscaler.
|
|
// The GameServerConfig resource may no longer exist in the system.
|
|
SpecSource spec_source = 4;
|
|
|
|
// The autoscaler spec retrieved from Agones.
|
|
string fleet_autoscaler_spec = 3;
|
|
}
|
|
|
|
// Information about the Agones fleet.
|
|
DeployedFleet deployed_fleet = 1;
|
|
|
|
// Information about the Agones autoscaler for that fleet.
|
|
DeployedFleetAutoscaler deployed_autoscaler = 2;
|
|
}
|