google-apis-gameservices_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6867328f5916475ee6f042b013b2007ddb8377a4c2249c22343ad6ea5328c211
4
+ data.tar.gz: 7df58a8174d9a79ee9de97a1fba833638cd61be7e1a1319c6a9e3eb623542bb7
5
+ SHA512:
6
+ metadata.gz: 190147d15cffadd20a550105834b5cdf45e7a4138d226a05dccd9e1bdc730b569f87c048c8db64dff2ad905f04266ad4f4aa9baf5a0ab37584d14fafd35cf7ff
7
+ data.tar.gz: e5a53f3ae053341e3309cf1423bef59b4e97ffe2e5610b5f8fae1ea16365cc4622437112569532978602ec1243c211139847ba6f79529be3a9658888fd8384cc
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-gameservices_v1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/gameservices_v1/*.rb
9
+ lib/google/apis/gameservices_v1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-gameservices_v1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201208
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1 of the Game Services API
2
+
3
+ This is a simple client library for version V1 of the Game Services API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/gameservices.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-gameservices_v1', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-gameservices_v1
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/gameservices_v1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::GameservicesV1::GameServicesService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Gameservices service in particular.)
67
+
68
+ For reference information on specific calls in the Game Services API, see the {Google::Apis::GameservicesV1::GameServicesService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-gameservices_v1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://cloud.google.com/solutions/gaming/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/apis/gameservices_v1"
@@ -0,0 +1,36 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
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
+ require 'google/apis/gameservices_v1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Game Services API
23
+ #
24
+ # Deploy and manage infrastructure for global multiplayer gaming experiences.
25
+ #
26
+ # @see https://cloud.google.com/solutions/gaming/
27
+ module GameservicesV1
28
+ # Version of the Game Services API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1'
31
+
32
+ # View and manage your data across Google Cloud Platform services
33
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,2182 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
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. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::GameservicesV1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ #
49
+ # Corresponds to the JSON property `exemptedMembers`
50
+ # @return [Array<String>]
51
+ attr_accessor :exempted_members
52
+
53
+ # Specifies a service that will be enabled for audit logging. For example, `
54
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
55
+ # value that covers all services.
56
+ # Corresponds to the JSON property `service`
57
+ # @return [String]
58
+ attr_accessor :service
59
+
60
+ def initialize(**args)
61
+ update!(**args)
62
+ end
63
+
64
+ # Update properties of this object
65
+ def update!(**args)
66
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
67
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
68
+ @service = args[:service] if args.key?(:service)
69
+ end
70
+ end
71
+
72
+ # Provides the configuration for logging a type of permissions. Example: ` "
73
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
74
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
75
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
76
+ # DATA_READ logging.
77
+ class AuditLogConfig
78
+ include Google::Apis::Core::Hashable
79
+
80
+ # Specifies the identities that do not cause logging for this type of permission.
81
+ # Follows the same format of Binding.members.
82
+ # Corresponds to the JSON property `exemptedMembers`
83
+ # @return [Array<String>]
84
+ attr_accessor :exempted_members
85
+
86
+ #
87
+ # Corresponds to the JSON property `ignoreChildExemptions`
88
+ # @return [Boolean]
89
+ attr_accessor :ignore_child_exemptions
90
+ alias_method :ignore_child_exemptions?, :ignore_child_exemptions
91
+
92
+ # The log type that this config enables.
93
+ # Corresponds to the JSON property `logType`
94
+ # @return [String]
95
+ attr_accessor :log_type
96
+
97
+ def initialize(**args)
98
+ update!(**args)
99
+ end
100
+
101
+ # Update properties of this object
102
+ def update!(**args)
103
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
104
+ @ignore_child_exemptions = args[:ignore_child_exemptions] if args.key?(:ignore_child_exemptions)
105
+ @log_type = args[:log_type] if args.key?(:log_type)
106
+ end
107
+ end
108
+
109
+ # Authorization-related information used by Cloud Audit Logging.
110
+ class AuthorizationLoggingOptions
111
+ include Google::Apis::Core::Hashable
112
+
113
+ # The type of the permission that was checked.
114
+ # Corresponds to the JSON property `permissionType`
115
+ # @return [String]
116
+ attr_accessor :permission_type
117
+
118
+ def initialize(**args)
119
+ update!(**args)
120
+ end
121
+
122
+ # Update properties of this object
123
+ def update!(**args)
124
+ @permission_type = args[:permission_type] if args.key?(:permission_type)
125
+ end
126
+ end
127
+
128
+ # Associates `members` with a `role`.
129
+ class Binding
130
+ include Google::Apis::Core::Hashable
131
+
132
+ #
133
+ # Corresponds to the JSON property `bindingId`
134
+ # @return [String]
135
+ attr_accessor :binding_id
136
+
137
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
138
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
139
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
140
+ # "Summary size limit" description: "Determines if a summary is less than 100
141
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
142
+ # Requestor is owner" description: "Determines if requestor is the document
143
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
144
+ # Logic): title: "Public documents" description: "Determine whether the document
145
+ # should be publicly visible" expression: "document.type != 'private' &&
146
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
147
+ # string" description: "Create a notification string with a timestamp."
148
+ # expression: "'New message received at ' + string(document.create_time)" The
149
+ # exact variables and functions that may be referenced within an expression are
150
+ # determined by the service that evaluates it. See the service documentation for
151
+ # additional information.
152
+ # Corresponds to the JSON property `condition`
153
+ # @return [Google::Apis::GameservicesV1::Expr]
154
+ attr_accessor :condition
155
+
156
+ # Specifies the identities requesting access for a Cloud Platform resource. `
157
+ # members` can have the following values: * `allUsers`: A special identifier
158
+ # that represents anyone who is on the internet; with or without a Google
159
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
160
+ # anyone who is authenticated with a Google account or a service account. * `
161
+ # user:`emailid``: An email address that represents a specific Google account.
162
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
163
+ # address that represents a service account. For example, `my-other-app@appspot.
164
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
165
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
166
+ # `uniqueid``: An email address (plus unique identifier) representing a user
167
+ # that has been recently deleted. For example, `alice@example.com?uid=
168
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
169
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
170
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
171
+ # identifier) representing a service account that has been recently deleted. For
172
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
173
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
174
+ # emailid`` and the undeleted service account retains the role in the binding. *
175
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
176
+ # identifier) representing a Google group that has been recently deleted. For
177
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
178
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
179
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
180
+ # primary) that represents all the users of that domain. For example, `google.
181
+ # com` or `example.com`.
182
+ # Corresponds to the JSON property `members`
183
+ # @return [Array<String>]
184
+ attr_accessor :members
185
+
186
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
187
+ # , or `roles/owner`.
188
+ # Corresponds to the JSON property `role`
189
+ # @return [String]
190
+ attr_accessor :role
191
+
192
+ def initialize(**args)
193
+ update!(**args)
194
+ end
195
+
196
+ # Update properties of this object
197
+ def update!(**args)
198
+ @binding_id = args[:binding_id] if args.key?(:binding_id)
199
+ @condition = args[:condition] if args.key?(:condition)
200
+ @members = args[:members] if args.key?(:members)
201
+ @role = args[:role] if args.key?(:role)
202
+ end
203
+ end
204
+
205
+ # The request message for Operations.CancelOperation.
206
+ class CancelOperationRequest
207
+ include Google::Apis::Core::Hashable
208
+
209
+ def initialize(**args)
210
+ update!(**args)
211
+ end
212
+
213
+ # Update properties of this object
214
+ def update!(**args)
215
+ end
216
+ end
217
+
218
+ # Write a Cloud Audit log
219
+ class CloudAuditOptions
220
+ include Google::Apis::Core::Hashable
221
+
222
+ # Authorization-related information used by Cloud Audit Logging.
223
+ # Corresponds to the JSON property `authorizationLoggingOptions`
224
+ # @return [Google::Apis::GameservicesV1::AuthorizationLoggingOptions]
225
+ attr_accessor :authorization_logging_options
226
+
227
+ # The log_name to populate in the Cloud Audit Record.
228
+ # Corresponds to the JSON property `logName`
229
+ # @return [String]
230
+ attr_accessor :log_name
231
+
232
+ def initialize(**args)
233
+ update!(**args)
234
+ end
235
+
236
+ # Update properties of this object
237
+ def update!(**args)
238
+ @authorization_logging_options = args[:authorization_logging_options] if args.key?(:authorization_logging_options)
239
+ @log_name = args[:log_name] if args.key?(:log_name)
240
+ end
241
+ end
242
+
243
+ # A condition to be met.
244
+ class Condition
245
+ include Google::Apis::Core::Hashable
246
+
247
+ # Trusted attributes supplied by the IAM system.
248
+ # Corresponds to the JSON property `iam`
249
+ # @return [String]
250
+ attr_accessor :iam
251
+
252
+ # An operator to apply the subject with.
253
+ # Corresponds to the JSON property `op`
254
+ # @return [String]
255
+ attr_accessor :op
256
+
257
+ # Trusted attributes discharged by the service.
258
+ # Corresponds to the JSON property `svc`
259
+ # @return [String]
260
+ attr_accessor :svc
261
+
262
+ # Trusted attributes supplied by any service that owns resources and uses the
263
+ # IAM system for access control.
264
+ # Corresponds to the JSON property `sys`
265
+ # @return [String]
266
+ attr_accessor :sys
267
+
268
+ # The objects of the condition.
269
+ # Corresponds to the JSON property `values`
270
+ # @return [Array<String>]
271
+ attr_accessor :values
272
+
273
+ def initialize(**args)
274
+ update!(**args)
275
+ end
276
+
277
+ # Update properties of this object
278
+ def update!(**args)
279
+ @iam = args[:iam] if args.key?(:iam)
280
+ @op = args[:op] if args.key?(:op)
281
+ @svc = args[:svc] if args.key?(:svc)
282
+ @sys = args[:sys] if args.key?(:sys)
283
+ @values = args[:values] if args.key?(:values)
284
+ end
285
+ end
286
+
287
+ # Increment a streamz counter with the specified metric and field names. Metric
288
+ # names should start with a '/', generally be lowercase-only, and end in "_count"
289
+ # . Field names should not contain an initial slash. The actual exported metric
290
+ # names will have "/iam/policy" prepended. Field names correspond to IAM request
291
+ # parameters and field values are their respective values. Supported field names:
292
+ # - "authority", which is "[token]" if IAMContext.token is present, otherwise
293
+ # the value of IAMContext.authority_selector if present, and otherwise a
294
+ # representation of IAMContext.principal; or - "iam_principal", a representation
295
+ # of IAMContext.principal even if a token or authority selector is present; or -
296
+ # "" (empty string), resulting in a counter with no fields. Examples: counter `
297
+ # metric: "/debug_access_count" field: "iam_principal" ` ==> increment counter /
298
+ # iam/policy/debug_access_count `iam_principal=[value of IAMContext.principal]`
299
+ class CounterOptions
300
+ include Google::Apis::Core::Hashable
301
+
302
+ # Custom fields.
303
+ # Corresponds to the JSON property `customFields`
304
+ # @return [Array<Google::Apis::GameservicesV1::CustomField>]
305
+ attr_accessor :custom_fields
306
+
307
+ # The field value to attribute.
308
+ # Corresponds to the JSON property `field`
309
+ # @return [String]
310
+ attr_accessor :field
311
+
312
+ # The metric to update.
313
+ # Corresponds to the JSON property `metric`
314
+ # @return [String]
315
+ attr_accessor :metric
316
+
317
+ def initialize(**args)
318
+ update!(**args)
319
+ end
320
+
321
+ # Update properties of this object
322
+ def update!(**args)
323
+ @custom_fields = args[:custom_fields] if args.key?(:custom_fields)
324
+ @field = args[:field] if args.key?(:field)
325
+ @metric = args[:metric] if args.key?(:metric)
326
+ end
327
+ end
328
+
329
+ # Custom fields. These can be used to create a counter with arbitrary field/
330
+ # value pairs. See: go/rpcsp-custom-fields.
331
+ class CustomField
332
+ include Google::Apis::Core::Hashable
333
+
334
+ # Name is the field name.
335
+ # Corresponds to the JSON property `name`
336
+ # @return [String]
337
+ attr_accessor :name
338
+
339
+ # Value is the field value. It is important that in contrast to the
340
+ # CounterOptions.field, the value here is a constant that is not derived from
341
+ # the IAMContext.
342
+ # Corresponds to the JSON property `value`
343
+ # @return [String]
344
+ attr_accessor :value
345
+
346
+ def initialize(**args)
347
+ update!(**args)
348
+ end
349
+
350
+ # Update properties of this object
351
+ def update!(**args)
352
+ @name = args[:name] if args.key?(:name)
353
+ @value = args[:value] if args.key?(:value)
354
+ end
355
+ end
356
+
357
+ # Write a Data Access (Gin) log
358
+ class DataAccessOptions
359
+ include Google::Apis::Core::Hashable
360
+
361
+ #
362
+ # Corresponds to the JSON property `logMode`
363
+ # @return [String]
364
+ attr_accessor :log_mode
365
+
366
+ def initialize(**args)
367
+ update!(**args)
368
+ end
369
+
370
+ # Update properties of this object
371
+ def update!(**args)
372
+ @log_mode = args[:log_mode] if args.key?(:log_mode)
373
+ end
374
+ end
375
+
376
+ # The game server cluster changes made by the game server deployment.
377
+ class DeployedClusterState
378
+ include Google::Apis::Core::Hashable
379
+
380
+ # The name of the cluster.
381
+ # Corresponds to the JSON property `cluster`
382
+ # @return [String]
383
+ attr_accessor :cluster
384
+
385
+ # The details about the Agones fleets and autoscalers created in the game server
386
+ # cluster.
387
+ # Corresponds to the JSON property `fleetDetails`
388
+ # @return [Array<Google::Apis::GameservicesV1::DeployedFleetDetails>]
389
+ attr_accessor :fleet_details
390
+
391
+ def initialize(**args)
392
+ update!(**args)
393
+ end
394
+
395
+ # Update properties of this object
396
+ def update!(**args)
397
+ @cluster = args[:cluster] if args.key?(:cluster)
398
+ @fleet_details = args[:fleet_details] if args.key?(:fleet_details)
399
+ end
400
+ end
401
+
402
+ # Agones fleet specification and details.
403
+ class DeployedFleet
404
+ include Google::Apis::Core::Hashable
405
+
406
+ # The name of the Agones fleet.
407
+ # Corresponds to the JSON property `fleet`
408
+ # @return [String]
409
+ attr_accessor :fleet
410
+
411
+ # The fleet spec retrieved from the Agones fleet.
412
+ # Corresponds to the JSON property `fleetSpec`
413
+ # @return [String]
414
+ attr_accessor :fleet_spec
415
+
416
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
417
+ # Corresponds to the JSON property `specSource`
418
+ # @return [Google::Apis::GameservicesV1::SpecSource]
419
+ attr_accessor :spec_source
420
+
421
+ # DeployedFleetStatus has details about the Agones fleets such as how many are
422
+ # running, how many allocated, and so on.
423
+ # Corresponds to the JSON property `status`
424
+ # @return [Google::Apis::GameservicesV1::DeployedFleetStatus]
425
+ attr_accessor :status
426
+
427
+ def initialize(**args)
428
+ update!(**args)
429
+ end
430
+
431
+ # Update properties of this object
432
+ def update!(**args)
433
+ @fleet = args[:fleet] if args.key?(:fleet)
434
+ @fleet_spec = args[:fleet_spec] if args.key?(:fleet_spec)
435
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
436
+ @status = args[:status] if args.key?(:status)
437
+ end
438
+ end
439
+
440
+ # Details about the Agones autoscaler.
441
+ class DeployedFleetAutoscaler
442
+ include Google::Apis::Core::Hashable
443
+
444
+ # The name of the Agones autoscaler.
445
+ # Corresponds to the JSON property `autoscaler`
446
+ # @return [String]
447
+ attr_accessor :autoscaler
448
+
449
+ # The autoscaler spec retrieved from Agones.
450
+ # Corresponds to the JSON property `fleetAutoscalerSpec`
451
+ # @return [String]
452
+ attr_accessor :fleet_autoscaler_spec
453
+
454
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
455
+ # Corresponds to the JSON property `specSource`
456
+ # @return [Google::Apis::GameservicesV1::SpecSource]
457
+ attr_accessor :spec_source
458
+
459
+ def initialize(**args)
460
+ update!(**args)
461
+ end
462
+
463
+ # Update properties of this object
464
+ def update!(**args)
465
+ @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
466
+ @fleet_autoscaler_spec = args[:fleet_autoscaler_spec] if args.key?(:fleet_autoscaler_spec)
467
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
468
+ end
469
+ end
470
+
471
+ # Details of the deployed Agones fleet.
472
+ class DeployedFleetDetails
473
+ include Google::Apis::Core::Hashable
474
+
475
+ # Details about the Agones autoscaler.
476
+ # Corresponds to the JSON property `deployedAutoscaler`
477
+ # @return [Google::Apis::GameservicesV1::DeployedFleetAutoscaler]
478
+ attr_accessor :deployed_autoscaler
479
+
480
+ # Agones fleet specification and details.
481
+ # Corresponds to the JSON property `deployedFleet`
482
+ # @return [Google::Apis::GameservicesV1::DeployedFleet]
483
+ attr_accessor :deployed_fleet
484
+
485
+ def initialize(**args)
486
+ update!(**args)
487
+ end
488
+
489
+ # Update properties of this object
490
+ def update!(**args)
491
+ @deployed_autoscaler = args[:deployed_autoscaler] if args.key?(:deployed_autoscaler)
492
+ @deployed_fleet = args[:deployed_fleet] if args.key?(:deployed_fleet)
493
+ end
494
+ end
495
+
496
+ # DeployedFleetStatus has details about the Agones fleets such as how many are
497
+ # running, how many allocated, and so on.
498
+ class DeployedFleetStatus
499
+ include Google::Apis::Core::Hashable
500
+
501
+ # The number of GameServer replicas in the ALLOCATED state in this fleet.
502
+ # Corresponds to the JSON property `allocatedReplicas`
503
+ # @return [Fixnum]
504
+ attr_accessor :allocated_replicas
505
+
506
+ # The number of GameServer replicas in the READY state in this fleet.
507
+ # Corresponds to the JSON property `readyReplicas`
508
+ # @return [Fixnum]
509
+ attr_accessor :ready_replicas
510
+
511
+ # The total number of current GameServer replicas in this fleet.
512
+ # Corresponds to the JSON property `replicas`
513
+ # @return [Fixnum]
514
+ attr_accessor :replicas
515
+
516
+ # The number of GameServer replicas in the RESERVED state in this fleet.
517
+ # Reserved instances won't be deleted on scale down, but won't cause an
518
+ # autoscaler to scale up.
519
+ # Corresponds to the JSON property `reservedReplicas`
520
+ # @return [Fixnum]
521
+ attr_accessor :reserved_replicas
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ @allocated_replicas = args[:allocated_replicas] if args.key?(:allocated_replicas)
530
+ @ready_replicas = args[:ready_replicas] if args.key?(:ready_replicas)
531
+ @replicas = args[:replicas] if args.key?(:replicas)
532
+ @reserved_replicas = args[:reserved_replicas] if args.key?(:reserved_replicas)
533
+ end
534
+ end
535
+
536
+ # A generic empty message that you can re-use to avoid defining duplicated empty
537
+ # messages in your APIs. A typical example is to use it as the request or the
538
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
539
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
540
+ # `Empty` is empty JSON object ````.
541
+ class Empty
542
+ include Google::Apis::Core::Hashable
543
+
544
+ def initialize(**args)
545
+ update!(**args)
546
+ end
547
+
548
+ # Update properties of this object
549
+ def update!(**args)
550
+ end
551
+ end
552
+
553
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
554
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
555
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
556
+ # "Summary size limit" description: "Determines if a summary is less than 100
557
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
558
+ # Requestor is owner" description: "Determines if requestor is the document
559
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
560
+ # Logic): title: "Public documents" description: "Determine whether the document
561
+ # should be publicly visible" expression: "document.type != 'private' &&
562
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
563
+ # string" description: "Create a notification string with a timestamp."
564
+ # expression: "'New message received at ' + string(document.create_time)" The
565
+ # exact variables and functions that may be referenced within an expression are
566
+ # determined by the service that evaluates it. See the service documentation for
567
+ # additional information.
568
+ class Expr
569
+ include Google::Apis::Core::Hashable
570
+
571
+ # Optional. Description of the expression. This is a longer text which describes
572
+ # the expression, e.g. when hovered over it in a UI.
573
+ # Corresponds to the JSON property `description`
574
+ # @return [String]
575
+ attr_accessor :description
576
+
577
+ # Textual representation of an expression in Common Expression Language syntax.
578
+ # Corresponds to the JSON property `expression`
579
+ # @return [String]
580
+ attr_accessor :expression
581
+
582
+ # Optional. String indicating the location of the expression for error reporting,
583
+ # e.g. a file name and a position in the file.
584
+ # Corresponds to the JSON property `location`
585
+ # @return [String]
586
+ attr_accessor :location
587
+
588
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
589
+ # This can be used e.g. in UIs which allow to enter the expression.
590
+ # Corresponds to the JSON property `title`
591
+ # @return [String]
592
+ attr_accessor :title
593
+
594
+ def initialize(**args)
595
+ update!(**args)
596
+ end
597
+
598
+ # Update properties of this object
599
+ def update!(**args)
600
+ @description = args[:description] if args.key?(:description)
601
+ @expression = args[:expression] if args.key?(:expression)
602
+ @location = args[:location] if args.key?(:location)
603
+ @title = args[:title] if args.key?(:title)
604
+ end
605
+ end
606
+
607
+ # Request message for GameServerDeploymentsService.FetchDeploymentState.
608
+ class FetchDeploymentStateRequest
609
+ include Google::Apis::Core::Hashable
610
+
611
+ def initialize(**args)
612
+ update!(**args)
613
+ end
614
+
615
+ # Update properties of this object
616
+ def update!(**args)
617
+ end
618
+ end
619
+
620
+ # Response message for GameServerDeploymentsService.FetchDeploymentState.
621
+ class FetchDeploymentStateResponse
622
+ include Google::Apis::Core::Hashable
623
+
624
+ # The state of the game server deployment in each game server cluster.
625
+ # Corresponds to the JSON property `clusterState`
626
+ # @return [Array<Google::Apis::GameservicesV1::DeployedClusterState>]
627
+ attr_accessor :cluster_state
628
+
629
+ # List of locations that could not be reached.
630
+ # Corresponds to the JSON property `unavailable`
631
+ # @return [Array<String>]
632
+ attr_accessor :unavailable
633
+
634
+ def initialize(**args)
635
+ update!(**args)
636
+ end
637
+
638
+ # Update properties of this object
639
+ def update!(**args)
640
+ @cluster_state = args[:cluster_state] if args.key?(:cluster_state)
641
+ @unavailable = args[:unavailable] if args.key?(:unavailable)
642
+ end
643
+ end
644
+
645
+ # Fleet configs for Agones.
646
+ class FleetConfig
647
+ include Google::Apis::Core::Hashable
648
+
649
+ # Agones fleet spec. Example spec: `https://agones.dev/site/docs/reference/fleet/
650
+ # `.
651
+ # Corresponds to the JSON property `fleetSpec`
652
+ # @return [String]
653
+ attr_accessor :fleet_spec
654
+
655
+ # The name of the FleetConfig.
656
+ # Corresponds to the JSON property `name`
657
+ # @return [String]
658
+ attr_accessor :name
659
+
660
+ def initialize(**args)
661
+ update!(**args)
662
+ end
663
+
664
+ # Update properties of this object
665
+ def update!(**args)
666
+ @fleet_spec = args[:fleet_spec] if args.key?(:fleet_spec)
667
+ @name = args[:name] if args.key?(:name)
668
+ end
669
+ end
670
+
671
+ # A game server cluster resource.
672
+ class GameServerCluster
673
+ include Google::Apis::Core::Hashable
674
+
675
+ # The game server cluster connection information.
676
+ # Corresponds to the JSON property `connectionInfo`
677
+ # @return [Google::Apis::GameservicesV1::GameServerClusterConnectionInfo]
678
+ attr_accessor :connection_info
679
+
680
+ # Output only. The creation time.
681
+ # Corresponds to the JSON property `createTime`
682
+ # @return [String]
683
+ attr_accessor :create_time
684
+
685
+ # Human readable description of the cluster.
686
+ # Corresponds to the JSON property `description`
687
+ # @return [String]
688
+ attr_accessor :description
689
+
690
+ # ETag of the resource.
691
+ # Corresponds to the JSON property `etag`
692
+ # @return [String]
693
+ attr_accessor :etag
694
+
695
+ # The labels associated with this game server cluster. Each label is a key-value
696
+ # pair.
697
+ # Corresponds to the JSON property `labels`
698
+ # @return [Hash<String,String>]
699
+ attr_accessor :labels
700
+
701
+ # Required. The resource name of the game server cluster, in the following form:
702
+ # `projects/`project`/locations/`location`/realms/`realm`/gameServerClusters/`
703
+ # cluster``. For example, `projects/my-project/locations/`location`/realms/
704
+ # zanzibar/gameServerClusters/my-onprem-cluster`.
705
+ # Corresponds to the JSON property `name`
706
+ # @return [String]
707
+ attr_accessor :name
708
+
709
+ # Output only. The last-modified time.
710
+ # Corresponds to the JSON property `updateTime`
711
+ # @return [String]
712
+ attr_accessor :update_time
713
+
714
+ def initialize(**args)
715
+ update!(**args)
716
+ end
717
+
718
+ # Update properties of this object
719
+ def update!(**args)
720
+ @connection_info = args[:connection_info] if args.key?(:connection_info)
721
+ @create_time = args[:create_time] if args.key?(:create_time)
722
+ @description = args[:description] if args.key?(:description)
723
+ @etag = args[:etag] if args.key?(:etag)
724
+ @labels = args[:labels] if args.key?(:labels)
725
+ @name = args[:name] if args.key?(:name)
726
+ @update_time = args[:update_time] if args.key?(:update_time)
727
+ end
728
+ end
729
+
730
+ # The game server cluster connection information.
731
+ class GameServerClusterConnectionInfo
732
+ include Google::Apis::Core::Hashable
733
+
734
+ # A reference to a GKE cluster.
735
+ # Corresponds to the JSON property `gkeClusterReference`
736
+ # @return [Google::Apis::GameservicesV1::GkeClusterReference]
737
+ attr_accessor :gke_cluster_reference
738
+
739
+ # Namespace designated on the game server cluster where the Agones game server
740
+ # instances will be created. Existence of the namespace will be validated during
741
+ # creation.
742
+ # Corresponds to the JSON property `namespace`
743
+ # @return [String]
744
+ attr_accessor :namespace
745
+
746
+ def initialize(**args)
747
+ update!(**args)
748
+ end
749
+
750
+ # Update properties of this object
751
+ def update!(**args)
752
+ @gke_cluster_reference = args[:gke_cluster_reference] if args.key?(:gke_cluster_reference)
753
+ @namespace = args[:namespace] if args.key?(:namespace)
754
+ end
755
+ end
756
+
757
+ # A game server config resource.
758
+ class GameServerConfig
759
+ include Google::Apis::Core::Hashable
760
+
761
+ # Output only. The creation time.
762
+ # Corresponds to the JSON property `createTime`
763
+ # @return [String]
764
+ attr_accessor :create_time
765
+
766
+ # The description of the game server config.
767
+ # Corresponds to the JSON property `description`
768
+ # @return [String]
769
+ attr_accessor :description
770
+
771
+ # FleetConfig contains a list of Agones fleet specs. Only one FleetConfig is
772
+ # allowed.
773
+ # Corresponds to the JSON property `fleetConfigs`
774
+ # @return [Array<Google::Apis::GameservicesV1::FleetConfig>]
775
+ attr_accessor :fleet_configs
776
+
777
+ # The labels associated with this game server config. Each label is a key-value
778
+ # pair.
779
+ # Corresponds to the JSON property `labels`
780
+ # @return [Hash<String,String>]
781
+ attr_accessor :labels
782
+
783
+ # The resource name of the game server config, in the following form: `projects/`
784
+ # project`/locations/`location`/gameServerDeployments/`deployment`/configs/`
785
+ # config``. For example, `projects/my-project/locations/global/
786
+ # gameServerDeployments/my-game/configs/my-config`.
787
+ # Corresponds to the JSON property `name`
788
+ # @return [String]
789
+ attr_accessor :name
790
+
791
+ # The autoscaling settings.
792
+ # Corresponds to the JSON property `scalingConfigs`
793
+ # @return [Array<Google::Apis::GameservicesV1::ScalingConfig>]
794
+ attr_accessor :scaling_configs
795
+
796
+ # Output only. The last-modified time.
797
+ # Corresponds to the JSON property `updateTime`
798
+ # @return [String]
799
+ attr_accessor :update_time
800
+
801
+ def initialize(**args)
802
+ update!(**args)
803
+ end
804
+
805
+ # Update properties of this object
806
+ def update!(**args)
807
+ @create_time = args[:create_time] if args.key?(:create_time)
808
+ @description = args[:description] if args.key?(:description)
809
+ @fleet_configs = args[:fleet_configs] if args.key?(:fleet_configs)
810
+ @labels = args[:labels] if args.key?(:labels)
811
+ @name = args[:name] if args.key?(:name)
812
+ @scaling_configs = args[:scaling_configs] if args.key?(:scaling_configs)
813
+ @update_time = args[:update_time] if args.key?(:update_time)
814
+ end
815
+ end
816
+
817
+ # A game server config override.
818
+ class GameServerConfigOverride
819
+ include Google::Apis::Core::Hashable
820
+
821
+ # The game server config for this override.
822
+ # Corresponds to the JSON property `configVersion`
823
+ # @return [String]
824
+ attr_accessor :config_version
825
+
826
+ # The realm selector, used to match realm resources.
827
+ # Corresponds to the JSON property `realmsSelector`
828
+ # @return [Google::Apis::GameservicesV1::RealmSelector]
829
+ attr_accessor :realms_selector
830
+
831
+ def initialize(**args)
832
+ update!(**args)
833
+ end
834
+
835
+ # Update properties of this object
836
+ def update!(**args)
837
+ @config_version = args[:config_version] if args.key?(:config_version)
838
+ @realms_selector = args[:realms_selector] if args.key?(:realms_selector)
839
+ end
840
+ end
841
+
842
+ # A game server deployment resource.
843
+ class GameServerDeployment
844
+ include Google::Apis::Core::Hashable
845
+
846
+ # Output only. The creation time.
847
+ # Corresponds to the JSON property `createTime`
848
+ # @return [String]
849
+ attr_accessor :create_time
850
+
851
+ # Human readable description of the game server delpoyment.
852
+ # Corresponds to the JSON property `description`
853
+ # @return [String]
854
+ attr_accessor :description
855
+
856
+ # ETag of the resource.
857
+ # Corresponds to the JSON property `etag`
858
+ # @return [String]
859
+ attr_accessor :etag
860
+
861
+ # The labels associated with this game server deployment. Each label is a key-
862
+ # value pair.
863
+ # Corresponds to the JSON property `labels`
864
+ # @return [Hash<String,String>]
865
+ attr_accessor :labels
866
+
867
+ # The resource name of the game server deployment, in the following form: `
868
+ # projects/`project`/locations/`location`/gameServerDeployments/`deployment``.
869
+ # For example, `projects/my-project/locations/global/gameServerDeployments/my-
870
+ # deployment`.
871
+ # Corresponds to the JSON property `name`
872
+ # @return [String]
873
+ attr_accessor :name
874
+
875
+ # Output only. The last-modified time.
876
+ # Corresponds to the JSON property `updateTime`
877
+ # @return [String]
878
+ attr_accessor :update_time
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @create_time = args[:create_time] if args.key?(:create_time)
887
+ @description = args[:description] if args.key?(:description)
888
+ @etag = args[:etag] if args.key?(:etag)
889
+ @labels = args[:labels] if args.key?(:labels)
890
+ @name = args[:name] if args.key?(:name)
891
+ @update_time = args[:update_time] if args.key?(:update_time)
892
+ end
893
+ end
894
+
895
+ # The game server deployment rollout which represents the desired rollout state.
896
+ class GameServerDeploymentRollout
897
+ include Google::Apis::Core::Hashable
898
+
899
+ # Output only. The creation time.
900
+ # Corresponds to the JSON property `createTime`
901
+ # @return [String]
902
+ attr_accessor :create_time
903
+
904
+ # The default game server config is applied to all realms unless overridden in
905
+ # the rollout. For example, `projects/my-project/locations/global/
906
+ # gameServerDeployments/my-game/configs/my-config`.
907
+ # Corresponds to the JSON property `defaultGameServerConfig`
908
+ # @return [String]
909
+ attr_accessor :default_game_server_config
910
+
911
+ # ETag of the resource.
912
+ # Corresponds to the JSON property `etag`
913
+ # @return [String]
914
+ attr_accessor :etag
915
+
916
+ # Contains the game server config rollout overrides. Overrides are processed in
917
+ # the order they are listed. Once a match is found for a realm, the rest of the
918
+ # list is not processed.
919
+ # Corresponds to the JSON property `gameServerConfigOverrides`
920
+ # @return [Array<Google::Apis::GameservicesV1::GameServerConfigOverride>]
921
+ attr_accessor :game_server_config_overrides
922
+
923
+ # The resource name of the game server deployment rollout, in the following form:
924
+ # `projects/`project`/locations/`location`/gameServerDeployments/`deployment`/
925
+ # rollout`. For example, `projects/my-project/locations/global/
926
+ # gameServerDeployments/my-deployment/rollout`.
927
+ # Corresponds to the JSON property `name`
928
+ # @return [String]
929
+ attr_accessor :name
930
+
931
+ # Output only. The last-modified time.
932
+ # Corresponds to the JSON property `updateTime`
933
+ # @return [String]
934
+ attr_accessor :update_time
935
+
936
+ def initialize(**args)
937
+ update!(**args)
938
+ end
939
+
940
+ # Update properties of this object
941
+ def update!(**args)
942
+ @create_time = args[:create_time] if args.key?(:create_time)
943
+ @default_game_server_config = args[:default_game_server_config] if args.key?(:default_game_server_config)
944
+ @etag = args[:etag] if args.key?(:etag)
945
+ @game_server_config_overrides = args[:game_server_config_overrides] if args.key?(:game_server_config_overrides)
946
+ @name = args[:name] if args.key?(:name)
947
+ @update_time = args[:update_time] if args.key?(:update_time)
948
+ end
949
+ end
950
+
951
+ # A reference to a GKE cluster.
952
+ class GkeClusterReference
953
+ include Google::Apis::Core::Hashable
954
+
955
+ # The full or partial name of a GKE cluster, using one of the following forms: *
956
+ # `projects/`project`/locations/`location`/clusters/`cluster`` * `locations/`
957
+ # location`/clusters/`cluster`` * ``cluster`` If project and location are not
958
+ # specified, the project and location of the GameServerCluster resource are used
959
+ # to generate the full name of the GKE cluster.
960
+ # Corresponds to the JSON property `cluster`
961
+ # @return [String]
962
+ attr_accessor :cluster
963
+
964
+ def initialize(**args)
965
+ update!(**args)
966
+ end
967
+
968
+ # Update properties of this object
969
+ def update!(**args)
970
+ @cluster = args[:cluster] if args.key?(:cluster)
971
+ end
972
+ end
973
+
974
+ # The label selector, used to group labels on the resources.
975
+ class LabelSelector
976
+ include Google::Apis::Core::Hashable
977
+
978
+ # Resource labels for this selector.
979
+ # Corresponds to the JSON property `labels`
980
+ # @return [Hash<String,String>]
981
+ attr_accessor :labels
982
+
983
+ def initialize(**args)
984
+ update!(**args)
985
+ end
986
+
987
+ # Update properties of this object
988
+ def update!(**args)
989
+ @labels = args[:labels] if args.key?(:labels)
990
+ end
991
+ end
992
+
993
+ # Response message for GameServerClustersService.ListGameServerClusters.
994
+ class ListGameServerClustersResponse
995
+ include Google::Apis::Core::Hashable
996
+
997
+ # The list of game server clusters.
998
+ # Corresponds to the JSON property `gameServerClusters`
999
+ # @return [Array<Google::Apis::GameservicesV1::GameServerCluster>]
1000
+ attr_accessor :game_server_clusters
1001
+
1002
+ # Token to retrieve the next page of results, or empty if there are no more
1003
+ # results in the list.
1004
+ # Corresponds to the JSON property `nextPageToken`
1005
+ # @return [String]
1006
+ attr_accessor :next_page_token
1007
+
1008
+ # List of locations that could not be reached.
1009
+ # Corresponds to the JSON property `unreachable`
1010
+ # @return [Array<String>]
1011
+ attr_accessor :unreachable
1012
+
1013
+ def initialize(**args)
1014
+ update!(**args)
1015
+ end
1016
+
1017
+ # Update properties of this object
1018
+ def update!(**args)
1019
+ @game_server_clusters = args[:game_server_clusters] if args.key?(:game_server_clusters)
1020
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1021
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1022
+ end
1023
+ end
1024
+
1025
+ # Response message for GameServerConfigsService.ListGameServerConfigs.
1026
+ class ListGameServerConfigsResponse
1027
+ include Google::Apis::Core::Hashable
1028
+
1029
+ # The list of game server configs.
1030
+ # Corresponds to the JSON property `gameServerConfigs`
1031
+ # @return [Array<Google::Apis::GameservicesV1::GameServerConfig>]
1032
+ attr_accessor :game_server_configs
1033
+
1034
+ # Token to retrieve the next page of results, or empty if there are no more
1035
+ # results in the list.
1036
+ # Corresponds to the JSON property `nextPageToken`
1037
+ # @return [String]
1038
+ attr_accessor :next_page_token
1039
+
1040
+ # List of locations that could not be reached.
1041
+ # Corresponds to the JSON property `unreachable`
1042
+ # @return [Array<String>]
1043
+ attr_accessor :unreachable
1044
+
1045
+ def initialize(**args)
1046
+ update!(**args)
1047
+ end
1048
+
1049
+ # Update properties of this object
1050
+ def update!(**args)
1051
+ @game_server_configs = args[:game_server_configs] if args.key?(:game_server_configs)
1052
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1053
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1054
+ end
1055
+ end
1056
+
1057
+ # Response message for GameServerDeploymentsService.ListGameServerDeployments.
1058
+ class ListGameServerDeploymentsResponse
1059
+ include Google::Apis::Core::Hashable
1060
+
1061
+ # The list of game server deployments.
1062
+ # Corresponds to the JSON property `gameServerDeployments`
1063
+ # @return [Array<Google::Apis::GameservicesV1::GameServerDeployment>]
1064
+ attr_accessor :game_server_deployments
1065
+
1066
+ # Token to retrieve the next page of results, or empty if there are no more
1067
+ # results in the list.
1068
+ # Corresponds to the JSON property `nextPageToken`
1069
+ # @return [String]
1070
+ attr_accessor :next_page_token
1071
+
1072
+ # List of locations that could not be reached.
1073
+ # Corresponds to the JSON property `unreachable`
1074
+ # @return [Array<String>]
1075
+ attr_accessor :unreachable
1076
+
1077
+ def initialize(**args)
1078
+ update!(**args)
1079
+ end
1080
+
1081
+ # Update properties of this object
1082
+ def update!(**args)
1083
+ @game_server_deployments = args[:game_server_deployments] if args.key?(:game_server_deployments)
1084
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1085
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1086
+ end
1087
+ end
1088
+
1089
+ # The response message for Locations.ListLocations.
1090
+ class ListLocationsResponse
1091
+ include Google::Apis::Core::Hashable
1092
+
1093
+ # A list of locations that matches the specified filter in the request.
1094
+ # Corresponds to the JSON property `locations`
1095
+ # @return [Array<Google::Apis::GameservicesV1::Location>]
1096
+ attr_accessor :locations
1097
+
1098
+ # The standard List next-page token.
1099
+ # Corresponds to the JSON property `nextPageToken`
1100
+ # @return [String]
1101
+ attr_accessor :next_page_token
1102
+
1103
+ def initialize(**args)
1104
+ update!(**args)
1105
+ end
1106
+
1107
+ # Update properties of this object
1108
+ def update!(**args)
1109
+ @locations = args[:locations] if args.key?(:locations)
1110
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1111
+ end
1112
+ end
1113
+
1114
+ # The response message for Operations.ListOperations.
1115
+ class ListOperationsResponse
1116
+ include Google::Apis::Core::Hashable
1117
+
1118
+ # The standard List next-page token.
1119
+ # Corresponds to the JSON property `nextPageToken`
1120
+ # @return [String]
1121
+ attr_accessor :next_page_token
1122
+
1123
+ # A list of operations that matches the specified filter in the request.
1124
+ # Corresponds to the JSON property `operations`
1125
+ # @return [Array<Google::Apis::GameservicesV1::Operation>]
1126
+ attr_accessor :operations
1127
+
1128
+ def initialize(**args)
1129
+ update!(**args)
1130
+ end
1131
+
1132
+ # Update properties of this object
1133
+ def update!(**args)
1134
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1135
+ @operations = args[:operations] if args.key?(:operations)
1136
+ end
1137
+ end
1138
+
1139
+ # Response message for RealmsService.ListRealms.
1140
+ class ListRealmsResponse
1141
+ include Google::Apis::Core::Hashable
1142
+
1143
+ # Token to retrieve the next page of results, or empty if there are no more
1144
+ # results in the list.
1145
+ # Corresponds to the JSON property `nextPageToken`
1146
+ # @return [String]
1147
+ attr_accessor :next_page_token
1148
+
1149
+ # The list of realms.
1150
+ # Corresponds to the JSON property `realms`
1151
+ # @return [Array<Google::Apis::GameservicesV1::Realm>]
1152
+ attr_accessor :realms
1153
+
1154
+ # List of locations that could not be reached.
1155
+ # Corresponds to the JSON property `unreachable`
1156
+ # @return [Array<String>]
1157
+ attr_accessor :unreachable
1158
+
1159
+ def initialize(**args)
1160
+ update!(**args)
1161
+ end
1162
+
1163
+ # Update properties of this object
1164
+ def update!(**args)
1165
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1166
+ @realms = args[:realms] if args.key?(:realms)
1167
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1168
+ end
1169
+ end
1170
+
1171
+ # A resource that represents Google Cloud Platform location.
1172
+ class Location
1173
+ include Google::Apis::Core::Hashable
1174
+
1175
+ # The friendly name for this location, typically a nearby city name. For example,
1176
+ # "Tokyo".
1177
+ # Corresponds to the JSON property `displayName`
1178
+ # @return [String]
1179
+ attr_accessor :display_name
1180
+
1181
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1182
+ # region": "us-east1"`
1183
+ # Corresponds to the JSON property `labels`
1184
+ # @return [Hash<String,String>]
1185
+ attr_accessor :labels
1186
+
1187
+ # The canonical id for this location. For example: `"us-east1"`.
1188
+ # Corresponds to the JSON property `locationId`
1189
+ # @return [String]
1190
+ attr_accessor :location_id
1191
+
1192
+ # Service-specific metadata. For example the available capacity at the given
1193
+ # location.
1194
+ # Corresponds to the JSON property `metadata`
1195
+ # @return [Hash<String,Object>]
1196
+ attr_accessor :metadata
1197
+
1198
+ # Resource name for the location, which may vary between implementations. For
1199
+ # example: `"projects/example-project/locations/us-east1"`
1200
+ # Corresponds to the JSON property `name`
1201
+ # @return [String]
1202
+ attr_accessor :name
1203
+
1204
+ def initialize(**args)
1205
+ update!(**args)
1206
+ end
1207
+
1208
+ # Update properties of this object
1209
+ def update!(**args)
1210
+ @display_name = args[:display_name] if args.key?(:display_name)
1211
+ @labels = args[:labels] if args.key?(:labels)
1212
+ @location_id = args[:location_id] if args.key?(:location_id)
1213
+ @metadata = args[:metadata] if args.key?(:metadata)
1214
+ @name = args[:name] if args.key?(:name)
1215
+ end
1216
+ end
1217
+
1218
+ # Specifies what kind of log the caller must write
1219
+ class LogConfig
1220
+ include Google::Apis::Core::Hashable
1221
+
1222
+ # Write a Cloud Audit log
1223
+ # Corresponds to the JSON property `cloudAudit`
1224
+ # @return [Google::Apis::GameservicesV1::CloudAuditOptions]
1225
+ attr_accessor :cloud_audit
1226
+
1227
+ # Increment a streamz counter with the specified metric and field names. Metric
1228
+ # names should start with a '/', generally be lowercase-only, and end in "_count"
1229
+ # . Field names should not contain an initial slash. The actual exported metric
1230
+ # names will have "/iam/policy" prepended. Field names correspond to IAM request
1231
+ # parameters and field values are their respective values. Supported field names:
1232
+ # - "authority", which is "[token]" if IAMContext.token is present, otherwise
1233
+ # the value of IAMContext.authority_selector if present, and otherwise a
1234
+ # representation of IAMContext.principal; or - "iam_principal", a representation
1235
+ # of IAMContext.principal even if a token or authority selector is present; or -
1236
+ # "" (empty string), resulting in a counter with no fields. Examples: counter `
1237
+ # metric: "/debug_access_count" field: "iam_principal" ` ==> increment counter /
1238
+ # iam/policy/debug_access_count `iam_principal=[value of IAMContext.principal]`
1239
+ # Corresponds to the JSON property `counter`
1240
+ # @return [Google::Apis::GameservicesV1::CounterOptions]
1241
+ attr_accessor :counter
1242
+
1243
+ # Write a Data Access (Gin) log
1244
+ # Corresponds to the JSON property `dataAccess`
1245
+ # @return [Google::Apis::GameservicesV1::DataAccessOptions]
1246
+ attr_accessor :data_access
1247
+
1248
+ def initialize(**args)
1249
+ update!(**args)
1250
+ end
1251
+
1252
+ # Update properties of this object
1253
+ def update!(**args)
1254
+ @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
1255
+ @counter = args[:counter] if args.key?(:counter)
1256
+ @data_access = args[:data_access] if args.key?(:data_access)
1257
+ end
1258
+ end
1259
+
1260
+ # This resource represents a long-running operation that is the result of a
1261
+ # network API call.
1262
+ class Operation
1263
+ include Google::Apis::Core::Hashable
1264
+
1265
+ # If the value is `false`, it means the operation is still in progress. If `true`
1266
+ # , the operation is completed, and either `error` or `response` is available.
1267
+ # Corresponds to the JSON property `done`
1268
+ # @return [Boolean]
1269
+ attr_accessor :done
1270
+ alias_method :done?, :done
1271
+
1272
+ # The `Status` type defines a logical error model that is suitable for different
1273
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1274
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1275
+ # data: error code, error message, and error details. You can find out more
1276
+ # about this error model and how to work with it in the [API Design Guide](https:
1277
+ # //cloud.google.com/apis/design/errors).
1278
+ # Corresponds to the JSON property `error`
1279
+ # @return [Google::Apis::GameservicesV1::Status]
1280
+ attr_accessor :error
1281
+
1282
+ # Service-specific metadata associated with the operation. It typically contains
1283
+ # progress information and common metadata such as create time. Some services
1284
+ # might not provide such metadata. Any method that returns a long-running
1285
+ # operation should document the metadata type, if any.
1286
+ # Corresponds to the JSON property `metadata`
1287
+ # @return [Hash<String,Object>]
1288
+ attr_accessor :metadata
1289
+
1290
+ # The server-assigned name, which is only unique within the same service that
1291
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1292
+ # be a resource name ending with `operations/`unique_id``.
1293
+ # Corresponds to the JSON property `name`
1294
+ # @return [String]
1295
+ attr_accessor :name
1296
+
1297
+ # The normal response of the operation in case of success. If the original
1298
+ # method returns no data on success, such as `Delete`, the response is `google.
1299
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1300
+ # the response should be the resource. For other methods, the response should
1301
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1302
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1303
+ # response type is `TakeSnapshotResponse`.
1304
+ # Corresponds to the JSON property `response`
1305
+ # @return [Hash<String,Object>]
1306
+ attr_accessor :response
1307
+
1308
+ def initialize(**args)
1309
+ update!(**args)
1310
+ end
1311
+
1312
+ # Update properties of this object
1313
+ def update!(**args)
1314
+ @done = args[:done] if args.key?(:done)
1315
+ @error = args[:error] if args.key?(:error)
1316
+ @metadata = args[:metadata] if args.key?(:metadata)
1317
+ @name = args[:name] if args.key?(:name)
1318
+ @response = args[:response] if args.key?(:response)
1319
+ end
1320
+ end
1321
+
1322
+ # Represents the metadata of the long-running operation.
1323
+ class OperationMetadata
1324
+ include Google::Apis::Core::Hashable
1325
+
1326
+ # Output only. API version used to start the operation.
1327
+ # Corresponds to the JSON property `apiVersion`
1328
+ # @return [String]
1329
+ attr_accessor :api_version
1330
+
1331
+ # Output only. The time the operation was created.
1332
+ # Corresponds to the JSON property `createTime`
1333
+ # @return [String]
1334
+ attr_accessor :create_time
1335
+
1336
+ # Output only. The time the operation finished running.
1337
+ # Corresponds to the JSON property `endTime`
1338
+ # @return [String]
1339
+ attr_accessor :end_time
1340
+
1341
+ # Output only. Operation status for Game Services API operations. Operation
1342
+ # status is in the form of key-value pairs where keys are resource IDs and the
1343
+ # values show the status of the operation. In case of failures, the value
1344
+ # includes an error code and error message.
1345
+ # Corresponds to the JSON property `operationStatus`
1346
+ # @return [Hash<String,Google::Apis::GameservicesV1::OperationStatus>]
1347
+ attr_accessor :operation_status
1348
+
1349
+ # Output only. Identifies whether the user has requested cancellation of the
1350
+ # operation. Operations that have successfully been cancelled have Operation.
1351
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1352
+ # CANCELLED`.
1353
+ # Corresponds to the JSON property `requestedCancellation`
1354
+ # @return [Boolean]
1355
+ attr_accessor :requested_cancellation
1356
+ alias_method :requested_cancellation?, :requested_cancellation
1357
+
1358
+ # Output only. Human-readable status of the operation, if any.
1359
+ # Corresponds to the JSON property `statusMessage`
1360
+ # @return [String]
1361
+ attr_accessor :status_message
1362
+
1363
+ # Output only. Server-defined resource path for the target of the operation.
1364
+ # Corresponds to the JSON property `target`
1365
+ # @return [String]
1366
+ attr_accessor :target
1367
+
1368
+ # Output only. List of Locations that could not be reached.
1369
+ # Corresponds to the JSON property `unreachable`
1370
+ # @return [Array<String>]
1371
+ attr_accessor :unreachable
1372
+
1373
+ # Output only. Name of the verb executed by the operation.
1374
+ # Corresponds to the JSON property `verb`
1375
+ # @return [String]
1376
+ attr_accessor :verb
1377
+
1378
+ def initialize(**args)
1379
+ update!(**args)
1380
+ end
1381
+
1382
+ # Update properties of this object
1383
+ def update!(**args)
1384
+ @api_version = args[:api_version] if args.key?(:api_version)
1385
+ @create_time = args[:create_time] if args.key?(:create_time)
1386
+ @end_time = args[:end_time] if args.key?(:end_time)
1387
+ @operation_status = args[:operation_status] if args.key?(:operation_status)
1388
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1389
+ @status_message = args[:status_message] if args.key?(:status_message)
1390
+ @target = args[:target] if args.key?(:target)
1391
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1392
+ @verb = args[:verb] if args.key?(:verb)
1393
+ end
1394
+ end
1395
+
1396
+ #
1397
+ class OperationStatus
1398
+ include Google::Apis::Core::Hashable
1399
+
1400
+ # Output only. Whether the operation is done or still in progress.
1401
+ # Corresponds to the JSON property `done`
1402
+ # @return [Boolean]
1403
+ attr_accessor :done
1404
+ alias_method :done?, :done
1405
+
1406
+ # The error code in case of failures.
1407
+ # Corresponds to the JSON property `errorCode`
1408
+ # @return [String]
1409
+ attr_accessor :error_code
1410
+
1411
+ # The human-readable error message.
1412
+ # Corresponds to the JSON property `errorMessage`
1413
+ # @return [String]
1414
+ attr_accessor :error_message
1415
+
1416
+ def initialize(**args)
1417
+ update!(**args)
1418
+ end
1419
+
1420
+ # Update properties of this object
1421
+ def update!(**args)
1422
+ @done = args[:done] if args.key?(:done)
1423
+ @error_code = args[:error_code] if args.key?(:error_code)
1424
+ @error_message = args[:error_message] if args.key?(:error_message)
1425
+ end
1426
+ end
1427
+
1428
+ # An Identity and Access Management (IAM) policy, which specifies access
1429
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1430
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1431
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1432
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1433
+ # role or a user-created custom role. For some types of Google Cloud resources,
1434
+ # a `binding` can also specify a `condition`, which is a logical expression that
1435
+ # allows access to a resource only if the expression evaluates to `true`. A
1436
+ # condition can add constraints based on attributes of the request, the resource,
1437
+ # or both. To learn which resources support conditions in their IAM policies,
1438
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1439
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1440
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1441
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1442
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1443
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1444
+ # title": "expirable access", "description": "Does not grant access after Sep
1445
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1446
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1447
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1448
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1449
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1450
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1451
+ # description: Does not grant access after Sep 2020 expression: request.time <
1452
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1453
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1454
+ # google.com/iam/docs/).
1455
+ class Policy
1456
+ include Google::Apis::Core::Hashable
1457
+
1458
+ # Specifies cloud audit logging configuration for this policy.
1459
+ # Corresponds to the JSON property `auditConfigs`
1460
+ # @return [Array<Google::Apis::GameservicesV1::AuditConfig>]
1461
+ attr_accessor :audit_configs
1462
+
1463
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
1464
+ # condition` that determines how and when the `bindings` are applied. Each of
1465
+ # the `bindings` must contain at least one member.
1466
+ # Corresponds to the JSON property `bindings`
1467
+ # @return [Array<Google::Apis::GameservicesV1::Binding>]
1468
+ attr_accessor :bindings
1469
+
1470
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1471
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1472
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1473
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1474
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1475
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1476
+ # applied to the same version of the policy. **Important:** If you use IAM
1477
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1478
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1479
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1480
+ # are lost.
1481
+ # Corresponds to the JSON property `etag`
1482
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1483
+ # @return [String]
1484
+ attr_accessor :etag
1485
+
1486
+ #
1487
+ # Corresponds to the JSON property `iamOwned`
1488
+ # @return [Boolean]
1489
+ attr_accessor :iam_owned
1490
+ alias_method :iam_owned?, :iam_owned
1491
+
1492
+ # If more than one rule is specified, the rules are applied in the following
1493
+ # manner: - All matching LOG rules are always applied. - If any DENY/
1494
+ # DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if
1495
+ # one or more matching rule requires logging. - Otherwise, if any ALLOW/
1496
+ # ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if
1497
+ # one or more matching rule requires logging. - Otherwise, if no rule applies,
1498
+ # permission is denied.
1499
+ # Corresponds to the JSON property `rules`
1500
+ # @return [Array<Google::Apis::GameservicesV1::Rule>]
1501
+ attr_accessor :rules
1502
+
1503
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1504
+ # Requests that specify an invalid value are rejected. Any operation that
1505
+ # affects conditional role bindings must specify version `3`. This requirement
1506
+ # applies to the following operations: * Getting a policy that includes a
1507
+ # conditional role binding * Adding a conditional role binding to a policy *
1508
+ # Changing a conditional role binding in a policy * Removing any role binding,
1509
+ # with or without a condition, from a policy that includes conditions **
1510
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1511
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1512
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1513
+ # conditions in the version `3` policy are lost. If a policy does not include
1514
+ # any conditions, operations on that policy may specify any valid version or
1515
+ # leave the field unset. To learn which resources support conditions in their
1516
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1517
+ # conditions/resource-policies).
1518
+ # Corresponds to the JSON property `version`
1519
+ # @return [Fixnum]
1520
+ attr_accessor :version
1521
+
1522
+ def initialize(**args)
1523
+ update!(**args)
1524
+ end
1525
+
1526
+ # Update properties of this object
1527
+ def update!(**args)
1528
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1529
+ @bindings = args[:bindings] if args.key?(:bindings)
1530
+ @etag = args[:etag] if args.key?(:etag)
1531
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
1532
+ @rules = args[:rules] if args.key?(:rules)
1533
+ @version = args[:version] if args.key?(:version)
1534
+ end
1535
+ end
1536
+
1537
+ # Response message for GameServerClustersService.PreviewCreateGameServerCluster.
1538
+ class PreviewCreateGameServerClusterResponse
1539
+ include Google::Apis::Core::Hashable
1540
+
1541
+ # The ETag of the game server cluster.
1542
+ # Corresponds to the JSON property `etag`
1543
+ # @return [String]
1544
+ attr_accessor :etag
1545
+
1546
+ # Encapsulates the Target state.
1547
+ # Corresponds to the JSON property `targetState`
1548
+ # @return [Google::Apis::GameservicesV1::TargetState]
1549
+ attr_accessor :target_state
1550
+
1551
+ def initialize(**args)
1552
+ update!(**args)
1553
+ end
1554
+
1555
+ # Update properties of this object
1556
+ def update!(**args)
1557
+ @etag = args[:etag] if args.key?(:etag)
1558
+ @target_state = args[:target_state] if args.key?(:target_state)
1559
+ end
1560
+ end
1561
+
1562
+ # Response message for GameServerClustersService.PreviewDeleteGameServerCluster.
1563
+ class PreviewDeleteGameServerClusterResponse
1564
+ include Google::Apis::Core::Hashable
1565
+
1566
+ # The ETag of the game server cluster.
1567
+ # Corresponds to the JSON property `etag`
1568
+ # @return [String]
1569
+ attr_accessor :etag
1570
+
1571
+ # Encapsulates the Target state.
1572
+ # Corresponds to the JSON property `targetState`
1573
+ # @return [Google::Apis::GameservicesV1::TargetState]
1574
+ attr_accessor :target_state
1575
+
1576
+ def initialize(**args)
1577
+ update!(**args)
1578
+ end
1579
+
1580
+ # Update properties of this object
1581
+ def update!(**args)
1582
+ @etag = args[:etag] if args.key?(:etag)
1583
+ @target_state = args[:target_state] if args.key?(:target_state)
1584
+ end
1585
+ end
1586
+
1587
+ # Response message for PreviewGameServerDeploymentRollout. This has details
1588
+ # about the Agones fleet and autoscaler to be actuated.
1589
+ class PreviewGameServerDeploymentRolloutResponse
1590
+ include Google::Apis::Core::Hashable
1591
+
1592
+ # ETag of the game server deployment.
1593
+ # Corresponds to the JSON property `etag`
1594
+ # @return [String]
1595
+ attr_accessor :etag
1596
+
1597
+ # Encapsulates the Target state.
1598
+ # Corresponds to the JSON property `targetState`
1599
+ # @return [Google::Apis::GameservicesV1::TargetState]
1600
+ attr_accessor :target_state
1601
+
1602
+ # Locations that could not be reached on this request.
1603
+ # Corresponds to the JSON property `unavailable`
1604
+ # @return [Array<String>]
1605
+ attr_accessor :unavailable
1606
+
1607
+ def initialize(**args)
1608
+ update!(**args)
1609
+ end
1610
+
1611
+ # Update properties of this object
1612
+ def update!(**args)
1613
+ @etag = args[:etag] if args.key?(:etag)
1614
+ @target_state = args[:target_state] if args.key?(:target_state)
1615
+ @unavailable = args[:unavailable] if args.key?(:unavailable)
1616
+ end
1617
+ end
1618
+
1619
+ # Response message for RealmsService.PreviewRealmUpdate.
1620
+ class PreviewRealmUpdateResponse
1621
+ include Google::Apis::Core::Hashable
1622
+
1623
+ # ETag of the realm.
1624
+ # Corresponds to the JSON property `etag`
1625
+ # @return [String]
1626
+ attr_accessor :etag
1627
+
1628
+ # Encapsulates the Target state.
1629
+ # Corresponds to the JSON property `targetState`
1630
+ # @return [Google::Apis::GameservicesV1::TargetState]
1631
+ attr_accessor :target_state
1632
+
1633
+ def initialize(**args)
1634
+ update!(**args)
1635
+ end
1636
+
1637
+ # Update properties of this object
1638
+ def update!(**args)
1639
+ @etag = args[:etag] if args.key?(:etag)
1640
+ @target_state = args[:target_state] if args.key?(:target_state)
1641
+ end
1642
+ end
1643
+
1644
+ # Response message for GameServerClustersService.PreviewUpdateGameServerCluster
1645
+ class PreviewUpdateGameServerClusterResponse
1646
+ include Google::Apis::Core::Hashable
1647
+
1648
+ # The ETag of the game server cluster.
1649
+ # Corresponds to the JSON property `etag`
1650
+ # @return [String]
1651
+ attr_accessor :etag
1652
+
1653
+ # Encapsulates the Target state.
1654
+ # Corresponds to the JSON property `targetState`
1655
+ # @return [Google::Apis::GameservicesV1::TargetState]
1656
+ attr_accessor :target_state
1657
+
1658
+ def initialize(**args)
1659
+ update!(**args)
1660
+ end
1661
+
1662
+ # Update properties of this object
1663
+ def update!(**args)
1664
+ @etag = args[:etag] if args.key?(:etag)
1665
+ @target_state = args[:target_state] if args.key?(:target_state)
1666
+ end
1667
+ end
1668
+
1669
+ # A realm resource.
1670
+ class Realm
1671
+ include Google::Apis::Core::Hashable
1672
+
1673
+ # Output only. The creation time.
1674
+ # Corresponds to the JSON property `createTime`
1675
+ # @return [String]
1676
+ attr_accessor :create_time
1677
+
1678
+ # Human readable description of the realm.
1679
+ # Corresponds to the JSON property `description`
1680
+ # @return [String]
1681
+ attr_accessor :description
1682
+
1683
+ # ETag of the resource.
1684
+ # Corresponds to the JSON property `etag`
1685
+ # @return [String]
1686
+ attr_accessor :etag
1687
+
1688
+ # The labels associated with this realm. Each label is a key-value pair.
1689
+ # Corresponds to the JSON property `labels`
1690
+ # @return [Hash<String,String>]
1691
+ attr_accessor :labels
1692
+
1693
+ # The resource name of the realm, in the following form: `projects/`project`/
1694
+ # locations/`location`/realms/`realm``. For example, `projects/my-project/
1695
+ # locations/`location`/realms/my-realm`.
1696
+ # Corresponds to the JSON property `name`
1697
+ # @return [String]
1698
+ attr_accessor :name
1699
+
1700
+ # Required. Time zone where all policies targeting this realm are evaluated. The
1701
+ # value of this field must be from the IANA time zone database: https://www.iana.
1702
+ # org/time-zones.
1703
+ # Corresponds to the JSON property `timeZone`
1704
+ # @return [String]
1705
+ attr_accessor :time_zone
1706
+
1707
+ # Output only. The last-modified time.
1708
+ # Corresponds to the JSON property `updateTime`
1709
+ # @return [String]
1710
+ attr_accessor :update_time
1711
+
1712
+ def initialize(**args)
1713
+ update!(**args)
1714
+ end
1715
+
1716
+ # Update properties of this object
1717
+ def update!(**args)
1718
+ @create_time = args[:create_time] if args.key?(:create_time)
1719
+ @description = args[:description] if args.key?(:description)
1720
+ @etag = args[:etag] if args.key?(:etag)
1721
+ @labels = args[:labels] if args.key?(:labels)
1722
+ @name = args[:name] if args.key?(:name)
1723
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1724
+ @update_time = args[:update_time] if args.key?(:update_time)
1725
+ end
1726
+ end
1727
+
1728
+ # The realm selector, used to match realm resources.
1729
+ class RealmSelector
1730
+ include Google::Apis::Core::Hashable
1731
+
1732
+ # List of realms to match.
1733
+ # Corresponds to the JSON property `realms`
1734
+ # @return [Array<String>]
1735
+ attr_accessor :realms
1736
+
1737
+ def initialize(**args)
1738
+ update!(**args)
1739
+ end
1740
+
1741
+ # Update properties of this object
1742
+ def update!(**args)
1743
+ @realms = args[:realms] if args.key?(:realms)
1744
+ end
1745
+ end
1746
+
1747
+ # A rule to be applied in a Policy.
1748
+ class Rule
1749
+ include Google::Apis::Core::Hashable
1750
+
1751
+ # Required
1752
+ # Corresponds to the JSON property `action`
1753
+ # @return [String]
1754
+ attr_accessor :action
1755
+
1756
+ # Additional restrictions that must be met. All conditions must pass for the
1757
+ # rule to match.
1758
+ # Corresponds to the JSON property `conditions`
1759
+ # @return [Array<Google::Apis::GameservicesV1::Condition>]
1760
+ attr_accessor :conditions
1761
+
1762
+ # Human-readable description of the rule.
1763
+ # Corresponds to the JSON property `description`
1764
+ # @return [String]
1765
+ attr_accessor :description
1766
+
1767
+ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/
1768
+ # AUTHORITY_SELECTOR is in at least one of these entries.
1769
+ # Corresponds to the JSON property `in`
1770
+ # @return [Array<String>]
1771
+ attr_accessor :in
1772
+
1773
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
1774
+ # that match the LOG action.
1775
+ # Corresponds to the JSON property `logConfig`
1776
+ # @return [Array<Google::Apis::GameservicesV1::LogConfig>]
1777
+ attr_accessor :log_config
1778
+
1779
+ # If one or more 'not_in' clauses are specified, the rule matches if the
1780
+ # PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. The format for in and
1781
+ # not_in entries can be found at in the Local IAM documentation (see go/local-
1782
+ # iam#features).
1783
+ # Corresponds to the JSON property `notIn`
1784
+ # @return [Array<String>]
1785
+ attr_accessor :not_in
1786
+
1787
+ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value
1788
+ # of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.
1789
+ # *') matches all verbs.
1790
+ # Corresponds to the JSON property `permissions`
1791
+ # @return [Array<String>]
1792
+ attr_accessor :permissions
1793
+
1794
+ def initialize(**args)
1795
+ update!(**args)
1796
+ end
1797
+
1798
+ # Update properties of this object
1799
+ def update!(**args)
1800
+ @action = args[:action] if args.key?(:action)
1801
+ @conditions = args[:conditions] if args.key?(:conditions)
1802
+ @description = args[:description] if args.key?(:description)
1803
+ @in = args[:in] if args.key?(:in)
1804
+ @log_config = args[:log_config] if args.key?(:log_config)
1805
+ @not_in = args[:not_in] if args.key?(:not_in)
1806
+ @permissions = args[:permissions] if args.key?(:permissions)
1807
+ end
1808
+ end
1809
+
1810
+ # Autoscaling config for an Agones fleet.
1811
+ class ScalingConfig
1812
+ include Google::Apis::Core::Hashable
1813
+
1814
+ # Required. Agones fleet autoscaler spec. Example spec: https://agones.dev/site/
1815
+ # docs/reference/fleetautoscaler/
1816
+ # Corresponds to the JSON property `fleetAutoscalerSpec`
1817
+ # @return [String]
1818
+ attr_accessor :fleet_autoscaler_spec
1819
+
1820
+ # Required. The name of the Scaling Config
1821
+ # Corresponds to the JSON property `name`
1822
+ # @return [String]
1823
+ attr_accessor :name
1824
+
1825
+ # The schedules to which this Scaling Config applies.
1826
+ # Corresponds to the JSON property `schedules`
1827
+ # @return [Array<Google::Apis::GameservicesV1::Schedule>]
1828
+ attr_accessor :schedules
1829
+
1830
+ # Labels used to identify the game server clusters to which this Agones scaling
1831
+ # config applies. A game server cluster is subject to this Agones scaling config
1832
+ # if its labels match any of the selector entries.
1833
+ # Corresponds to the JSON property `selectors`
1834
+ # @return [Array<Google::Apis::GameservicesV1::LabelSelector>]
1835
+ attr_accessor :selectors
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @fleet_autoscaler_spec = args[:fleet_autoscaler_spec] if args.key?(:fleet_autoscaler_spec)
1844
+ @name = args[:name] if args.key?(:name)
1845
+ @schedules = args[:schedules] if args.key?(:schedules)
1846
+ @selectors = args[:selectors] if args.key?(:selectors)
1847
+ end
1848
+ end
1849
+
1850
+ # The schedule of a recurring or one time event. The event's time span is
1851
+ # specified by start_time and end_time. If the scheduled event's timespan is
1852
+ # larger than the cron_spec + cron_job_duration, the event will be recurring. If
1853
+ # only cron_spec + cron_job_duration are specified, the event is effective
1854
+ # starting at the local time specified by cron_spec, and is recurring.
1855
+ # start_time|-------[cron job]-------[cron job]-------[cron job]---|end_time
1856
+ # cron job: cron spec start time + duration
1857
+ class Schedule
1858
+ include Google::Apis::Core::Hashable
1859
+
1860
+ # The duration for the cron job event. The duration of the event is effective
1861
+ # after the cron job's start time.
1862
+ # Corresponds to the JSON property `cronJobDuration`
1863
+ # @return [String]
1864
+ attr_accessor :cron_job_duration
1865
+
1866
+ # The cron definition of the scheduled event. See https://en.wikipedia.org/wiki/
1867
+ # Cron. Cron spec specifies the local time as defined by the realm.
1868
+ # Corresponds to the JSON property `cronSpec`
1869
+ # @return [String]
1870
+ attr_accessor :cron_spec
1871
+
1872
+ # The end time of the event.
1873
+ # Corresponds to the JSON property `endTime`
1874
+ # @return [String]
1875
+ attr_accessor :end_time
1876
+
1877
+ # The start time of the event.
1878
+ # Corresponds to the JSON property `startTime`
1879
+ # @return [String]
1880
+ attr_accessor :start_time
1881
+
1882
+ def initialize(**args)
1883
+ update!(**args)
1884
+ end
1885
+
1886
+ # Update properties of this object
1887
+ def update!(**args)
1888
+ @cron_job_duration = args[:cron_job_duration] if args.key?(:cron_job_duration)
1889
+ @cron_spec = args[:cron_spec] if args.key?(:cron_spec)
1890
+ @end_time = args[:end_time] if args.key?(:end_time)
1891
+ @start_time = args[:start_time] if args.key?(:start_time)
1892
+ end
1893
+ end
1894
+
1895
+ # Request message for `SetIamPolicy` method.
1896
+ class SetIamPolicyRequest
1897
+ include Google::Apis::Core::Hashable
1898
+
1899
+ # An Identity and Access Management (IAM) policy, which specifies access
1900
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1901
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1902
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1903
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1904
+ # role or a user-created custom role. For some types of Google Cloud resources,
1905
+ # a `binding` can also specify a `condition`, which is a logical expression that
1906
+ # allows access to a resource only if the expression evaluates to `true`. A
1907
+ # condition can add constraints based on attributes of the request, the resource,
1908
+ # or both. To learn which resources support conditions in their IAM policies,
1909
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1910
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1911
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1912
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1913
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1914
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1915
+ # title": "expirable access", "description": "Does not grant access after Sep
1916
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1917
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1918
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1919
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1920
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1921
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1922
+ # description: Does not grant access after Sep 2020 expression: request.time <
1923
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1924
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1925
+ # google.com/iam/docs/).
1926
+ # Corresponds to the JSON property `policy`
1927
+ # @return [Google::Apis::GameservicesV1::Policy]
1928
+ attr_accessor :policy
1929
+
1930
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1931
+ # the fields in the mask will be modified. If no mask is provided, the following
1932
+ # default mask is used: `paths: "bindings, etag"`
1933
+ # Corresponds to the JSON property `updateMask`
1934
+ # @return [String]
1935
+ attr_accessor :update_mask
1936
+
1937
+ def initialize(**args)
1938
+ update!(**args)
1939
+ end
1940
+
1941
+ # Update properties of this object
1942
+ def update!(**args)
1943
+ @policy = args[:policy] if args.key?(:policy)
1944
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1945
+ end
1946
+ end
1947
+
1948
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
1949
+ class SpecSource
1950
+ include Google::Apis::Core::Hashable
1951
+
1952
+ # The game server config resource. Uses the form: `projects/`project`/locations/`
1953
+ # location`/gameServerDeployments/`deployment_id`/configs/`config_id``.
1954
+ # Corresponds to the JSON property `gameServerConfigName`
1955
+ # @return [String]
1956
+ attr_accessor :game_server_config_name
1957
+
1958
+ # The name of the Agones leet config or Agones scaling config used to derive the
1959
+ # Agones fleet or Agones autoscaler spec.
1960
+ # Corresponds to the JSON property `name`
1961
+ # @return [String]
1962
+ attr_accessor :name
1963
+
1964
+ def initialize(**args)
1965
+ update!(**args)
1966
+ end
1967
+
1968
+ # Update properties of this object
1969
+ def update!(**args)
1970
+ @game_server_config_name = args[:game_server_config_name] if args.key?(:game_server_config_name)
1971
+ @name = args[:name] if args.key?(:name)
1972
+ end
1973
+ end
1974
+
1975
+ # The `Status` type defines a logical error model that is suitable for different
1976
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1977
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1978
+ # data: error code, error message, and error details. You can find out more
1979
+ # about this error model and how to work with it in the [API Design Guide](https:
1980
+ # //cloud.google.com/apis/design/errors).
1981
+ class Status
1982
+ include Google::Apis::Core::Hashable
1983
+
1984
+ # The status code, which should be an enum value of google.rpc.Code.
1985
+ # Corresponds to the JSON property `code`
1986
+ # @return [Fixnum]
1987
+ attr_accessor :code
1988
+
1989
+ # A list of messages that carry the error details. There is a common set of
1990
+ # message types for APIs to use.
1991
+ # Corresponds to the JSON property `details`
1992
+ # @return [Array<Hash<String,Object>>]
1993
+ attr_accessor :details
1994
+
1995
+ # A developer-facing error message, which should be in English. Any user-facing
1996
+ # error message should be localized and sent in the google.rpc.Status.details
1997
+ # field, or localized by the client.
1998
+ # Corresponds to the JSON property `message`
1999
+ # @return [String]
2000
+ attr_accessor :message
2001
+
2002
+ def initialize(**args)
2003
+ update!(**args)
2004
+ end
2005
+
2006
+ # Update properties of this object
2007
+ def update!(**args)
2008
+ @code = args[:code] if args.key?(:code)
2009
+ @details = args[:details] if args.key?(:details)
2010
+ @message = args[:message] if args.key?(:message)
2011
+ end
2012
+ end
2013
+
2014
+ # Details about the Agones resources.
2015
+ class TargetDetails
2016
+ include Google::Apis::Core::Hashable
2017
+
2018
+ # Agones fleet details for game server clusters and game server deployments.
2019
+ # Corresponds to the JSON property `fleetDetails`
2020
+ # @return [Array<Google::Apis::GameservicesV1::TargetFleetDetails>]
2021
+ attr_accessor :fleet_details
2022
+
2023
+ # The game server cluster name. Uses the form: `projects/`project`/locations/`
2024
+ # location`/realms/`realm`/gameServerClusters/`cluster``.
2025
+ # Corresponds to the JSON property `gameServerClusterName`
2026
+ # @return [String]
2027
+ attr_accessor :game_server_cluster_name
2028
+
2029
+ # The game server deployment name. Uses the form: `projects/`project`/locations/`
2030
+ # location`/gameServerDeployments/`deployment_id``.
2031
+ # Corresponds to the JSON property `gameServerDeploymentName`
2032
+ # @return [String]
2033
+ attr_accessor :game_server_deployment_name
2034
+
2035
+ def initialize(**args)
2036
+ update!(**args)
2037
+ end
2038
+
2039
+ # Update properties of this object
2040
+ def update!(**args)
2041
+ @fleet_details = args[:fleet_details] if args.key?(:fleet_details)
2042
+ @game_server_cluster_name = args[:game_server_cluster_name] if args.key?(:game_server_cluster_name)
2043
+ @game_server_deployment_name = args[:game_server_deployment_name] if args.key?(:game_server_deployment_name)
2044
+ end
2045
+ end
2046
+
2047
+ # Target Agones fleet specification.
2048
+ class TargetFleet
2049
+ include Google::Apis::Core::Hashable
2050
+
2051
+ # The name of the Agones fleet.
2052
+ # Corresponds to the JSON property `name`
2053
+ # @return [String]
2054
+ attr_accessor :name
2055
+
2056
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
2057
+ # Corresponds to the JSON property `specSource`
2058
+ # @return [Google::Apis::GameservicesV1::SpecSource]
2059
+ attr_accessor :spec_source
2060
+
2061
+ def initialize(**args)
2062
+ update!(**args)
2063
+ end
2064
+
2065
+ # Update properties of this object
2066
+ def update!(**args)
2067
+ @name = args[:name] if args.key?(:name)
2068
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
2069
+ end
2070
+ end
2071
+
2072
+ # Target Agones autoscaler policy reference.
2073
+ class TargetFleetAutoscaler
2074
+ include Google::Apis::Core::Hashable
2075
+
2076
+ # The name of the Agones autoscaler.
2077
+ # Corresponds to the JSON property `name`
2078
+ # @return [String]
2079
+ attr_accessor :name
2080
+
2081
+ # Encapsulates Agones fleet spec and Agones autoscaler spec sources.
2082
+ # Corresponds to the JSON property `specSource`
2083
+ # @return [Google::Apis::GameservicesV1::SpecSource]
2084
+ attr_accessor :spec_source
2085
+
2086
+ def initialize(**args)
2087
+ update!(**args)
2088
+ end
2089
+
2090
+ # Update properties of this object
2091
+ def update!(**args)
2092
+ @name = args[:name] if args.key?(:name)
2093
+ @spec_source = args[:spec_source] if args.key?(:spec_source)
2094
+ end
2095
+ end
2096
+
2097
+ # Details of the target Agones fleet.
2098
+ class TargetFleetDetails
2099
+ include Google::Apis::Core::Hashable
2100
+
2101
+ # Target Agones autoscaler policy reference.
2102
+ # Corresponds to the JSON property `autoscaler`
2103
+ # @return [Google::Apis::GameservicesV1::TargetFleetAutoscaler]
2104
+ attr_accessor :autoscaler
2105
+
2106
+ # Target Agones fleet specification.
2107
+ # Corresponds to the JSON property `fleet`
2108
+ # @return [Google::Apis::GameservicesV1::TargetFleet]
2109
+ attr_accessor :fleet
2110
+
2111
+ def initialize(**args)
2112
+ update!(**args)
2113
+ end
2114
+
2115
+ # Update properties of this object
2116
+ def update!(**args)
2117
+ @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
2118
+ @fleet = args[:fleet] if args.key?(:fleet)
2119
+ end
2120
+ end
2121
+
2122
+ # Encapsulates the Target state.
2123
+ class TargetState
2124
+ include Google::Apis::Core::Hashable
2125
+
2126
+ # Details about Agones fleets.
2127
+ # Corresponds to the JSON property `details`
2128
+ # @return [Array<Google::Apis::GameservicesV1::TargetDetails>]
2129
+ attr_accessor :details
2130
+
2131
+ def initialize(**args)
2132
+ update!(**args)
2133
+ end
2134
+
2135
+ # Update properties of this object
2136
+ def update!(**args)
2137
+ @details = args[:details] if args.key?(:details)
2138
+ end
2139
+ end
2140
+
2141
+ # Request message for `TestIamPermissions` method.
2142
+ class TestIamPermissionsRequest
2143
+ include Google::Apis::Core::Hashable
2144
+
2145
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2146
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
2147
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2148
+ # Corresponds to the JSON property `permissions`
2149
+ # @return [Array<String>]
2150
+ attr_accessor :permissions
2151
+
2152
+ def initialize(**args)
2153
+ update!(**args)
2154
+ end
2155
+
2156
+ # Update properties of this object
2157
+ def update!(**args)
2158
+ @permissions = args[:permissions] if args.key?(:permissions)
2159
+ end
2160
+ end
2161
+
2162
+ # Response message for `TestIamPermissions` method.
2163
+ class TestIamPermissionsResponse
2164
+ include Google::Apis::Core::Hashable
2165
+
2166
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2167
+ # Corresponds to the JSON property `permissions`
2168
+ # @return [Array<String>]
2169
+ attr_accessor :permissions
2170
+
2171
+ def initialize(**args)
2172
+ update!(**args)
2173
+ end
2174
+
2175
+ # Update properties of this object
2176
+ def update!(**args)
2177
+ @permissions = args[:permissions] if args.key?(:permissions)
2178
+ end
2179
+ end
2180
+ end
2181
+ end
2182
+ end