diff options
Diffstat (limited to 'third_party/googleapis/google/cloud/gaming/v1')
12 files changed, 2247 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/gaming/v1/BUILD.bazel b/third_party/googleapis/google/cloud/gaming/v1/BUILD.bazel new file mode 100644 index 0000000..6d60d49 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/BUILD.bazel @@ -0,0 +1,396 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# 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", + srcs = [":gaming_proto_with_info"], + grpc_service_config = "gaming_grpc_service_config.json", + test_deps = [ + ":gaming_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":gaming_java_proto", + ], +) + +java_gapic_test( + name = "gaming_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.gaming.v1.GameServerClustersServiceClientHttpJsonTest", + "com.google.cloud.gaming.v1.GameServerClustersServiceClientTest", + "com.google.cloud.gaming.v1.GameServerConfigsServiceClientHttpJsonTest", + "com.google.cloud.gaming.v1.GameServerConfigsServiceClientTest", + "com.google.cloud.gaming.v1.GameServerDeploymentsServiceClientHttpJsonTest", + "com.google.cloud.gaming.v1.GameServerDeploymentsServiceClientTest", + "com.google.cloud.gaming.v1.RealmsServiceClientHttpJsonTest", + "com.google.cloud.gaming.v1.RealmsServiceClientTest", + ], + runtime_deps = [":gaming_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gaming-v1-java", + include_samples = True, + transport = "grpc+rest", + 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/v1", + protos = [":gaming_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "gaming_go_gapic", + srcs = [":gaming_proto_with_info"], + grpc_service_config = "gaming_grpc_service_config.json", + importpath = "cloud.google.com/go/gaming/apiv1;gaming", + service_yaml = "gameservices_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gaming_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go//longrunning:go_default_library", + "@com_google_cloud_go//longrunning/autogen: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/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-gaming-v1-go", + deps = [ + ":gaming_go_gapic", + ":gaming_go_gapic_srcjar-test.srcjar", + ":gaming_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "gaming_py_gapic", + srcs = [":gaming_proto"], + grpc_service_config = "gaming_grpc_service_config.json", + opt_args = [ + "warehouse-package-name=google-cloud-game-servers", + ], + transport = "grpc", +) + +py_test( + name = "gaming_py_gapic_test", + srcs = [ + "gaming_py_gapic_pytest.py", + "gaming_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":gaming_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "gaming-v1-py", + deps = [ + ":gaming_py_gapic", + ], +) + +############################################################################## +# 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", + srcs = [":gaming_proto_with_info"], + grpc_service_config = "gaming_grpc_service_config.json", + service_yaml = "gameservices_v1.yaml", + deps = [ + ":gaming_php_grpc", + ":gaming_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-gaming-v1-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", + package_name = "@google-cloud/game-servers", + src = ":gaming_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "gaming_grpc_service_config.json", + package = "google.cloud.gaming.v1", + service_yaml = "gameservices_v1.yaml", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "gaming-v1-nodejs", + deps = [ + ":gaming_nodejs_gapic", + ":gaming_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "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_cloud_gapic_library( + name = "gaming_ruby_gapic", + srcs = [":gaming_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-gaming-v1", + "ruby-cloud-env-prefix=GAMING", + "ruby-cloud-product-url=https://cloud.google.com/game-servers", + "ruby-cloud-api-id=gameservices.googleapis.com", + "ruby-cloud-api-shortname=gameservices", + ], + grpc_service_config = "gaming_grpc_service_config.json", + ruby_cloud_description = "With Game Servers, studios and publishers can deploy and manage their game server infrastructure hosted on multiple Agones clusters around the world through a single interface.", + ruby_cloud_title = "Cloud Gaming V1", + deps = [ + ":gaming_ruby_grpc", + ":gaming_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-gaming-v1-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", + srcs = [":gaming_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "gaming_grpc_service_config.json", + service_yaml = "gameservices_v1.yaml", + deps = [ + ":gaming_csharp_grpc", + ":gaming_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gaming-v1-csharp", + deps = [ + ":gaming_csharp_gapic", + ":gaming_csharp_grpc", + ":gaming_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "gaming_cc_proto", + deps = [":gaming_proto"], +) + +cc_grpc_library( + name = "gaming_cc_grpc", + srcs = [":gaming_proto"], + grpc_only = True, + deps = [":gaming_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/gaming/v1/common.proto b/third_party/googleapis/google/cloud/gaming/v1/common.proto new file mode 100644 index 0000000..8430426 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/common.proto @@ -0,0 +1,238 @@ +// Copyright 2021 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.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// 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; +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/game_server_clusters.proto b/third_party/googleapis/google/cloud/gaming/v1/game_server_clusters.proto new file mode 100644 index 0000000..02fbc0f --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/game_server_clusters.proto @@ -0,0 +1,371 @@ +// Copyright 2021 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.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gaming/v1/common.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// A view for GameServerCluster objects. +enum GameServerClusterView { + // The default / unset value. + // The API will default to the BASIC view. + GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED = 0; + + // Include basic information of a GameServerCluster resource and omit + // `cluster_state`. This is the default value (for ListGameServerClusters, + // GetGameServerCluster and PreviewCreateGameServerCluster). + BASIC = 1; + + // Include everything. + FULL = 2; +} + +// Request message for GameServerClustersService.ListGameServerClusters. +message ListGameServerClustersRequest { + // Required. The parent resource name, in the following 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, the server + // will pick an appropriate default. The server may return fewer items than + // requested. A caller should only rely on response's + // [next_page_token][google.cloud.gaming.v1.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]; + + // Optional. View for the returned GameServerCluster objects. When `FULL` is + // specified, the `cluster_state` field is also returned in the + // GameServerCluster object, which includes the state of the referenced + // Kubernetes cluster such as versions and provider info. The default/unset + // value is GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED, same as BASIC, which does + // not return the `cluster_state` field. + GameServerClusterView view = 6 [(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, in the following 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" + } + ]; + + // Optional. View for the returned GameServerCluster objects. When `FULL` is + // specified, the `cluster_state` field is also returned in the + // GameServerCluster object, which includes the state of the referenced + // Kubernetes cluster such as versions and provider info. The default/unset + // value is GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED, same as BASIC, which does + // not return the `cluster_state` field. + GameServerClusterView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for GameServerClustersService.CreateGameServerCluster. +message CreateGameServerClusterRequest { + // Required. The parent resource name, in the following 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, in the following 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]; + + // Optional. This field is deprecated, preview will always return + // KubernetesClusterState. + GameServerClusterView view = 6 [ + deprecated = true, + (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; + + // Output only. The state of the Kubernetes cluster in preview, this will be available if + // 'view' is set to `FULL` in the relevant List/Get/Preview request. + KubernetesClusterState cluster_state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for GameServerClustersService.DeleteGameServerCluster. +message DeleteGameServerClusterRequest { + // Required. The name of the game server cluster to delete, in the following 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, in the following 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, in the following 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; + + // The 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; + + // Output only. The state of the Kubernetes cluster, this will be available if + // 'view' is set to `FULL` in the relevant List/Get/Preview request. + KubernetesClusterState cluster_state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The state of the Kubernetes cluster. +message KubernetesClusterState { + // The state of the installed versions of Agones/Kubernetes. See also + // https://cloud.google.com/game-servers/docs/versions-and-upgrades. + enum InstallationState { + // The default value. This value is used if the state is omitted. + INSTALLATION_STATE_UNSPECIFIED = 0; + + // The combination of Agones and Kubernetes versions is supported by Google + // Cloud Game Servers. + AGONES_KUBERNETES_VERSION_SUPPORTED = 1; + + // The installed version of Agones is not supported by Google Cloud Game + // Servers. + AGONES_VERSION_UNSUPPORTED = 2; + + // The installed version of Agones is supported by Google Cloud Game + // Servers, but the installed version of Kubernetes is not recommended or + // supported by the version of Agones. + AGONES_KUBERNETES_VERSION_UNSUPPORTED = 3; + + // The installed version of Agones is not recognized because the Agones + // controller's image name does not have a version string reported as + // {major}.{minor}(.{patch}). + AGONES_VERSION_UNRECOGNIZED = 4; + + // The server version of Kubernetes cluster is not recognized because the + // API server didn't return parsable version info on path/version. + KUBERNETES_VERSION_UNRECOGNIZED = 5; + + // Failed to read or verify the version of Agones or Kubernetes. See + // version_installed_error_message for details. + VERSION_VERIFICATION_FAILED = 6; + + // Agones is not installed. + AGONES_NOT_INSTALLED = 7; + } + + // Output only. The version of Agones currently installed in the registered Kubernetes + // cluster. + string agones_version_installed = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The version of Kubernetes that is currently used in the registered + // Kubernetes cluster (as detected by the Cloud Game Servers service). + string kubernetes_version_installed = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state for the installed versions of Agones/Kubernetes. + InstallationState installation_state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed error message for the installed versions of Agones/Kubernetes. + string version_installed_error_message = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The cloud provider type reported by the first node's providerID in the list + // of nodes on the Kubernetes endpoint. On Kubernetes platforms that support + // zero-node clusters (like GKE-on-GCP), the provider type will be empty. + string provider = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The version of Agones that is targeted to be installed in the cluster. + string agones_version_targeted = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/game_server_clusters_service.proto b/third_party/googleapis/google/cloud/gaming/v1/game_server_clusters_service.proto new file mode 100644 index 0000000..db7a0f2 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/game_server_clusters_service.proto @@ -0,0 +1,111 @@ +// Copyright 2021 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.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/gaming/v1/game_server_clusters.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// 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: "/v1/{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: "/v1/{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: "/v1/{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: "/v1/{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: "/v1/{name=projects/*/locations/*/realms/*/gameServerClusters/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Previews deletion of a single game server cluster. + rpc PreviewDeleteGameServerCluster(PreviewDeleteGameServerClusterRequest) returns (PreviewDeleteGameServerClusterResponse) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/realms/*/gameServerClusters/*}:previewDelete" + }; + } + + // Patches a single game server cluster. + rpc UpdateGameServerCluster(UpdateGameServerClusterRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{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: "/v1/{game_server_cluster.name=projects/*/locations/*/realms/*/gameServerClusters/*}:previewUpdate" + body: "game_server_cluster" + }; + } +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/game_server_configs.proto b/third_party/googleapis/google/cloud/gaming/v1/game_server_configs.proto new file mode 100644 index 0000000..c984865 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/game_server_configs.proto @@ -0,0 +1,172 @@ +// Copyright 2021 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.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gaming/v1/common.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// Request message for GameServerConfigsService.ListGameServerConfigs. +message ListGameServerConfigsRequest { + // Required. The parent resource name, in the following 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.v1.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, in the following 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, in the following 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, in the following 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, in the following 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; +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/game_server_configs_service.proto b/third_party/googleapis/google/cloud/gaming/v1/game_server_configs_service.proto new file mode 100644 index 0000000..c151d60 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/game_server_configs_service.proto @@ -0,0 +1,77 @@ +// Copyright 2021 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.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/gaming/v1/game_server_configs.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// 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: "/v1/{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: "/v1/{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: "/v1/{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: "/v1/{name=projects/*/locations/*/gameServerDeployments/*/configs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/game_server_deployments.proto b/third_party/googleapis/google/cloud/gaming/v1/game_server_deployments.proto new file mode 100644 index 0000000..3c01717 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/game_server_deployments.proto @@ -0,0 +1,286 @@ +// Copyright 2021 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.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gaming/v1/common.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// Request message for GameServerDeploymentsService.ListGameServerDeployments. +message ListGameServerDeploymentsRequest { + // Required. The parent resource name, in the following 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, the server + // will pick an appropriate default. The server may return fewer items than + // requested. A caller should only rely on response's + // [next_page_token][google.cloud.gaming.v1.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 deployments. + 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 delpoyment to retrieve, in the following 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 delpoyment to retrieve, in the following 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, in the following 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 delpoyment resource to be created. + string deployment_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The game server delpoyment 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 delpoyment to delete, in the following 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 delpoyment 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 delpoyment 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 delpoyment, in the following 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, in the following form: + // `projects/{project}/locations/{location}/gameServerDeployments/{deployment}`. + // For example, + // `projects/my-project/locations/global/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 delpoyment. + 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, in the following + // form: + // `projects/{project}/locations/{location}/gameServerDeployments/{deployment}/rollout`. + // For example, + // `projects/my-project/locations/global/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; +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/game_server_deployments_service.proto b/third_party/googleapis/google/cloud/gaming/v1/game_server_deployments_service.proto new file mode 100644 index 0000000..a82d259 --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/game_server_deployments_service.proto @@ -0,0 +1,132 @@ +// Copyright 2021 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.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/gaming/v1/game_server_deployments.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// 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: "/v1/{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: "/v1/{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: "/v1/{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: "/v1/{name=projects/*/locations/*/gameServerDeployments/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Patches a game server deployment. + rpc UpdateGameServerDeployment(UpdateGameServerDeploymentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{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: "/v1/{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: "/v1/{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: "/v1/{rollout.name=projects/*/locations/*/gameServerDeployments/*}/rollout:preview" + body: "rollout" + }; + } + + // Retrieves information about the current state of the game server + // deployment. 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: "/v1/{name=projects/*/locations/*/gameServerDeployments/*}:fetchDeploymentState" + body: "*" + }; + } +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/gameservices_v1.yaml b/third_party/googleapis/google/cloud/gaming/v1/gameservices_v1.yaml new file mode 100644 index 0000000..43b3b6b --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/gameservices_v1.yaml @@ -0,0 +1,129 @@ +type: google.api.Service +config_version: 3 +name: gameservices.googleapis.com +title: Game Services API + +apis: +- name: google.cloud.gaming.v1.GameServerClustersService +- name: google.cloud.gaming.v1.GameServerConfigsService +- name: google.cloud.gaming.v1.GameServerDeploymentsService +- name: google.cloud.gaming.v1.RealmsService + +types: +- name: google.cloud.gaming.v1.LabelSelector +- name: google.cloud.gaming.v1.OperationMetadata +- name: google.cloud.gaming.v1.Schedule + +documentation: + summary: Deploy and manage infrastructure for global multiplayer gaming experiences. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + + - 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 `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` + errors. + + - 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.v1.GameServerClustersService.*' + deadline: 60.0 + - selector: google.cloud.gaming.v1.GameServerClustersService.CreateGameServerCluster + deadline: 120.0 + - selector: 'google.cloud.gaming.v1.GameServerConfigsService.*' + deadline: 60.0 + - selector: 'google.cloud.gaming.v1.GameServerDeploymentsService.*' + deadline: 60.0 + - selector: 'google.cloud.gaming.v1.RealmsService.*' + deadline: 60.0 + - selector: google.cloud.location.Locations.GetLocation + deadline: 60.0 + - selector: google.cloud.location.Locations.ListLocations + 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 + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.iam.v1.IAMPolicy.GetIamPolicy + get: '/v1/{resource=projects/*/locations/*/gameServerDeployments/*}:getIamPolicy' + - selector: google.iam.v1.IAMPolicy.SetIamPolicy + post: '/v1/{resource=projects/*/locations/*/gameServerDeployments/*}:setIamPolicy' + body: '*' + - selector: google.iam.v1.IAMPolicy.TestIamPermissions + post: '/v1/{resource=projects/*/locations/*/gameServerDeployments/*}:testIamPermissions' + body: '*' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.gaming.v1.GameServerClustersService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.gaming.v1.GameServerConfigsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.gaming.v1.GameServerDeploymentsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.gaming.v1.RealmsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + 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 diff --git a/third_party/googleapis/google/cloud/gaming/v1/gaming_grpc_service_config.json b/third_party/googleapis/google/cloud/gaming/v1/gaming_grpc_service_config.json new file mode 100644 index 0000000..9a09cad --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/gaming_grpc_service_config.json @@ -0,0 +1,59 @@ +{ + "methodConfig": [ + { + "name": [ + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "ListGameServerClusters" }, + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "GetGameServerCluster" }, + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "PreviewCreateGameServerCluster" }, + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "PreviewDeleteGameServerCluster" }, + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "PreviewUpdateGameServerCluster" }, + + { "service": "google.cloud.gaming.v1.GameServerConfigsService", "method": "ListGameServerConfigs" }, + { "service": "google.cloud.gaming.v1.GameServerConfigsService", "method": "GetGameServerConfig" }, + + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "ListGameServerDeployments" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "GetGameServerDeployment" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "GetGameServerDeploymentRollout" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "PreviewGameServerDeploymentRollout" }, + + { "service": "google.cloud.gaming.v1.RealmsService", "method": "ListRealms" }, + { "service": "google.cloud.gaming.v1.RealmsService", "method": "GetRealm" }, + { "service": "google.cloud.gaming.v1.RealmsService", "method": "PreviewRealmUpdate" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "FetchDeploymentState" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "DeleteGameServerCluster" }, + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "UpdateGameServerCluster" }, + + { "service": "google.cloud.gaming.v1.GameServerConfigsService", "method": "CreateGameServerConfig" }, + { "service": "google.cloud.gaming.v1.GameServerConfigsService", "method": "DeleteGameServerConfig" }, + + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "CreateGameServerDeployment" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "DeleteGameServerDeployment" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "UpdateGameServerDeployment" }, + { "service": "google.cloud.gaming.v1.GameServerDeploymentsService", "method": "UpdateGameServerDeploymentRollout" }, + + { "service": "google.cloud.gaming.v1.RealmsService", "method": "CreateRealm" }, + { "service": "google.cloud.gaming.v1.RealmsService", "method": "DeleteRealm" }, + { "service": "google.cloud.gaming.v1.RealmsService", "method": "UpdateRealm" } + ], + "timeout": "60s" + }, + { + "name": [ + { "service": "google.cloud.gaming.v1.GameServerClustersService", "method": "CreateGameServerCluster" } + ], + "timeout": "120s" + } + ] +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/realms.proto b/third_party/googleapis/google/cloud/gaming/v1/realms.proto new file mode 100644 index 0000000..007071a --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/realms.proto @@ -0,0 +1,181 @@ +// Copyright 2021 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.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/gaming/v1/common.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// Request message for RealmsService.ListRealms. +message ListRealmsRequest { + // Required. The parent resource name, in the following 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.v1.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, in the following 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, in the following 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, in the following 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, in the following 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; +} diff --git a/third_party/googleapis/google/cloud/gaming/v1/realms_service.proto b/third_party/googleapis/google/cloud/gaming/v1/realms_service.proto new file mode 100644 index 0000000..018850d --- /dev/null +++ b/third_party/googleapis/google/cloud/gaming/v1/realms_service.proto @@ -0,0 +1,95 @@ +// Copyright 2021 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.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/cloud/gaming/v1/realms.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming"; +option java_multiple_files = true; +option java_package = "com.google.cloud.gaming.v1"; + +// 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: "/v1/{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: "/v1/{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: "/v1/{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: "/v1/{name=projects/*/locations/*/realms/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Patches a single realm. + rpc UpdateRealm(UpdateRealmRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{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: "/v1/{realm.name=projects/*/locations/*/realms/*}:previewUpdate" + body: "realm" + }; + } +} |
