parent
80d2bd2c65
commit
678afc7055
12 changed files with 2095 additions and 0 deletions
@ -0,0 +1,382 @@ |
||||
# This file was automatically generated by BuildFileGenerator |
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense. |
||||
package(default_visibility = ["//visibility:public"]) |
||||
|
||||
############################################################################## |
||||
# Common |
||||
############################################################################## |
||||
load("@rules_proto//proto:defs.bzl", "proto_library") |
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") |
||||
|
||||
proto_library( |
||||
name = "gaming_proto", |
||||
srcs = [ |
||||
"common.proto", |
||||
"game_server_clusters.proto", |
||||
"game_server_clusters_service.proto", |
||||
"game_server_configs.proto", |
||||
"game_server_configs_service.proto", |
||||
"game_server_deployments.proto", |
||||
"game_server_deployments_service.proto", |
||||
"realms.proto", |
||||
"realms_service.proto", |
||||
], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:client_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"//google/api:resource_proto", |
||||
"//google/longrunning:operations_proto", |
||||
"@com_google_protobuf//:duration_proto", |
||||
"@com_google_protobuf//:field_mask_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
proto_library_with_info( |
||||
name = "gaming_proto_with_info", |
||||
deps = [ |
||||
":gaming_proto", |
||||
"//google/cloud:common_resources_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Java |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"java_gapic_assembly_gradle_pkg", |
||||
"java_gapic_library", |
||||
"java_gapic_test", |
||||
"java_grpc_library", |
||||
"java_proto_library", |
||||
) |
||||
|
||||
java_proto_library( |
||||
name = "gaming_java_proto", |
||||
deps = [":gaming_proto"], |
||||
) |
||||
|
||||
java_grpc_library( |
||||
name = "gaming_java_grpc", |
||||
srcs = [":gaming_proto"], |
||||
deps = [":gaming_java_proto"], |
||||
) |
||||
|
||||
java_gapic_library( |
||||
name = "gaming_java_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
test_deps = [ |
||||
":gaming_java_grpc", |
||||
], |
||||
deps = [ |
||||
":gaming_java_proto", |
||||
], |
||||
) |
||||
|
||||
java_gapic_test( |
||||
name = "gaming_java_gapic_test_suite", |
||||
test_classes = [ |
||||
"com.google.cloud.gaming.v1beta.GameServerClustersServiceClientTest", |
||||
"com.google.cloud.gaming.v1beta.GameServerConfigsServiceClientTest", |
||||
"com.google.cloud.gaming.v1beta.GameServerDeploymentsServiceClientTest", |
||||
"com.google.cloud.gaming.v1beta.RealmsServiceClientTest", |
||||
], |
||||
runtime_deps = [":gaming_java_gapic_test"], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
java_gapic_assembly_gradle_pkg( |
||||
name = "google-cloud-gaming-v1beta-java", |
||||
deps = [ |
||||
":gaming_java_gapic", |
||||
":gaming_java_grpc", |
||||
":gaming_java_proto", |
||||
":gaming_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Go |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"go_gapic_assembly_pkg", |
||||
"go_gapic_library", |
||||
"go_proto_library", |
||||
"go_test", |
||||
) |
||||
|
||||
go_proto_library( |
||||
name = "gaming_go_proto", |
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"], |
||||
importpath = "google.golang.org/genproto/googleapis/cloud/gaming/v1beta", |
||||
protos = [":gaming_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_go_proto", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_gapic_library( |
||||
name = "gaming_go_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
importpath = "cloud.google.com/go/gaming/apiv1beta", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
deps = [ |
||||
":gaming_go_proto", |
||||
"//google/longrunning:longrunning_go_gapic", |
||||
"//google/longrunning:longrunning_go_proto", |
||||
"@com_google_cloud_go//longrunning:go_default_library", |
||||
"@io_bazel_rules_go//proto/wkt:duration_go_proto", |
||||
], |
||||
) |
||||
|
||||
go_test( |
||||
name = "gaming_go_gapic_test", |
||||
srcs = [":gaming_go_gapic_srcjar_test"], |
||||
embed = [":gaming_go_gapic"], |
||||
importpath = "cloud.google.com/go/gaming/apiv1beta", |
||||
) |
||||
|
||||
# Open Source Packages |
||||
go_gapic_assembly_pkg( |
||||
name = "gapi-cloud-gaming-v1beta-go", |
||||
deps = [ |
||||
":gaming_go_gapic", |
||||
":gaming_go_gapic_srcjar-smoke-test.srcjar", |
||||
":gaming_go_gapic_srcjar-test.srcjar", |
||||
":gaming_go_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Python |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"moved_proto_library", |
||||
"py_gapic_assembly_pkg", |
||||
"py_gapic_library", |
||||
"py_grpc_library", |
||||
"py_proto_library", |
||||
) |
||||
|
||||
moved_proto_library( |
||||
name = "gaming_moved_proto", |
||||
srcs = [":gaming_proto"], |
||||
deps = [ |
||||
"//google/api:annotations_proto", |
||||
"//google/api:client_proto", |
||||
"//google/api:field_behavior_proto", |
||||
"//google/api:resource_proto", |
||||
"//google/longrunning:operations_proto", |
||||
"@com_google_protobuf//:duration_proto", |
||||
"@com_google_protobuf//:field_mask_proto", |
||||
"@com_google_protobuf//:timestamp_proto", |
||||
], |
||||
) |
||||
|
||||
py_proto_library( |
||||
name = "gaming_py_proto", |
||||
plugin = "@protoc_docs_plugin//:docs_plugin", |
||||
deps = [":gaming_moved_proto"], |
||||
) |
||||
|
||||
py_grpc_library( |
||||
name = "gaming_py_grpc", |
||||
srcs = [":gaming_moved_proto"], |
||||
deps = [":gaming_py_proto"], |
||||
) |
||||
|
||||
py_gapic_library( |
||||
name = "gaming_py_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
deps = [ |
||||
":gaming_py_grpc", |
||||
":gaming_py_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
py_gapic_assembly_pkg( |
||||
name = "gaming-v1beta-py", |
||||
deps = [ |
||||
":gaming_py_gapic", |
||||
":gaming_py_grpc", |
||||
":gaming_py_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# PHP |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"php_gapic_assembly_pkg", |
||||
"php_gapic_library", |
||||
"php_grpc_library", |
||||
"php_proto_library", |
||||
) |
||||
|
||||
php_proto_library( |
||||
name = "gaming_php_proto", |
||||
deps = [":gaming_proto"], |
||||
) |
||||
|
||||
php_grpc_library( |
||||
name = "gaming_php_grpc", |
||||
srcs = [":gaming_proto"], |
||||
deps = [":gaming_php_proto"], |
||||
) |
||||
|
||||
php_gapic_library( |
||||
name = "gaming_php_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
deps = [ |
||||
":gaming_php_grpc", |
||||
":gaming_php_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
php_gapic_assembly_pkg( |
||||
name = "google-cloud-gaming-v1beta-php", |
||||
deps = [ |
||||
":gaming_php_gapic", |
||||
":gaming_php_grpc", |
||||
":gaming_php_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Node.js |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"nodejs_gapic_assembly_pkg", |
||||
"nodejs_gapic_library", |
||||
) |
||||
|
||||
nodejs_gapic_library( |
||||
name = "gaming_nodejs_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
deps = [], |
||||
) |
||||
|
||||
nodejs_gapic_assembly_pkg( |
||||
name = "gaming-v1beta-nodejs", |
||||
deps = [ |
||||
":gaming_nodejs_gapic", |
||||
":gaming_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# Ruby |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"ruby_gapic_assembly_pkg", |
||||
"ruby_gapic_library", |
||||
"ruby_grpc_library", |
||||
"ruby_proto_library", |
||||
) |
||||
|
||||
ruby_proto_library( |
||||
name = "gaming_ruby_proto", |
||||
deps = [":gaming_proto"], |
||||
) |
||||
|
||||
ruby_grpc_library( |
||||
name = "gaming_ruby_grpc", |
||||
srcs = [":gaming_proto"], |
||||
deps = [":gaming_ruby_proto"], |
||||
) |
||||
|
||||
ruby_gapic_library( |
||||
name = "gaming_ruby_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
deps = [ |
||||
":gaming_ruby_grpc", |
||||
":gaming_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
ruby_gapic_assembly_pkg( |
||||
name = "google-cloud-gaming-v1beta-ruby", |
||||
deps = [ |
||||
":gaming_ruby_gapic", |
||||
":gaming_ruby_grpc", |
||||
":gaming_ruby_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C# |
||||
############################################################################## |
||||
load( |
||||
"@com_google_googleapis_imports//:imports.bzl", |
||||
"csharp_gapic_assembly_pkg", |
||||
"csharp_gapic_library", |
||||
"csharp_grpc_library", |
||||
"csharp_proto_library", |
||||
) |
||||
|
||||
csharp_proto_library( |
||||
name = "gaming_csharp_proto", |
||||
deps = [":gaming_proto"], |
||||
) |
||||
|
||||
csharp_grpc_library( |
||||
name = "gaming_csharp_grpc", |
||||
srcs = [":gaming_proto"], |
||||
deps = [":gaming_csharp_proto"], |
||||
) |
||||
|
||||
csharp_gapic_library( |
||||
name = "gaming_csharp_gapic", |
||||
src = ":gaming_proto_with_info", |
||||
gapic_yaml = "gaming_gapic.yaml", |
||||
package = "google.cloud.gaming.v1beta", |
||||
service_yaml = "gameservices_v1beta.yaml", |
||||
deps = [ |
||||
":gaming_csharp_grpc", |
||||
":gaming_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
# Open Source Packages |
||||
csharp_gapic_assembly_pkg( |
||||
name = "google-cloud-gaming-v1beta-csharp", |
||||
deps = [ |
||||
":gaming_csharp_gapic", |
||||
":gaming_csharp_grpc", |
||||
":gaming_csharp_proto", |
||||
], |
||||
) |
||||
|
||||
############################################################################## |
||||
# C++ |
||||
############################################################################## |
||||
# Put your C++ rules here |
@ -0,0 +1,241 @@ |
||||
// 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 gameservices 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; |
||||
} |
@ -0,0 +1,275 @@ |
||||
// 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/api/resource.proto"; |
||||
import "google/cloud/gaming/v1beta/common.proto"; |
||||
import "google/protobuf/field_mask.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"; |
||||
|
||||
// Request message for GameServerClustersService.ListGameServerClusters. |
||||
message ListGameServerClustersRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// "projects/{project}/locations/{location}/realms/{realm}". |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerCluster" |
||||
} |
||||
]; |
||||
|
||||
// Optional. The maximum number of items to return. If unspecified, server |
||||
// will pick an appropriate default. Server may return fewer items than |
||||
// requested. A caller should only rely on response's |
||||
// [next_page_token][google.cloud.gaming.v1beta.ListGameServerClustersResponse.next_page_token] to |
||||
// determine if there are more GameServerClusters left to be queried. |
||||
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The next_page_token value returned from a previous List request, if any. |
||||
string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The filter to apply to list results. |
||||
string filter = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Specifies the ordering of results following syntax at |
||||
// https://cloud.google.com/apis/design/design_patterns#sorting_order. |
||||
string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for GameServerClustersService.ListGameServerClusters. |
||||
message ListGameServerClustersResponse { |
||||
// The list of Game Server Clusters. |
||||
repeated GameServerCluster game_server_clusters = 1; |
||||
|
||||
// Token to retrieve the next page of results, or empty if there are no more |
||||
// results in the list. |
||||
string next_page_token = 2; |
||||
|
||||
// List of Locations that could not be reached. |
||||
repeated string unreachable = 4; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.GetGameServerCluster. |
||||
message GetGameServerClusterRequest { |
||||
// Required. The name of the Game Server Cluster to retrieve. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/realms/{realm-id}/gameServerClusters/{cluster}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerCluster" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.CreateGameServerCluster. |
||||
message CreateGameServerClusterRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// `projects/{project}/locations/{location}/realms/{realm-id}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerCluster" |
||||
} |
||||
]; |
||||
|
||||
// Required. The ID of the Game Server Cluster resource to be created. |
||||
string game_server_cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Game Server Cluster resource to be created. |
||||
GameServerCluster game_server_cluster = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.PreviewCreateGameServerCluster. |
||||
message PreviewCreateGameServerClusterRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// `projects/{project}/locations/{location}/realms/{realm}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerCluster" |
||||
} |
||||
]; |
||||
|
||||
// Required. The ID of the Game Server Cluster resource to be created. |
||||
string game_server_cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Game Server Cluster resource to be created. |
||||
GameServerCluster game_server_cluster = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Optional. The target timestamp to compute the preview. |
||||
google.protobuf.Timestamp preview_time = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for |
||||
// GameServerClustersService.PreviewCreateGameServerCluster. |
||||
message PreviewCreateGameServerClusterResponse { |
||||
// The ETag of the game server cluster. |
||||
string etag = 2; |
||||
|
||||
// The target state. |
||||
TargetState target_state = 3; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.DeleteGameServerCluster. |
||||
message DeleteGameServerClusterRequest { |
||||
// Required. The name of the Game Server Cluster to delete. Uses the form: |
||||
// `projects/{project}/locations/{location}/gameServerClusters/{cluster}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerCluster" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.PreviewDeleteGameServerCluster. |
||||
message PreviewDeleteGameServerClusterRequest { |
||||
// Required. The name of the Game Server Cluster to delete. Uses the form: |
||||
// `projects/{project}/locations/{location}/gameServerClusters/{cluster}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerCluster" |
||||
} |
||||
]; |
||||
|
||||
// Optional. The target timestamp to compute the preview. |
||||
google.protobuf.Timestamp preview_time = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for |
||||
// GameServerClustersService.PreviewDeleteGameServerCluster. |
||||
message PreviewDeleteGameServerClusterResponse { |
||||
// The ETag of the game server cluster. |
||||
string etag = 2; |
||||
|
||||
// The target state. |
||||
TargetState target_state = 3; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.UpdateGameServerCluster. |
||||
message UpdateGameServerClusterRequest { |
||||
// Required. The Game Server Cluster to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
GameServerCluster game_server_cluster = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Mask of fields to update. At least one path must be supplied in |
||||
// this field. For the `FieldMask` definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for GameServerClustersService.UpdateGameServerCluster. |
||||
message PreviewUpdateGameServerClusterRequest { |
||||
// Required. The Game Server Cluster to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
GameServerCluster game_server_cluster = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Mask of fields to update. At least one path must be supplied in |
||||
// this field. For the `FieldMask` definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Optional. The target timestamp to compute the preview. |
||||
google.protobuf.Timestamp preview_time = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for GameServerClustersService.PreviewUpdateGameServerCluster |
||||
message PreviewUpdateGameServerClusterResponse { |
||||
// The ETag of the game server cluster. |
||||
string etag = 2; |
||||
|
||||
// The target state. |
||||
TargetState target_state = 3; |
||||
} |
||||
|
||||
// The Game Server Cluster connection information. |
||||
message GameServerClusterConnectionInfo { |
||||
// The location of the Kubernetes cluster. |
||||
oneof cluster_reference { |
||||
// Reference to the GKE cluster where the game servers are installed. |
||||
GkeClusterReference gke_cluster_reference = 7; |
||||
} |
||||
|
||||
// Namespace designated on the Game Server Cluster where the Agones game |
||||
// server instances will be created. Existence of the namespace will be |
||||
// validated during creation. |
||||
string namespace = 5; |
||||
} |
||||
|
||||
// A reference to a GKE cluster. |
||||
message GkeClusterReference { |
||||
// The full or partial name of a GKE cluster, using one of the following |
||||
// forms: |
||||
// * `projects/{project}/locations/{location}/clusters/{cluster}` |
||||
// * `locations/{location}/clusters/{cluster}` |
||||
// * `{cluster}` |
||||
// If project and location are not specified, the project and location of the |
||||
// GameServerCluster resource are used to generate the full name of the |
||||
// GKE cluster. |
||||
string cluster = 1; |
||||
} |
||||
|
||||
// A Game Server Cluster resource. |
||||
message GameServerCluster { |
||||
option (google.api.resource) = { |
||||
type: "gameservices.googleapis.com/GameServerCluster" |
||||
pattern: "projects/{project}/locations/{location}/realms/{realm}/gameServerClusters/{cluster}" |
||||
}; |
||||
|
||||
// Required. The resource name of the Game Server Cluster. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/realms/{realm}/gameServerClusters/{cluster}`. |
||||
// For example, |
||||
// |
||||
// `projects/my-project/locations/{location}/realms/zanzibar/gameServerClusters/my-onprem-cluster`. |
||||
string name = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Output only. The creation time. |
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The last-modified time. |
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The labels associated with this Game Server Cluster. Each label is a |
||||
// key-value pair. |
||||
map<string, string> labels = 4; |
||||
|
||||
// Game Server Cluster connection information. This information is used to |
||||
// manage Game Server Clusters. |
||||
GameServerClusterConnectionInfo connection_info = 5; |
||||
|
||||
// ETag of the resource. |
||||
string etag = 6; |
||||
|
||||
// Human readable description of the cluster. |
||||
string description = 7; |
||||
} |
@ -0,0 +1,112 @@ |
||||
// 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/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/cloud/gaming/v1beta/game_server_clusters.proto"; |
||||
import "google/longrunning/operations.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"; |
||||
|
||||
// The game server cluster maps to Kubernetes clusters running Agones and is |
||||
// used to manage fleets within clusters. |
||||
service GameServerClustersService { |
||||
option (google.api.default_host) = "gameservices.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Lists Game Server Clusters in a given project and location. |
||||
rpc ListGameServerClusters(ListGameServerClustersRequest) returns (ListGameServerClustersResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{parent=projects/*/locations/*/realms/*}/gameServerClusters" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Gets details of a single game server cluster. |
||||
rpc GetGameServerCluster(GetGameServerClusterRequest) returns (GameServerCluster) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{name=projects/*/locations/*/realms/*/gameServerClusters/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Creates a new game server cluster in a given project and location. |
||||
rpc CreateGameServerCluster(CreateGameServerClusterRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta/{parent=projects/*/locations/*/realms/*}/gameServerClusters" |
||||
body: "game_server_cluster" |
||||
}; |
||||
option (google.api.method_signature) = "parent,game_server_cluster,game_server_cluster_id"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerCluster" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Previews creation of a new game server cluster in a given project and |
||||
// location. |
||||
rpc PreviewCreateGameServerCluster(PreviewCreateGameServerClusterRequest) returns (PreviewCreateGameServerClusterResponse) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta/{parent=projects/*/locations/*/realms/*}/gameServerClusters:previewCreate" |
||||
body: "game_server_cluster" |
||||
}; |
||||
} |
||||
|
||||
// Deletes a single game server cluster. |
||||
rpc DeleteGameServerCluster(DeleteGameServerClusterRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta/{name=projects/*/locations/*/realms/*/gameServerClusters/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerCluster" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Previews deletion of a single game server cluster. |
||||
rpc PreviewDeleteGameServerCluster(PreviewDeleteGameServerClusterRequest) returns (PreviewDeleteGameServerClusterResponse) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta/{name=projects/*/locations/*/realms/*/gameServerClusters/*}:previewDelete" |
||||
}; |
||||
} |
||||
|
||||
// Patches a single game server cluster. |
||||
rpc UpdateGameServerCluster(UpdateGameServerClusterRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{game_server_cluster.name=projects/*/locations/*/realms/*/gameServerClusters/*}" |
||||
body: "game_server_cluster" |
||||
}; |
||||
option (google.api.method_signature) = "game_server_cluster,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerCluster" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Previews updating a GameServerCluster. |
||||
rpc PreviewUpdateGameServerCluster(PreviewUpdateGameServerClusterRequest) returns (PreviewUpdateGameServerClusterResponse) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{game_server_cluster.name=projects/*/locations/*/realms/*/gameServerClusters/*}:previewUpdate" |
||||
body: "game_server_cluster" |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,180 @@ |
||||
// 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/api/resource.proto"; |
||||
import "google/cloud/gaming/v1beta/common.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"; |
||||
|
||||
// Request message for GameServerConfigsService.ListGameServerConfigs. |
||||
message ListGameServerConfigsRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/configs/*`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerConfig" |
||||
} |
||||
]; |
||||
|
||||
// Optional. The maximum number of items to return. If unspecified, server |
||||
// will pick an appropriate default. Server may return fewer items than |
||||
// requested. A caller should only rely on response's |
||||
// [next_page_token][google.cloud.gaming.v1beta.ListGameServerConfigsResponse.next_page_token] to |
||||
// determine if there are more GameServerConfigs left to be queried. |
||||
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The next_page_token value returned from a previous List request, if any. |
||||
string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The filter to apply to list results. |
||||
string filter = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Specifies the ordering of results following syntax at |
||||
// https://cloud.google.com/apis/design/design_patterns#sorting_order. |
||||
string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for GameServerConfigsService.ListGameServerConfigs. |
||||
message ListGameServerConfigsResponse { |
||||
// The list of Game Server Configs. |
||||
repeated GameServerConfig game_server_configs = 1; |
||||
|
||||
// Token to retrieve the next page of results, or empty if there are no more |
||||
// results in the list. |
||||
string next_page_token = 2; |
||||
|
||||
// List of Locations that could not be reached. |
||||
repeated string unreachable = 4; |
||||
} |
||||
|
||||
// Request message for GameServerConfigsService.GetGameServerConfig. |
||||
message GetGameServerConfigRequest { |
||||
// Required. The name of the Game Server Config to retrieve. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/configs/{config}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerConfig" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for GameServerConfigsService.CreateGameServerConfig. |
||||
message CreateGameServerConfigRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerConfig" |
||||
} |
||||
]; |
||||
|
||||
// Required. The ID of the Game Server Config resource to be created. |
||||
string config_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Game Server Config resource to be created. |
||||
GameServerConfig game_server_config = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for GameServerConfigsService.DeleteGameServerConfig. |
||||
message DeleteGameServerConfigRequest { |
||||
// Required. The name of the Game Server Config to delete. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/configs/{config}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerConfig" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Autoscaling config for an Agones fleet. |
||||
message ScalingConfig { |
||||
// Required. The name of the Scaling Config |
||||
string name = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Agones fleet autoscaler spec. Example spec: |
||||
// https://agones.dev/site/docs/reference/fleetautoscaler/ |
||||
string fleet_autoscaler_spec = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Labels used to identify the Game Server Clusters to which this Agones |
||||
// scaling config applies. A Game Server Cluster is subject to this Agones |
||||
// scaling config if its labels match any of the selector entries. |
||||
repeated LabelSelector selectors = 4; |
||||
|
||||
// The schedules to which this Scaling Config applies. |
||||
repeated Schedule schedules = 5; |
||||
} |
||||
|
||||
// Fleet configs for Agones. |
||||
message FleetConfig { |
||||
// Agones fleet spec. Example spec: |
||||
// `https://agones.dev/site/docs/reference/fleet/`. |
||||
string fleet_spec = 1; |
||||
|
||||
// The name of the FleetConfig. |
||||
string name = 2; |
||||
} |
||||
|
||||
// A Game Server Config resource. |
||||
message GameServerConfig { |
||||
option (google.api.resource) = { |
||||
type: "gameservices.googleapis.com/GameServerConfig" |
||||
pattern: "projects/{project}/locations/{location}/gameServerDeployments/{deployment}/configs/{config}" |
||||
}; |
||||
|
||||
// The resource name of the Game Server Config. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/configs/{config}`. |
||||
// For example, |
||||
// |
||||
// `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config`. |
||||
string name = 1; |
||||
|
||||
// Output only. The creation time. |
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The last-modified time. |
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The labels associated with this Game Server Config. Each label is a |
||||
// key-value pair. |
||||
map<string, string> labels = 4; |
||||
|
||||
// FleetConfig contains a list of Agones fleet specs. Only one FleetConfig |
||||
// is allowed. |
||||
repeated FleetConfig fleet_configs = 5; |
||||
|
||||
// The autoscaling settings. |
||||
repeated ScalingConfig scaling_configs = 6; |
||||
|
||||
// The description of the Game Server Config. |
||||
string description = 7; |
||||
} |
@ -0,0 +1,78 @@ |
||||
// 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/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/cloud/gaming/v1beta/game_server_configs.proto"; |
||||
import "google/longrunning/operations.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"; |
||||
|
||||
// The Game Server Config configures the game servers in an Agones fleet. |
||||
service GameServerConfigsService { |
||||
option (google.api.default_host) = "gameservices.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Lists Game Server Configs in a given project, Location, and Game Server |
||||
// Deployment. |
||||
rpc ListGameServerConfigs(ListGameServerConfigsRequest) returns (ListGameServerConfigsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{parent=projects/*/locations/*/gameServerDeployments/*}/configs" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Gets details of a single Game Server Config. |
||||
rpc GetGameServerConfig(GetGameServerConfigRequest) returns (GameServerConfig) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{name=projects/*/locations/*/gameServerDeployments/*/configs/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Creates a new Game Server Config in a given project, Location, and Game |
||||
// Server Deployment. Game Server Configs are immutable, and are not applied |
||||
// until referenced in the Game Server Deployment Rollout resource. |
||||
rpc CreateGameServerConfig(CreateGameServerConfigRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta/{parent=projects/*/locations/*/gameServerDeployments/*}/configs" |
||||
body: "game_server_config" |
||||
}; |
||||
option (google.api.method_signature) = "parent,game_server_config"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerConfig" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Deletes a single Game Server Config. The deletion will fail if the Game |
||||
// Server Config is referenced in a Game Server Deployment Rollout. |
||||
rpc DeleteGameServerConfig(DeleteGameServerConfigRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta/{name=projects/*/locations/*/gameServerDeployments/*/configs/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerConfig" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,305 @@ |
||||
// 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/api/resource.proto"; |
||||
import "google/cloud/gaming/v1beta/common.proto"; |
||||
import "google/protobuf/field_mask.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"; |
||||
|
||||
// Request message for GameServerDeploymentsService.ListGameServerDeployments. |
||||
message ListGameServerDeploymentsRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// `projects/{project}/locations/{location}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerDeployment" |
||||
} |
||||
]; |
||||
|
||||
// Optional. The maximum number of items to return. If unspecified, server |
||||
// will pick an appropriate default. Server may return fewer items than |
||||
// requested. A caller should only rely on response's |
||||
// [next_page_token][google.cloud.gaming.v1beta.ListGameServerDeploymentsResponse.next_page_token] to |
||||
// determine if there are more GameServerDeployments left to be queried. |
||||
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The next_page_token value returned from a previous List request, |
||||
// if any. |
||||
string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The filter to apply to list results. |
||||
string filter = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Specifies the ordering of results following syntax at |
||||
// https://cloud.google.com/apis/design/design_patterns#sorting_order. |
||||
string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for GameServerDeploymentsService.ListGameServerDeployments. |
||||
message ListGameServerDeploymentsResponse { |
||||
// The list of Game Server Delpoyments. |
||||
repeated GameServerDeployment game_server_deployments = 1; |
||||
|
||||
// Token to retrieve the next page of results, or empty if there are no more |
||||
// results in the list. |
||||
string next_page_token = 2; |
||||
|
||||
// List of Locations that could not be reached. |
||||
repeated string unreachable = 4; |
||||
} |
||||
|
||||
// Request message for GameServerDeploymentsService.GetGameServerDeployment. |
||||
message GetGameServerDeploymentRequest { |
||||
// Required. The name of the Game Server Deployment to retrieve. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerDeployment" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for |
||||
// GameServerDeploymentsService.GetGameServerDeploymentRollout. |
||||
message GetGameServerDeploymentRolloutRequest { |
||||
// Required. The name of the Game Server Deployment to retrieve. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/rollout`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerDeployment" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for GameServerDeploymentsService.CreateGameServerDeployment. |
||||
message CreateGameServerDeploymentRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// `projects/{project}/locations/{location}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/GameServerDeployment" |
||||
} |
||||
]; |
||||
|
||||
// Required. The ID of the Game Server Deployment resource to be created. |
||||
string deployment_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Game Server Deployment resource to be created. |
||||
GameServerDeployment game_server_deployment = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for GameServerDeploymentsService.DeleteGameServerDeployment. |
||||
message DeleteGameServerDeploymentRequest { |
||||
// Required. The name of the Game Server Deployment to delete. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/GameServerDeployment" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for GameServerDeploymentsService.UpdateGameServerDeployment. |
||||
// Only allows updates for labels. |
||||
message UpdateGameServerDeploymentRequest { |
||||
// Required. The Game Server Deployment to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
GameServerDeployment game_server_deployment = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Mask of fields to update. At least one path must be supplied in |
||||
// this field. For the `FieldMask` definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for |
||||
// GameServerDeploymentsService.UpdateGameServerRolloutDeployment. |
||||
message UpdateGameServerDeploymentRolloutRequest { |
||||
// Required. The Game Server Deployment Rollout to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
GameServerDeploymentRollout rollout = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. Mask of fields to update. At least one path must be supplied in |
||||
// this field. For the `FieldMask` definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for GameServerDeploymentsService.FetchDeploymentState. |
||||
message FetchDeploymentStateRequest { |
||||
// Required. The name of the Game Server Deployment. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}`. |
||||
string name = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Response message for GameServerDeploymentsService.FetchDeploymentState. |
||||
message FetchDeploymentStateResponse { |
||||
// The Game Server Cluster changes made by the Game Server Deployment. |
||||
message DeployedClusterState { |
||||
// The name of the cluster. |
||||
string cluster = 1; |
||||
|
||||
// The details about the Agones fleets and autoscalers created in the |
||||
// Game Server Cluster. |
||||
repeated DeployedFleetDetails fleet_details = 2; |
||||
} |
||||
|
||||
// The state of the Game Server Deployment in each Game Server Cluster. |
||||
repeated DeployedClusterState cluster_state = 1; |
||||
|
||||
// List of Locations that could not be reached. |
||||
repeated string unavailable = 2; |
||||
} |
||||
|
||||
// A Game Server Deployment resource. |
||||
message GameServerDeployment { |
||||
option (google.api.resource) = { |
||||
type: "gameservices.googleapis.com/GameServerDeployment" |
||||
pattern: "projects/{project}/locations/{location}/gameServerDeployments/{deployment}" |
||||
}; |
||||
|
||||
// The resource name of the Game Server Deployment. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}`. |
||||
// For example, |
||||
// |
||||
// `projects/my-project/locations/{location}/gameServerDeployments/my-deployment`. |
||||
string name = 1; |
||||
|
||||
// Output only. The creation time. |
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The last-modified time. |
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The labels associated with this Game Server Deployment. Each label is a |
||||
// key-value pair. |
||||
map<string, string> labels = 4; |
||||
|
||||
// ETag of the resource. |
||||
string etag = 7; |
||||
|
||||
// Human readable description of the Game Server Deployment. |
||||
string description = 8; |
||||
} |
||||
|
||||
// A Game Server Config override. |
||||
message GameServerConfigOverride { |
||||
// Selector chooses the Game Server Config targets. |
||||
oneof selector { |
||||
// Selector for choosing applicable realms. |
||||
RealmSelector realms_selector = 1; |
||||
} |
||||
|
||||
// Selects the Game Server Config and how it should be applied. |
||||
oneof change { |
||||
// The game server config for this override. |
||||
string config_version = 100; |
||||
} |
||||
} |
||||
|
||||
// The Game Server Deployment Rollout which represents the desired rollout |
||||
// state. |
||||
message GameServerDeploymentRollout { |
||||
option (google.api.resource) = { |
||||
type: "gameservices.googleapis.com/GameServerDeploymentRollout" |
||||
pattern: "projects/{project}/locations/{location}/gameServerDeployments/{deployment}/rollout" |
||||
}; |
||||
|
||||
// The resource name of the Game Server Deployment Rollout. Uses the form: |
||||
// |
||||
// `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/rollout`. |
||||
// For example, |
||||
// |
||||
// `projects/my-project/locations/{location}/gameServerDeployments/my-deployment/rollout`. |
||||
string name = 1; |
||||
|
||||
// Output only. The creation time. |
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The last-modified time. |
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The default Game Server Config is applied to all Realms unless overridden |
||||
// in the Rollout. For example, |
||||
// |
||||
// `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config`. |
||||
string default_game_server_config = 4; |
||||
|
||||
// Contains the Game Server Config Rollout overrides. Overrides are processed |
||||
// in the order they are listed. Once a match is found for a Realm, the rest |
||||
// of the list is not processed. |
||||
repeated GameServerConfigOverride game_server_config_overrides = 5; |
||||
|
||||
// ETag of the resource. |
||||
string etag = 6; |
||||
} |
||||
|
||||
// Request message for PreviewGameServerDeploymentRollout. |
||||
message PreviewGameServerDeploymentRolloutRequest { |
||||
// Required. The Game Server Deployment Rollout to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
GameServerDeploymentRollout rollout = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Optional. Mask of fields to update. At least one path must be supplied in |
||||
// this field. For the `FieldMask` definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The target timestamp to compute the preview. Defaults to the immediately |
||||
// after the proposed Rollout completes. |
||||
google.protobuf.Timestamp preview_time = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for PreviewGameServerDeploymentRollout. |
||||
// This has details about the Agones fleet and autoscaler to be actuated. |
||||
message PreviewGameServerDeploymentRolloutResponse { |
||||
// Locations that could not be reached on this request. |
||||
repeated string unavailable = 2; |
||||
|
||||
// ETag of the Game Server Deployment. |
||||
string etag = 3; |
||||
|
||||
// The target state. |
||||
TargetState target_state = 4; |
||||
} |
@ -0,0 +1,133 @@ |
||||
// 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/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/cloud/gaming/v1beta/game_server_deployments.proto"; |
||||
import "google/longrunning/operations.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"; |
||||
|
||||
// The Game Server Deployment is used to control the deployment of Agones |
||||
// fleets. |
||||
service GameServerDeploymentsService { |
||||
option (google.api.default_host) = "gameservices.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Lists Game Server Deployments in a given project and Location. |
||||
rpc ListGameServerDeployments(ListGameServerDeploymentsRequest) returns (ListGameServerDeploymentsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{parent=projects/*/locations/*}/gameServerDeployments" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Gets details of a single Game Server Deployment. |
||||
rpc GetGameServerDeployment(GetGameServerDeploymentRequest) returns (GameServerDeployment) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{name=projects/*/locations/*/gameServerDeployments/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Creates a new Game Server Deployment in a given project and Location. |
||||
rpc CreateGameServerDeployment(CreateGameServerDeploymentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta/{parent=projects/*/locations/*}/gameServerDeployments" |
||||
body: "game_server_deployment" |
||||
}; |
||||
option (google.api.method_signature) = "parent,game_server_deployment"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerDeployment" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Deletes a single Game Server Deployment. |
||||
rpc DeleteGameServerDeployment(DeleteGameServerDeploymentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta/{name=projects/*/locations/*/gameServerDeployments/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerDeployment" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Patches a Game Server Deployment. |
||||
rpc UpdateGameServerDeployment(UpdateGameServerDeploymentRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{game_server_deployment.name=projects/*/locations/*/gameServerDeployments/*}" |
||||
body: "game_server_deployment" |
||||
}; |
||||
option (google.api.method_signature) = "game_server_deployment,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerDeployment" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Gets details a single Game Server Deployment Rollout. |
||||
rpc GetGameServerDeploymentRollout(GetGameServerDeploymentRolloutRequest) returns (GameServerDeploymentRollout) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{name=projects/*/locations/*/gameServerDeployments/*}/rollout" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Patches a single Game Server Deployment Rollout. |
||||
// The method will not return an error if the update does not affect any |
||||
// existing realms. For example - if the default_game_server_config is changed |
||||
// but all existing realms use the override, that is valid. Similarly, if a |
||||
// non existing realm is explicitly called out in game_server_config_overrides |
||||
// field, that will also not result in an error. |
||||
rpc UpdateGameServerDeploymentRollout(UpdateGameServerDeploymentRolloutRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{rollout.name=projects/*/locations/*/gameServerDeployments/*}/rollout" |
||||
body: "rollout" |
||||
}; |
||||
option (google.api.method_signature) = "rollout,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "GameServerDeployment" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Previews the Game Server Deployment Rollout. This API does not mutate the |
||||
// Rollout resource. |
||||
rpc PreviewGameServerDeploymentRollout(PreviewGameServerDeploymentRolloutRequest) returns (PreviewGameServerDeploymentRolloutResponse) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{rollout.name=projects/*/locations/*/gameServerDeployments/*}/rollout:preview" |
||||
body: "rollout" |
||||
}; |
||||
} |
||||
|
||||
// Retrieves information about the current state of the Game Server |
||||
// Ddeployment. Gathers all the Agones fleets and Agones autoscalers, |
||||
// including fleets running an older version of the Game Server Deployment. |
||||
rpc FetchDeploymentState(FetchDeploymentStateRequest) returns (FetchDeploymentStateResponse) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta/{name=projects/*/locations/*/gameServerDeployments/*}:fetchDeploymentState" |
||||
body: "*" |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,85 @@ |
||||
type: google.api.Service |
||||
config_version: 3 |
||||
name: gameservices.googleapis.com |
||||
title: Game Servers API |
||||
|
||||
apis: |
||||
- name: google.cloud.gaming.v1beta.GameServerClustersService |
||||
- name: google.cloud.gaming.v1beta.GameServerConfigsService |
||||
- name: google.cloud.gaming.v1beta.GameServerDeploymentsService |
||||
- name: google.cloud.gaming.v1beta.RealmsService |
||||
|
||||
types: |
||||
- name: google.cloud.gaming.v1beta.LabelSelector |
||||
- name: google.cloud.gaming.v1beta.OperationMetadata |
||||
- name: google.cloud.gaming.v1beta.Schedule |
||||
|
||||
documentation: |
||||
summary: Deploy and manage infrastructure for global multiplayer gaming experiences. |
||||
rules: |
||||
- selector: google.iam.v1.IAMPolicy.GetIamPolicy |
||||
description: |- |
||||
Gets the access control policy for a resource. Returns an empty policy |
||||
if the resource exists and does not have a policy set. |
||||
|
||||
- selector: google.iam.v1.IAMPolicy.SetIamPolicy |
||||
description: |- |
||||
Sets the access control policy on the specified resource. Replaces |
||||
any existing policy. |
||||
|
||||
Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and |
||||
PERMISSION_DENIED |
||||
|
||||
- selector: google.iam.v1.IAMPolicy.TestIamPermissions |
||||
description: |- |
||||
Returns permissions that a caller has on the specified resource. If the |
||||
resource does not exist, this will return an empty set of |
||||
permissions, not a NOT_FOUND error. |
||||
|
||||
Note: This operation is designed to be used for building |
||||
permission-aware UIs and command-line tools, not for authorization |
||||
checking. This operation may "fail open" without warning. |
||||
|
||||
backend: |
||||
rules: |
||||
- selector: 'google.cloud.gaming.v1beta.GameServerClustersService.*' |
||||
deadline: 60.0 |
||||
- selector: 'google.cloud.gaming.v1beta.GameServerConfigsService.*' |
||||
deadline: 60.0 |
||||
- selector: 'google.cloud.gaming.v1beta.GameServerDeploymentsService.*' |
||||
deadline: 60.0 |
||||
- selector: 'google.cloud.gaming.v1beta.RealmsService.*' |
||||
deadline: 60.0 |
||||
- selector: 'google.iam.v1.IAMPolicy.*' |
||||
deadline: 60.0 |
||||
- selector: 'google.longrunning.Operations.*' |
||||
deadline: 60.0 |
||||
- selector: google.longrunning.Operations.GetOperation |
||||
deadline: 5.0 |
||||
|
||||
authentication: |
||||
rules: |
||||
- selector: 'google.cloud.gaming.v1beta.GameServerClustersService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.cloud.gaming.v1beta.GameServerConfigsService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.cloud.gaming.v1beta.GameServerDeploymentsService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.cloud.gaming.v1beta.RealmsService.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.iam.v1.IAMPolicy.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
||||
- selector: 'google.longrunning.Operations.*' |
||||
oauth: |
||||
canonical_scopes: |- |
||||
https://www.googleapis.com/auth/cloud-platform |
@ -0,0 +1,19 @@ |
||||
type: com.google.api.codegen.ConfigProto |
||||
config_schema_version: 2.0.0 |
||||
# The settings of generated code in a specific language. |
||||
language_settings: |
||||
java: |
||||
package_name: com.google.cloud.gaming.v1beta |
||||
python: |
||||
package_name: google.cloud.gaming_v1beta.gapic |
||||
ruby: |
||||
package_name: Google::Cloud::Gaming::V1Beta |
||||
php: |
||||
package_name: Google\Cloud\Gaming\V1Beta |
||||
go: |
||||
package_name: cloud.google.com/go/gaming/apiv1beta |
||||
csharp: |
||||
package_name: Google.Cloud.Gaming.V1Beta |
||||
nodejs: |
||||
package_name: gaming.v1beta |
||||
domain_layer_location: google-cloud |
@ -0,0 +1,189 @@ |
||||
// 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/api/resource.proto"; |
||||
import "google/cloud/gaming/v1beta/common.proto"; |
||||
import "google/protobuf/field_mask.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"; |
||||
|
||||
// Request message for RealmsService.ListRealms. |
||||
message ListRealmsRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// `projects/{project}/locations/{location}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/Realm" |
||||
} |
||||
]; |
||||
|
||||
// Optional. The maximum number of items to return. If unspecified, server |
||||
// will pick an appropriate default. Server may return fewer items than |
||||
// requested. A caller should only rely on response's |
||||
// [next_page_token][google.cloud.gaming.v1beta.ListRealmsResponse.next_page_token] to |
||||
// determine if there are more Realms left to be queried. |
||||
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The next_page_token value returned from a previous List request, |
||||
// if any. |
||||
string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. The filter to apply to list results. |
||||
string filter = 4 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Specifies the ordering of results following syntax at |
||||
// https://cloud.google.com/apis/design/design_patterns#sorting_order. |
||||
string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for RealmsService.ListRealms. |
||||
message ListRealmsResponse { |
||||
// The list of Realms. |
||||
repeated Realm realms = 1; |
||||
|
||||
// Token to retrieve the next page of results, or empty if there are no more |
||||
// results in the list. |
||||
string next_page_token = 2; |
||||
|
||||
// List of Locations that could not be reached. |
||||
repeated string unreachable = 3; |
||||
} |
||||
|
||||
// Request message for RealmsService.GetRealm. |
||||
message GetRealmRequest { |
||||
// Required. The name of the Realm to retrieve. Uses the form: |
||||
// `projects/{project}/locations/{location}/realms/{realm}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/Realm" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for RealmsService.CreateRealm. |
||||
message CreateRealmRequest { |
||||
// Required. The parent resource name. Uses the form: |
||||
// `projects/{project}/locations/{location}`. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gameservices.googleapis.com/Realm" |
||||
} |
||||
]; |
||||
|
||||
// Required. The ID of the Realm resource to be created. |
||||
string realm_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Realm resource to be created. |
||||
Realm realm = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for RealmsService.DeleteRealm. |
||||
message DeleteRealmRequest { |
||||
// Required. The name of the Realm to delete. Uses the form: |
||||
// `projects/{project}/locations/{location}/realms/{realm}`. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gameservices.googleapis.com/Realm" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for RealmsService.UpdateRealm. |
||||
message UpdateRealmRequest { |
||||
// Required. The Realm to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
Realm realm = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The update mask applies to the resource. For the `FieldMask` |
||||
// definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for RealmsService.PreviewRealmUpdate. |
||||
message PreviewRealmUpdateRequest { |
||||
// Required. The Realm to be updated. |
||||
// Only fields specified in update_mask are updated. |
||||
Realm realm = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The update mask applies to the resource. For the `FieldMask` |
||||
// definition, see |
||||
// |
||||
// https: |
||||
// //developers.google.com/protocol-buffers |
||||
// // /docs/reference/google.protobuf#fieldmask |
||||
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Optional. The target timestamp to compute the preview. |
||||
google.protobuf.Timestamp preview_time = 3 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Response message for RealmsService.PreviewRealmUpdate. |
||||
message PreviewRealmUpdateResponse { |
||||
// ETag of the realm. |
||||
string etag = 2; |
||||
|
||||
// The target state. |
||||
TargetState target_state = 3; |
||||
} |
||||
|
||||
// A Realm resource. |
||||
message Realm { |
||||
option (google.api.resource) = { |
||||
type: "gameservices.googleapis.com/Realm" |
||||
pattern: "projects/{project}/locations/{location}/realms/{realm}" |
||||
}; |
||||
|
||||
// The resource name of the Realm. Uses the form: |
||||
// `projects/{project}/locations/{location}/realms/{realm}`. For |
||||
// example, `projects/my-project/locations/{location}/realms/my-realm`. |
||||
string name = 1; |
||||
|
||||
// Output only. The creation time. |
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The last-modified time. |
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// The labels associated with this Realm. Each label is a key-value pair. |
||||
map<string, string> labels = 4; |
||||
|
||||
// Required. Time zone where all policies targeting this Realm are evaluated. The value |
||||
// of this field must be from the IANA time zone database: |
||||
// https://www.iana.org/time-zones. |
||||
string time_zone = 6 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// ETag of the resource. |
||||
string etag = 7; |
||||
|
||||
// Human readable description of the Realm. |
||||
string description = 8; |
||||
} |
@ -0,0 +1,96 @@ |
||||
// 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/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/cloud/gaming/v1beta/realms.proto"; |
||||
import "google/longrunning/operations.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"; |
||||
|
||||
// A Realm is a grouping of Game Server Clusters that are considered |
||||
// interchangeable. |
||||
service RealmsService { |
||||
option (google.api.default_host) = "gameservices.googleapis.com"; |
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Lists Realms in a given project and Location. |
||||
rpc ListRealms(ListRealmsRequest) returns (ListRealmsResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{parent=projects/*/locations/*}/realms" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Gets details of a single Realm. |
||||
rpc GetRealm(GetRealmRequest) returns (Realm) { |
||||
option (google.api.http) = { |
||||
get: "/v1beta/{name=projects/*/locations/*/realms/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Creates a new Realm in a given project and Location. |
||||
rpc CreateRealm(CreateRealmRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1beta/{parent=projects/*/locations/*}/realms" |
||||
body: "realm" |
||||
}; |
||||
option (google.api.method_signature) = "parent,realm,realm_id"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Realm" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Deletes a single Realm. |
||||
rpc DeleteRealm(DeleteRealmRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1beta/{name=projects/*/locations/*/realms/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Realm" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Patches a single Realm. |
||||
rpc UpdateRealm(UpdateRealmRequest) returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{realm.name=projects/*/locations/*/realms/*}" |
||||
body: "realm" |
||||
}; |
||||
option (google.api.method_signature) = "realm,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "Realm" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Previews patches to a single Realm. |
||||
rpc PreviewRealmUpdate(PreviewRealmUpdateRequest) returns (PreviewRealmUpdateResponse) { |
||||
option (google.api.http) = { |
||||
patch: "/v1beta/{realm.name=projects/*/locations/*/realms/*}:previewUpdate" |
||||
body: "realm" |
||||
}; |
||||
} |
||||
} |
Loading…
Reference in new issue