google-api-client 0.41.1 → 0.41.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/bin/generate-api +1 -3
  4. data/generated/google/apis/androiddeviceprovisioning_v1.rb +1 -1
  5. data/generated/google/apis/androiddeviceprovisioning_v1/classes.rb +32 -26
  6. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  7. data/generated/google/apis/androidpublisher_v3/classes.rb +78 -0
  8. data/generated/google/apis/androidpublisher_v3/representations.rb +44 -0
  9. data/generated/google/apis/androidpublisher_v3/service.rb +149 -1
  10. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  11. data/generated/google/apis/bigquery_v2.rb +1 -1
  12. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  13. data/generated/google/apis/bigtableadmin_v2/classes.rb +6 -6
  14. data/generated/google/apis/billingbudgets_v1beta1.rb +1 -1
  15. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +3 -3
  16. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  17. data/generated/google/apis/cloudbuild_v1/classes.rb +271 -11
  18. data/generated/google/apis/cloudbuild_v1/representations.rb +130 -4
  19. data/generated/google/apis/cloudbuild_v1/service.rb +0 -94
  20. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  21. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +284 -24
  22. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +135 -9
  23. data/generated/google/apis/cloudbuild_v1alpha1/service.rb +0 -47
  24. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  25. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +284 -24
  26. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +135 -9
  27. data/generated/google/apis/cloudbuild_v1alpha2/service.rb +0 -47
  28. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  29. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +7 -1
  30. data/generated/google/apis/cloudidentity_v1beta1/representations.rb +1 -0
  31. data/generated/google/apis/compute_alpha.rb +1 -1
  32. data/generated/google/apis/compute_alpha/classes.rb +54 -30
  33. data/generated/google/apis/compute_alpha/representations.rb +3 -0
  34. data/generated/google/apis/compute_alpha/service.rb +23 -29
  35. data/generated/google/apis/compute_beta.rb +1 -1
  36. data/generated/google/apis/compute_beta/classes.rb +55 -29
  37. data/generated/google/apis/compute_beta/representations.rb +2 -0
  38. data/generated/google/apis/compute_beta/service.rb +75 -29
  39. data/generated/google/apis/compute_v1.rb +1 -1
  40. data/generated/google/apis/compute_v1/classes.rb +84 -29
  41. data/generated/google/apis/compute_v1/representations.rb +17 -0
  42. data/generated/google/apis/compute_v1/service.rb +21 -29
  43. data/generated/google/apis/container_v1.rb +1 -1
  44. data/generated/google/apis/container_v1/classes.rb +94 -2
  45. data/generated/google/apis/container_v1/representations.rb +35 -0
  46. data/generated/google/apis/container_v1beta1.rb +1 -1
  47. data/generated/google/apis/container_v1beta1/classes.rb +121 -17
  48. data/generated/google/apis/container_v1beta1/representations.rb +37 -0
  49. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  50. data/generated/google/apis/dataflow_v1b3/classes.rb +19 -0
  51. data/generated/google/apis/dataflow_v1b3/representations.rb +3 -0
  52. data/generated/google/apis/dataproc_v1.rb +1 -1
  53. data/generated/google/apis/dataproc_v1/classes.rb +6 -5
  54. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  55. data/generated/google/apis/dataproc_v1beta2/classes.rb +35 -5
  56. data/generated/google/apis/dataproc_v1beta2/representations.rb +4 -0
  57. data/generated/google/apis/dialogflow_v2.rb +1 -1
  58. data/generated/google/apis/dialogflow_v2/classes.rb +74 -8
  59. data/generated/google/apis/dialogflow_v2/representations.rb +16 -0
  60. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  61. data/generated/google/apis/dialogflow_v2beta1/classes.rb +74 -8
  62. data/generated/google/apis/dialogflow_v2beta1/representations.rb +16 -0
  63. data/generated/google/apis/dialogflow_v2beta1/service.rb +42 -42
  64. data/generated/google/apis/displayvideo_v1.rb +1 -1
  65. data/generated/google/apis/displayvideo_v1/classes.rb +3 -6
  66. data/generated/google/apis/displayvideo_v1/service.rb +0 -4
  67. data/generated/google/apis/dns_v1beta2.rb +4 -4
  68. data/generated/google/apis/dns_v1beta2/classes.rb +325 -171
  69. data/generated/google/apis/dns_v1beta2/service.rb +247 -180
  70. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  71. data/generated/google/apis/drive_v2.rb +1 -1
  72. data/generated/google/apis/drive_v2/classes.rb +9 -0
  73. data/generated/google/apis/drive_v2/representations.rb +1 -0
  74. data/generated/google/apis/drive_v3.rb +1 -1
  75. data/generated/google/apis/drive_v3/classes.rb +9 -0
  76. data/generated/google/apis/drive_v3/representations.rb +1 -0
  77. data/generated/google/apis/games_v1.rb +1 -1
  78. data/generated/google/apis/gameservices_v1.rb +34 -0
  79. data/generated/google/apis/gameservices_v1/classes.rb +2354 -0
  80. data/generated/google/apis/gameservices_v1/representations.rb +971 -0
  81. data/generated/google/apis/gameservices_v1/service.rb +1472 -0
  82. data/generated/google/apis/gmailpostmastertools_v1beta1.rb +33 -0
  83. data/generated/google/apis/gmailpostmastertools_v1beta1/classes.rb +306 -0
  84. data/generated/google/apis/gmailpostmastertools_v1beta1/representations.rb +141 -0
  85. data/generated/google/apis/gmailpostmastertools_v1beta1/service.rb +236 -0
  86. data/generated/google/apis/managedidentities_v1.rb +1 -1
  87. data/generated/google/apis/managedidentities_v1/classes.rb +54 -10
  88. data/generated/google/apis/managedidentities_v1/representations.rb +15 -0
  89. data/generated/google/apis/managedidentities_v1/service.rb +3 -0
  90. data/generated/google/apis/managedidentities_v1alpha1.rb +1 -1
  91. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +54 -10
  92. data/generated/google/apis/managedidentities_v1alpha1/representations.rb +15 -0
  93. data/generated/google/apis/managedidentities_v1alpha1/service.rb +3 -0
  94. data/generated/google/apis/managedidentities_v1beta1.rb +1 -1
  95. data/generated/google/apis/managedidentities_v1beta1/classes.rb +54 -10
  96. data/generated/google/apis/managedidentities_v1beta1/representations.rb +15 -0
  97. data/generated/google/apis/managedidentities_v1beta1/service.rb +3 -0
  98. data/generated/google/apis/ml_v1.rb +1 -1
  99. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  100. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +73 -0
  101. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +32 -0
  102. data/generated/google/apis/prod_tt_sasportal_v1alpha1/service.rb +477 -0
  103. data/generated/google/apis/run_v1.rb +1 -1
  104. data/generated/google/apis/run_v1/classes.rb +1 -6
  105. data/generated/google/apis/run_v1/service.rb +1 -1
  106. data/generated/google/apis/run_v1alpha1.rb +1 -1
  107. data/generated/google/apis/run_v1alpha1/service.rb +1 -1
  108. data/generated/google/apis/run_v1beta1.rb +1 -1
  109. data/generated/google/apis/run_v1beta1/service.rb +1 -1
  110. data/generated/google/apis/sasportal_v1alpha1.rb +1 -1
  111. data/generated/google/apis/sasportal_v1alpha1/classes.rb +73 -0
  112. data/generated/google/apis/sasportal_v1alpha1/representations.rb +32 -0
  113. data/generated/google/apis/sasportal_v1alpha1/service.rb +477 -0
  114. data/generated/google/apis/spanner_v1.rb +1 -1
  115. data/generated/google/apis/spanner_v1/service.rb +5 -0
  116. data/lib/google/apis/version.rb +1 -1
  117. metadata +11 -3
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://developers.google.com/search-ads
27
27
  module DoubleclicksearchV2
28
28
  VERSION = 'V2'
29
- REVISION = '20200616'
29
+ REVISION = '20200623'
30
30
 
31
31
  # View and manage your advertising data in DoubleClick Search
32
32
  AUTH_DOUBLECLICKSEARCH = 'https://www.googleapis.com/auth/doubleclicksearch'
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://developers.google.com/drive/
27
27
  module DriveV2
28
28
  VERSION = 'V2'
29
- REVISION = '20200609'
29
+ REVISION = '20200618'
30
30
 
31
31
  # See, edit, create, and delete all of your Google Drive files
32
32
  AUTH_DRIVE = 'https://www.googleapis.com/auth/drive'
@@ -2218,6 +2218,14 @@ module Google
2218
2218
  attr_accessor :can_add_children
2219
2219
  alias_method :can_add_children?, :can_add_children
2220
2220
 
2221
+ # Whether the current user can add a folder from another drive (different shared
2222
+ # drive or My Drive) to this folder. This is false when the item is not a folder.
2223
+ # Only populated for items in shared drives.
2224
+ # Corresponds to the JSON property `canAddFolderFromAnotherDrive`
2225
+ # @return [Boolean]
2226
+ attr_accessor :can_add_folder_from_another_drive
2227
+ alias_method :can_add_folder_from_another_drive?, :can_add_folder_from_another_drive
2228
+
2221
2229
  # Whether the current user can add a parent for the item without removing an
2222
2230
  # existing parent in the same request. Not populated for shared drive files.
2223
2231
  # Corresponds to the JSON property `canAddMyDriveParent`
@@ -2434,6 +2442,7 @@ module Google
2434
2442
  # Update properties of this object
2435
2443
  def update!(**args)
2436
2444
  @can_add_children = args[:can_add_children] if args.key?(:can_add_children)
2445
+ @can_add_folder_from_another_drive = args[:can_add_folder_from_another_drive] if args.key?(:can_add_folder_from_another_drive)
2437
2446
  @can_add_my_drive_parent = args[:can_add_my_drive_parent] if args.key?(:can_add_my_drive_parent)
2438
2447
  @can_change_copy_requires_writer_permission = args[:can_change_copy_requires_writer_permission] if args.key?(:can_change_copy_requires_writer_permission)
2439
2448
  @can_change_restricted_download = args[:can_change_restricted_download] if args.key?(:can_change_restricted_download)
@@ -868,6 +868,7 @@ module Google
868
868
  # @private
869
869
  class Representation < Google::Apis::Core::JsonRepresentation
870
870
  property :can_add_children, as: 'canAddChildren'
871
+ property :can_add_folder_from_another_drive, as: 'canAddFolderFromAnotherDrive'
871
872
  property :can_add_my_drive_parent, as: 'canAddMyDriveParent'
872
873
  property :can_change_copy_requires_writer_permission, as: 'canChangeCopyRequiresWriterPermission'
873
874
  property :can_change_restricted_download, as: 'canChangeRestrictedDownload'
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://developers.google.com/drive/
27
27
  module DriveV3
28
28
  VERSION = 'V3'
29
- REVISION = '20200609'
29
+ REVISION = '20200618'
30
30
 
31
31
  # See, edit, create, and delete all of your Google Drive files
32
32
  AUTH_DRIVE = 'https://www.googleapis.com/auth/drive'
@@ -1375,6 +1375,14 @@ module Google
1375
1375
  attr_accessor :can_add_children
1376
1376
  alias_method :can_add_children?, :can_add_children
1377
1377
 
1378
+ # Whether the current user can add a folder from another drive (different shared
1379
+ # drive or My Drive) to this folder. This is false when the item is not a folder.
1380
+ # Only populated for items in shared drives.
1381
+ # Corresponds to the JSON property `canAddFolderFromAnotherDrive`
1382
+ # @return [Boolean]
1383
+ attr_accessor :can_add_folder_from_another_drive
1384
+ alias_method :can_add_folder_from_another_drive?, :can_add_folder_from_another_drive
1385
+
1378
1386
  # Whether the current user can add a parent for the item without removing an
1379
1387
  # existing parent in the same request. Not populated for shared drive files.
1380
1388
  # Corresponds to the JSON property `canAddMyDriveParent`
@@ -1591,6 +1599,7 @@ module Google
1591
1599
  # Update properties of this object
1592
1600
  def update!(**args)
1593
1601
  @can_add_children = args[:can_add_children] if args.key?(:can_add_children)
1602
+ @can_add_folder_from_another_drive = args[:can_add_folder_from_another_drive] if args.key?(:can_add_folder_from_another_drive)
1594
1603
  @can_add_my_drive_parent = args[:can_add_my_drive_parent] if args.key?(:can_add_my_drive_parent)
1595
1604
  @can_change_copy_requires_writer_permission = args[:can_change_copy_requires_writer_permission] if args.key?(:can_change_copy_requires_writer_permission)
1596
1605
  @can_change_viewers_can_copy_content = args[:can_change_viewers_can_copy_content] if args.key?(:can_change_viewers_can_copy_content)
@@ -566,6 +566,7 @@ module Google
566
566
  # @private
567
567
  class Representation < Google::Apis::Core::JsonRepresentation
568
568
  property :can_add_children, as: 'canAddChildren'
569
+ property :can_add_folder_from_another_drive, as: 'canAddFolderFromAnotherDrive'
569
570
  property :can_add_my_drive_parent, as: 'canAddMyDriveParent'
570
571
  property :can_change_copy_requires_writer_permission, as: 'canChangeCopyRequiresWriterPermission'
571
572
  property :can_change_viewers_can_copy_content, as: 'canChangeViewersCanCopyContent'
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/games/services/
26
26
  module GamesV1
27
27
  VERSION = 'V1'
28
- REVISION = '20200528'
28
+ REVISION = '20200625'
29
29
 
30
30
  # View and manage its own configuration data in your Google Drive
31
31
  AUTH_DRIVE_APPDATA = 'https://www.googleapis.com/auth/drive.appdata'
@@ -0,0 +1,34 @@
1
+ # Copyright 2015 Google Inc.
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
+
15
+ require 'google/apis/gameservices_v1/service.rb'
16
+ require 'google/apis/gameservices_v1/classes.rb'
17
+ require 'google/apis/gameservices_v1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Game Services API
22
+ #
23
+ # Deploy and manage infrastructure for global multiplayer gaming experiences.
24
+ #
25
+ # @see https://cloud.google.com/solutions/gaming/
26
+ module GameservicesV1
27
+ VERSION = 'V1'
28
+ REVISION = '20200630'
29
+
30
+ # View and manage your data across Google Cloud Platform services
31
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,2354 @@
1
+ # Copyright 2015 Google Inc.
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
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module GameservicesV1
24
+
25
+ # Specifies the audit configuration for a service.
26
+ # The configuration determines which permission types are logged, and what
27
+ # identities, if any, are exempted from logging.
28
+ # An AuditConfig must have one or more AuditLogConfigs.
29
+ # If there are AuditConfigs for both `allServices` and a specific service,
30
+ # the union of the two AuditConfigs is used for that service: the log_types
31
+ # specified in each AuditConfig are enabled, and the exempted_members in each
32
+ # AuditLogConfig are exempted.
33
+ # Example Policy with multiple AuditConfigs:
34
+ # `
35
+ # "audit_configs": [
36
+ # `
37
+ # "service": "allServices",
38
+ # "audit_log_configs": [
39
+ # `
40
+ # "log_type": "DATA_READ",
41
+ # "exempted_members": [
42
+ # "user:jose@example.com"
43
+ # ]
44
+ # `,
45
+ # `
46
+ # "log_type": "DATA_WRITE"
47
+ # `,
48
+ # `
49
+ # "log_type": "ADMIN_READ"
50
+ # `
51
+ # ]
52
+ # `,
53
+ # `
54
+ # "service": "sampleservice.googleapis.com",
55
+ # "audit_log_configs": [
56
+ # `
57
+ # "log_type": "DATA_READ"
58
+ # `,
59
+ # `
60
+ # "log_type": "DATA_WRITE",
61
+ # "exempted_members": [
62
+ # "user:aliya@example.com"
63
+ # ]
64
+ # `
65
+ # ]
66
+ # `
67
+ # ]
68
+ # `
69
+ # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
70
+ # logging. It also exempts jose@example.com from DATA_READ logging, and
71
+ # aliya@example.com from DATA_WRITE logging.
72
+ class AuditConfig
73
+ include Google::Apis::Core::Hashable
74
+
75
+ # The configuration for logging of each type of permission.
76
+ # Corresponds to the JSON property `auditLogConfigs`
77
+ # @return [Array<Google::Apis::GameservicesV1::AuditLogConfig>]
78
+ attr_accessor :audit_log_configs
79
+
80
+ #
81
+ # Corresponds to the JSON property `exemptedMembers`
82
+ # @return [Array<String>]
83
+ attr_accessor :exempted_members
84
+
85
+ # Specifies a service that will be enabled for audit logging.
86
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
87
+ # `allServices` is a special value that covers all services.
88
+ # Corresponds to the JSON property `service`
89
+ # @return [String]
90
+ attr_accessor :service
91
+
92
+ def initialize(**args)
93
+ update!(**args)
94
+ end
95
+
96
+ # Update properties of this object
97
+ def update!(**args)
98
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
99
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
100
+ @service = args[:service] if args.key?(:service)
101
+ end
102
+ end
103
+
104
+ # Provides the configuration for logging a type of permissions.
105
+ # Example:
106
+ # `
107
+ # "audit_log_configs": [
108
+ # `
109
+ # "log_type": "DATA_READ",
110
+ # "exempted_members": [
111
+ # "user:jose@example.com"
112
+ # ]
113
+ # `,
114
+ # `
115
+ # "log_type": "DATA_WRITE"
116
+ # `
117
+ # ]
118
+ # `
119
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
120
+ # jose@example.com from DATA_READ logging.
121
+ class AuditLogConfig
122
+ include Google::Apis::Core::Hashable
123
+
124
+ # Specifies the identities that do not cause logging for this type of
125
+ # permission.
126
+ # Follows the same format of Binding.members.
127
+ # Corresponds to the JSON property `exemptedMembers`
128
+ # @return [Array<String>]
129
+ attr_accessor :exempted_members
130
+
131
+ #
132
+ # Corresponds to the JSON property `ignoreChildExemptions`
133
+ # @return [Boolean]
134
+ attr_accessor :ignore_child_exemptions
135
+ alias_method :ignore_child_exemptions?, :ignore_child_exemptions
136
+
137
+ # The log type that this config enables.
138
+ # Corresponds to the JSON property `logType`
139
+ # @return [String]
140
+ attr_accessor :log_type
141
+
142
+ def initialize(**args)
143
+ update!(**args)
144
+ end
145
+
146
+ # Update properties of this object
147
+ def update!(**args)
148
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
149
+ @ignore_child_exemptions = args[:ignore_child_exemptions] if args.key?(:ignore_child_exemptions)
150
+ @log_type = args[:log_type] if args.key?(:log_type)
151
+ end
152
+ end
153
+
154
+ # Authorization-related information used by Cloud Audit Logging.
155
+ class AuthorizationLoggingOptions
156
+ include Google::Apis::Core::Hashable
157
+
158
+ # The type of the permission that was checked.
159
+ # Corresponds to the JSON property `permissionType`
160
+ # @return [String]
161
+ attr_accessor :permission_type
162
+
163
+ def initialize(**args)
164
+ update!(**args)
165
+ end
166
+
167
+ # Update properties of this object
168
+ def update!(**args)
169
+ @permission_type = args[:permission_type] if args.key?(:permission_type)
170
+ end
171
+ end
172
+
173
+ # Associates `members` with a `role`.
174
+ class Binding
175
+ include Google::Apis::Core::Hashable
176
+
177
+ # Represents a textual expression in the Common Expression Language (CEL)
178
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
179
+ # are documented at https://github.com/google/cel-spec.
180
+ # Example (Comparison):
181
+ # title: "Summary size limit"
182
+ # description: "Determines if a summary is less than 100 chars"
183
+ # expression: "document.summary.size() < 100"
184
+ # Example (Equality):
185
+ # title: "Requestor is owner"
186
+ # description: "Determines if requestor is the document owner"
187
+ # expression: "document.owner == request.auth.claims.email"
188
+ # Example (Logic):
189
+ # title: "Public documents"
190
+ # description: "Determine whether the document should be publicly visible"
191
+ # expression: "document.type != 'private' && document.type != 'internal'"
192
+ # Example (Data Manipulation):
193
+ # title: "Notification string"
194
+ # description: "Create a notification string with a timestamp."
195
+ # expression: "'New message received at ' + string(document.create_time)"
196
+ # The exact variables and functions that may be referenced within an expression
197
+ # are determined by the service that evaluates it. See the service
198
+ # documentation for additional information.
199
+ # Corresponds to the JSON property `condition`
200
+ # @return [Google::Apis::GameservicesV1::Expr]
201
+ attr_accessor :condition
202
+
203
+ # Specifies the identities requesting access for a Cloud Platform resource.
204
+ # `members` can have the following values:
205
+ # * `allUsers`: A special identifier that represents anyone who is
206
+ # on the internet; with or without a Google account.
207
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
208
+ # who is authenticated with a Google account or a service account.
209
+ # * `user:`emailid``: An email address that represents a specific Google
210
+ # account. For example, `alice@example.com` .
211
+ # * `serviceAccount:`emailid``: An email address that represents a service
212
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
213
+ # * `group:`emailid``: An email address that represents a Google group.
214
+ # For example, `admins@example.com`.
215
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
216
+ # identifier) representing a user that has been recently deleted. For
217
+ # example, `alice@example.com?uid=123456789012345678901`. If the user is
218
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
219
+ # retains the role in the binding.
220
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
221
+ # unique identifier) representing a service account that has been recently
222
+ # deleted. For example,
223
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
224
+ # If the service account is undeleted, this value reverts to
225
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
226
+ # role in the binding.
227
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
228
+ # identifier) representing a Google group that has been recently
229
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
230
+ # the group is recovered, this value reverts to `group:`emailid`` and the
231
+ # recovered group retains the role in the binding.
232
+ # * `domain:`domain``: The G Suite domain (primary) that represents all the
233
+ # users of that domain. For example, `google.com` or `example.com`.
234
+ # Corresponds to the JSON property `members`
235
+ # @return [Array<String>]
236
+ attr_accessor :members
237
+
238
+ # Role that is assigned to `members`.
239
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
240
+ # Corresponds to the JSON property `role`
241
+ # @return [String]
242
+ attr_accessor :role
243
+
244
+ def initialize(**args)
245
+ update!(**args)
246
+ end
247
+
248
+ # Update properties of this object
249
+ def update!(**args)
250
+ @condition = args[:condition] if args.key?(:condition)
251
+ @members = args[:members] if args.key?(:members)
252
+ @role = args[:role] if args.key?(:role)
253
+ end
254
+ end
255
+
256
+ # The request message for Operations.CancelOperation.
257
+ class CancelOperationRequest
258
+ include Google::Apis::Core::Hashable
259
+
260
+ def initialize(**args)
261
+ update!(**args)
262
+ end
263
+
264
+ # Update properties of this object
265
+ def update!(**args)
266
+ end
267
+ end
268
+
269
+ # Write a Cloud Audit log
270
+ class CloudAuditOptions
271
+ include Google::Apis::Core::Hashable
272
+
273
+ # Authorization-related information used by Cloud Audit Logging.
274
+ # Corresponds to the JSON property `authorizationLoggingOptions`
275
+ # @return [Google::Apis::GameservicesV1::AuthorizationLoggingOptions]
276
+ attr_accessor :authorization_logging_options
277
+
278
+ # The log_name to populate in the Cloud Audit Record.
279
+ # Corresponds to the JSON property `logName`
280
+ # @return [String]
281
+ attr_accessor :log_name
282
+
283
+ def initialize(**args)
284
+ update!(**args)
285
+ end
286
+
287
+ # Update properties of this object
288
+ def update!(**args)
289
+ @authorization_logging_options = args[:authorization_logging_options] if args.key?(:authorization_logging_options)
290
+ @log_name = args[:log_name] if args.key?(:log_name)
291
+ end
292
+ end
293
+
294
+ # A condition to be met.
295
+ class Condition
296
+ include Google::Apis::Core::Hashable
297
+
298
+ # Trusted attributes supplied by the IAM system.
299
+ # Corresponds to the JSON property `iam`
300
+ # @return [String]
301
+ attr_accessor :iam
302
+
303
+ # An operator to apply the subject with.
304
+ # Corresponds to the JSON property `op`
305
+ # @return [String]
306
+ attr_accessor :op
307
+
308
+ # Trusted attributes discharged by the service.
309
+ # Corresponds to the JSON property `svc`
310
+ # @return [String]
311
+ attr_accessor :svc
312
+
313
+ # Trusted attributes supplied by any service that owns resources and uses
314
+ # the IAM system for access control.
315
+ # Corresponds to the JSON property `sys`
316
+ # @return [String]
317
+ attr_accessor :sys
318
+
319
+ # The objects of the condition.
320
+ # Corresponds to the JSON property `values`
321
+ # @return [Array<String>]
322
+ attr_accessor :values
323
+
324
+ def initialize(**args)
325
+ update!(**args)
326
+ end
327
+
328
+ # Update properties of this object
329
+ def update!(**args)
330
+ @iam = args[:iam] if args.key?(:iam)
331
+ @op = args[:op] if args.key?(:op)
332
+ @svc = args[:svc] if args.key?(:svc)
333
+ @sys = args[:sys] if args.key?(:sys)
334
+ @values = args[:values] if args.key?(:values)
335
+ end
336
+ end
337
+
338
+ # Increment a streamz counter with the specified metric and field names.
339
+ # Metric names should start with a '/', generally be lowercase-only,
340
+ # and end in "_count". Field names should not contain an initial slash.
341
+ # The actual exported metric names will have "/iam/policy" prepended.
342
+ # Field names correspond to IAM request parameters and field values are
343
+ # their respective values.
344
+ # Supported field names:
345
+ # - "authority", which is "[token]" if IAMContext.token is present,
346
+ # otherwise the value of IAMContext.authority_selector if present, and
347
+ # otherwise a representation of IAMContext.principal; or
348
+ # - "iam_principal", a representation of IAMContext.principal even if a
349
+ # token or authority selector is present; or
350
+ # - "" (empty string), resulting in a counter with no fields.
351
+ # Examples:
352
+ # counter ` metric: "/debug_access_count" field: "iam_principal" `
353
+ # ==> increment counter /iam/policy/debug_access_count
354
+ # `iam_principal=[value of IAMContext.principal]`
355
+ class CounterOptions
356
+ include Google::Apis::Core::Hashable
357
+
358
+ # Custom fields.
359
+ # Corresponds to the JSON property `customFields`
360
+ # @return [Array<Google::Apis::GameservicesV1::CustomField>]
361
+ attr_accessor :custom_fields
362
+
363
+ # The field value to attribute.
364
+ # Corresponds to the JSON property `field`
365
+ # @return [String]
366
+ attr_accessor :field
367
+
368
+ # The metric to update.
369
+ # Corresponds to the JSON property `metric`
370
+ # @return [String]
371
+ attr_accessor :metric
372
+
373
+ def initialize(**args)
374
+ update!(**args)
375
+ end
376
+
377
+ # Update properties of this object
378
+ def update!(**args)
379
+ @custom_fields = args[:custom_fields] if args.key?(:custom_fields)
380
+ @field = args[:field] if args.key?(:field)
381
+ @metric = args[:metric] if args.key?(:metric)
382
+ end
383
+ end
384
+
385
+ # Custom fields.
386
+ # These can be used to create a counter with arbitrary field/value
387
+ # pairs.
388
+ # See: go/rpcsp-custom-fields.
389
+ class CustomField
390
+ include Google::Apis::Core::Hashable
391
+
392
+ # Name is the field name.
393
+ # Corresponds to the JSON property `name`
394
+ # @return [String]
395
+ attr_accessor :name
396
+
397
+ # Value is the field value. It is important that in contrast to the
398
+ # CounterOptions.field, the value here is a constant that is not
399
+ # derived from the IAMContext.
400
+ # Corresponds to the JSON property `value`
401
+ # @return [String]
402
+ attr_accessor :value
403
+
404
+ def initialize(**args)
405
+ update!(**args)
406
+ end
407
+
408
+ # Update properties of this object
409
+ def update!(**args)
410
+ @name = args[:name] if args.key?(:name)
411
+ @value = args[:value] if args.key?(:value)
412
+ end
413
+ end
414
+
415
+ # Write a Data Access (Gin) log
416
+ class DataAccessOptions
417
+ include Google::Apis::Core::Hashable
418
+
419
+ #
420
+ # Corresponds to the JSON property `logMode`
421
+ # @return [String]
422
+ attr_accessor :log_mode
423
+
424
+ def initialize(**args)
425
+ update!(**args)
426
+ end
427
+
428
+ # Update properties of this object
429
+ def update!(**args)
430
+ @log_mode = args[:log_mode] if args.key?(:log_mode)
431
+ end
432
+ end
433
+
434
+ # The game server cluster changes made by the game server deployment.
435
+ class DeployedClusterState
436
+ include Google::Apis::Core::Hashable
437
+
438
+ # The name of the cluster.
439
+ # Corresponds to the JSON property `cluster`
440
+ # @return [String]
441
+ attr_accessor :cluster
442
+
443
+ # The details about the Agones fleets and autoscalers created in the
444
+ # game server cluster.
445
+ # Corresponds to the JSON property `fleetDetails`
446
+ # @return [Array<Google::Apis::GameservicesV1::DeployedFleetDetails>]
447
+ attr_accessor :fleet_details
448
+
449
+ def initialize(**args)
450
+ update!(**args)
451
+ end
452
+
453
+ # Update properties of this object
454
+ def update!(**args)
455
+ @cluster = args[:cluster] if args.key?(:cluster)
456
+ @fleet_details = args[:fleet_details] if args.key?(:fleet_details)
457
+ end
458
+ end
459
+
460
+ # Agones fleet specification and details.
461
+ class DeployedFleet
462
+ include Google::Apis::Core::Hashable
463
+
464
+ # The name of the Agones fleet.
465
+ # Corresponds to the JSON property `fleet`
466
+ # @return [String]
467
+ attr_accessor :fleet
468
+
469
+ # The fleet spec retrieved from the Agones fleet.
470
+ # Corresponds to the JSON property `fleetSpec`
471
+ # @return [String]
472
+ attr_accessor :fleet_spec
473
+
474
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
475
+ # Corresponds to the JSON property `specSource`
476
+ # @return [Google::Apis::GameservicesV1::SpecSource]
477
+ attr_accessor :spec_source
478
+
479
+ # DeployedFleetStatus has details about the Agones fleets such as how many
480
+ # are running, how many allocated, and so on.
481
+ # Corresponds to the JSON property `status`
482
+ # @return [Google::Apis::GameservicesV1::DeployedFleetStatus]
483
+ attr_accessor :status
484
+
485
+ def initialize(**args)
486
+ update!(**args)
487
+ end
488
+
489
+ # Update properties of this object
490
+ def update!(**args)
491
+ @fleet = args[:fleet] if args.key?(:fleet)
492
+ @fleet_spec = args[:fleet_spec] if args.key?(:fleet_spec)
493
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
494
+ @status = args[:status] if args.key?(:status)
495
+ end
496
+ end
497
+
498
+ # Details about the Agones autoscaler.
499
+ class DeployedFleetAutoscaler
500
+ include Google::Apis::Core::Hashable
501
+
502
+ # The name of the Agones autoscaler.
503
+ # Corresponds to the JSON property `autoscaler`
504
+ # @return [String]
505
+ attr_accessor :autoscaler
506
+
507
+ # The autoscaler spec retrieved from Agones.
508
+ # Corresponds to the JSON property `fleetAutoscalerSpec`
509
+ # @return [String]
510
+ attr_accessor :fleet_autoscaler_spec
511
+
512
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
513
+ # Corresponds to the JSON property `specSource`
514
+ # @return [Google::Apis::GameservicesV1::SpecSource]
515
+ attr_accessor :spec_source
516
+
517
+ def initialize(**args)
518
+ update!(**args)
519
+ end
520
+
521
+ # Update properties of this object
522
+ def update!(**args)
523
+ @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
524
+ @fleet_autoscaler_spec = args[:fleet_autoscaler_spec] if args.key?(:fleet_autoscaler_spec)
525
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
526
+ end
527
+ end
528
+
529
+ # Details of the deployed Agones fleet.
530
+ class DeployedFleetDetails
531
+ include Google::Apis::Core::Hashable
532
+
533
+ # Details about the Agones autoscaler.
534
+ # Corresponds to the JSON property `deployedAutoscaler`
535
+ # @return [Google::Apis::GameservicesV1::DeployedFleetAutoscaler]
536
+ attr_accessor :deployed_autoscaler
537
+
538
+ # Agones fleet specification and details.
539
+ # Corresponds to the JSON property `deployedFleet`
540
+ # @return [Google::Apis::GameservicesV1::DeployedFleet]
541
+ attr_accessor :deployed_fleet
542
+
543
+ def initialize(**args)
544
+ update!(**args)
545
+ end
546
+
547
+ # Update properties of this object
548
+ def update!(**args)
549
+ @deployed_autoscaler = args[:deployed_autoscaler] if args.key?(:deployed_autoscaler)
550
+ @deployed_fleet = args[:deployed_fleet] if args.key?(:deployed_fleet)
551
+ end
552
+ end
553
+
554
+ # DeployedFleetStatus has details about the Agones fleets such as how many
555
+ # are running, how many allocated, and so on.
556
+ class DeployedFleetStatus
557
+ include Google::Apis::Core::Hashable
558
+
559
+ # The number of GameServer replicas in the ALLOCATED state in this fleet.
560
+ # Corresponds to the JSON property `allocatedReplicas`
561
+ # @return [Fixnum]
562
+ attr_accessor :allocated_replicas
563
+
564
+ # The number of GameServer replicas in the READY state in this fleet.
565
+ # Corresponds to the JSON property `readyReplicas`
566
+ # @return [Fixnum]
567
+ attr_accessor :ready_replicas
568
+
569
+ # The total number of current GameServer replicas in this fleet.
570
+ # Corresponds to the JSON property `replicas`
571
+ # @return [Fixnum]
572
+ attr_accessor :replicas
573
+
574
+ # The number of GameServer replicas in the RESERVED state in this fleet.
575
+ # Reserved instances won't be deleted on scale down, but won't cause
576
+ # an autoscaler to scale up.
577
+ # Corresponds to the JSON property `reservedReplicas`
578
+ # @return [Fixnum]
579
+ attr_accessor :reserved_replicas
580
+
581
+ def initialize(**args)
582
+ update!(**args)
583
+ end
584
+
585
+ # Update properties of this object
586
+ def update!(**args)
587
+ @allocated_replicas = args[:allocated_replicas] if args.key?(:allocated_replicas)
588
+ @ready_replicas = args[:ready_replicas] if args.key?(:ready_replicas)
589
+ @replicas = args[:replicas] if args.key?(:replicas)
590
+ @reserved_replicas = args[:reserved_replicas] if args.key?(:reserved_replicas)
591
+ end
592
+ end
593
+
594
+ # A generic empty message that you can re-use to avoid defining duplicated
595
+ # empty messages in your APIs. A typical example is to use it as the request
596
+ # or the response type of an API method. For instance:
597
+ # service Foo `
598
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
599
+ # `
600
+ # The JSON representation for `Empty` is empty JSON object ````.
601
+ class Empty
602
+ include Google::Apis::Core::Hashable
603
+
604
+ def initialize(**args)
605
+ update!(**args)
606
+ end
607
+
608
+ # Update properties of this object
609
+ def update!(**args)
610
+ end
611
+ end
612
+
613
+ # Represents a textual expression in the Common Expression Language (CEL)
614
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
615
+ # are documented at https://github.com/google/cel-spec.
616
+ # Example (Comparison):
617
+ # title: "Summary size limit"
618
+ # description: "Determines if a summary is less than 100 chars"
619
+ # expression: "document.summary.size() < 100"
620
+ # Example (Equality):
621
+ # title: "Requestor is owner"
622
+ # description: "Determines if requestor is the document owner"
623
+ # expression: "document.owner == request.auth.claims.email"
624
+ # Example (Logic):
625
+ # title: "Public documents"
626
+ # description: "Determine whether the document should be publicly visible"
627
+ # expression: "document.type != 'private' && document.type != 'internal'"
628
+ # Example (Data Manipulation):
629
+ # title: "Notification string"
630
+ # description: "Create a notification string with a timestamp."
631
+ # expression: "'New message received at ' + string(document.create_time)"
632
+ # The exact variables and functions that may be referenced within an expression
633
+ # are determined by the service that evaluates it. See the service
634
+ # documentation for additional information.
635
+ class Expr
636
+ include Google::Apis::Core::Hashable
637
+
638
+ # Optional. Description of the expression. This is a longer text which
639
+ # describes the expression, e.g. when hovered over it in a UI.
640
+ # Corresponds to the JSON property `description`
641
+ # @return [String]
642
+ attr_accessor :description
643
+
644
+ # Textual representation of an expression in Common Expression Language
645
+ # syntax.
646
+ # Corresponds to the JSON property `expression`
647
+ # @return [String]
648
+ attr_accessor :expression
649
+
650
+ # Optional. String indicating the location of the expression for error
651
+ # reporting, e.g. a file name and a position in the file.
652
+ # Corresponds to the JSON property `location`
653
+ # @return [String]
654
+ attr_accessor :location
655
+
656
+ # Optional. Title for the expression, i.e. a short string describing
657
+ # its purpose. This can be used e.g. in UIs which allow to enter the
658
+ # expression.
659
+ # Corresponds to the JSON property `title`
660
+ # @return [String]
661
+ attr_accessor :title
662
+
663
+ def initialize(**args)
664
+ update!(**args)
665
+ end
666
+
667
+ # Update properties of this object
668
+ def update!(**args)
669
+ @description = args[:description] if args.key?(:description)
670
+ @expression = args[:expression] if args.key?(:expression)
671
+ @location = args[:location] if args.key?(:location)
672
+ @title = args[:title] if args.key?(:title)
673
+ end
674
+ end
675
+
676
+ # Request message for GameServerDeploymentsService.FetchDeploymentState.
677
+ class FetchDeploymentStateRequest
678
+ include Google::Apis::Core::Hashable
679
+
680
+ def initialize(**args)
681
+ update!(**args)
682
+ end
683
+
684
+ # Update properties of this object
685
+ def update!(**args)
686
+ end
687
+ end
688
+
689
+ # Response message for GameServerDeploymentsService.FetchDeploymentState.
690
+ class FetchDeploymentStateResponse
691
+ include Google::Apis::Core::Hashable
692
+
693
+ # The state of the game server deployment in each game server cluster.
694
+ # Corresponds to the JSON property `clusterState`
695
+ # @return [Array<Google::Apis::GameservicesV1::DeployedClusterState>]
696
+ attr_accessor :cluster_state
697
+
698
+ # List of locations that could not be reached.
699
+ # Corresponds to the JSON property `unavailable`
700
+ # @return [Array<String>]
701
+ attr_accessor :unavailable
702
+
703
+ def initialize(**args)
704
+ update!(**args)
705
+ end
706
+
707
+ # Update properties of this object
708
+ def update!(**args)
709
+ @cluster_state = args[:cluster_state] if args.key?(:cluster_state)
710
+ @unavailable = args[:unavailable] if args.key?(:unavailable)
711
+ end
712
+ end
713
+
714
+ # Fleet configs for Agones.
715
+ class FleetConfig
716
+ include Google::Apis::Core::Hashable
717
+
718
+ # Agones fleet spec. Example spec:
719
+ # `https://agones.dev/site/docs/reference/fleet/`.
720
+ # Corresponds to the JSON property `fleetSpec`
721
+ # @return [String]
722
+ attr_accessor :fleet_spec
723
+
724
+ # The name of the FleetConfig.
725
+ # Corresponds to the JSON property `name`
726
+ # @return [String]
727
+ attr_accessor :name
728
+
729
+ def initialize(**args)
730
+ update!(**args)
731
+ end
732
+
733
+ # Update properties of this object
734
+ def update!(**args)
735
+ @fleet_spec = args[:fleet_spec] if args.key?(:fleet_spec)
736
+ @name = args[:name] if args.key?(:name)
737
+ end
738
+ end
739
+
740
+ # A game server cluster resource.
741
+ class GameServerCluster
742
+ include Google::Apis::Core::Hashable
743
+
744
+ # The game server cluster connection information.
745
+ # Corresponds to the JSON property `connectionInfo`
746
+ # @return [Google::Apis::GameservicesV1::GameServerClusterConnectionInfo]
747
+ attr_accessor :connection_info
748
+
749
+ # Output only. The creation time.
750
+ # Corresponds to the JSON property `createTime`
751
+ # @return [String]
752
+ attr_accessor :create_time
753
+
754
+ # Human readable description of the cluster.
755
+ # Corresponds to the JSON property `description`
756
+ # @return [String]
757
+ attr_accessor :description
758
+
759
+ # ETag of the resource.
760
+ # Corresponds to the JSON property `etag`
761
+ # @return [String]
762
+ attr_accessor :etag
763
+
764
+ # The labels associated with this game server cluster. Each label is a
765
+ # key-value pair.
766
+ # Corresponds to the JSON property `labels`
767
+ # @return [Hash<String,String>]
768
+ attr_accessor :labels
769
+
770
+ # Required. The resource name of the game server cluster. Uses the form:
771
+ # `projects/`project`/locations/`location`/realms/`realm`/gameServerClusters/`
772
+ # cluster``.
773
+ # For example,
774
+ # `projects/my-project/locations/`location`/realms/zanzibar/gameServerClusters/
775
+ # my-onprem-cluster`.
776
+ # Corresponds to the JSON property `name`
777
+ # @return [String]
778
+ attr_accessor :name
779
+
780
+ # Output only. The last-modified time.
781
+ # Corresponds to the JSON property `updateTime`
782
+ # @return [String]
783
+ attr_accessor :update_time
784
+
785
+ def initialize(**args)
786
+ update!(**args)
787
+ end
788
+
789
+ # Update properties of this object
790
+ def update!(**args)
791
+ @connection_info = args[:connection_info] if args.key?(:connection_info)
792
+ @create_time = args[:create_time] if args.key?(:create_time)
793
+ @description = args[:description] if args.key?(:description)
794
+ @etag = args[:etag] if args.key?(:etag)
795
+ @labels = args[:labels] if args.key?(:labels)
796
+ @name = args[:name] if args.key?(:name)
797
+ @update_time = args[:update_time] if args.key?(:update_time)
798
+ end
799
+ end
800
+
801
+ # The game server cluster connection information.
802
+ class GameServerClusterConnectionInfo
803
+ include Google::Apis::Core::Hashable
804
+
805
+ # A reference to a GKE cluster.
806
+ # Corresponds to the JSON property `gkeClusterReference`
807
+ # @return [Google::Apis::GameservicesV1::GkeClusterReference]
808
+ attr_accessor :gke_cluster_reference
809
+
810
+ # Namespace designated on the game server cluster where the Agones game
811
+ # server instances will be created. Existence of the namespace will be
812
+ # validated during creation.
813
+ # Corresponds to the JSON property `namespace`
814
+ # @return [String]
815
+ attr_accessor :namespace
816
+
817
+ def initialize(**args)
818
+ update!(**args)
819
+ end
820
+
821
+ # Update properties of this object
822
+ def update!(**args)
823
+ @gke_cluster_reference = args[:gke_cluster_reference] if args.key?(:gke_cluster_reference)
824
+ @namespace = args[:namespace] if args.key?(:namespace)
825
+ end
826
+ end
827
+
828
+ # A game server config resource.
829
+ class GameServerConfig
830
+ include Google::Apis::Core::Hashable
831
+
832
+ # Output only. The creation time.
833
+ # Corresponds to the JSON property `createTime`
834
+ # @return [String]
835
+ attr_accessor :create_time
836
+
837
+ # The description of the game server config.
838
+ # Corresponds to the JSON property `description`
839
+ # @return [String]
840
+ attr_accessor :description
841
+
842
+ # FleetConfig contains a list of Agones fleet specs. Only one FleetConfig
843
+ # is allowed.
844
+ # Corresponds to the JSON property `fleetConfigs`
845
+ # @return [Array<Google::Apis::GameservicesV1::FleetConfig>]
846
+ attr_accessor :fleet_configs
847
+
848
+ # The labels associated with this game server config. Each label is a
849
+ # key-value pair.
850
+ # Corresponds to the JSON property `labels`
851
+ # @return [Hash<String,String>]
852
+ attr_accessor :labels
853
+
854
+ # The resource name of the game server config. Uses the form:
855
+ # `projects/`project`/locations/`location`/gameServerDeployments/`deployment`/
856
+ # configs/`config``.
857
+ # For example,
858
+ # `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-
859
+ # config`.
860
+ # Corresponds to the JSON property `name`
861
+ # @return [String]
862
+ attr_accessor :name
863
+
864
+ # The autoscaling settings.
865
+ # Corresponds to the JSON property `scalingConfigs`
866
+ # @return [Array<Google::Apis::GameservicesV1::ScalingConfig>]
867
+ attr_accessor :scaling_configs
868
+
869
+ # Output only. The last-modified time.
870
+ # Corresponds to the JSON property `updateTime`
871
+ # @return [String]
872
+ attr_accessor :update_time
873
+
874
+ def initialize(**args)
875
+ update!(**args)
876
+ end
877
+
878
+ # Update properties of this object
879
+ def update!(**args)
880
+ @create_time = args[:create_time] if args.key?(:create_time)
881
+ @description = args[:description] if args.key?(:description)
882
+ @fleet_configs = args[:fleet_configs] if args.key?(:fleet_configs)
883
+ @labels = args[:labels] if args.key?(:labels)
884
+ @name = args[:name] if args.key?(:name)
885
+ @scaling_configs = args[:scaling_configs] if args.key?(:scaling_configs)
886
+ @update_time = args[:update_time] if args.key?(:update_time)
887
+ end
888
+ end
889
+
890
+ # A game server config override.
891
+ class GameServerConfigOverride
892
+ include Google::Apis::Core::Hashable
893
+
894
+ # The game server config for this override.
895
+ # Corresponds to the JSON property `configVersion`
896
+ # @return [String]
897
+ attr_accessor :config_version
898
+
899
+ # The realm selector, used to match realm resources.
900
+ # Corresponds to the JSON property `realmsSelector`
901
+ # @return [Google::Apis::GameservicesV1::RealmSelector]
902
+ attr_accessor :realms_selector
903
+
904
+ def initialize(**args)
905
+ update!(**args)
906
+ end
907
+
908
+ # Update properties of this object
909
+ def update!(**args)
910
+ @config_version = args[:config_version] if args.key?(:config_version)
911
+ @realms_selector = args[:realms_selector] if args.key?(:realms_selector)
912
+ end
913
+ end
914
+
915
+ # A game server deployment resource.
916
+ class GameServerDeployment
917
+ include Google::Apis::Core::Hashable
918
+
919
+ # Output only. The creation time.
920
+ # Corresponds to the JSON property `createTime`
921
+ # @return [String]
922
+ attr_accessor :create_time
923
+
924
+ # Human readable description of the game server delpoyment.
925
+ # Corresponds to the JSON property `description`
926
+ # @return [String]
927
+ attr_accessor :description
928
+
929
+ # ETag of the resource.
930
+ # Corresponds to the JSON property `etag`
931
+ # @return [String]
932
+ attr_accessor :etag
933
+
934
+ # The labels associated with this game server deployment. Each label is a
935
+ # key-value pair.
936
+ # Corresponds to the JSON property `labels`
937
+ # @return [Hash<String,String>]
938
+ attr_accessor :labels
939
+
940
+ # The resource name of the game server deployment. Uses the form:
941
+ # `projects/`project`/locations/`location`/gameServerDeployments/`deployment``.
942
+ # For example,
943
+ # `projects/my-project/locations/`location`/gameServerDeployments/my-deployment`.
944
+ # Corresponds to the JSON property `name`
945
+ # @return [String]
946
+ attr_accessor :name
947
+
948
+ # Output only. The last-modified time.
949
+ # Corresponds to the JSON property `updateTime`
950
+ # @return [String]
951
+ attr_accessor :update_time
952
+
953
+ def initialize(**args)
954
+ update!(**args)
955
+ end
956
+
957
+ # Update properties of this object
958
+ def update!(**args)
959
+ @create_time = args[:create_time] if args.key?(:create_time)
960
+ @description = args[:description] if args.key?(:description)
961
+ @etag = args[:etag] if args.key?(:etag)
962
+ @labels = args[:labels] if args.key?(:labels)
963
+ @name = args[:name] if args.key?(:name)
964
+ @update_time = args[:update_time] if args.key?(:update_time)
965
+ end
966
+ end
967
+
968
+ # The game server deployment rollout which represents the desired rollout
969
+ # state.
970
+ class GameServerDeploymentRollout
971
+ include Google::Apis::Core::Hashable
972
+
973
+ # Output only. The creation time.
974
+ # Corresponds to the JSON property `createTime`
975
+ # @return [String]
976
+ attr_accessor :create_time
977
+
978
+ # The default game server config is applied to all realms unless overridden
979
+ # in the rollout. For example,
980
+ # `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-
981
+ # config`.
982
+ # Corresponds to the JSON property `defaultGameServerConfig`
983
+ # @return [String]
984
+ attr_accessor :default_game_server_config
985
+
986
+ # ETag of the resource.
987
+ # Corresponds to the JSON property `etag`
988
+ # @return [String]
989
+ attr_accessor :etag
990
+
991
+ # Contains the game server config rollout overrides. Overrides are processed
992
+ # in the order they are listed. Once a match is found for a realm, the rest
993
+ # of the list is not processed.
994
+ # Corresponds to the JSON property `gameServerConfigOverrides`
995
+ # @return [Array<Google::Apis::GameservicesV1::GameServerConfigOverride>]
996
+ attr_accessor :game_server_config_overrides
997
+
998
+ # The resource name of the game server deployment rollout. Uses the form:
999
+ # `projects/`project`/locations/`location`/gameServerDeployments/`deployment`/
1000
+ # rollout`.
1001
+ # For example,
1002
+ # `projects/my-project/locations/`location`/gameServerDeployments/my-deployment/
1003
+ # rollout`.
1004
+ # Corresponds to the JSON property `name`
1005
+ # @return [String]
1006
+ attr_accessor :name
1007
+
1008
+ # Output only. The last-modified time.
1009
+ # Corresponds to the JSON property `updateTime`
1010
+ # @return [String]
1011
+ attr_accessor :update_time
1012
+
1013
+ def initialize(**args)
1014
+ update!(**args)
1015
+ end
1016
+
1017
+ # Update properties of this object
1018
+ def update!(**args)
1019
+ @create_time = args[:create_time] if args.key?(:create_time)
1020
+ @default_game_server_config = args[:default_game_server_config] if args.key?(:default_game_server_config)
1021
+ @etag = args[:etag] if args.key?(:etag)
1022
+ @game_server_config_overrides = args[:game_server_config_overrides] if args.key?(:game_server_config_overrides)
1023
+ @name = args[:name] if args.key?(:name)
1024
+ @update_time = args[:update_time] if args.key?(:update_time)
1025
+ end
1026
+ end
1027
+
1028
+ # A reference to a GKE cluster.
1029
+ class GkeClusterReference
1030
+ include Google::Apis::Core::Hashable
1031
+
1032
+ # The full or partial name of a GKE cluster, using one of the following
1033
+ # forms:
1034
+ # * `projects/`project`/locations/`location`/clusters/`cluster``
1035
+ # * `locations/`location`/clusters/`cluster``
1036
+ # * ``cluster``
1037
+ # If project and location are not specified, the project and location of the
1038
+ # GameServerCluster resource are used to generate the full name of the
1039
+ # GKE cluster.
1040
+ # Corresponds to the JSON property `cluster`
1041
+ # @return [String]
1042
+ attr_accessor :cluster
1043
+
1044
+ def initialize(**args)
1045
+ update!(**args)
1046
+ end
1047
+
1048
+ # Update properties of this object
1049
+ def update!(**args)
1050
+ @cluster = args[:cluster] if args.key?(:cluster)
1051
+ end
1052
+ end
1053
+
1054
+ # The label selector, used to group labels on the resources.
1055
+ class LabelSelector
1056
+ include Google::Apis::Core::Hashable
1057
+
1058
+ # Resource labels for this selector.
1059
+ # Corresponds to the JSON property `labels`
1060
+ # @return [Hash<String,String>]
1061
+ attr_accessor :labels
1062
+
1063
+ def initialize(**args)
1064
+ update!(**args)
1065
+ end
1066
+
1067
+ # Update properties of this object
1068
+ def update!(**args)
1069
+ @labels = args[:labels] if args.key?(:labels)
1070
+ end
1071
+ end
1072
+
1073
+ # Response message for GameServerClustersService.ListGameServerClusters.
1074
+ class ListGameServerClustersResponse
1075
+ include Google::Apis::Core::Hashable
1076
+
1077
+ # The list of game server clusters.
1078
+ # Corresponds to the JSON property `gameServerClusters`
1079
+ # @return [Array<Google::Apis::GameservicesV1::GameServerCluster>]
1080
+ attr_accessor :game_server_clusters
1081
+
1082
+ # Token to retrieve the next page of results, or empty if there are no more
1083
+ # results in the list.
1084
+ # Corresponds to the JSON property `nextPageToken`
1085
+ # @return [String]
1086
+ attr_accessor :next_page_token
1087
+
1088
+ # List of locations that could not be reached.
1089
+ # Corresponds to the JSON property `unreachable`
1090
+ # @return [Array<String>]
1091
+ attr_accessor :unreachable
1092
+
1093
+ def initialize(**args)
1094
+ update!(**args)
1095
+ end
1096
+
1097
+ # Update properties of this object
1098
+ def update!(**args)
1099
+ @game_server_clusters = args[:game_server_clusters] if args.key?(:game_server_clusters)
1100
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1101
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1102
+ end
1103
+ end
1104
+
1105
+ # Response message for GameServerConfigsService.ListGameServerConfigs.
1106
+ class ListGameServerConfigsResponse
1107
+ include Google::Apis::Core::Hashable
1108
+
1109
+ # The list of game server configs.
1110
+ # Corresponds to the JSON property `gameServerConfigs`
1111
+ # @return [Array<Google::Apis::GameservicesV1::GameServerConfig>]
1112
+ attr_accessor :game_server_configs
1113
+
1114
+ # Token to retrieve the next page of results, or empty if there are no more
1115
+ # results in the list.
1116
+ # Corresponds to the JSON property `nextPageToken`
1117
+ # @return [String]
1118
+ attr_accessor :next_page_token
1119
+
1120
+ # List of locations that could not be reached.
1121
+ # Corresponds to the JSON property `unreachable`
1122
+ # @return [Array<String>]
1123
+ attr_accessor :unreachable
1124
+
1125
+ def initialize(**args)
1126
+ update!(**args)
1127
+ end
1128
+
1129
+ # Update properties of this object
1130
+ def update!(**args)
1131
+ @game_server_configs = args[:game_server_configs] if args.key?(:game_server_configs)
1132
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1133
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1134
+ end
1135
+ end
1136
+
1137
+ # Response message for GameServerDeploymentsService.ListGameServerDeployments.
1138
+ class ListGameServerDeploymentsResponse
1139
+ include Google::Apis::Core::Hashable
1140
+
1141
+ # The list of game server deployments.
1142
+ # Corresponds to the JSON property `gameServerDeployments`
1143
+ # @return [Array<Google::Apis::GameservicesV1::GameServerDeployment>]
1144
+ attr_accessor :game_server_deployments
1145
+
1146
+ # Token to retrieve the next page of results, or empty if there are no more
1147
+ # results in the list.
1148
+ # Corresponds to the JSON property `nextPageToken`
1149
+ # @return [String]
1150
+ attr_accessor :next_page_token
1151
+
1152
+ # List of locations that could not be reached.
1153
+ # Corresponds to the JSON property `unreachable`
1154
+ # @return [Array<String>]
1155
+ attr_accessor :unreachable
1156
+
1157
+ def initialize(**args)
1158
+ update!(**args)
1159
+ end
1160
+
1161
+ # Update properties of this object
1162
+ def update!(**args)
1163
+ @game_server_deployments = args[:game_server_deployments] if args.key?(:game_server_deployments)
1164
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1165
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1166
+ end
1167
+ end
1168
+
1169
+ # The response message for Locations.ListLocations.
1170
+ class ListLocationsResponse
1171
+ include Google::Apis::Core::Hashable
1172
+
1173
+ # A list of locations that matches the specified filter in the request.
1174
+ # Corresponds to the JSON property `locations`
1175
+ # @return [Array<Google::Apis::GameservicesV1::Location>]
1176
+ attr_accessor :locations
1177
+
1178
+ # The standard List next-page token.
1179
+ # Corresponds to the JSON property `nextPageToken`
1180
+ # @return [String]
1181
+ attr_accessor :next_page_token
1182
+
1183
+ def initialize(**args)
1184
+ update!(**args)
1185
+ end
1186
+
1187
+ # Update properties of this object
1188
+ def update!(**args)
1189
+ @locations = args[:locations] if args.key?(:locations)
1190
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1191
+ end
1192
+ end
1193
+
1194
+ # The response message for Operations.ListOperations.
1195
+ class ListOperationsResponse
1196
+ include Google::Apis::Core::Hashable
1197
+
1198
+ # The standard List next-page token.
1199
+ # Corresponds to the JSON property `nextPageToken`
1200
+ # @return [String]
1201
+ attr_accessor :next_page_token
1202
+
1203
+ # A list of operations that matches the specified filter in the request.
1204
+ # Corresponds to the JSON property `operations`
1205
+ # @return [Array<Google::Apis::GameservicesV1::Operation>]
1206
+ attr_accessor :operations
1207
+
1208
+ def initialize(**args)
1209
+ update!(**args)
1210
+ end
1211
+
1212
+ # Update properties of this object
1213
+ def update!(**args)
1214
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1215
+ @operations = args[:operations] if args.key?(:operations)
1216
+ end
1217
+ end
1218
+
1219
+ # Response message for RealmsService.ListRealms.
1220
+ class ListRealmsResponse
1221
+ include Google::Apis::Core::Hashable
1222
+
1223
+ # Token to retrieve the next page of results, or empty if there are no more
1224
+ # results in the list.
1225
+ # Corresponds to the JSON property `nextPageToken`
1226
+ # @return [String]
1227
+ attr_accessor :next_page_token
1228
+
1229
+ # The list of realms.
1230
+ # Corresponds to the JSON property `realms`
1231
+ # @return [Array<Google::Apis::GameservicesV1::Realm>]
1232
+ attr_accessor :realms
1233
+
1234
+ # List of locations that could not be reached.
1235
+ # Corresponds to the JSON property `unreachable`
1236
+ # @return [Array<String>]
1237
+ attr_accessor :unreachable
1238
+
1239
+ def initialize(**args)
1240
+ update!(**args)
1241
+ end
1242
+
1243
+ # Update properties of this object
1244
+ def update!(**args)
1245
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1246
+ @realms = args[:realms] if args.key?(:realms)
1247
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1248
+ end
1249
+ end
1250
+
1251
+ # A resource that represents Google Cloud Platform location.
1252
+ class Location
1253
+ include Google::Apis::Core::Hashable
1254
+
1255
+ # The friendly name for this location, typically a nearby city name.
1256
+ # For example, "Tokyo".
1257
+ # Corresponds to the JSON property `displayName`
1258
+ # @return [String]
1259
+ attr_accessor :display_name
1260
+
1261
+ # Cross-service attributes for the location. For example
1262
+ # `"cloud.googleapis.com/region": "us-east1"`
1263
+ # Corresponds to the JSON property `labels`
1264
+ # @return [Hash<String,String>]
1265
+ attr_accessor :labels
1266
+
1267
+ # The canonical id for this location. For example: `"us-east1"`.
1268
+ # Corresponds to the JSON property `locationId`
1269
+ # @return [String]
1270
+ attr_accessor :location_id
1271
+
1272
+ # Service-specific metadata. For example the available capacity at the given
1273
+ # location.
1274
+ # Corresponds to the JSON property `metadata`
1275
+ # @return [Hash<String,Object>]
1276
+ attr_accessor :metadata
1277
+
1278
+ # Resource name for the location, which may vary between implementations.
1279
+ # For example: `"projects/example-project/locations/us-east1"`
1280
+ # Corresponds to the JSON property `name`
1281
+ # @return [String]
1282
+ attr_accessor :name
1283
+
1284
+ def initialize(**args)
1285
+ update!(**args)
1286
+ end
1287
+
1288
+ # Update properties of this object
1289
+ def update!(**args)
1290
+ @display_name = args[:display_name] if args.key?(:display_name)
1291
+ @labels = args[:labels] if args.key?(:labels)
1292
+ @location_id = args[:location_id] if args.key?(:location_id)
1293
+ @metadata = args[:metadata] if args.key?(:metadata)
1294
+ @name = args[:name] if args.key?(:name)
1295
+ end
1296
+ end
1297
+
1298
+ # Specifies what kind of log the caller must write
1299
+ class LogConfig
1300
+ include Google::Apis::Core::Hashable
1301
+
1302
+ # Write a Cloud Audit log
1303
+ # Corresponds to the JSON property `cloudAudit`
1304
+ # @return [Google::Apis::GameservicesV1::CloudAuditOptions]
1305
+ attr_accessor :cloud_audit
1306
+
1307
+ # Increment a streamz counter with the specified metric and field names.
1308
+ # Metric names should start with a '/', generally be lowercase-only,
1309
+ # and end in "_count". Field names should not contain an initial slash.
1310
+ # The actual exported metric names will have "/iam/policy" prepended.
1311
+ # Field names correspond to IAM request parameters and field values are
1312
+ # their respective values.
1313
+ # Supported field names:
1314
+ # - "authority", which is "[token]" if IAMContext.token is present,
1315
+ # otherwise the value of IAMContext.authority_selector if present, and
1316
+ # otherwise a representation of IAMContext.principal; or
1317
+ # - "iam_principal", a representation of IAMContext.principal even if a
1318
+ # token or authority selector is present; or
1319
+ # - "" (empty string), resulting in a counter with no fields.
1320
+ # Examples:
1321
+ # counter ` metric: "/debug_access_count" field: "iam_principal" `
1322
+ # ==> increment counter /iam/policy/debug_access_count
1323
+ # `iam_principal=[value of IAMContext.principal]`
1324
+ # Corresponds to the JSON property `counter`
1325
+ # @return [Google::Apis::GameservicesV1::CounterOptions]
1326
+ attr_accessor :counter
1327
+
1328
+ # Write a Data Access (Gin) log
1329
+ # Corresponds to the JSON property `dataAccess`
1330
+ # @return [Google::Apis::GameservicesV1::DataAccessOptions]
1331
+ attr_accessor :data_access
1332
+
1333
+ def initialize(**args)
1334
+ update!(**args)
1335
+ end
1336
+
1337
+ # Update properties of this object
1338
+ def update!(**args)
1339
+ @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
1340
+ @counter = args[:counter] if args.key?(:counter)
1341
+ @data_access = args[:data_access] if args.key?(:data_access)
1342
+ end
1343
+ end
1344
+
1345
+ # This resource represents a long-running operation that is the result of a
1346
+ # network API call.
1347
+ class Operation
1348
+ include Google::Apis::Core::Hashable
1349
+
1350
+ # If the value is `false`, it means the operation is still in progress.
1351
+ # If `true`, the operation is completed, and either `error` or `response` is
1352
+ # available.
1353
+ # Corresponds to the JSON property `done`
1354
+ # @return [Boolean]
1355
+ attr_accessor :done
1356
+ alias_method :done?, :done
1357
+
1358
+ # The `Status` type defines a logical error model that is suitable for
1359
+ # different programming environments, including REST APIs and RPC APIs. It is
1360
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1361
+ # three pieces of data: error code, error message, and error details.
1362
+ # You can find out more about this error model and how to work with it in the
1363
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1364
+ # Corresponds to the JSON property `error`
1365
+ # @return [Google::Apis::GameservicesV1::Status]
1366
+ attr_accessor :error
1367
+
1368
+ # Service-specific metadata associated with the operation. It typically
1369
+ # contains progress information and common metadata such as create time.
1370
+ # Some services might not provide such metadata. Any method that returns a
1371
+ # long-running operation should document the metadata type, if any.
1372
+ # Corresponds to the JSON property `metadata`
1373
+ # @return [Hash<String,Object>]
1374
+ attr_accessor :metadata
1375
+
1376
+ # The server-assigned name, which is only unique within the same service that
1377
+ # originally returns it. If you use the default HTTP mapping, the
1378
+ # `name` should be a resource name ending with `operations/`unique_id``.
1379
+ # Corresponds to the JSON property `name`
1380
+ # @return [String]
1381
+ attr_accessor :name
1382
+
1383
+ # The normal response of the operation in case of success. If the original
1384
+ # method returns no data on success, such as `Delete`, the response is
1385
+ # `google.protobuf.Empty`. If the original method is standard
1386
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
1387
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
1388
+ # is the original method name. For example, if the original method name
1389
+ # is `TakeSnapshot()`, the inferred response type is
1390
+ # `TakeSnapshotResponse`.
1391
+ # Corresponds to the JSON property `response`
1392
+ # @return [Hash<String,Object>]
1393
+ attr_accessor :response
1394
+
1395
+ def initialize(**args)
1396
+ update!(**args)
1397
+ end
1398
+
1399
+ # Update properties of this object
1400
+ def update!(**args)
1401
+ @done = args[:done] if args.key?(:done)
1402
+ @error = args[:error] if args.key?(:error)
1403
+ @metadata = args[:metadata] if args.key?(:metadata)
1404
+ @name = args[:name] if args.key?(:name)
1405
+ @response = args[:response] if args.key?(:response)
1406
+ end
1407
+ end
1408
+
1409
+ # Represents the metadata of the long-running operation.
1410
+ class OperationMetadata
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # Output only. API version used to start the operation.
1414
+ # Corresponds to the JSON property `apiVersion`
1415
+ # @return [String]
1416
+ attr_accessor :api_version
1417
+
1418
+ # Output only. The time the operation was created.
1419
+ # Corresponds to the JSON property `createTime`
1420
+ # @return [String]
1421
+ attr_accessor :create_time
1422
+
1423
+ # Output only. The time the operation finished running.
1424
+ # Corresponds to the JSON property `endTime`
1425
+ # @return [String]
1426
+ attr_accessor :end_time
1427
+
1428
+ # Output only. Operation status for Game Services API operations. Operation
1429
+ # status is in
1430
+ # the form of key-value pairs where keys are resource IDs and the values show
1431
+ # the status of the operation. In case of failures, the value includes an
1432
+ # error code and error message.
1433
+ # Corresponds to the JSON property `operationStatus`
1434
+ # @return [Hash<String,Google::Apis::GameservicesV1::OperationStatus>]
1435
+ attr_accessor :operation_status
1436
+
1437
+ # Output only. Identifies whether the user has requested cancellation
1438
+ # of the operation. Operations that have successfully been cancelled
1439
+ # have Operation.error value with a google.rpc.Status.code of 1,
1440
+ # corresponding to `Code.CANCELLED`.
1441
+ # Corresponds to the JSON property `requestedCancellation`
1442
+ # @return [Boolean]
1443
+ attr_accessor :requested_cancellation
1444
+ alias_method :requested_cancellation?, :requested_cancellation
1445
+
1446
+ # Output only. Human-readable status of the operation, if any.
1447
+ # Corresponds to the JSON property `statusMessage`
1448
+ # @return [String]
1449
+ attr_accessor :status_message
1450
+
1451
+ # Output only. Server-defined resource path for the target of the operation.
1452
+ # Corresponds to the JSON property `target`
1453
+ # @return [String]
1454
+ attr_accessor :target
1455
+
1456
+ # Output only. List of Locations that could not be reached.
1457
+ # Corresponds to the JSON property `unreachable`
1458
+ # @return [Array<String>]
1459
+ attr_accessor :unreachable
1460
+
1461
+ # Output only. Name of the verb executed by the operation.
1462
+ # Corresponds to the JSON property `verb`
1463
+ # @return [String]
1464
+ attr_accessor :verb
1465
+
1466
+ def initialize(**args)
1467
+ update!(**args)
1468
+ end
1469
+
1470
+ # Update properties of this object
1471
+ def update!(**args)
1472
+ @api_version = args[:api_version] if args.key?(:api_version)
1473
+ @create_time = args[:create_time] if args.key?(:create_time)
1474
+ @end_time = args[:end_time] if args.key?(:end_time)
1475
+ @operation_status = args[:operation_status] if args.key?(:operation_status)
1476
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1477
+ @status_message = args[:status_message] if args.key?(:status_message)
1478
+ @target = args[:target] if args.key?(:target)
1479
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1480
+ @verb = args[:verb] if args.key?(:verb)
1481
+ end
1482
+ end
1483
+
1484
+ #
1485
+ class OperationStatus
1486
+ include Google::Apis::Core::Hashable
1487
+
1488
+ # Output only. Whether the operation is done or still in progress.
1489
+ # Corresponds to the JSON property `done`
1490
+ # @return [Boolean]
1491
+ attr_accessor :done
1492
+ alias_method :done?, :done
1493
+
1494
+ # The error code in case of failures.
1495
+ # Corresponds to the JSON property `errorCode`
1496
+ # @return [String]
1497
+ attr_accessor :error_code
1498
+
1499
+ # The human-readable error message.
1500
+ # Corresponds to the JSON property `errorMessage`
1501
+ # @return [String]
1502
+ attr_accessor :error_message
1503
+
1504
+ def initialize(**args)
1505
+ update!(**args)
1506
+ end
1507
+
1508
+ # Update properties of this object
1509
+ def update!(**args)
1510
+ @done = args[:done] if args.key?(:done)
1511
+ @error_code = args[:error_code] if args.key?(:error_code)
1512
+ @error_message = args[:error_message] if args.key?(:error_message)
1513
+ end
1514
+ end
1515
+
1516
+ # An Identity and Access Management (IAM) policy, which specifies access
1517
+ # controls for Google Cloud resources.
1518
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1519
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1520
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1521
+ # permissions; each `role` can be an IAM predefined role or a user-created
1522
+ # custom role.
1523
+ # For some types of Google Cloud resources, a `binding` can also specify a
1524
+ # `condition`, which is a logical expression that allows access to a resource
1525
+ # only if the expression evaluates to `true`. A condition can add constraints
1526
+ # based on attributes of the request, the resource, or both. To learn which
1527
+ # resources support conditions in their IAM policies, see the
1528
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1529
+ # policies).
1530
+ # **JSON example:**
1531
+ # `
1532
+ # "bindings": [
1533
+ # `
1534
+ # "role": "roles/resourcemanager.organizationAdmin",
1535
+ # "members": [
1536
+ # "user:mike@example.com",
1537
+ # "group:admins@example.com",
1538
+ # "domain:google.com",
1539
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1540
+ # ]
1541
+ # `,
1542
+ # `
1543
+ # "role": "roles/resourcemanager.organizationViewer",
1544
+ # "members": [
1545
+ # "user:eve@example.com"
1546
+ # ],
1547
+ # "condition": `
1548
+ # "title": "expirable access",
1549
+ # "description": "Does not grant access after Sep 2020",
1550
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1551
+ # ",
1552
+ # `
1553
+ # `
1554
+ # ],
1555
+ # "etag": "BwWWja0YfJA=",
1556
+ # "version": 3
1557
+ # `
1558
+ # **YAML example:**
1559
+ # bindings:
1560
+ # - members:
1561
+ # - user:mike@example.com
1562
+ # - group:admins@example.com
1563
+ # - domain:google.com
1564
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1565
+ # role: roles/resourcemanager.organizationAdmin
1566
+ # - members:
1567
+ # - user:eve@example.com
1568
+ # role: roles/resourcemanager.organizationViewer
1569
+ # condition:
1570
+ # title: expirable access
1571
+ # description: Does not grant access after Sep 2020
1572
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1573
+ # - etag: BwWWja0YfJA=
1574
+ # - version: 3
1575
+ # For a description of IAM and its features, see the
1576
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1577
+ class Policy
1578
+ include Google::Apis::Core::Hashable
1579
+
1580
+ # Specifies cloud audit logging configuration for this policy.
1581
+ # Corresponds to the JSON property `auditConfigs`
1582
+ # @return [Array<Google::Apis::GameservicesV1::AuditConfig>]
1583
+ attr_accessor :audit_configs
1584
+
1585
+ # Associates a list of `members` to a `role`. Optionally, may specify a
1586
+ # `condition` that determines how and when the `bindings` are applied. Each
1587
+ # of the `bindings` must contain at least one member.
1588
+ # Corresponds to the JSON property `bindings`
1589
+ # @return [Array<Google::Apis::GameservicesV1::Binding>]
1590
+ attr_accessor :bindings
1591
+
1592
+ # `etag` is used for optimistic concurrency control as a way to help
1593
+ # prevent simultaneous updates of a policy from overwriting each other.
1594
+ # It is strongly suggested that systems make use of the `etag` in the
1595
+ # read-modify-write cycle to perform policy updates in order to avoid race
1596
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
1597
+ # systems are expected to put that etag in the request to `setIamPolicy` to
1598
+ # ensure that their change will be applied to the same version of the policy.
1599
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1600
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1601
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1602
+ # the conditions in the version `3` policy are lost.
1603
+ # Corresponds to the JSON property `etag`
1604
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1605
+ # @return [String]
1606
+ attr_accessor :etag
1607
+
1608
+ #
1609
+ # Corresponds to the JSON property `iamOwned`
1610
+ # @return [Boolean]
1611
+ attr_accessor :iam_owned
1612
+ alias_method :iam_owned?, :iam_owned
1613
+
1614
+ # If more than one rule is specified, the rules are applied in the following
1615
+ # manner:
1616
+ # - All matching LOG rules are always applied.
1617
+ # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
1618
+ # Logging will be applied if one or more matching rule requires logging.
1619
+ # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
1620
+ # granted.
1621
+ # Logging will be applied if one or more matching rule requires logging.
1622
+ # - Otherwise, if no rule applies, permission is denied.
1623
+ # Corresponds to the JSON property `rules`
1624
+ # @return [Array<Google::Apis::GameservicesV1::Rule>]
1625
+ attr_accessor :rules
1626
+
1627
+ # Specifies the format of the policy.
1628
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
1629
+ # are rejected.
1630
+ # Any operation that affects conditional role bindings must specify version
1631
+ # `3`. This requirement applies to the following operations:
1632
+ # * Getting a policy that includes a conditional role binding
1633
+ # * Adding a conditional role binding to a policy
1634
+ # * Changing a conditional role binding in a policy
1635
+ # * Removing any role binding, with or without a condition, from a policy
1636
+ # that includes conditions
1637
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1638
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1639
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1640
+ # the conditions in the version `3` policy are lost.
1641
+ # If a policy does not include any conditions, operations on that policy may
1642
+ # specify any valid version or leave the field unset.
1643
+ # To learn which resources support conditions in their IAM policies, see the
1644
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1645
+ # policies).
1646
+ # Corresponds to the JSON property `version`
1647
+ # @return [Fixnum]
1648
+ attr_accessor :version
1649
+
1650
+ def initialize(**args)
1651
+ update!(**args)
1652
+ end
1653
+
1654
+ # Update properties of this object
1655
+ def update!(**args)
1656
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1657
+ @bindings = args[:bindings] if args.key?(:bindings)
1658
+ @etag = args[:etag] if args.key?(:etag)
1659
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
1660
+ @rules = args[:rules] if args.key?(:rules)
1661
+ @version = args[:version] if args.key?(:version)
1662
+ end
1663
+ end
1664
+
1665
+ # Response message for
1666
+ # GameServerClustersService.PreviewCreateGameServerCluster.
1667
+ class PreviewCreateGameServerClusterResponse
1668
+ include Google::Apis::Core::Hashable
1669
+
1670
+ # The ETag of the game server cluster.
1671
+ # Corresponds to the JSON property `etag`
1672
+ # @return [String]
1673
+ attr_accessor :etag
1674
+
1675
+ # Encapsulates the Target state.
1676
+ # Corresponds to the JSON property `targetState`
1677
+ # @return [Google::Apis::GameservicesV1::TargetState]
1678
+ attr_accessor :target_state
1679
+
1680
+ def initialize(**args)
1681
+ update!(**args)
1682
+ end
1683
+
1684
+ # Update properties of this object
1685
+ def update!(**args)
1686
+ @etag = args[:etag] if args.key?(:etag)
1687
+ @target_state = args[:target_state] if args.key?(:target_state)
1688
+ end
1689
+ end
1690
+
1691
+ # Response message for
1692
+ # GameServerClustersService.PreviewDeleteGameServerCluster.
1693
+ class PreviewDeleteGameServerClusterResponse
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # The ETag of the game server cluster.
1697
+ # Corresponds to the JSON property `etag`
1698
+ # @return [String]
1699
+ attr_accessor :etag
1700
+
1701
+ # Encapsulates the Target state.
1702
+ # Corresponds to the JSON property `targetState`
1703
+ # @return [Google::Apis::GameservicesV1::TargetState]
1704
+ attr_accessor :target_state
1705
+
1706
+ def initialize(**args)
1707
+ update!(**args)
1708
+ end
1709
+
1710
+ # Update properties of this object
1711
+ def update!(**args)
1712
+ @etag = args[:etag] if args.key?(:etag)
1713
+ @target_state = args[:target_state] if args.key?(:target_state)
1714
+ end
1715
+ end
1716
+
1717
+ # Response message for PreviewGameServerDeploymentRollout.
1718
+ # This has details about the Agones fleet and autoscaler to be actuated.
1719
+ class PreviewGameServerDeploymentRolloutResponse
1720
+ include Google::Apis::Core::Hashable
1721
+
1722
+ # ETag of the game server deployment.
1723
+ # Corresponds to the JSON property `etag`
1724
+ # @return [String]
1725
+ attr_accessor :etag
1726
+
1727
+ # Encapsulates the Target state.
1728
+ # Corresponds to the JSON property `targetState`
1729
+ # @return [Google::Apis::GameservicesV1::TargetState]
1730
+ attr_accessor :target_state
1731
+
1732
+ # Locations that could not be reached on this request.
1733
+ # Corresponds to the JSON property `unavailable`
1734
+ # @return [Array<String>]
1735
+ attr_accessor :unavailable
1736
+
1737
+ def initialize(**args)
1738
+ update!(**args)
1739
+ end
1740
+
1741
+ # Update properties of this object
1742
+ def update!(**args)
1743
+ @etag = args[:etag] if args.key?(:etag)
1744
+ @target_state = args[:target_state] if args.key?(:target_state)
1745
+ @unavailable = args[:unavailable] if args.key?(:unavailable)
1746
+ end
1747
+ end
1748
+
1749
+ # Response message for RealmsService.PreviewRealmUpdate.
1750
+ class PreviewRealmUpdateResponse
1751
+ include Google::Apis::Core::Hashable
1752
+
1753
+ # ETag of the realm.
1754
+ # Corresponds to the JSON property `etag`
1755
+ # @return [String]
1756
+ attr_accessor :etag
1757
+
1758
+ # Encapsulates the Target state.
1759
+ # Corresponds to the JSON property `targetState`
1760
+ # @return [Google::Apis::GameservicesV1::TargetState]
1761
+ attr_accessor :target_state
1762
+
1763
+ def initialize(**args)
1764
+ update!(**args)
1765
+ end
1766
+
1767
+ # Update properties of this object
1768
+ def update!(**args)
1769
+ @etag = args[:etag] if args.key?(:etag)
1770
+ @target_state = args[:target_state] if args.key?(:target_state)
1771
+ end
1772
+ end
1773
+
1774
+ # Response message for GameServerClustersService.PreviewUpdateGameServerCluster
1775
+ class PreviewUpdateGameServerClusterResponse
1776
+ include Google::Apis::Core::Hashable
1777
+
1778
+ # The ETag of the game server cluster.
1779
+ # Corresponds to the JSON property `etag`
1780
+ # @return [String]
1781
+ attr_accessor :etag
1782
+
1783
+ # Encapsulates the Target state.
1784
+ # Corresponds to the JSON property `targetState`
1785
+ # @return [Google::Apis::GameservicesV1::TargetState]
1786
+ attr_accessor :target_state
1787
+
1788
+ def initialize(**args)
1789
+ update!(**args)
1790
+ end
1791
+
1792
+ # Update properties of this object
1793
+ def update!(**args)
1794
+ @etag = args[:etag] if args.key?(:etag)
1795
+ @target_state = args[:target_state] if args.key?(:target_state)
1796
+ end
1797
+ end
1798
+
1799
+ # A realm resource.
1800
+ class Realm
1801
+ include Google::Apis::Core::Hashable
1802
+
1803
+ # Output only. The creation time.
1804
+ # Corresponds to the JSON property `createTime`
1805
+ # @return [String]
1806
+ attr_accessor :create_time
1807
+
1808
+ # Human readable description of the realm.
1809
+ # Corresponds to the JSON property `description`
1810
+ # @return [String]
1811
+ attr_accessor :description
1812
+
1813
+ # ETag of the resource.
1814
+ # Corresponds to the JSON property `etag`
1815
+ # @return [String]
1816
+ attr_accessor :etag
1817
+
1818
+ # The labels associated with this realm. Each label is a key-value pair.
1819
+ # Corresponds to the JSON property `labels`
1820
+ # @return [Hash<String,String>]
1821
+ attr_accessor :labels
1822
+
1823
+ # The resource name of the realm. Uses the form:
1824
+ # `projects/`project`/locations/`location`/realms/`realm``. For
1825
+ # example, `projects/my-project/locations/`location`/realms/my-realm`.
1826
+ # Corresponds to the JSON property `name`
1827
+ # @return [String]
1828
+ attr_accessor :name
1829
+
1830
+ # Required. Time zone where all policies targeting this realm are evaluated. The
1831
+ # value
1832
+ # of this field must be from the IANA time zone database:
1833
+ # https://www.iana.org/time-zones.
1834
+ # Corresponds to the JSON property `timeZone`
1835
+ # @return [String]
1836
+ attr_accessor :time_zone
1837
+
1838
+ # Output only. The last-modified time.
1839
+ # Corresponds to the JSON property `updateTime`
1840
+ # @return [String]
1841
+ attr_accessor :update_time
1842
+
1843
+ def initialize(**args)
1844
+ update!(**args)
1845
+ end
1846
+
1847
+ # Update properties of this object
1848
+ def update!(**args)
1849
+ @create_time = args[:create_time] if args.key?(:create_time)
1850
+ @description = args[:description] if args.key?(:description)
1851
+ @etag = args[:etag] if args.key?(:etag)
1852
+ @labels = args[:labels] if args.key?(:labels)
1853
+ @name = args[:name] if args.key?(:name)
1854
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1855
+ @update_time = args[:update_time] if args.key?(:update_time)
1856
+ end
1857
+ end
1858
+
1859
+ # The realm selector, used to match realm resources.
1860
+ class RealmSelector
1861
+ include Google::Apis::Core::Hashable
1862
+
1863
+ # List of realms to match.
1864
+ # Corresponds to the JSON property `realms`
1865
+ # @return [Array<String>]
1866
+ attr_accessor :realms
1867
+
1868
+ def initialize(**args)
1869
+ update!(**args)
1870
+ end
1871
+
1872
+ # Update properties of this object
1873
+ def update!(**args)
1874
+ @realms = args[:realms] if args.key?(:realms)
1875
+ end
1876
+ end
1877
+
1878
+ # A rule to be applied in a Policy.
1879
+ class Rule
1880
+ include Google::Apis::Core::Hashable
1881
+
1882
+ # Required
1883
+ # Corresponds to the JSON property `action`
1884
+ # @return [String]
1885
+ attr_accessor :action
1886
+
1887
+ # Additional restrictions that must be met. All conditions must pass for the
1888
+ # rule to match.
1889
+ # Corresponds to the JSON property `conditions`
1890
+ # @return [Array<Google::Apis::GameservicesV1::Condition>]
1891
+ attr_accessor :conditions
1892
+
1893
+ # Human-readable description of the rule.
1894
+ # Corresponds to the JSON property `description`
1895
+ # @return [String]
1896
+ attr_accessor :description
1897
+
1898
+ # If one or more 'in' clauses are specified, the rule matches if
1899
+ # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
1900
+ # Corresponds to the JSON property `in`
1901
+ # @return [Array<String>]
1902
+ attr_accessor :in
1903
+
1904
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
1905
+ # that match the LOG action.
1906
+ # Corresponds to the JSON property `logConfig`
1907
+ # @return [Array<Google::Apis::GameservicesV1::LogConfig>]
1908
+ attr_accessor :log_config
1909
+
1910
+ # If one or more 'not_in' clauses are specified, the rule matches
1911
+ # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
1912
+ # The format for in and not_in entries can be found at in the Local IAM
1913
+ # documentation (see go/local-iam#features).
1914
+ # Corresponds to the JSON property `notIn`
1915
+ # @return [Array<String>]
1916
+ attr_accessor :not_in
1917
+
1918
+ # A permission is a string of form '<service>.<resource type>.<verb>'
1919
+ # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
1920
+ # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
1921
+ # Corresponds to the JSON property `permissions`
1922
+ # @return [Array<String>]
1923
+ attr_accessor :permissions
1924
+
1925
+ def initialize(**args)
1926
+ update!(**args)
1927
+ end
1928
+
1929
+ # Update properties of this object
1930
+ def update!(**args)
1931
+ @action = args[:action] if args.key?(:action)
1932
+ @conditions = args[:conditions] if args.key?(:conditions)
1933
+ @description = args[:description] if args.key?(:description)
1934
+ @in = args[:in] if args.key?(:in)
1935
+ @log_config = args[:log_config] if args.key?(:log_config)
1936
+ @not_in = args[:not_in] if args.key?(:not_in)
1937
+ @permissions = args[:permissions] if args.key?(:permissions)
1938
+ end
1939
+ end
1940
+
1941
+ # Autoscaling config for an Agones fleet.
1942
+ class ScalingConfig
1943
+ include Google::Apis::Core::Hashable
1944
+
1945
+ # Required. Agones fleet autoscaler spec. Example spec:
1946
+ # https://agones.dev/site/docs/reference/fleetautoscaler/
1947
+ # Corresponds to the JSON property `fleetAutoscalerSpec`
1948
+ # @return [String]
1949
+ attr_accessor :fleet_autoscaler_spec
1950
+
1951
+ # Required. The name of the Scaling Config
1952
+ # Corresponds to the JSON property `name`
1953
+ # @return [String]
1954
+ attr_accessor :name
1955
+
1956
+ # The schedules to which this Scaling Config applies.
1957
+ # Corresponds to the JSON property `schedules`
1958
+ # @return [Array<Google::Apis::GameservicesV1::Schedule>]
1959
+ attr_accessor :schedules
1960
+
1961
+ # Labels used to identify the game server clusters to which this Agones
1962
+ # scaling config applies. A game server cluster is subject to this Agones
1963
+ # scaling config if its labels match any of the selector entries.
1964
+ # Corresponds to the JSON property `selectors`
1965
+ # @return [Array<Google::Apis::GameservicesV1::LabelSelector>]
1966
+ attr_accessor :selectors
1967
+
1968
+ def initialize(**args)
1969
+ update!(**args)
1970
+ end
1971
+
1972
+ # Update properties of this object
1973
+ def update!(**args)
1974
+ @fleet_autoscaler_spec = args[:fleet_autoscaler_spec] if args.key?(:fleet_autoscaler_spec)
1975
+ @name = args[:name] if args.key?(:name)
1976
+ @schedules = args[:schedules] if args.key?(:schedules)
1977
+ @selectors = args[:selectors] if args.key?(:selectors)
1978
+ end
1979
+ end
1980
+
1981
+ # The schedule of a recurring or one time event. The event's time span is
1982
+ # specified by start_time and end_time. If the scheduled event's timespan is
1983
+ # larger than the cron_spec + cron_job_duration, the event will be recurring.
1984
+ # If only cron_spec + cron_job_duration are specified, the event is effective
1985
+ # starting at the local time specified by cron_spec, and is recurring.
1986
+ # start_time|-------[cron job]-------[cron job]-------[cron job]---|end_time
1987
+ # cron job: cron spec start time + duration
1988
+ class Schedule
1989
+ include Google::Apis::Core::Hashable
1990
+
1991
+ # The duration for the cron job event. The duration of the event is effective
1992
+ # after the cron job's start time.
1993
+ # Corresponds to the JSON property `cronJobDuration`
1994
+ # @return [String]
1995
+ attr_accessor :cron_job_duration
1996
+
1997
+ # The cron definition of the scheduled event. See
1998
+ # https://en.wikipedia.org/wiki/Cron. Cron spec specifies the local time as
1999
+ # defined by the realm.
2000
+ # Corresponds to the JSON property `cronSpec`
2001
+ # @return [String]
2002
+ attr_accessor :cron_spec
2003
+
2004
+ # The end time of the event.
2005
+ # Corresponds to the JSON property `endTime`
2006
+ # @return [String]
2007
+ attr_accessor :end_time
2008
+
2009
+ # The start time of the event.
2010
+ # Corresponds to the JSON property `startTime`
2011
+ # @return [String]
2012
+ attr_accessor :start_time
2013
+
2014
+ def initialize(**args)
2015
+ update!(**args)
2016
+ end
2017
+
2018
+ # Update properties of this object
2019
+ def update!(**args)
2020
+ @cron_job_duration = args[:cron_job_duration] if args.key?(:cron_job_duration)
2021
+ @cron_spec = args[:cron_spec] if args.key?(:cron_spec)
2022
+ @end_time = args[:end_time] if args.key?(:end_time)
2023
+ @start_time = args[:start_time] if args.key?(:start_time)
2024
+ end
2025
+ end
2026
+
2027
+ # Request message for `SetIamPolicy` method.
2028
+ class SetIamPolicyRequest
2029
+ include Google::Apis::Core::Hashable
2030
+
2031
+ # An Identity and Access Management (IAM) policy, which specifies access
2032
+ # controls for Google Cloud resources.
2033
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
2034
+ # `members` to a single `role`. Members can be user accounts, service accounts,
2035
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
2036
+ # permissions; each `role` can be an IAM predefined role or a user-created
2037
+ # custom role.
2038
+ # For some types of Google Cloud resources, a `binding` can also specify a
2039
+ # `condition`, which is a logical expression that allows access to a resource
2040
+ # only if the expression evaluates to `true`. A condition can add constraints
2041
+ # based on attributes of the request, the resource, or both. To learn which
2042
+ # resources support conditions in their IAM policies, see the
2043
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
2044
+ # policies).
2045
+ # **JSON example:**
2046
+ # `
2047
+ # "bindings": [
2048
+ # `
2049
+ # "role": "roles/resourcemanager.organizationAdmin",
2050
+ # "members": [
2051
+ # "user:mike@example.com",
2052
+ # "group:admins@example.com",
2053
+ # "domain:google.com",
2054
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
2055
+ # ]
2056
+ # `,
2057
+ # `
2058
+ # "role": "roles/resourcemanager.organizationViewer",
2059
+ # "members": [
2060
+ # "user:eve@example.com"
2061
+ # ],
2062
+ # "condition": `
2063
+ # "title": "expirable access",
2064
+ # "description": "Does not grant access after Sep 2020",
2065
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
2066
+ # ",
2067
+ # `
2068
+ # `
2069
+ # ],
2070
+ # "etag": "BwWWja0YfJA=",
2071
+ # "version": 3
2072
+ # `
2073
+ # **YAML example:**
2074
+ # bindings:
2075
+ # - members:
2076
+ # - user:mike@example.com
2077
+ # - group:admins@example.com
2078
+ # - domain:google.com
2079
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
2080
+ # role: roles/resourcemanager.organizationAdmin
2081
+ # - members:
2082
+ # - user:eve@example.com
2083
+ # role: roles/resourcemanager.organizationViewer
2084
+ # condition:
2085
+ # title: expirable access
2086
+ # description: Does not grant access after Sep 2020
2087
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
2088
+ # - etag: BwWWja0YfJA=
2089
+ # - version: 3
2090
+ # For a description of IAM and its features, see the
2091
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
2092
+ # Corresponds to the JSON property `policy`
2093
+ # @return [Google::Apis::GameservicesV1::Policy]
2094
+ attr_accessor :policy
2095
+
2096
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
2097
+ # the fields in the mask will be modified. If no mask is provided, the
2098
+ # following default mask is used:
2099
+ # `paths: "bindings, etag"`
2100
+ # Corresponds to the JSON property `updateMask`
2101
+ # @return [String]
2102
+ attr_accessor :update_mask
2103
+
2104
+ def initialize(**args)
2105
+ update!(**args)
2106
+ end
2107
+
2108
+ # Update properties of this object
2109
+ def update!(**args)
2110
+ @policy = args[:policy] if args.key?(:policy)
2111
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2112
+ end
2113
+ end
2114
+
2115
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
2116
+ class SpecSource
2117
+ include Google::Apis::Core::Hashable
2118
+
2119
+ # The game server config resource. Uses the form:
2120
+ # `projects/`project`/locations/`location`/gameServerDeployments/`deployment_id`/
2121
+ # configs/`config_id``.
2122
+ # Corresponds to the JSON property `gameServerConfigName`
2123
+ # @return [String]
2124
+ attr_accessor :game_server_config_name
2125
+
2126
+ # The name of the Agones leet config or Agones scaling config used to derive
2127
+ # the Agones fleet or Agones autoscaler spec.
2128
+ # Corresponds to the JSON property `name`
2129
+ # @return [String]
2130
+ attr_accessor :name
2131
+
2132
+ def initialize(**args)
2133
+ update!(**args)
2134
+ end
2135
+
2136
+ # Update properties of this object
2137
+ def update!(**args)
2138
+ @game_server_config_name = args[:game_server_config_name] if args.key?(:game_server_config_name)
2139
+ @name = args[:name] if args.key?(:name)
2140
+ end
2141
+ end
2142
+
2143
+ # The `Status` type defines a logical error model that is suitable for
2144
+ # different programming environments, including REST APIs and RPC APIs. It is
2145
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
2146
+ # three pieces of data: error code, error message, and error details.
2147
+ # You can find out more about this error model and how to work with it in the
2148
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
2149
+ class Status
2150
+ include Google::Apis::Core::Hashable
2151
+
2152
+ # The status code, which should be an enum value of google.rpc.Code.
2153
+ # Corresponds to the JSON property `code`
2154
+ # @return [Fixnum]
2155
+ attr_accessor :code
2156
+
2157
+ # A list of messages that carry the error details. There is a common set of
2158
+ # message types for APIs to use.
2159
+ # Corresponds to the JSON property `details`
2160
+ # @return [Array<Hash<String,Object>>]
2161
+ attr_accessor :details
2162
+
2163
+ # A developer-facing error message, which should be in English. Any
2164
+ # user-facing error message should be localized and sent in the
2165
+ # google.rpc.Status.details field, or localized by the client.
2166
+ # Corresponds to the JSON property `message`
2167
+ # @return [String]
2168
+ attr_accessor :message
2169
+
2170
+ def initialize(**args)
2171
+ update!(**args)
2172
+ end
2173
+
2174
+ # Update properties of this object
2175
+ def update!(**args)
2176
+ @code = args[:code] if args.key?(:code)
2177
+ @details = args[:details] if args.key?(:details)
2178
+ @message = args[:message] if args.key?(:message)
2179
+ end
2180
+ end
2181
+
2182
+ # Details about the Agones resources.
2183
+ class TargetDetails
2184
+ include Google::Apis::Core::Hashable
2185
+
2186
+ # Agones fleet details for game server clusters and game server deployments.
2187
+ # Corresponds to the JSON property `fleetDetails`
2188
+ # @return [Array<Google::Apis::GameservicesV1::TargetFleetDetails>]
2189
+ attr_accessor :fleet_details
2190
+
2191
+ # The game server cluster name. Uses the form:
2192
+ # `projects/`project`/locations/`location`/realms/`realm`/gameServerClusters/`
2193
+ # cluster``.
2194
+ # Corresponds to the JSON property `gameServerClusterName`
2195
+ # @return [String]
2196
+ attr_accessor :game_server_cluster_name
2197
+
2198
+ # The game server deployment name. Uses the form:
2199
+ # `projects/`project`/locations/`location`/gameServerDeployments/`deployment_id``
2200
+ # .
2201
+ # Corresponds to the JSON property `gameServerDeploymentName`
2202
+ # @return [String]
2203
+ attr_accessor :game_server_deployment_name
2204
+
2205
+ def initialize(**args)
2206
+ update!(**args)
2207
+ end
2208
+
2209
+ # Update properties of this object
2210
+ def update!(**args)
2211
+ @fleet_details = args[:fleet_details] if args.key?(:fleet_details)
2212
+ @game_server_cluster_name = args[:game_server_cluster_name] if args.key?(:game_server_cluster_name)
2213
+ @game_server_deployment_name = args[:game_server_deployment_name] if args.key?(:game_server_deployment_name)
2214
+ end
2215
+ end
2216
+
2217
+ # Target Agones fleet specification.
2218
+ class TargetFleet
2219
+ include Google::Apis::Core::Hashable
2220
+
2221
+ # The name of the Agones fleet.
2222
+ # Corresponds to the JSON property `name`
2223
+ # @return [String]
2224
+ attr_accessor :name
2225
+
2226
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
2227
+ # Corresponds to the JSON property `specSource`
2228
+ # @return [Google::Apis::GameservicesV1::SpecSource]
2229
+ attr_accessor :spec_source
2230
+
2231
+ def initialize(**args)
2232
+ update!(**args)
2233
+ end
2234
+
2235
+ # Update properties of this object
2236
+ def update!(**args)
2237
+ @name = args[:name] if args.key?(:name)
2238
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
2239
+ end
2240
+ end
2241
+
2242
+ # Target Agones autoscaler policy reference.
2243
+ class TargetFleetAutoscaler
2244
+ include Google::Apis::Core::Hashable
2245
+
2246
+ # The name of the Agones autoscaler.
2247
+ # Corresponds to the JSON property `name`
2248
+ # @return [String]
2249
+ attr_accessor :name
2250
+
2251
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
2252
+ # Corresponds to the JSON property `specSource`
2253
+ # @return [Google::Apis::GameservicesV1::SpecSource]
2254
+ attr_accessor :spec_source
2255
+
2256
+ def initialize(**args)
2257
+ update!(**args)
2258
+ end
2259
+
2260
+ # Update properties of this object
2261
+ def update!(**args)
2262
+ @name = args[:name] if args.key?(:name)
2263
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
2264
+ end
2265
+ end
2266
+
2267
+ # Details of the target Agones fleet.
2268
+ class TargetFleetDetails
2269
+ include Google::Apis::Core::Hashable
2270
+
2271
+ # Target Agones autoscaler policy reference.
2272
+ # Corresponds to the JSON property `autoscaler`
2273
+ # @return [Google::Apis::GameservicesV1::TargetFleetAutoscaler]
2274
+ attr_accessor :autoscaler
2275
+
2276
+ # Target Agones fleet specification.
2277
+ # Corresponds to the JSON property `fleet`
2278
+ # @return [Google::Apis::GameservicesV1::TargetFleet]
2279
+ attr_accessor :fleet
2280
+
2281
+ def initialize(**args)
2282
+ update!(**args)
2283
+ end
2284
+
2285
+ # Update properties of this object
2286
+ def update!(**args)
2287
+ @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
2288
+ @fleet = args[:fleet] if args.key?(:fleet)
2289
+ end
2290
+ end
2291
+
2292
+ # Encapsulates the Target state.
2293
+ class TargetState
2294
+ include Google::Apis::Core::Hashable
2295
+
2296
+ # Details about Agones fleets.
2297
+ # Corresponds to the JSON property `details`
2298
+ # @return [Array<Google::Apis::GameservicesV1::TargetDetails>]
2299
+ attr_accessor :details
2300
+
2301
+ def initialize(**args)
2302
+ update!(**args)
2303
+ end
2304
+
2305
+ # Update properties of this object
2306
+ def update!(**args)
2307
+ @details = args[:details] if args.key?(:details)
2308
+ end
2309
+ end
2310
+
2311
+ # Request message for `TestIamPermissions` method.
2312
+ class TestIamPermissionsRequest
2313
+ include Google::Apis::Core::Hashable
2314
+
2315
+ # The set of permissions to check for the `resource`. Permissions with
2316
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
2317
+ # information see
2318
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
2319
+ # Corresponds to the JSON property `permissions`
2320
+ # @return [Array<String>]
2321
+ attr_accessor :permissions
2322
+
2323
+ def initialize(**args)
2324
+ update!(**args)
2325
+ end
2326
+
2327
+ # Update properties of this object
2328
+ def update!(**args)
2329
+ @permissions = args[:permissions] if args.key?(:permissions)
2330
+ end
2331
+ end
2332
+
2333
+ # Response message for `TestIamPermissions` method.
2334
+ class TestIamPermissionsResponse
2335
+ include Google::Apis::Core::Hashable
2336
+
2337
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
2338
+ # allowed.
2339
+ # Corresponds to the JSON property `permissions`
2340
+ # @return [Array<String>]
2341
+ attr_accessor :permissions
2342
+
2343
+ def initialize(**args)
2344
+ update!(**args)
2345
+ end
2346
+
2347
+ # Update properties of this object
2348
+ def update!(**args)
2349
+ @permissions = args[:permissions] if args.key?(:permissions)
2350
+ end
2351
+ end
2352
+ end
2353
+ end
2354
+ end