game_server_deployments_service.proto 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. // Copyright 2021 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.gaming.v1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/cloud/gaming/v1/game_server_deployments.proto";
  19. import "google/longrunning/operations.proto";
  20. option go_package = "google.golang.org/genproto/googleapis/cloud/gaming/v1;gaming";
  21. option java_multiple_files = true;
  22. option java_package = "com.google.cloud.gaming.v1";
  23. // The game server deployment is used to control the deployment of Agones
  24. // fleets.
  25. service GameServerDeploymentsService {
  26. option (google.api.default_host) = "gameservices.googleapis.com";
  27. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  28. // Lists game server deployments in a given project and location.
  29. rpc ListGameServerDeployments(ListGameServerDeploymentsRequest) returns (ListGameServerDeploymentsResponse) {
  30. option (google.api.http) = {
  31. get: "/v1/{parent=projects/*/locations/*}/gameServerDeployments"
  32. };
  33. option (google.api.method_signature) = "parent";
  34. }
  35. // Gets details of a single game server deployment.
  36. rpc GetGameServerDeployment(GetGameServerDeploymentRequest) returns (GameServerDeployment) {
  37. option (google.api.http) = {
  38. get: "/v1/{name=projects/*/locations/*/gameServerDeployments/*}"
  39. };
  40. option (google.api.method_signature) = "name";
  41. }
  42. // Creates a new game server deployment in a given project and location.
  43. rpc CreateGameServerDeployment(CreateGameServerDeploymentRequest) returns (google.longrunning.Operation) {
  44. option (google.api.http) = {
  45. post: "/v1/{parent=projects/*/locations/*}/gameServerDeployments"
  46. body: "game_server_deployment"
  47. };
  48. option (google.api.method_signature) = "parent,game_server_deployment";
  49. option (google.longrunning.operation_info) = {
  50. response_type: "GameServerDeployment"
  51. metadata_type: "OperationMetadata"
  52. };
  53. }
  54. // Deletes a single game server deployment.
  55. rpc DeleteGameServerDeployment(DeleteGameServerDeploymentRequest) returns (google.longrunning.Operation) {
  56. option (google.api.http) = {
  57. delete: "/v1/{name=projects/*/locations/*/gameServerDeployments/*}"
  58. };
  59. option (google.api.method_signature) = "name";
  60. option (google.longrunning.operation_info) = {
  61. response_type: "google.protobuf.Empty"
  62. metadata_type: "OperationMetadata"
  63. };
  64. }
  65. // Patches a game server deployment.
  66. rpc UpdateGameServerDeployment(UpdateGameServerDeploymentRequest) returns (google.longrunning.Operation) {
  67. option (google.api.http) = {
  68. patch: "/v1/{game_server_deployment.name=projects/*/locations/*/gameServerDeployments/*}"
  69. body: "game_server_deployment"
  70. };
  71. option (google.api.method_signature) = "game_server_deployment,update_mask";
  72. option (google.longrunning.operation_info) = {
  73. response_type: "GameServerDeployment"
  74. metadata_type: "OperationMetadata"
  75. };
  76. }
  77. // Gets details a single game server deployment rollout.
  78. rpc GetGameServerDeploymentRollout(GetGameServerDeploymentRolloutRequest) returns (GameServerDeploymentRollout) {
  79. option (google.api.http) = {
  80. get: "/v1/{name=projects/*/locations/*/gameServerDeployments/*}/rollout"
  81. };
  82. option (google.api.method_signature) = "name";
  83. }
  84. // Patches a single game server deployment rollout.
  85. // The method will not return an error if the update does not affect any
  86. // existing realms. For example - if the default_game_server_config is changed
  87. // but all existing realms use the override, that is valid. Similarly, if a
  88. // non existing realm is explicitly called out in game_server_config_overrides
  89. // field, that will also not result in an error.
  90. rpc UpdateGameServerDeploymentRollout(UpdateGameServerDeploymentRolloutRequest) returns (google.longrunning.Operation) {
  91. option (google.api.http) = {
  92. patch: "/v1/{rollout.name=projects/*/locations/*/gameServerDeployments/*}/rollout"
  93. body: "rollout"
  94. };
  95. option (google.api.method_signature) = "rollout,update_mask";
  96. option (google.longrunning.operation_info) = {
  97. response_type: "GameServerDeployment"
  98. metadata_type: "OperationMetadata"
  99. };
  100. }
  101. // Previews the game server deployment rollout. This API does not mutate the
  102. // rollout resource.
  103. rpc PreviewGameServerDeploymentRollout(PreviewGameServerDeploymentRolloutRequest) returns (PreviewGameServerDeploymentRolloutResponse) {
  104. option (google.api.http) = {
  105. patch: "/v1/{rollout.name=projects/*/locations/*/gameServerDeployments/*}/rollout:preview"
  106. body: "rollout"
  107. };
  108. }
  109. // Retrieves information about the current state of the game server
  110. // deployment. Gathers all the Agones fleets and Agones autoscalers,
  111. // including fleets running an older version of the game server deployment.
  112. rpc FetchDeploymentState(FetchDeploymentStateRequest) returns (FetchDeploymentStateResponse) {
  113. option (google.api.http) = {
  114. post: "/v1/{name=projects/*/locations/*/gameServerDeployments/*}:fetchDeploymentState"
  115. body: "*"
  116. };
  117. }
  118. }