google-apis-servicenetworking_v1beta 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: bee4215f631d76ebad0a37699317fe13aeff85d81ffe62e055cbf618d67a2d05
4
+ data.tar.gz: a9bd51bf7dc239d13e205bc34b6c6b620d2f14a7fd9fe0fcb25e8bfe9c80ce46
5
+ SHA512:
6
+ metadata.gz: 785ea263387b20ba02b47c0f9a3bb4915a7ab83a0e8e7d265b6ee8adc020e52cbe914d3be7ef66e2d8e756d6c4237181f69498f62221685cf53034721d507e73
7
+ data.tar.gz: 3dc8c831c86496f4b177cfbc7c57e7e6ccc5e8be7db0019b02c03f937faa0ff190c4a89871504fb827e31ca50ede2a67cabd36fbbc808079b16d40572d2ef7b5
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-servicenetworking_v1beta
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/servicenetworking_v1beta/*.rb
9
+ lib/google/apis/servicenetworking_v1beta.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-servicenetworking_v1beta
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated from discovery document revision 20210105
6
+ * Regenerated using generator version 0.1.1
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 V1beta of the Service Networking API
2
+
3
+ This is a simple client library for version V1beta of the Service Networking 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/servicenetworking.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-servicenetworking_v1beta', '~> 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-servicenetworking_v1beta
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/servicenetworking_v1beta"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::ServicenetworkingV1beta::ServiceNetworkingService.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 Servicenetworking service in particular.)
67
+
68
+ For reference information on specific calls in the Service Networking API, see the {Google::Apis::ServicenetworkingV1beta::ServiceNetworkingService 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-servicenetworking_v1beta`, 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/service-infrastructure/docs/service-networking/getting-started) 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/servicenetworking_v1beta"
@@ -0,0 +1,40 @@
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/servicenetworking_v1beta/service.rb'
16
+ require 'google/apis/servicenetworking_v1beta/classes.rb'
17
+ require 'google/apis/servicenetworking_v1beta/representations.rb'
18
+ require 'google/apis/servicenetworking_v1beta/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Service Networking API
23
+ #
24
+ # Provides automatic management of network configurations necessary for certain
25
+ # services.
26
+ #
27
+ # @see https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started
28
+ module ServicenetworkingV1beta
29
+ # Version of the Service Networking API this client connects to.
30
+ # This is NOT the gem version.
31
+ VERSION = 'V1beta'
32
+
33
+ # View and manage your data across Google Cloud Platform services
34
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
35
+
36
+ # Manage your Google API service configuration
37
+ AUTH_SERVICE_MANAGEMENT = 'https://www.googleapis.com/auth/service.management'
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,3633 @@
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 ServicenetworkingV1beta
24
+
25
+ # Metadata provided through GetOperation request for the LRO generated by
26
+ # AddDnsRecordSet API
27
+ class AddDnsRecordSetMetadata
28
+ include Google::Apis::Core::Hashable
29
+
30
+ def initialize(**args)
31
+ update!(**args)
32
+ end
33
+
34
+ # Update properties of this object
35
+ def update!(**args)
36
+ end
37
+ end
38
+
39
+ # Metadata provided through GetOperation request for the LRO generated by
40
+ # AddDnsZone API
41
+ class AddDnsZoneMetadata
42
+ include Google::Apis::Core::Hashable
43
+
44
+ def initialize(**args)
45
+ update!(**args)
46
+ end
47
+
48
+ # Update properties of this object
49
+ def update!(**args)
50
+ end
51
+ end
52
+
53
+ # Represents managed DNS zones created in the shared producer host and consumer
54
+ # projects.
55
+ class AddDnsZoneResponse
56
+ include Google::Apis::Core::Hashable
57
+
58
+ # Represents a DNS zone resource.
59
+ # Corresponds to the JSON property `consumerPeeringZone`
60
+ # @return [Google::Apis::ServicenetworkingV1beta::DnsZone]
61
+ attr_accessor :consumer_peering_zone
62
+
63
+ # Represents a DNS zone resource.
64
+ # Corresponds to the JSON property `producerPrivateZone`
65
+ # @return [Google::Apis::ServicenetworkingV1beta::DnsZone]
66
+ attr_accessor :producer_private_zone
67
+
68
+ def initialize(**args)
69
+ update!(**args)
70
+ end
71
+
72
+ # Update properties of this object
73
+ def update!(**args)
74
+ @consumer_peering_zone = args[:consumer_peering_zone] if args.key?(:consumer_peering_zone)
75
+ @producer_private_zone = args[:producer_private_zone] if args.key?(:producer_private_zone)
76
+ end
77
+ end
78
+
79
+ # Metadata provided through GetOperation request for the LRO generated by
80
+ # AddRoles API
81
+ class AddRolesMetadata
82
+ include Google::Apis::Core::Hashable
83
+
84
+ def initialize(**args)
85
+ update!(**args)
86
+ end
87
+
88
+ # Update properties of this object
89
+ def update!(**args)
90
+ end
91
+ end
92
+
93
+ # Represents IAM roles added to the shared VPC host project.
94
+ class AddRolesResponse
95
+ include Google::Apis::Core::Hashable
96
+
97
+ # Required. List of policy bindings that were added to the shared VPC host
98
+ # project.
99
+ # Corresponds to the JSON property `policyBinding`
100
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::PolicyBinding>]
101
+ attr_accessor :policy_binding
102
+
103
+ def initialize(**args)
104
+ update!(**args)
105
+ end
106
+
107
+ # Update properties of this object
108
+ def update!(**args)
109
+ @policy_binding = args[:policy_binding] if args.key?(:policy_binding)
110
+ end
111
+ end
112
+
113
+ # Request to create a subnetwork in a previously peered service network.
114
+ class AddSubnetworkRequest
115
+ include Google::Apis::Core::Hashable
116
+
117
+ # Required. A resource that represents the service consumer, such as `projects/
118
+ # 123456`. The project number can be different from the value in the consumer
119
+ # network parameter. For example, the network might be part of a Shared VPC
120
+ # network. In those cases, Service Networking validates that this resource
121
+ # belongs to that Shared VPC.
122
+ # Corresponds to the JSON property `consumer`
123
+ # @return [String]
124
+ attr_accessor :consumer
125
+
126
+ # Required. The name of the service consumer's VPC network. The network must
127
+ # have an existing private connection that was provisioned through the
128
+ # connections.create method. The name must be in the following format: `projects/
129
+ # `project`/global/networks/`network``, where `project` is a project number,
130
+ # such as `12345`. `network` is the name of a VPC network in the project.
131
+ # Corresponds to the JSON property `consumerNetwork`
132
+ # @return [String]
133
+ attr_accessor :consumer_network
134
+
135
+ # An optional description of the subnet.
136
+ # Corresponds to the JSON property `description`
137
+ # @return [String]
138
+ attr_accessor :description
139
+
140
+ # Required. The prefix length of the subnet's IP address range. Use CIDR range
141
+ # notation, such as `30` to provision a subnet with an `x.x.x.x/30` CIDR range.
142
+ # The IP address range is drawn from a pool of available ranges in the service
143
+ # consumer's allocated range.
144
+ # Corresponds to the JSON property `ipPrefixLength`
145
+ # @return [Fixnum]
146
+ attr_accessor :ip_prefix_length
147
+
148
+ # Required. The name of a [region](/compute/docs/regions-zones) for the subnet,
149
+ # such `europe-west1`.
150
+ # Corresponds to the JSON property `region`
151
+ # @return [String]
152
+ attr_accessor :region
153
+
154
+ # Optional. The starting address of a range. The address must be a valid IPv4
155
+ # address in the x.x.x.x format. This value combined with the IP prefix range is
156
+ # the CIDR range for the subnet. The range must be within the allocated range
157
+ # that is assigned to the private connection. If the CIDR range isn't available,
158
+ # the call fails.
159
+ # Corresponds to the JSON property `requestedAddress`
160
+ # @return [String]
161
+ attr_accessor :requested_address
162
+
163
+ # Required. A name for the new subnet. For information about the naming
164
+ # requirements, see [subnetwork](/compute/docs/reference/rest/v1/subnetworks) in
165
+ # the Compute API documentation.
166
+ # Corresponds to the JSON property `subnetwork`
167
+ # @return [String]
168
+ attr_accessor :subnetwork
169
+
170
+ # A list of members that are granted the `compute.networkUser` role on the
171
+ # subnet.
172
+ # Corresponds to the JSON property `subnetworkUsers`
173
+ # @return [Array<String>]
174
+ attr_accessor :subnetwork_users
175
+
176
+ def initialize(**args)
177
+ update!(**args)
178
+ end
179
+
180
+ # Update properties of this object
181
+ def update!(**args)
182
+ @consumer = args[:consumer] if args.key?(:consumer)
183
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
184
+ @description = args[:description] if args.key?(:description)
185
+ @ip_prefix_length = args[:ip_prefix_length] if args.key?(:ip_prefix_length)
186
+ @region = args[:region] if args.key?(:region)
187
+ @requested_address = args[:requested_address] if args.key?(:requested_address)
188
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
189
+ @subnetwork_users = args[:subnetwork_users] if args.key?(:subnetwork_users)
190
+ end
191
+ end
192
+
193
+ # Api is a light-weight descriptor for an API Interface. Interfaces are also
194
+ # described as "protocol buffer services" in some contexts, such as by the "
195
+ # service" keyword in a .proto file, but they are different from API Services,
196
+ # which represent a concrete implementation of an interface as opposed to simply
197
+ # a description of methods and bindings. They are also sometimes simply referred
198
+ # to as "APIs" in other contexts, such as the name of this message itself. See
199
+ # https://cloud.google.com/apis/design/glossary for detailed terminology.
200
+ class Api
201
+ include Google::Apis::Core::Hashable
202
+
203
+ # The methods of this interface, in unspecified order.
204
+ # Corresponds to the JSON property `methods`
205
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::MethodProp>]
206
+ attr_accessor :methods_prop
207
+
208
+ # Included interfaces. See Mixin.
209
+ # Corresponds to the JSON property `mixins`
210
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Mixin>]
211
+ attr_accessor :mixins
212
+
213
+ # The fully qualified name of this interface, including package name followed by
214
+ # the interface's simple name.
215
+ # Corresponds to the JSON property `name`
216
+ # @return [String]
217
+ attr_accessor :name
218
+
219
+ # Any metadata attached to the interface.
220
+ # Corresponds to the JSON property `options`
221
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Option>]
222
+ attr_accessor :options
223
+
224
+ # `SourceContext` represents information about the source of a protobuf element,
225
+ # like the file in which it is defined.
226
+ # Corresponds to the JSON property `sourceContext`
227
+ # @return [Google::Apis::ServicenetworkingV1beta::SourceContext]
228
+ attr_accessor :source_context
229
+
230
+ # The source syntax of the service.
231
+ # Corresponds to the JSON property `syntax`
232
+ # @return [String]
233
+ attr_accessor :syntax
234
+
235
+ # A version string for this interface. If specified, must have the form `major-
236
+ # version.minor-version`, as in `1.10`. If the minor version is omitted, it
237
+ # defaults to zero. If the entire version field is empty, the major version is
238
+ # derived from the package name, as outlined below. If the field is not empty,
239
+ # the version in the package name will be verified to be consistent with what is
240
+ # provided here. The versioning schema uses [semantic versioning](http://semver.
241
+ # org) where the major version number indicates a breaking change and the minor
242
+ # version an additive, non-breaking change. Both version numbers are signals to
243
+ # users what to expect from different versions, and should be carefully chosen
244
+ # based on the product plan. The major version is also reflected in the package
245
+ # name of the interface, which must end in `v`, as in `google.feature.v1`. For
246
+ # major versions 0 and 1, the suffix can be omitted. Zero major versions must
247
+ # only be used for experimental, non-GA interfaces.
248
+ # Corresponds to the JSON property `version`
249
+ # @return [String]
250
+ attr_accessor :version
251
+
252
+ def initialize(**args)
253
+ update!(**args)
254
+ end
255
+
256
+ # Update properties of this object
257
+ def update!(**args)
258
+ @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
259
+ @mixins = args[:mixins] if args.key?(:mixins)
260
+ @name = args[:name] if args.key?(:name)
261
+ @options = args[:options] if args.key?(:options)
262
+ @source_context = args[:source_context] if args.key?(:source_context)
263
+ @syntax = args[:syntax] if args.key?(:syntax)
264
+ @version = args[:version] if args.key?(:version)
265
+ end
266
+ end
267
+
268
+ # Configuration for an authentication provider, including support for [JSON Web
269
+ # Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
270
+ class AuthProvider
271
+ include Google::Apis::Core::Hashable
272
+
273
+ # The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-
274
+ # web-token-32#section-4.1.3). that are allowed to access. A JWT containing any
275
+ # of these audiences will be accepted. When this setting is absent, JWTs with
276
+ # audiences: - "https://[service.name]/[google.protobuf.Api.name]" - "https://[
277
+ # service.name]/" will be accepted. For example, if no audiences are in the
278
+ # setting, LibraryService API will accept JWTs with the following audiences: -
279
+ # https://library-example.googleapis.com/google.example.library.v1.
280
+ # LibraryService - https://library-example.googleapis.com/ Example: audiences:
281
+ # bookstore_android.apps.googleusercontent.com, bookstore_web.apps.
282
+ # googleusercontent.com
283
+ # Corresponds to the JSON property `audiences`
284
+ # @return [String]
285
+ attr_accessor :audiences
286
+
287
+ # Redirect URL if JWT token is required but not present or is expired. Implement
288
+ # authorizationUrl of securityDefinitions in OpenAPI spec.
289
+ # Corresponds to the JSON property `authorizationUrl`
290
+ # @return [String]
291
+ attr_accessor :authorization_url
292
+
293
+ # The unique identifier of the auth provider. It will be referred to by `
294
+ # AuthRequirement.provider_id`. Example: "bookstore_auth".
295
+ # Corresponds to the JSON property `id`
296
+ # @return [String]
297
+ attr_accessor :id
298
+
299
+ # Identifies the principal that issued the JWT. See https://tools.ietf.org/html/
300
+ # draft-ietf-oauth-json-web-token-32#section-4.1.1 Usually a URL or an email
301
+ # address. Example: https://securetoken.google.com Example: 1234567-compute@
302
+ # developer.gserviceaccount.com
303
+ # Corresponds to the JSON property `issuer`
304
+ # @return [String]
305
+ attr_accessor :issuer
306
+
307
+ # URL of the provider's public key set to validate signature of the JWT. See [
308
+ # OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#
309
+ # ProviderMetadata). Optional if the key set document: - can be retrieved from [
310
+ # OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html)
311
+ # of the issuer. - can be inferred from the email domain of the issuer (e.g. a
312
+ # Google service account). Example: https://www.googleapis.com/oauth2/v1/certs
313
+ # Corresponds to the JSON property `jwksUri`
314
+ # @return [String]
315
+ attr_accessor :jwks_uri
316
+
317
+ # Defines the locations to extract the JWT. JWT locations can be either from
318
+ # HTTP headers or URL query parameters. The rule is that the first match wins.
319
+ # The checking order is: checking all headers first, then URL query parameters.
320
+ # If not specified, default to use following 3 locations: 1) Authorization:
321
+ # Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default
322
+ # locations can be specified as followings: jwt_locations: - header:
323
+ # Authorization value_prefix: "Bearer " - header: x-goog-iap-jwt-assertion -
324
+ # query: access_token
325
+ # Corresponds to the JSON property `jwtLocations`
326
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::JwtLocation>]
327
+ attr_accessor :jwt_locations
328
+
329
+ def initialize(**args)
330
+ update!(**args)
331
+ end
332
+
333
+ # Update properties of this object
334
+ def update!(**args)
335
+ @audiences = args[:audiences] if args.key?(:audiences)
336
+ @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
337
+ @id = args[:id] if args.key?(:id)
338
+ @issuer = args[:issuer] if args.key?(:issuer)
339
+ @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri)
340
+ @jwt_locations = args[:jwt_locations] if args.key?(:jwt_locations)
341
+ end
342
+ end
343
+
344
+ # User-defined authentication requirements, including support for [JSON Web
345
+ # Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
346
+ class AuthRequirement
347
+ include Google::Apis::Core::Hashable
348
+
349
+ # NOTE: This will be deprecated soon, once AuthProvider.audiences is implemented
350
+ # and accepted in all the runtime components. The list of JWT [audiences](https:/
351
+ # /tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that
352
+ # are allowed to access. A JWT containing any of these audiences will be
353
+ # accepted. When this setting is absent, only JWTs with audience "https://
354
+ # Service_name/API_name" will be accepted. For example, if no audiences are in
355
+ # the setting, LibraryService API will only accept JWTs with the following
356
+ # audience "https://library-example.googleapis.com/google.example.library.v1.
357
+ # LibraryService". Example: audiences: bookstore_android.apps.googleusercontent.
358
+ # com, bookstore_web.apps.googleusercontent.com
359
+ # Corresponds to the JSON property `audiences`
360
+ # @return [String]
361
+ attr_accessor :audiences
362
+
363
+ # id from authentication provider. Example: provider_id: bookstore_auth
364
+ # Corresponds to the JSON property `providerId`
365
+ # @return [String]
366
+ attr_accessor :provider_id
367
+
368
+ def initialize(**args)
369
+ update!(**args)
370
+ end
371
+
372
+ # Update properties of this object
373
+ def update!(**args)
374
+ @audiences = args[:audiences] if args.key?(:audiences)
375
+ @provider_id = args[:provider_id] if args.key?(:provider_id)
376
+ end
377
+ end
378
+
379
+ # `Authentication` defines the authentication configuration for an API. Example
380
+ # for an API targeted for external use: name: calendar.googleapis.com
381
+ # authentication: providers: - id: google_calendar_auth jwks_uri: https://www.
382
+ # googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: -
383
+ # selector: "*" requirements: provider_id: google_calendar_auth
384
+ class Authentication
385
+ include Google::Apis::Core::Hashable
386
+
387
+ # Defines a set of authentication providers that a service supports.
388
+ # Corresponds to the JSON property `providers`
389
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::AuthProvider>]
390
+ attr_accessor :providers
391
+
392
+ # A list of authentication rules that apply to individual API methods. **NOTE:**
393
+ # All service configuration rules follow "last one wins" order.
394
+ # Corresponds to the JSON property `rules`
395
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::AuthenticationRule>]
396
+ attr_accessor :rules
397
+
398
+ def initialize(**args)
399
+ update!(**args)
400
+ end
401
+
402
+ # Update properties of this object
403
+ def update!(**args)
404
+ @providers = args[:providers] if args.key?(:providers)
405
+ @rules = args[:rules] if args.key?(:rules)
406
+ end
407
+ end
408
+
409
+ # Authentication rules for the service. By default, if a method has any
410
+ # authentication requirements, every request must include a valid credential
411
+ # matching one of the requirements. It's an error to include more than one kind
412
+ # of credential in a single request. If a method doesn't have any auth
413
+ # requirements, request credentials will be ignored.
414
+ class AuthenticationRule
415
+ include Google::Apis::Core::Hashable
416
+
417
+ # If true, the service accepts API keys without any other credential. This flag
418
+ # only applies to HTTP and gRPC requests.
419
+ # Corresponds to the JSON property `allowWithoutCredential`
420
+ # @return [Boolean]
421
+ attr_accessor :allow_without_credential
422
+ alias_method :allow_without_credential?, :allow_without_credential
423
+
424
+ # OAuth scopes are a way to define data and permissions on data. For example,
425
+ # there are scopes defined for "Read-only access to Google Calendar" and "Access
426
+ # to Cloud Platform". Users can consent to a scope for an application, giving it
427
+ # permission to access that data on their behalf. OAuth scope specifications
428
+ # should be fairly coarse grained; a user will need to see and understand the
429
+ # text description of what your scope means. In most cases: use one or at most
430
+ # two OAuth scopes for an entire family of products. If your product has
431
+ # multiple APIs, you should probably be sharing the OAuth scope across all of
432
+ # those APIs. When you need finer grained OAuth consent screens: talk with your
433
+ # product management about how developers will use them in practice. Please note
434
+ # that even though each of the canonical scopes is enough for a request to be
435
+ # accepted and passed to the backend, a request can still fail due to the
436
+ # backend requiring additional scopes or permissions.
437
+ # Corresponds to the JSON property `oauth`
438
+ # @return [Google::Apis::ServicenetworkingV1beta::OAuthRequirements]
439
+ attr_accessor :oauth
440
+
441
+ # Requirements for additional authentication providers.
442
+ # Corresponds to the JSON property `requirements`
443
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::AuthRequirement>]
444
+ attr_accessor :requirements
445
+
446
+ # Selects the methods to which this rule applies. Refer to selector for syntax
447
+ # details.
448
+ # Corresponds to the JSON property `selector`
449
+ # @return [String]
450
+ attr_accessor :selector
451
+
452
+ def initialize(**args)
453
+ update!(**args)
454
+ end
455
+
456
+ # Update properties of this object
457
+ def update!(**args)
458
+ @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential)
459
+ @oauth = args[:oauth] if args.key?(:oauth)
460
+ @requirements = args[:requirements] if args.key?(:requirements)
461
+ @selector = args[:selector] if args.key?(:selector)
462
+ end
463
+ end
464
+
465
+ # `Backend` defines the backend configuration for a service.
466
+ class Backend
467
+ include Google::Apis::Core::Hashable
468
+
469
+ # A list of API backend rules that apply to individual API methods. **NOTE:**
470
+ # All service configuration rules follow "last one wins" order.
471
+ # Corresponds to the JSON property `rules`
472
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::BackendRule>]
473
+ attr_accessor :rules
474
+
475
+ def initialize(**args)
476
+ update!(**args)
477
+ end
478
+
479
+ # Update properties of this object
480
+ def update!(**args)
481
+ @rules = args[:rules] if args.key?(:rules)
482
+ end
483
+ end
484
+
485
+ # A backend rule provides configuration for an individual API element.
486
+ class BackendRule
487
+ include Google::Apis::Core::Hashable
488
+
489
+ # The address of the API backend. The scheme is used to determine the backend
490
+ # protocol and security. The following schemes are accepted: SCHEME PROTOCOL
491
+ # SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None grpcs:// gRPC
492
+ # TLS It is recommended to explicitly include a scheme. Leaving out the scheme
493
+ # may cause constrasting behaviors across platforms. If the port is unspecified,
494
+ # the default is: - 80 for schemes without TLS - 443 for schemes with TLS For
495
+ # HTTP backends, use protocol to specify the protocol version.
496
+ # Corresponds to the JSON property `address`
497
+ # @return [String]
498
+ attr_accessor :address
499
+
500
+ # The number of seconds to wait for a response from a request. The default
501
+ # varies based on the request protocol and deployment environment.
502
+ # Corresponds to the JSON property `deadline`
503
+ # @return [Float]
504
+ attr_accessor :deadline
505
+
506
+ # When disable_auth is true, a JWT ID token won't be generated and the original "
507
+ # Authorization" HTTP header will be preserved. If the header is used to carry
508
+ # the original token and is expected by the backend, this field must be set to
509
+ # true to preserve the header.
510
+ # Corresponds to the JSON property `disableAuth`
511
+ # @return [Boolean]
512
+ attr_accessor :disable_auth
513
+ alias_method :disable_auth?, :disable_auth
514
+
515
+ # The JWT audience is used when generating a JWT ID token for the backend. This
516
+ # ID token will be added in the HTTP "authorization" header, and sent to the
517
+ # backend.
518
+ # Corresponds to the JSON property `jwtAudience`
519
+ # @return [String]
520
+ attr_accessor :jwt_audience
521
+
522
+ # Minimum deadline in seconds needed for this method. Calls having deadline
523
+ # value lower than this will be rejected.
524
+ # Corresponds to the JSON property `minDeadline`
525
+ # @return [Float]
526
+ attr_accessor :min_deadline
527
+
528
+ # The number of seconds to wait for the completion of a long running operation.
529
+ # The default is no deadline.
530
+ # Corresponds to the JSON property `operationDeadline`
531
+ # @return [Float]
532
+ attr_accessor :operation_deadline
533
+
534
+ #
535
+ # Corresponds to the JSON property `pathTranslation`
536
+ # @return [String]
537
+ attr_accessor :path_translation
538
+
539
+ # The protocol used for sending a request to the backend. The supported values
540
+ # are "http/1.1" and "h2". The default value is inferred from the scheme in the
541
+ # address field: SCHEME PROTOCOL http:// http/1.1 https:// http/1.1 grpc:// h2
542
+ # grpcs:// h2 For secure HTTP backends (https://) that support HTTP/2, set this
543
+ # field to "h2" for improved performance. Configuring this field to non-default
544
+ # values is only supported for secure HTTP backends. This field will be ignored
545
+ # for all other backends. See https://www.iana.org/assignments/tls-extensiontype-
546
+ # values/tls-extensiontype-values.xhtml#alpn-protocol-ids for more details on
547
+ # the supported values.
548
+ # Corresponds to the JSON property `protocol`
549
+ # @return [String]
550
+ attr_accessor :protocol
551
+
552
+ # Selects the methods to which this rule applies. Refer to selector for syntax
553
+ # details.
554
+ # Corresponds to the JSON property `selector`
555
+ # @return [String]
556
+ attr_accessor :selector
557
+
558
+ def initialize(**args)
559
+ update!(**args)
560
+ end
561
+
562
+ # Update properties of this object
563
+ def update!(**args)
564
+ @address = args[:address] if args.key?(:address)
565
+ @deadline = args[:deadline] if args.key?(:deadline)
566
+ @disable_auth = args[:disable_auth] if args.key?(:disable_auth)
567
+ @jwt_audience = args[:jwt_audience] if args.key?(:jwt_audience)
568
+ @min_deadline = args[:min_deadline] if args.key?(:min_deadline)
569
+ @operation_deadline = args[:operation_deadline] if args.key?(:operation_deadline)
570
+ @path_translation = args[:path_translation] if args.key?(:path_translation)
571
+ @protocol = args[:protocol] if args.key?(:protocol)
572
+ @selector = args[:selector] if args.key?(:selector)
573
+ end
574
+ end
575
+
576
+ # Billing related configuration of the service. The following example shows how
577
+ # to configure monitored resources and metrics for billing, `
578
+ # consumer_destinations` is the only supported destination and the monitored
579
+ # resources need at least one label key `cloud.googleapis.com/location` to
580
+ # indicate the location of the billing usage, using different monitored
581
+ # resources between monitoring and billing is recommended so they can be evolved
582
+ # independently: monitored_resources: - type: library.googleapis.com/
583
+ # billing_branch labels: - key: cloud.googleapis.com/location description: |
584
+ # Predefined label to support billing location restriction. - key: city
585
+ # description: | Custom label to define the city where the library branch is
586
+ # located in. - key: name description: Custom label to define the name of the
587
+ # library branch. metrics: - name: library.googleapis.com/book/borrowed_count
588
+ # metric_kind: DELTA value_type: INT64 unit: "1" billing: consumer_destinations:
589
+ # - monitored_resource: library.googleapis.com/billing_branch metrics: - library.
590
+ # googleapis.com/book/borrowed_count
591
+ class Billing
592
+ include Google::Apis::Core::Hashable
593
+
594
+ # Billing configurations for sending metrics to the consumer project. There can
595
+ # be multiple consumer destinations per service, each one must have a different
596
+ # monitored resource type. A metric can be used in at most one consumer
597
+ # destination.
598
+ # Corresponds to the JSON property `consumerDestinations`
599
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::BillingDestination>]
600
+ attr_accessor :consumer_destinations
601
+
602
+ def initialize(**args)
603
+ update!(**args)
604
+ end
605
+
606
+ # Update properties of this object
607
+ def update!(**args)
608
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
609
+ end
610
+ end
611
+
612
+ # Configuration of a specific billing destination (Currently only support bill
613
+ # against consumer project).
614
+ class BillingDestination
615
+ include Google::Apis::Core::Hashable
616
+
617
+ # Names of the metrics to report to this billing destination. Each name must be
618
+ # defined in Service.metrics section.
619
+ # Corresponds to the JSON property `metrics`
620
+ # @return [Array<String>]
621
+ attr_accessor :metrics
622
+
623
+ # The monitored resource type. The type must be defined in Service.
624
+ # monitored_resources section.
625
+ # Corresponds to the JSON property `monitoredResource`
626
+ # @return [String]
627
+ attr_accessor :monitored_resource
628
+
629
+ def initialize(**args)
630
+ update!(**args)
631
+ end
632
+
633
+ # Update properties of this object
634
+ def update!(**args)
635
+ @metrics = args[:metrics] if args.key?(:metrics)
636
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
637
+ end
638
+ end
639
+
640
+ # Represents a private connection resource. A private connection is implemented
641
+ # as a VPC Network Peering connection between a service producer's VPC network
642
+ # and a service consumer's VPC network.
643
+ class Connection
644
+ include Google::Apis::Core::Hashable
645
+
646
+ # The name of service consumer's VPC network that's connected with service
647
+ # producer network, in the following format: `projects/`project`/global/networks/
648
+ # `network``. ``project`` is a project number, such as in `12345` that includes
649
+ # the VPC service consumer's VPC network. ``network`` is the name of the service
650
+ # consumer's VPC network.
651
+ # Corresponds to the JSON property `network`
652
+ # @return [String]
653
+ attr_accessor :network
654
+
655
+ # Output only. The name of the VPC Network Peering connection that was created
656
+ # by the service producer.
657
+ # Corresponds to the JSON property `peering`
658
+ # @return [String]
659
+ attr_accessor :peering
660
+
661
+ # The name of one or more allocated IP address ranges for this service producer
662
+ # of type `PEERING`. Note that invoking this method with a different range when
663
+ # connection is already established will not modify already provisioned service
664
+ # producer subnetworks.
665
+ # Corresponds to the JSON property `reservedPeeringRanges`
666
+ # @return [Array<String>]
667
+ attr_accessor :reserved_peering_ranges
668
+
669
+ # Output only. The name of the peering service that's associated with this
670
+ # connection, in the following format: `services/`service name``.
671
+ # Corresponds to the JSON property `service`
672
+ # @return [String]
673
+ attr_accessor :service
674
+
675
+ def initialize(**args)
676
+ update!(**args)
677
+ end
678
+
679
+ # Update properties of this object
680
+ def update!(**args)
681
+ @network = args[:network] if args.key?(:network)
682
+ @peering = args[:peering] if args.key?(:peering)
683
+ @reserved_peering_ranges = args[:reserved_peering_ranges] if args.key?(:reserved_peering_ranges)
684
+ @service = args[:service] if args.key?(:service)
685
+ end
686
+ end
687
+
688
+ # Configuration information for a private service access connection.
689
+ class ConsumerConfig
690
+ include Google::Apis::Core::Hashable
691
+
692
+ # Export custom routes flag value for peering from consumer to producer.
693
+ # Corresponds to the JSON property `consumerExportCustomRoutes`
694
+ # @return [Boolean]
695
+ attr_accessor :consumer_export_custom_routes
696
+ alias_method :consumer_export_custom_routes?, :consumer_export_custom_routes
697
+
698
+ # Export subnet routes with public ip flag value for peering from consumer to
699
+ # producer.
700
+ # Corresponds to the JSON property `consumerExportSubnetRoutesWithPublicIp`
701
+ # @return [Boolean]
702
+ attr_accessor :consumer_export_subnet_routes_with_public_ip
703
+ alias_method :consumer_export_subnet_routes_with_public_ip?, :consumer_export_subnet_routes_with_public_ip
704
+
705
+ # Import custom routes flag value for peering from consumer to producer.
706
+ # Corresponds to the JSON property `consumerImportCustomRoutes`
707
+ # @return [Boolean]
708
+ attr_accessor :consumer_import_custom_routes
709
+ alias_method :consumer_import_custom_routes?, :consumer_import_custom_routes
710
+
711
+ # Import subnet routes with public ip flag value for peering from consumer to
712
+ # producer.
713
+ # Corresponds to the JSON property `consumerImportSubnetRoutesWithPublicIp`
714
+ # @return [Boolean]
715
+ attr_accessor :consumer_import_subnet_routes_with_public_ip
716
+ alias_method :consumer_import_subnet_routes_with_public_ip?, :consumer_import_subnet_routes_with_public_ip
717
+
718
+ # Export custom routes flag value for peering from producer to consumer.
719
+ # Corresponds to the JSON property `producerExportCustomRoutes`
720
+ # @return [Boolean]
721
+ attr_accessor :producer_export_custom_routes
722
+ alias_method :producer_export_custom_routes?, :producer_export_custom_routes
723
+
724
+ # Export subnet routes with public ip flag value for peering from producer to
725
+ # consumer.
726
+ # Corresponds to the JSON property `producerExportSubnetRoutesWithPublicIp`
727
+ # @return [Boolean]
728
+ attr_accessor :producer_export_subnet_routes_with_public_ip
729
+ alias_method :producer_export_subnet_routes_with_public_ip?, :producer_export_subnet_routes_with_public_ip
730
+
731
+ # Import custom routes flag value for peering from producer to consumer.
732
+ # Corresponds to the JSON property `producerImportCustomRoutes`
733
+ # @return [Boolean]
734
+ attr_accessor :producer_import_custom_routes
735
+ alias_method :producer_import_custom_routes?, :producer_import_custom_routes
736
+
737
+ # Import subnet routes with public ip flag value for peering from producer to
738
+ # consumer.
739
+ # Corresponds to the JSON property `producerImportSubnetRoutesWithPublicIp`
740
+ # @return [Boolean]
741
+ attr_accessor :producer_import_subnet_routes_with_public_ip
742
+ alias_method :producer_import_subnet_routes_with_public_ip?, :producer_import_subnet_routes_with_public_ip
743
+
744
+ # Output only. The VPC host network that is used to host managed service
745
+ # instances. In the format, projects/`project`/global/networks/`network` where `
746
+ # project` is the project number e.g. '12345' and `network` is the network name.
747
+ # Corresponds to the JSON property `producerNetwork`
748
+ # @return [String]
749
+ attr_accessor :producer_network
750
+
751
+ # Output only. The reserved ranges associated with this private service access
752
+ # connection.
753
+ # Corresponds to the JSON property `reservedRanges`
754
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::GoogleCloudServicenetworkingV1ConsumerConfigReservedRange>]
755
+ attr_accessor :reserved_ranges
756
+
757
+ # Output only. Indicates whether the VPC Service Controls reference architecture
758
+ # is configured for the producer VPC host network.
759
+ # Corresponds to the JSON property `vpcScReferenceArchitectureEnabled`
760
+ # @return [Boolean]
761
+ attr_accessor :vpc_sc_reference_architecture_enabled
762
+ alias_method :vpc_sc_reference_architecture_enabled?, :vpc_sc_reference_architecture_enabled
763
+
764
+ def initialize(**args)
765
+ update!(**args)
766
+ end
767
+
768
+ # Update properties of this object
769
+ def update!(**args)
770
+ @consumer_export_custom_routes = args[:consumer_export_custom_routes] if args.key?(:consumer_export_custom_routes)
771
+ @consumer_export_subnet_routes_with_public_ip = args[:consumer_export_subnet_routes_with_public_ip] if args.key?(:consumer_export_subnet_routes_with_public_ip)
772
+ @consumer_import_custom_routes = args[:consumer_import_custom_routes] if args.key?(:consumer_import_custom_routes)
773
+ @consumer_import_subnet_routes_with_public_ip = args[:consumer_import_subnet_routes_with_public_ip] if args.key?(:consumer_import_subnet_routes_with_public_ip)
774
+ @producer_export_custom_routes = args[:producer_export_custom_routes] if args.key?(:producer_export_custom_routes)
775
+ @producer_export_subnet_routes_with_public_ip = args[:producer_export_subnet_routes_with_public_ip] if args.key?(:producer_export_subnet_routes_with_public_ip)
776
+ @producer_import_custom_routes = args[:producer_import_custom_routes] if args.key?(:producer_import_custom_routes)
777
+ @producer_import_subnet_routes_with_public_ip = args[:producer_import_subnet_routes_with_public_ip] if args.key?(:producer_import_subnet_routes_with_public_ip)
778
+ @producer_network = args[:producer_network] if args.key?(:producer_network)
779
+ @reserved_ranges = args[:reserved_ranges] if args.key?(:reserved_ranges)
780
+ @vpc_sc_reference_architecture_enabled = args[:vpc_sc_reference_architecture_enabled] if args.key?(:vpc_sc_reference_architecture_enabled)
781
+ end
782
+ end
783
+
784
+ # Metadata provided through GetOperation request for the LRO generated by
785
+ # UpdateConsumerConfig API.
786
+ class ConsumerConfigMetadata
787
+ include Google::Apis::Core::Hashable
788
+
789
+ def initialize(**args)
790
+ update!(**args)
791
+ end
792
+
793
+ # Update properties of this object
794
+ def update!(**args)
795
+ end
796
+ end
797
+
798
+ # `Context` defines which contexts an API requests. Example: context: rules: -
799
+ # selector: "*" requested: - google.rpc.context.ProjectContext - google.rpc.
800
+ # context.OriginContext The above specifies that all methods in the API request `
801
+ # google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`.
802
+ # Available context types are defined in package `google.rpc.context`. This also
803
+ # provides mechanism to allowlist any protobuf message extension that can be
804
+ # sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format.
805
+ # For example, list any service specific protobuf types that can appear in grpc
806
+ # metadata as follows in your yaml file: Example: context: rules: - selector: "
807
+ # google.example.library.v1.LibraryService.CreateBook"
808
+ # allowed_request_extensions: - google.foo.v1.NewExtension
809
+ # allowed_response_extensions: - google.foo.v1.NewExtension You can also specify
810
+ # extension ID instead of fully qualified extension name here.
811
+ class Context
812
+ include Google::Apis::Core::Hashable
813
+
814
+ # A list of RPC context rules that apply to individual API methods. **NOTE:**
815
+ # All service configuration rules follow "last one wins" order.
816
+ # Corresponds to the JSON property `rules`
817
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::ContextRule>]
818
+ attr_accessor :rules
819
+
820
+ def initialize(**args)
821
+ update!(**args)
822
+ end
823
+
824
+ # Update properties of this object
825
+ def update!(**args)
826
+ @rules = args[:rules] if args.key?(:rules)
827
+ end
828
+ end
829
+
830
+ # A context rule provides information about the context for an individual API
831
+ # element.
832
+ class ContextRule
833
+ include Google::Apis::Core::Hashable
834
+
835
+ # A list of full type names or extension IDs of extensions allowed in grpc side
836
+ # channel from client to backend.
837
+ # Corresponds to the JSON property `allowedRequestExtensions`
838
+ # @return [Array<String>]
839
+ attr_accessor :allowed_request_extensions
840
+
841
+ # A list of full type names or extension IDs of extensions allowed in grpc side
842
+ # channel from backend to client.
843
+ # Corresponds to the JSON property `allowedResponseExtensions`
844
+ # @return [Array<String>]
845
+ attr_accessor :allowed_response_extensions
846
+
847
+ # A list of full type names of provided contexts.
848
+ # Corresponds to the JSON property `provided`
849
+ # @return [Array<String>]
850
+ attr_accessor :provided
851
+
852
+ # A list of full type names of requested contexts.
853
+ # Corresponds to the JSON property `requested`
854
+ # @return [Array<String>]
855
+ attr_accessor :requested
856
+
857
+ # Selects the methods to which this rule applies. Refer to selector for syntax
858
+ # details.
859
+ # Corresponds to the JSON property `selector`
860
+ # @return [String]
861
+ attr_accessor :selector
862
+
863
+ def initialize(**args)
864
+ update!(**args)
865
+ end
866
+
867
+ # Update properties of this object
868
+ def update!(**args)
869
+ @allowed_request_extensions = args[:allowed_request_extensions] if args.key?(:allowed_request_extensions)
870
+ @allowed_response_extensions = args[:allowed_response_extensions] if args.key?(:allowed_response_extensions)
871
+ @provided = args[:provided] if args.key?(:provided)
872
+ @requested = args[:requested] if args.key?(:requested)
873
+ @selector = args[:selector] if args.key?(:selector)
874
+ end
875
+ end
876
+
877
+ # Selects and configures the service controller used by the service. The service
878
+ # controller handles features like abuse, quota, billing, logging, monitoring,
879
+ # etc.
880
+ class Control
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # The service control environment to use. If empty, no control plane feature (
884
+ # like quota and billing) will be enabled.
885
+ # Corresponds to the JSON property `environment`
886
+ # @return [String]
887
+ attr_accessor :environment
888
+
889
+ def initialize(**args)
890
+ update!(**args)
891
+ end
892
+
893
+ # Update properties of this object
894
+ def update!(**args)
895
+ @environment = args[:environment] if args.key?(:environment)
896
+ end
897
+ end
898
+
899
+ # Customize service error responses. For example, list any service specific
900
+ # protobuf types that can appear in error detail lists of error responses.
901
+ # Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.
902
+ # AnotherError
903
+ class CustomError
904
+ include Google::Apis::Core::Hashable
905
+
906
+ # The list of custom error rules that apply to individual API messages. **NOTE:**
907
+ # All service configuration rules follow "last one wins" order.
908
+ # Corresponds to the JSON property `rules`
909
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::CustomErrorRule>]
910
+ attr_accessor :rules
911
+
912
+ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
913
+ # Corresponds to the JSON property `types`
914
+ # @return [Array<String>]
915
+ attr_accessor :types
916
+
917
+ def initialize(**args)
918
+ update!(**args)
919
+ end
920
+
921
+ # Update properties of this object
922
+ def update!(**args)
923
+ @rules = args[:rules] if args.key?(:rules)
924
+ @types = args[:types] if args.key?(:types)
925
+ end
926
+ end
927
+
928
+ # A custom error rule.
929
+ class CustomErrorRule
930
+ include Google::Apis::Core::Hashable
931
+
932
+ # Mark this message as possible payload in error response. Otherwise, objects of
933
+ # this type will be filtered when they appear in error payload.
934
+ # Corresponds to the JSON property `isErrorType`
935
+ # @return [Boolean]
936
+ attr_accessor :is_error_type
937
+ alias_method :is_error_type?, :is_error_type
938
+
939
+ # Selects messages to which this rule applies. Refer to selector for syntax
940
+ # details.
941
+ # Corresponds to the JSON property `selector`
942
+ # @return [String]
943
+ attr_accessor :selector
944
+
945
+ def initialize(**args)
946
+ update!(**args)
947
+ end
948
+
949
+ # Update properties of this object
950
+ def update!(**args)
951
+ @is_error_type = args[:is_error_type] if args.key?(:is_error_type)
952
+ @selector = args[:selector] if args.key?(:selector)
953
+ end
954
+ end
955
+
956
+ # A custom pattern is used for defining custom HTTP verb.
957
+ class CustomHttpPattern
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # The name of this custom HTTP verb.
961
+ # Corresponds to the JSON property `kind`
962
+ # @return [String]
963
+ attr_accessor :kind
964
+
965
+ # The path matched by this custom verb.
966
+ # Corresponds to the JSON property `path`
967
+ # @return [String]
968
+ attr_accessor :path
969
+
970
+ def initialize(**args)
971
+ update!(**args)
972
+ end
973
+
974
+ # Update properties of this object
975
+ def update!(**args)
976
+ @kind = args[:kind] if args.key?(:kind)
977
+ @path = args[:path] if args.key?(:path)
978
+ end
979
+ end
980
+
981
+ # Metadata provided through GetOperation request for the LRO generated by
982
+ # DeletePeeredDnsDomain API.
983
+ class DeletePeeredDnsDomainMetadata
984
+ include Google::Apis::Core::Hashable
985
+
986
+ def initialize(**args)
987
+ update!(**args)
988
+ end
989
+
990
+ # Update properties of this object
991
+ def update!(**args)
992
+ end
993
+ end
994
+
995
+ # Represents a DNS record set resource.
996
+ class DnsRecordSet
997
+ include Google::Apis::Core::Hashable
998
+
999
+ # Required. As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) for
1000
+ # examples see https://cloud.google.com/dns/records/json-record.
1001
+ # Corresponds to the JSON property `data`
1002
+ # @return [Array<String>]
1003
+ attr_accessor :data
1004
+
1005
+ # Required. The DNS or domain name of the record set, e.g. `test.example.com`.
1006
+ # Corresponds to the JSON property `domain`
1007
+ # @return [String]
1008
+ attr_accessor :domain
1009
+
1010
+ # Required. The period of time for which this RecordSet can be cached by
1011
+ # resolvers.
1012
+ # Corresponds to the JSON property `ttl`
1013
+ # @return [String]
1014
+ attr_accessor :ttl
1015
+
1016
+ # Required. The identifier of a supported record type.
1017
+ # Corresponds to the JSON property `type`
1018
+ # @return [String]
1019
+ attr_accessor :type
1020
+
1021
+ def initialize(**args)
1022
+ update!(**args)
1023
+ end
1024
+
1025
+ # Update properties of this object
1026
+ def update!(**args)
1027
+ @data = args[:data] if args.key?(:data)
1028
+ @domain = args[:domain] if args.key?(:domain)
1029
+ @ttl = args[:ttl] if args.key?(:ttl)
1030
+ @type = args[:type] if args.key?(:type)
1031
+ end
1032
+ end
1033
+
1034
+ # Represents a DNS zone resource.
1035
+ class DnsZone
1036
+ include Google::Apis::Core::Hashable
1037
+
1038
+ # The DNS name suffix of this zone e.g. `example.com.`.
1039
+ # Corresponds to the JSON property `dnsSuffix`
1040
+ # @return [String]
1041
+ attr_accessor :dns_suffix
1042
+
1043
+ # User assigned name for this resource. Must be unique within the project. The
1044
+ # name must be 1-63 characters long, must begin with a letter, end with a letter
1045
+ # or digit, and only contain lowercase letters, digits or dashes.
1046
+ # Corresponds to the JSON property `name`
1047
+ # @return [String]
1048
+ attr_accessor :name
1049
+
1050
+ def initialize(**args)
1051
+ update!(**args)
1052
+ end
1053
+
1054
+ # Update properties of this object
1055
+ def update!(**args)
1056
+ @dns_suffix = args[:dns_suffix] if args.key?(:dns_suffix)
1057
+ @name = args[:name] if args.key?(:name)
1058
+ end
1059
+ end
1060
+
1061
+ # `Documentation` provides the information for describing a service. Example:
1062
+ # documentation: summary: > The Google Calendar API gives access to most
1063
+ # calendar features. pages: - name: Overview content: (== include google/foo/
1064
+ # overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==
1065
+ # ) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==)
1066
+ # rules: - selector: google.calendar.Calendar.Get description: > ... - selector:
1067
+ # google.calendar.Calendar.Put description: > ... Documentation is provided in
1068
+ # markdown syntax. In addition to standard markdown features, definition lists,
1069
+ # tables and fenced code blocks are supported. Section headers can be provided
1070
+ # and are interpreted relative to the section nesting of the context where a
1071
+ # documentation fragment is embedded. Documentation from the IDL is merged with
1072
+ # documentation defined via the config at normalization time, where
1073
+ # documentation provided by config rules overrides IDL provided. A number of
1074
+ # constructs specific to the API platform are supported in documentation text.
1075
+ # In order to reference a proto element, the following notation can be used: [
1076
+ # fully.qualified.proto.name][] To override the display text used for the link,
1077
+ # this can be used: [display text][fully.qualified.proto.name] Text can be
1078
+ # excluded from doc using the following notation: (-- internal comment --) A few
1079
+ # directives are available in documentation. Note that directives must appear on
1080
+ # a single line to be properly identified. The `include` directive includes a
1081
+ # markdown file from an external source: (== include path/to/file ==) The `
1082
+ # resource_for` directive marks a message to be the resource of a collection in
1083
+ # REST view. If it is not specified, tools attempt to infer the resource from
1084
+ # the operations in a collection: (== resource_for v1.shelves.books ==) The
1085
+ # directive `suppress_warning` does not directly affect documentation and is
1086
+ # documented together with service config validation.
1087
+ class Documentation
1088
+ include Google::Apis::Core::Hashable
1089
+
1090
+ # The URL to the root of documentation.
1091
+ # Corresponds to the JSON property `documentationRootUrl`
1092
+ # @return [String]
1093
+ attr_accessor :documentation_root_url
1094
+
1095
+ # Declares a single overview page. For example: documentation: summary: ...
1096
+ # overview: (== include overview.md ==) This is a shortcut for the following
1097
+ # declaration (using pages style): documentation: summary: ... pages: - name:
1098
+ # Overview content: (== include overview.md ==) Note: you cannot specify both `
1099
+ # overview` field and `pages` field.
1100
+ # Corresponds to the JSON property `overview`
1101
+ # @return [String]
1102
+ attr_accessor :overview
1103
+
1104
+ # The top level pages for the documentation set.
1105
+ # Corresponds to the JSON property `pages`
1106
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Page>]
1107
+ attr_accessor :pages
1108
+
1109
+ # A list of documentation rules that apply to individual API elements. **NOTE:**
1110
+ # All service configuration rules follow "last one wins" order.
1111
+ # Corresponds to the JSON property `rules`
1112
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::DocumentationRule>]
1113
+ attr_accessor :rules
1114
+
1115
+ # Specifies the service root url if the default one (the service name from the
1116
+ # yaml file) is not suitable. This can be seen in any fully specified service
1117
+ # urls as well as sections that show a base that other urls are relative to.
1118
+ # Corresponds to the JSON property `serviceRootUrl`
1119
+ # @return [String]
1120
+ attr_accessor :service_root_url
1121
+
1122
+ # A short summary of what the service does. Can only be provided by plain text.
1123
+ # Corresponds to the JSON property `summary`
1124
+ # @return [String]
1125
+ attr_accessor :summary
1126
+
1127
+ def initialize(**args)
1128
+ update!(**args)
1129
+ end
1130
+
1131
+ # Update properties of this object
1132
+ def update!(**args)
1133
+ @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url)
1134
+ @overview = args[:overview] if args.key?(:overview)
1135
+ @pages = args[:pages] if args.key?(:pages)
1136
+ @rules = args[:rules] if args.key?(:rules)
1137
+ @service_root_url = args[:service_root_url] if args.key?(:service_root_url)
1138
+ @summary = args[:summary] if args.key?(:summary)
1139
+ end
1140
+ end
1141
+
1142
+ # A documentation rule provides information about individual API elements.
1143
+ class DocumentationRule
1144
+ include Google::Apis::Core::Hashable
1145
+
1146
+ # Deprecation description of the selected element(s). It can be provided if an
1147
+ # element is marked as `deprecated`.
1148
+ # Corresponds to the JSON property `deprecationDescription`
1149
+ # @return [String]
1150
+ attr_accessor :deprecation_description
1151
+
1152
+ # Description of the selected API(s).
1153
+ # Corresponds to the JSON property `description`
1154
+ # @return [String]
1155
+ attr_accessor :description
1156
+
1157
+ # The selector is a comma-separated list of patterns. Each pattern is a
1158
+ # qualified name of the element which may end in "*", indicating a wildcard.
1159
+ # Wildcards are only allowed at the end and for a whole component of the
1160
+ # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
1161
+ # wildcard will match one or more components. To specify a default for all
1162
+ # applicable elements, the whole pattern "*" is used.
1163
+ # Corresponds to the JSON property `selector`
1164
+ # @return [String]
1165
+ attr_accessor :selector
1166
+
1167
+ def initialize(**args)
1168
+ update!(**args)
1169
+ end
1170
+
1171
+ # Update properties of this object
1172
+ def update!(**args)
1173
+ @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description)
1174
+ @description = args[:description] if args.key?(:description)
1175
+ @selector = args[:selector] if args.key?(:selector)
1176
+ end
1177
+ end
1178
+
1179
+ # `Endpoint` describes a network endpoint of a service that serves a set of APIs.
1180
+ # It is commonly known as a service endpoint. A service may expose any number
1181
+ # of service endpoints, and all service endpoints share the same service
1182
+ # definition, such as quota limits and monitoring metrics. Example service
1183
+ # configuration: name: library-example.googleapis.com endpoints: # Below entry
1184
+ # makes 'google.example.library.v1.Library' # API be served from endpoint
1185
+ # address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to
1186
+ # be passed to the backend, for # it to decide whether the subsequent cross-
1187
+ # origin request is # allowed to proceed. - name: library-example.googleapis.com
1188
+ # allow_cors: true
1189
+ class Endpoint
1190
+ include Google::Apis::Core::Hashable
1191
+
1192
+ # DEPRECATED: This field is no longer supported. Instead of using aliases,
1193
+ # please specify multiple google.api.Endpoint for each of the intended aliases.
1194
+ # Additional names that this endpoint will be hosted on.
1195
+ # Corresponds to the JSON property `aliases`
1196
+ # @return [Array<String>]
1197
+ attr_accessor :aliases
1198
+
1199
+ # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing),
1200
+ # aka cross-domain traffic, would allow the backends served from this endpoint
1201
+ # to receive and respond to HTTP OPTIONS requests. The response will be used by
1202
+ # the browser to determine whether the subsequent cross-origin request is
1203
+ # allowed to proceed.
1204
+ # Corresponds to the JSON property `allowCors`
1205
+ # @return [Boolean]
1206
+ attr_accessor :allow_cors
1207
+ alias_method :allow_cors?, :allow_cors
1208
+
1209
+ # The canonical name of this endpoint.
1210
+ # Corresponds to the JSON property `name`
1211
+ # @return [String]
1212
+ attr_accessor :name
1213
+
1214
+ # The specification of an Internet routable address of API frontend that will
1215
+ # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/
1216
+ # glossary). It should be either a valid IPv4 address or a fully-qualified
1217
+ # domain name. For example, "8.8.8.8" or "myservice.appspot.com".
1218
+ # Corresponds to the JSON property `target`
1219
+ # @return [String]
1220
+ attr_accessor :target
1221
+
1222
+ def initialize(**args)
1223
+ update!(**args)
1224
+ end
1225
+
1226
+ # Update properties of this object
1227
+ def update!(**args)
1228
+ @aliases = args[:aliases] if args.key?(:aliases)
1229
+ @allow_cors = args[:allow_cors] if args.key?(:allow_cors)
1230
+ @name = args[:name] if args.key?(:name)
1231
+ @target = args[:target] if args.key?(:target)
1232
+ end
1233
+ end
1234
+
1235
+ # Enum type definition.
1236
+ class Enum
1237
+ include Google::Apis::Core::Hashable
1238
+
1239
+ # Enum value definitions.
1240
+ # Corresponds to the JSON property `enumvalue`
1241
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::EnumValue>]
1242
+ attr_accessor :enumvalue
1243
+
1244
+ # Enum type name.
1245
+ # Corresponds to the JSON property `name`
1246
+ # @return [String]
1247
+ attr_accessor :name
1248
+
1249
+ # Protocol buffer options.
1250
+ # Corresponds to the JSON property `options`
1251
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Option>]
1252
+ attr_accessor :options
1253
+
1254
+ # `SourceContext` represents information about the source of a protobuf element,
1255
+ # like the file in which it is defined.
1256
+ # Corresponds to the JSON property `sourceContext`
1257
+ # @return [Google::Apis::ServicenetworkingV1beta::SourceContext]
1258
+ attr_accessor :source_context
1259
+
1260
+ # The source syntax.
1261
+ # Corresponds to the JSON property `syntax`
1262
+ # @return [String]
1263
+ attr_accessor :syntax
1264
+
1265
+ def initialize(**args)
1266
+ update!(**args)
1267
+ end
1268
+
1269
+ # Update properties of this object
1270
+ def update!(**args)
1271
+ @enumvalue = args[:enumvalue] if args.key?(:enumvalue)
1272
+ @name = args[:name] if args.key?(:name)
1273
+ @options = args[:options] if args.key?(:options)
1274
+ @source_context = args[:source_context] if args.key?(:source_context)
1275
+ @syntax = args[:syntax] if args.key?(:syntax)
1276
+ end
1277
+ end
1278
+
1279
+ # Enum value definition.
1280
+ class EnumValue
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ # Enum value name.
1284
+ # Corresponds to the JSON property `name`
1285
+ # @return [String]
1286
+ attr_accessor :name
1287
+
1288
+ # Enum value number.
1289
+ # Corresponds to the JSON property `number`
1290
+ # @return [Fixnum]
1291
+ attr_accessor :number
1292
+
1293
+ # Protocol buffer options.
1294
+ # Corresponds to the JSON property `options`
1295
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Option>]
1296
+ attr_accessor :options
1297
+
1298
+ def initialize(**args)
1299
+ update!(**args)
1300
+ end
1301
+
1302
+ # Update properties of this object
1303
+ def update!(**args)
1304
+ @name = args[:name] if args.key?(:name)
1305
+ @number = args[:number] if args.key?(:number)
1306
+ @options = args[:options] if args.key?(:options)
1307
+ end
1308
+ end
1309
+
1310
+ # A single field of a message type.
1311
+ class Field
1312
+ include Google::Apis::Core::Hashable
1313
+
1314
+ # The field cardinality.
1315
+ # Corresponds to the JSON property `cardinality`
1316
+ # @return [String]
1317
+ attr_accessor :cardinality
1318
+
1319
+ # The string value of the default value of this field. Proto2 syntax only.
1320
+ # Corresponds to the JSON property `defaultValue`
1321
+ # @return [String]
1322
+ attr_accessor :default_value
1323
+
1324
+ # The field JSON name.
1325
+ # Corresponds to the JSON property `jsonName`
1326
+ # @return [String]
1327
+ attr_accessor :json_name
1328
+
1329
+ # The field type.
1330
+ # Corresponds to the JSON property `kind`
1331
+ # @return [String]
1332
+ attr_accessor :kind
1333
+
1334
+ # The field name.
1335
+ # Corresponds to the JSON property `name`
1336
+ # @return [String]
1337
+ attr_accessor :name
1338
+
1339
+ # The field number.
1340
+ # Corresponds to the JSON property `number`
1341
+ # @return [Fixnum]
1342
+ attr_accessor :number
1343
+
1344
+ # The index of the field type in `Type.oneofs`, for message or enumeration types.
1345
+ # The first type has index 1; zero means the type is not in the list.
1346
+ # Corresponds to the JSON property `oneofIndex`
1347
+ # @return [Fixnum]
1348
+ attr_accessor :oneof_index
1349
+
1350
+ # The protocol buffer options.
1351
+ # Corresponds to the JSON property `options`
1352
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Option>]
1353
+ attr_accessor :options
1354
+
1355
+ # Whether to use alternative packed wire representation.
1356
+ # Corresponds to the JSON property `packed`
1357
+ # @return [Boolean]
1358
+ attr_accessor :packed
1359
+ alias_method :packed?, :packed
1360
+
1361
+ # The field type URL, without the scheme, for message or enumeration types.
1362
+ # Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1363
+ # Corresponds to the JSON property `typeUrl`
1364
+ # @return [String]
1365
+ attr_accessor :type_url
1366
+
1367
+ def initialize(**args)
1368
+ update!(**args)
1369
+ end
1370
+
1371
+ # Update properties of this object
1372
+ def update!(**args)
1373
+ @cardinality = args[:cardinality] if args.key?(:cardinality)
1374
+ @default_value = args[:default_value] if args.key?(:default_value)
1375
+ @json_name = args[:json_name] if args.key?(:json_name)
1376
+ @kind = args[:kind] if args.key?(:kind)
1377
+ @name = args[:name] if args.key?(:name)
1378
+ @number = args[:number] if args.key?(:number)
1379
+ @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
1380
+ @options = args[:options] if args.key?(:options)
1381
+ @packed = args[:packed] if args.key?(:packed)
1382
+ @type_url = args[:type_url] if args.key?(:type_url)
1383
+ end
1384
+ end
1385
+
1386
+ # Allocated IP address ranges for this private service access connection.
1387
+ class GoogleCloudServicenetworkingV1ConsumerConfigReservedRange
1388
+ include Google::Apis::Core::Hashable
1389
+
1390
+ # The starting address of the reserved range. The address must be a valid IPv4
1391
+ # address in the x.x.x.x format. This value combined with the IP prefix length
1392
+ # is the CIDR range for the reserved range.
1393
+ # Corresponds to the JSON property `address`
1394
+ # @return [String]
1395
+ attr_accessor :address
1396
+
1397
+ # The prefix length of the reserved range.
1398
+ # Corresponds to the JSON property `ipPrefixLength`
1399
+ # @return [Fixnum]
1400
+ attr_accessor :ip_prefix_length
1401
+
1402
+ # The name of the reserved range.
1403
+ # Corresponds to the JSON property `name`
1404
+ # @return [String]
1405
+ attr_accessor :name
1406
+
1407
+ def initialize(**args)
1408
+ update!(**args)
1409
+ end
1410
+
1411
+ # Update properties of this object
1412
+ def update!(**args)
1413
+ @address = args[:address] if args.key?(:address)
1414
+ @ip_prefix_length = args[:ip_prefix_length] if args.key?(:ip_prefix_length)
1415
+ @name = args[:name] if args.key?(:name)
1416
+ end
1417
+ end
1418
+
1419
+ # Represents a subnet that was created or discovered by a private access
1420
+ # management service.
1421
+ class GoogleCloudServicenetworkingV1betaSubnetwork
1422
+ include Google::Apis::Core::Hashable
1423
+
1424
+ # Subnetwork CIDR range in `10.x.x.x/y` format.
1425
+ # Corresponds to the JSON property `ipCidrRange`
1426
+ # @return [String]
1427
+ attr_accessor :ip_cidr_range
1428
+
1429
+ # Subnetwork name. See https://cloud.google.com/compute/docs/vpc/
1430
+ # Corresponds to the JSON property `name`
1431
+ # @return [String]
1432
+ attr_accessor :name
1433
+
1434
+ # In the Shared VPC host project, the VPC network that's peered with the
1435
+ # consumer network. For example: `projects/1234321/global/networks/host-network`
1436
+ # Corresponds to the JSON property `network`
1437
+ # @return [String]
1438
+ attr_accessor :network
1439
+
1440
+ # This is a discovered subnet that is not within the current consumer allocated
1441
+ # ranges.
1442
+ # Corresponds to the JSON property `outsideAllocation`
1443
+ # @return [Boolean]
1444
+ attr_accessor :outside_allocation
1445
+ alias_method :outside_allocation?, :outside_allocation
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
1454
+ @name = args[:name] if args.key?(:name)
1455
+ @network = args[:network] if args.key?(:network)
1456
+ @outside_allocation = args[:outside_allocation] if args.key?(:outside_allocation)
1457
+ end
1458
+ end
1459
+
1460
+ # Defines the HTTP configuration for an API service. It contains a list of
1461
+ # HttpRule, each specifying the mapping of an RPC method to one or more HTTP
1462
+ # REST API methods.
1463
+ class Http
1464
+ include Google::Apis::Core::Hashable
1465
+
1466
+ # When set to true, URL path parameters will be fully URI-decoded except in
1467
+ # cases of single segment matches in reserved expansion, where "%2F" will be
1468
+ # left encoded. The default behavior is to not decode RFC 6570 reserved
1469
+ # characters in multi segment matches.
1470
+ # Corresponds to the JSON property `fullyDecodeReservedExpansion`
1471
+ # @return [Boolean]
1472
+ attr_accessor :fully_decode_reserved_expansion
1473
+ alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion
1474
+
1475
+ # A list of HTTP configuration rules that apply to individual API methods. **
1476
+ # NOTE:** All service configuration rules follow "last one wins" order.
1477
+ # Corresponds to the JSON property `rules`
1478
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::HttpRule>]
1479
+ attr_accessor :rules
1480
+
1481
+ def initialize(**args)
1482
+ update!(**args)
1483
+ end
1484
+
1485
+ # Update properties of this object
1486
+ def update!(**args)
1487
+ @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion)
1488
+ @rules = args[:rules] if args.key?(:rules)
1489
+ end
1490
+ end
1491
+
1492
+ # # gRPC Transcoding gRPC Transcoding is a feature for mapping between a gRPC
1493
+ # method and one or more HTTP REST endpoints. It allows developers to build a
1494
+ # single API service that supports both gRPC APIs and REST APIs. Many systems,
1495
+ # including [Google APIs](https://github.com/googleapis/googleapis), [Cloud
1496
+ # Endpoints](https://cloud.google.com/endpoints), [gRPC Gateway](https://github.
1497
+ # com/grpc-ecosystem/grpc-gateway), and [Envoy](https://github.com/envoyproxy/
1498
+ # envoy) proxy support this feature and use it for large scale production
1499
+ # services. `HttpRule` defines the schema of the gRPC/REST mapping. The mapping
1500
+ # specifies how different portions of the gRPC request message are mapped to the
1501
+ # URL path, URL query parameters, and HTTP request body. It also controls how
1502
+ # the gRPC response message is mapped to the HTTP response body. `HttpRule` is
1503
+ # typically specified as an `google.api.http` annotation on the gRPC method.
1504
+ # Each mapping specifies a URL path template and an HTTP method. The path
1505
+ # template may refer to one or more fields in the gRPC request message, as long
1506
+ # as each field is a non-repeated field with a primitive (non-message) type. The
1507
+ # path template controls how fields of the request message are mapped to the URL
1508
+ # path. Example: service Messaging ` rpc GetMessage(GetMessageRequest) returns (
1509
+ # Message) ` option (google.api.http) = ` get: "/v1/`name=messages/*`" `; ` `
1510
+ # message GetMessageRequest ` string name = 1; // Mapped to URL path. ` message
1511
+ # Message ` string text = 1; // The resource content. ` This enables an HTTP
1512
+ # REST to gRPC mapping as below: HTTP | gRPC -----|----- `GET /v1/messages/
1513
+ # 123456` | `GetMessage(name: "messages/123456")` Any fields in the request
1514
+ # message which are not bound by the path template automatically become HTTP
1515
+ # query parameters if there is no HTTP request body. For example: service
1516
+ # Messaging ` rpc GetMessage(GetMessageRequest) returns (Message) ` option (
1517
+ # google.api.http) = ` get:"/v1/messages/`message_id`" `; ` ` message
1518
+ # GetMessageRequest ` message SubMessage ` string subfield = 1; ` string
1519
+ # message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL
1520
+ # query parameter `revision`. SubMessage sub = 3; // Mapped to URL query
1521
+ # parameter `sub.subfield`. ` This enables a HTTP JSON to RPC mapping as below:
1522
+ # HTTP | gRPC -----|----- `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
1523
+ # `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))
1524
+ # ` Note that fields which are mapped to URL query parameters must have a
1525
+ # primitive type or a repeated primitive type or a non-repeated message type. In
1526
+ # the case of a repeated type, the parameter can be repeated in the URL as `...?
1527
+ # param=A&param=B`. In the case of a message type, each field of the message is
1528
+ # mapped to a separate parameter, such as `...?foo.a=A&foo.b=B&foo.c=C`. For
1529
+ # HTTP methods that allow a request body, the `body` field specifies the mapping.
1530
+ # Consider a REST update method on the message resource collection: service
1531
+ # Messaging ` rpc UpdateMessage(UpdateMessageRequest) returns (Message) ` option
1532
+ # (google.api.http) = ` patch: "/v1/messages/`message_id`" body: "message" `; ` `
1533
+ # message UpdateMessageRequest ` string message_id = 1; // mapped to the URL
1534
+ # Message message = 2; // mapped to the body ` The following HTTP JSON to RPC
1535
+ # mapping is enabled, where the representation of the JSON in the request body
1536
+ # is determined by protos JSON encoding: HTTP | gRPC -----|----- `PATCH /v1/
1537
+ # messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: "123456"
1538
+ # message ` text: "Hi!" `)` The special name `*` can be used in the body mapping
1539
+ # to define that every field not bound by the path template should be mapped to
1540
+ # the request body. This enables the following alternative definition of the
1541
+ # update method: service Messaging ` rpc UpdateMessage(Message) returns (Message)
1542
+ # ` option (google.api.http) = ` patch: "/v1/messages/`message_id`" body: "*" `;
1543
+ # ` ` message Message ` string message_id = 1; string text = 2; ` The following
1544
+ # HTTP JSON to RPC mapping is enabled: HTTP | gRPC -----|----- `PATCH /v1/
1545
+ # messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: "123456" text:
1546
+ # "Hi!")` Note that when using `*` in the body mapping, it is not possible to
1547
+ # have HTTP parameters, as all fields not bound by the path end in the body.
1548
+ # This makes this option more rarely used in practice when defining REST APIs.
1549
+ # The common usage of `*` is in custom methods which don't use the URL at all
1550
+ # for transferring data. It is possible to define multiple HTTP methods for one
1551
+ # RPC by using the `additional_bindings` option. Example: service Messaging `
1552
+ # rpc GetMessage(GetMessageRequest) returns (Message) ` option (google.api.http)
1553
+ # = ` get: "/v1/messages/`message_id`" additional_bindings ` get: "/v1/users/`
1554
+ # user_id`/messages/`message_id`" ` `; ` ` message GetMessageRequest ` string
1555
+ # message_id = 1; string user_id = 2; ` This enables the following two
1556
+ # alternative HTTP JSON to RPC mappings: HTTP | gRPC -----|----- `GET /v1/
1557
+ # messages/123456` | `GetMessage(message_id: "123456")` `GET /v1/users/me/
1558
+ # messages/123456` | `GetMessage(user_id: "me" message_id: "123456")` ## Rules
1559
+ # for HTTP mapping 1. Leaf request fields (recursive expansion nested messages
1560
+ # in the request message) are classified into three categories: - Fields
1561
+ # referred by the path template. They are passed via the URL path. - Fields
1562
+ # referred by the HttpRule.body. They are passed via the HTTP request body. -
1563
+ # All other fields are passed via the URL query parameters, and the parameter
1564
+ # name is the field path in the request message. A repeated field can be
1565
+ # represented as multiple query parameters under the same name. 2. If HttpRule.
1566
+ # body is "*", there is no URL query parameter, all fields are passed via URL
1567
+ # path and HTTP request body. 3. If HttpRule.body is omitted, there is no HTTP
1568
+ # request body, all fields are passed via URL path and URL query parameters. ###
1569
+ # Path template syntax Template = "/" Segments [ Verb ] ; Segments = Segment ` "/
1570
+ # " Segment ` ; Segment = "*" | "**" | LITERAL | Variable ; Variable = "`"
1571
+ # FieldPath [ "=" Segments ] "`" ; FieldPath = IDENT ` "." IDENT ` ; Verb = ":"
1572
+ # LITERAL ; The syntax `*` matches a single URL path segment. The syntax `**`
1573
+ # matches zero or more URL path segments, which must be the last part of the URL
1574
+ # path except the `Verb`. The syntax `Variable` matches part of the URL path as
1575
+ # specified by its template. A variable template must not contain other
1576
+ # variables. If a variable matches a single path segment, its template may be
1577
+ # omitted, e.g. ``var`` is equivalent to ``var=*``. The syntax `LITERAL` matches
1578
+ # literal text in the URL path. If the `LITERAL` contains any reserved character,
1579
+ # such characters should be percent-encoded before the matching. If a variable
1580
+ # contains exactly one path segment, such as `"`var`"` or `"`var=*`"`, when such
1581
+ # a variable is expanded into a URL path on the client side, all characters
1582
+ # except `[-_.~0-9a-zA-Z]` are percent-encoded. The server side does the reverse
1583
+ # decoding. Such variables show up in the [Discovery Document](https://
1584
+ # developers.google.com/discovery/v1/reference/apis) as ``var``. If a variable
1585
+ # contains multiple path segments, such as `"`var=foo/*`"` or `"`var=**`"`, when
1586
+ # such a variable is expanded into a URL path on the client side, all characters
1587
+ # except `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the
1588
+ # reverse decoding, except "%2F" and "%2f" are left unchanged. Such variables
1589
+ # show up in the [Discovery Document](https://developers.google.com/discovery/v1/
1590
+ # reference/apis) as ``+var``. ## Using gRPC API Service Configuration gRPC API
1591
+ # Service Configuration (service config) is a configuration language for
1592
+ # configuring a gRPC service to become a user-facing product. The service config
1593
+ # is simply the YAML representation of the `google.api.Service` proto message.
1594
+ # As an alternative to annotating your proto file, you can configure gRPC
1595
+ # transcoding in your service config YAML files. You do this by specifying a `
1596
+ # HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
1597
+ # effect as the proto annotation. This can be particularly useful if you have a
1598
+ # proto that is reused in multiple services. Note that any transcoding specified
1599
+ # in the service config will override any matching transcoding configuration in
1600
+ # the proto. Example: http: rules: # Selects a gRPC method and applies HttpRule
1601
+ # to it. - selector: example.v1.Messaging.GetMessage get: /v1/messages/`
1602
+ # message_id`/`sub.subfield` ## Special notes When gRPC Transcoding is used to
1603
+ # map a gRPC to JSON REST endpoints, the proto to JSON conversion must follow
1604
+ # the [proto3 specification](https://developers.google.com/protocol-buffers/docs/
1605
+ # proto3#json). While the single segment variable follows the semantics of [RFC
1606
+ # 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
1607
+ # Expansion, the multi segment variable **does not** follow RFC 6570 Section 3.2.
1608
+ # 3 Reserved Expansion. The reason is that the Reserved Expansion does not
1609
+ # expand special characters like `?` and `#`, which would lead to invalid URLs.
1610
+ # As the result, gRPC Transcoding uses a custom encoding for multi segment
1611
+ # variables. The path variables **must not** refer to any repeated or mapped
1612
+ # field, because client libraries are not capable of handling such variable
1613
+ # expansion. The path variables **must not** capture the leading "/" character.
1614
+ # The reason is that the most common use case "`var`" does not capture the
1615
+ # leading "/" character. For consistency, all path variables must share the same
1616
+ # behavior. Repeated message fields must not be mapped to URL query parameters,
1617
+ # because no client library can support such complicated mapping. If an API
1618
+ # needs to use a JSON array for request or response body, it can map the request
1619
+ # or response body to a repeated field. However, some gRPC Transcoding
1620
+ # implementations may not support this feature.
1621
+ class HttpRule
1622
+ include Google::Apis::Core::Hashable
1623
+
1624
+ # Additional HTTP bindings for the selector. Nested bindings must not contain an
1625
+ # `additional_bindings` field themselves (that is, the nesting may only be one
1626
+ # level deep).
1627
+ # Corresponds to the JSON property `additionalBindings`
1628
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::HttpRule>]
1629
+ attr_accessor :additional_bindings
1630
+
1631
+ # The name of the request field whose value is mapped to the HTTP request body,
1632
+ # or `*` for mapping all request fields not captured by the path pattern to the
1633
+ # HTTP body, or omitted for not having any HTTP request body. NOTE: the referred
1634
+ # field must be present at the top-level of the request message type.
1635
+ # Corresponds to the JSON property `body`
1636
+ # @return [String]
1637
+ attr_accessor :body
1638
+
1639
+ # A custom pattern is used for defining custom HTTP verb.
1640
+ # Corresponds to the JSON property `custom`
1641
+ # @return [Google::Apis::ServicenetworkingV1beta::CustomHttpPattern]
1642
+ attr_accessor :custom
1643
+
1644
+ # Maps to HTTP DELETE. Used for deleting a resource.
1645
+ # Corresponds to the JSON property `delete`
1646
+ # @return [String]
1647
+ attr_accessor :delete
1648
+
1649
+ # Maps to HTTP GET. Used for listing and getting information about resources.
1650
+ # Corresponds to the JSON property `get`
1651
+ # @return [String]
1652
+ attr_accessor :get
1653
+
1654
+ # Maps to HTTP PATCH. Used for updating a resource.
1655
+ # Corresponds to the JSON property `patch`
1656
+ # @return [String]
1657
+ attr_accessor :patch
1658
+
1659
+ # Maps to HTTP POST. Used for creating a resource or performing an action.
1660
+ # Corresponds to the JSON property `post`
1661
+ # @return [String]
1662
+ attr_accessor :post
1663
+
1664
+ # Maps to HTTP PUT. Used for replacing a resource.
1665
+ # Corresponds to the JSON property `put`
1666
+ # @return [String]
1667
+ attr_accessor :put
1668
+
1669
+ # Optional. The name of the response field whose value is mapped to the HTTP
1670
+ # response body. When omitted, the entire response message will be used as the
1671
+ # HTTP response body. NOTE: The referred field must be present at the top-level
1672
+ # of the response message type.
1673
+ # Corresponds to the JSON property `responseBody`
1674
+ # @return [String]
1675
+ attr_accessor :response_body
1676
+
1677
+ # Selects a method to which this rule applies. Refer to selector for syntax
1678
+ # details.
1679
+ # Corresponds to the JSON property `selector`
1680
+ # @return [String]
1681
+ attr_accessor :selector
1682
+
1683
+ def initialize(**args)
1684
+ update!(**args)
1685
+ end
1686
+
1687
+ # Update properties of this object
1688
+ def update!(**args)
1689
+ @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings)
1690
+ @body = args[:body] if args.key?(:body)
1691
+ @custom = args[:custom] if args.key?(:custom)
1692
+ @delete = args[:delete] if args.key?(:delete)
1693
+ @get = args[:get] if args.key?(:get)
1694
+ @patch = args[:patch] if args.key?(:patch)
1695
+ @post = args[:post] if args.key?(:post)
1696
+ @put = args[:put] if args.key?(:put)
1697
+ @response_body = args[:response_body] if args.key?(:response_body)
1698
+ @selector = args[:selector] if args.key?(:selector)
1699
+ end
1700
+ end
1701
+
1702
+ # Specifies a location to extract JWT from an API request.
1703
+ class JwtLocation
1704
+ include Google::Apis::Core::Hashable
1705
+
1706
+ # Specifies HTTP header name to extract JWT token.
1707
+ # Corresponds to the JSON property `header`
1708
+ # @return [String]
1709
+ attr_accessor :header
1710
+
1711
+ # Specifies URL query parameter name to extract JWT token.
1712
+ # Corresponds to the JSON property `query`
1713
+ # @return [String]
1714
+ attr_accessor :query
1715
+
1716
+ # The value prefix. The value format is "value_prefix`token`" Only applies to "
1717
+ # in" header type. Must be empty for "in" query type. If not empty, the header
1718
+ # value has to match (case sensitive) this prefix. If not matched, JWT will not
1719
+ # be extracted. If matched, JWT will be extracted after the prefix is removed.
1720
+ # For example, for "Authorization: Bearer `JWT`", value_prefix="Bearer " with a
1721
+ # space at the end.
1722
+ # Corresponds to the JSON property `valuePrefix`
1723
+ # @return [String]
1724
+ attr_accessor :value_prefix
1725
+
1726
+ def initialize(**args)
1727
+ update!(**args)
1728
+ end
1729
+
1730
+ # Update properties of this object
1731
+ def update!(**args)
1732
+ @header = args[:header] if args.key?(:header)
1733
+ @query = args[:query] if args.key?(:query)
1734
+ @value_prefix = args[:value_prefix] if args.key?(:value_prefix)
1735
+ end
1736
+ end
1737
+
1738
+ # A description of a label.
1739
+ class LabelDescriptor
1740
+ include Google::Apis::Core::Hashable
1741
+
1742
+ # A human-readable description for the label.
1743
+ # Corresponds to the JSON property `description`
1744
+ # @return [String]
1745
+ attr_accessor :description
1746
+
1747
+ # The label key.
1748
+ # Corresponds to the JSON property `key`
1749
+ # @return [String]
1750
+ attr_accessor :key
1751
+
1752
+ # The type of data that can be assigned to the label.
1753
+ # Corresponds to the JSON property `valueType`
1754
+ # @return [String]
1755
+ attr_accessor :value_type
1756
+
1757
+ def initialize(**args)
1758
+ update!(**args)
1759
+ end
1760
+
1761
+ # Update properties of this object
1762
+ def update!(**args)
1763
+ @description = args[:description] if args.key?(:description)
1764
+ @key = args[:key] if args.key?(:key)
1765
+ @value_type = args[:value_type] if args.key?(:value_type)
1766
+ end
1767
+ end
1768
+
1769
+ # ListConnectionsResponse is the response to list peering states for the given
1770
+ # service and consumer project.
1771
+ class ListConnectionsResponse
1772
+ include Google::Apis::Core::Hashable
1773
+
1774
+ # The list of Connections.
1775
+ # Corresponds to the JSON property `connections`
1776
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Connection>]
1777
+ attr_accessor :connections
1778
+
1779
+ def initialize(**args)
1780
+ update!(**args)
1781
+ end
1782
+
1783
+ # Update properties of this object
1784
+ def update!(**args)
1785
+ @connections = args[:connections] if args.key?(:connections)
1786
+ end
1787
+ end
1788
+
1789
+ # A description of a log type. Example in YAML format: - name: library.
1790
+ # googleapis.com/activity_history description: The history of borrowing and
1791
+ # returning library items. display_name: Activity labels: - key: /customer_id
1792
+ # description: Identifier of a library customer
1793
+ class LogDescriptor
1794
+ include Google::Apis::Core::Hashable
1795
+
1796
+ # A human-readable description of this log. This information appears in the
1797
+ # documentation and can contain details.
1798
+ # Corresponds to the JSON property `description`
1799
+ # @return [String]
1800
+ attr_accessor :description
1801
+
1802
+ # The human-readable name for this log. This information appears on the user
1803
+ # interface and should be concise.
1804
+ # Corresponds to the JSON property `displayName`
1805
+ # @return [String]
1806
+ attr_accessor :display_name
1807
+
1808
+ # The set of labels that are available to describe a specific log entry. Runtime
1809
+ # requests that contain labels not specified here are considered invalid.
1810
+ # Corresponds to the JSON property `labels`
1811
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::LabelDescriptor>]
1812
+ attr_accessor :labels
1813
+
1814
+ # The name of the log. It must be less than 512 characters long and can include
1815
+ # the following characters: upper- and lower-case alphanumeric characters [A-Za-
1816
+ # z0-9], and punctuation characters including slash, underscore, hyphen, period [
1817
+ # /_-.].
1818
+ # Corresponds to the JSON property `name`
1819
+ # @return [String]
1820
+ attr_accessor :name
1821
+
1822
+ def initialize(**args)
1823
+ update!(**args)
1824
+ end
1825
+
1826
+ # Update properties of this object
1827
+ def update!(**args)
1828
+ @description = args[:description] if args.key?(:description)
1829
+ @display_name = args[:display_name] if args.key?(:display_name)
1830
+ @labels = args[:labels] if args.key?(:labels)
1831
+ @name = args[:name] if args.key?(:name)
1832
+ end
1833
+ end
1834
+
1835
+ # Logging configuration of the service. The following example shows how to
1836
+ # configure logs to be sent to the producer and consumer projects. In the
1837
+ # example, the `activity_history` log is sent to both the producer and consumer
1838
+ # projects, whereas the `purchase_history` log is only sent to the producer
1839
+ # project. monitored_resources: - type: library.googleapis.com/branch labels: -
1840
+ # key: /city description: The city where the library branch is located in. - key:
1841
+ # /name description: The name of the branch. logs: - name: activity_history
1842
+ # labels: - key: /customer_id - name: purchase_history logging:
1843
+ # producer_destinations: - monitored_resource: library.googleapis.com/branch
1844
+ # logs: - activity_history - purchase_history consumer_destinations: -
1845
+ # monitored_resource: library.googleapis.com/branch logs: - activity_history
1846
+ class Logging
1847
+ include Google::Apis::Core::Hashable
1848
+
1849
+ # Logging configurations for sending logs to the consumer project. There can be
1850
+ # multiple consumer destinations, each one must have a different monitored
1851
+ # resource type. A log can be used in at most one consumer destination.
1852
+ # Corresponds to the JSON property `consumerDestinations`
1853
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::LoggingDestination>]
1854
+ attr_accessor :consumer_destinations
1855
+
1856
+ # Logging configurations for sending logs to the producer project. There can be
1857
+ # multiple producer destinations, each one must have a different monitored
1858
+ # resource type. A log can be used in at most one producer destination.
1859
+ # Corresponds to the JSON property `producerDestinations`
1860
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::LoggingDestination>]
1861
+ attr_accessor :producer_destinations
1862
+
1863
+ def initialize(**args)
1864
+ update!(**args)
1865
+ end
1866
+
1867
+ # Update properties of this object
1868
+ def update!(**args)
1869
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
1870
+ @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
1871
+ end
1872
+ end
1873
+
1874
+ # Configuration of a specific logging destination (the producer project or the
1875
+ # consumer project).
1876
+ class LoggingDestination
1877
+ include Google::Apis::Core::Hashable
1878
+
1879
+ # Names of the logs to be sent to this destination. Each name must be defined in
1880
+ # the Service.logs section. If the log name is not a domain scoped name, it will
1881
+ # be automatically prefixed with the service name followed by "/".
1882
+ # Corresponds to the JSON property `logs`
1883
+ # @return [Array<String>]
1884
+ attr_accessor :logs
1885
+
1886
+ # The monitored resource type. The type must be defined in the Service.
1887
+ # monitored_resources section.
1888
+ # Corresponds to the JSON property `monitoredResource`
1889
+ # @return [String]
1890
+ attr_accessor :monitored_resource
1891
+
1892
+ def initialize(**args)
1893
+ update!(**args)
1894
+ end
1895
+
1896
+ # Update properties of this object
1897
+ def update!(**args)
1898
+ @logs = args[:logs] if args.key?(:logs)
1899
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
1900
+ end
1901
+ end
1902
+
1903
+ # Method represents a method of an API interface.
1904
+ class MethodProp
1905
+ include Google::Apis::Core::Hashable
1906
+
1907
+ # The simple name of this method.
1908
+ # Corresponds to the JSON property `name`
1909
+ # @return [String]
1910
+ attr_accessor :name
1911
+
1912
+ # Any metadata attached to the method.
1913
+ # Corresponds to the JSON property `options`
1914
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Option>]
1915
+ attr_accessor :options
1916
+
1917
+ # If true, the request is streamed.
1918
+ # Corresponds to the JSON property `requestStreaming`
1919
+ # @return [Boolean]
1920
+ attr_accessor :request_streaming
1921
+ alias_method :request_streaming?, :request_streaming
1922
+
1923
+ # A URL of the input message type.
1924
+ # Corresponds to the JSON property `requestTypeUrl`
1925
+ # @return [String]
1926
+ attr_accessor :request_type_url
1927
+
1928
+ # If true, the response is streamed.
1929
+ # Corresponds to the JSON property `responseStreaming`
1930
+ # @return [Boolean]
1931
+ attr_accessor :response_streaming
1932
+ alias_method :response_streaming?, :response_streaming
1933
+
1934
+ # The URL of the output message type.
1935
+ # Corresponds to the JSON property `responseTypeUrl`
1936
+ # @return [String]
1937
+ attr_accessor :response_type_url
1938
+
1939
+ # The source syntax of this method.
1940
+ # Corresponds to the JSON property `syntax`
1941
+ # @return [String]
1942
+ attr_accessor :syntax
1943
+
1944
+ def initialize(**args)
1945
+ update!(**args)
1946
+ end
1947
+
1948
+ # Update properties of this object
1949
+ def update!(**args)
1950
+ @name = args[:name] if args.key?(:name)
1951
+ @options = args[:options] if args.key?(:options)
1952
+ @request_streaming = args[:request_streaming] if args.key?(:request_streaming)
1953
+ @request_type_url = args[:request_type_url] if args.key?(:request_type_url)
1954
+ @response_streaming = args[:response_streaming] if args.key?(:response_streaming)
1955
+ @response_type_url = args[:response_type_url] if args.key?(:response_type_url)
1956
+ @syntax = args[:syntax] if args.key?(:syntax)
1957
+ end
1958
+ end
1959
+
1960
+ # Defines a metric type and its schema. Once a metric descriptor is created,
1961
+ # deleting or altering it stops data collection and makes the metric type's
1962
+ # existing data unusable.
1963
+ class MetricDescriptor
1964
+ include Google::Apis::Core::Hashable
1965
+
1966
+ # A detailed description of the metric, which can be used in documentation.
1967
+ # Corresponds to the JSON property `description`
1968
+ # @return [String]
1969
+ attr_accessor :description
1970
+
1971
+ # A concise name for the metric, which can be displayed in user interfaces. Use
1972
+ # sentence case without an ending period, for example "Request count". This
1973
+ # field is optional but it is recommended to be set for any metrics associated
1974
+ # with user-visible concepts, such as Quota.
1975
+ # Corresponds to the JSON property `displayName`
1976
+ # @return [String]
1977
+ attr_accessor :display_name
1978
+
1979
+ # The set of labels that can be used to describe a specific instance of this
1980
+ # metric type. For example, the `appengine.googleapis.com/http/server/
1981
+ # response_latencies` metric type has a label for the HTTP response code, `
1982
+ # response_code`, so you can look at latencies for successful responses or just
1983
+ # for responses that failed.
1984
+ # Corresponds to the JSON property `labels`
1985
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::LabelDescriptor>]
1986
+ attr_accessor :labels
1987
+
1988
+ # Optional. The launch stage of the metric definition.
1989
+ # Corresponds to the JSON property `launchStage`
1990
+ # @return [String]
1991
+ attr_accessor :launch_stage
1992
+
1993
+ # Additional annotations that can be used to guide the usage of a metric.
1994
+ # Corresponds to the JSON property `metadata`
1995
+ # @return [Google::Apis::ServicenetworkingV1beta::MetricDescriptorMetadata]
1996
+ attr_accessor :metadata
1997
+
1998
+ # Whether the metric records instantaneous values, changes to a value, etc. Some
1999
+ # combinations of `metric_kind` and `value_type` might not be supported.
2000
+ # Corresponds to the JSON property `metricKind`
2001
+ # @return [String]
2002
+ attr_accessor :metric_kind
2003
+
2004
+ # Read-only. If present, then a time series, which is identified partially by a
2005
+ # metric type and a MonitoredResourceDescriptor, that is associated with this
2006
+ # metric type can only be associated with one of the monitored resource types
2007
+ # listed here.
2008
+ # Corresponds to the JSON property `monitoredResourceTypes`
2009
+ # @return [Array<String>]
2010
+ attr_accessor :monitored_resource_types
2011
+
2012
+ # The resource name of the metric descriptor.
2013
+ # Corresponds to the JSON property `name`
2014
+ # @return [String]
2015
+ attr_accessor :name
2016
+
2017
+ # The metric type, including its DNS name prefix. The type is not URL-encoded.
2018
+ # All user-defined metric types have the DNS name `custom.googleapis.com` or `
2019
+ # external.googleapis.com`. Metric types should use a natural hierarchical
2020
+ # grouping. For example: "custom.googleapis.com/invoice/paid/amount" "external.
2021
+ # googleapis.com/prometheus/up" "appengine.googleapis.com/http/server/
2022
+ # response_latencies"
2023
+ # Corresponds to the JSON property `type`
2024
+ # @return [String]
2025
+ attr_accessor :type
2026
+
2027
+ # The units in which the metric value is reported. It is only applicable if the `
2028
+ # value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the
2029
+ # representation of the stored metric values. Different systems may scale the
2030
+ # values to be more easily displayed (so a value of `0.02KBy` _might_ be
2031
+ # displayed as `20By`, and a value of `3523KBy` _might_ be displayed as `3.5MBy`)
2032
+ # . However, if the `unit` is `KBy`, then the value of the metric is always in
2033
+ # thousands of bytes, no matter how it may be displayed.. If you want a custom
2034
+ # metric to record the exact number of CPU-seconds used by a job, you can create
2035
+ # an `INT64 CUMULATIVE` metric whose `unit` is `s`CPU`` (or equivalently `1s`CPU`
2036
+ # ` or just `s`). If the job uses 12,005 CPU-seconds, then the value is written
2037
+ # as `12005`. Alternatively, if you want a custom metric to record data in a
2038
+ # more granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
2039
+ # `ks`CPU``, and then write the value `12.005` (which is `12005/1000`), or use `
2040
+ # Kis`CPU`` and write `11.723` (which is `12005/1024`). The supported units are
2041
+ # a subset of [The Unified Code for Units of Measure](http://unitsofmeasure.org/
2042
+ # ucum.html) standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s`
2043
+ # second * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (
2044
+ # PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^
2045
+ # 12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^
2046
+ # 24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-
2047
+ # 12) * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto (
2048
+ # 10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (
2049
+ # 2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these
2050
+ # connectors: * `/` division or ratio (as an infix operator). For examples, `kBy/
2051
+ # `email`` or `MiBy/10ms` (although you should almost never have `/s` in a
2052
+ # metric `unit`; rates should always be computed at query time from the
2053
+ # underlying cumulative or delta value). * `.` multiplication or composition (as
2054
+ # an infix operator). For examples, `GBy.d` or `k`watt`.h`. The grammar for a
2055
+ # unit is as follows: Expression = Component ` "." Component ` ` "/" Component `
2056
+ # ; Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ;
2057
+ # Annotation = "`" NAME "`" ; Notes: * `Annotation` is just a comment if it
2058
+ # follows a `UNIT`. If the annotation is used alone, then the unit is equivalent
2059
+ # to `1`. For examples, ``request`/s == 1/s`, `By`transmitted`/s == By/s`. * `
2060
+ # NAME` is a sequence of non-blank printable ASCII characters not containing ```
2061
+ # or ```. * `1` represents a unitary [dimensionless unit](https://en.wikipedia.
2062
+ # org/wiki/Dimensionless_quantity) of 1, such as in `1/s`. It is typically used
2063
+ # when none of the basic units are appropriate. For example, "new users per day"
2064
+ # can be represented as `1/d` or ``new-users`/d` (and a metric value `5` would
2065
+ # mean "5 new users). Alternatively, "thousands of page views per day" would be
2066
+ # represented as `1000/d` or `k1/d` or `k`page_views`/d` (and a metric value of `
2067
+ # 5.3` would mean "5300 page views per day"). * `%` represents dimensionless
2068
+ # value of 1/100, and annotates values giving a percentage (so the metric values
2069
+ # are typically in the range of 0..100, and a metric value `3` means "3 percent")
2070
+ # . * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1,
2071
+ # that will be multiplied by 100 and displayed as a percentage (so a metric
2072
+ # value `0.03` means "3 percent").
2073
+ # Corresponds to the JSON property `unit`
2074
+ # @return [String]
2075
+ attr_accessor :unit
2076
+
2077
+ # Whether the measurement is an integer, a floating-point number, etc. Some
2078
+ # combinations of `metric_kind` and `value_type` might not be supported.
2079
+ # Corresponds to the JSON property `valueType`
2080
+ # @return [String]
2081
+ attr_accessor :value_type
2082
+
2083
+ def initialize(**args)
2084
+ update!(**args)
2085
+ end
2086
+
2087
+ # Update properties of this object
2088
+ def update!(**args)
2089
+ @description = args[:description] if args.key?(:description)
2090
+ @display_name = args[:display_name] if args.key?(:display_name)
2091
+ @labels = args[:labels] if args.key?(:labels)
2092
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2093
+ @metadata = args[:metadata] if args.key?(:metadata)
2094
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
2095
+ @monitored_resource_types = args[:monitored_resource_types] if args.key?(:monitored_resource_types)
2096
+ @name = args[:name] if args.key?(:name)
2097
+ @type = args[:type] if args.key?(:type)
2098
+ @unit = args[:unit] if args.key?(:unit)
2099
+ @value_type = args[:value_type] if args.key?(:value_type)
2100
+ end
2101
+ end
2102
+
2103
+ # Additional annotations that can be used to guide the usage of a metric.
2104
+ class MetricDescriptorMetadata
2105
+ include Google::Apis::Core::Hashable
2106
+
2107
+ # The delay of data points caused by ingestion. Data points older than this age
2108
+ # are guaranteed to be ingested and available to be read, excluding data loss
2109
+ # due to errors.
2110
+ # Corresponds to the JSON property `ingestDelay`
2111
+ # @return [String]
2112
+ attr_accessor :ingest_delay
2113
+
2114
+ # Deprecated. Must use the MetricDescriptor.launch_stage instead.
2115
+ # Corresponds to the JSON property `launchStage`
2116
+ # @return [String]
2117
+ attr_accessor :launch_stage
2118
+
2119
+ # The sampling period of metric data points. For metrics which are written
2120
+ # periodically, consecutive data points are stored at this time interval,
2121
+ # excluding data loss due to errors. Metrics with a higher granularity have a
2122
+ # smaller sampling period.
2123
+ # Corresponds to the JSON property `samplePeriod`
2124
+ # @return [String]
2125
+ attr_accessor :sample_period
2126
+
2127
+ def initialize(**args)
2128
+ update!(**args)
2129
+ end
2130
+
2131
+ # Update properties of this object
2132
+ def update!(**args)
2133
+ @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay)
2134
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2135
+ @sample_period = args[:sample_period] if args.key?(:sample_period)
2136
+ end
2137
+ end
2138
+
2139
+ # Bind API methods to metrics. Binding a method to a metric causes that metric's
2140
+ # configured quota behaviors to apply to the method call.
2141
+ class MetricRule
2142
+ include Google::Apis::Core::Hashable
2143
+
2144
+ # Metrics to update when the selected methods are called, and the associated
2145
+ # cost applied to each metric. The key of the map is the metric name, and the
2146
+ # values are the amount increased for the metric against which the quota limits
2147
+ # are defined. The value must not be negative.
2148
+ # Corresponds to the JSON property `metricCosts`
2149
+ # @return [Hash<String,Fixnum>]
2150
+ attr_accessor :metric_costs
2151
+
2152
+ # Selects the methods to which this rule applies. Refer to selector for syntax
2153
+ # details.
2154
+ # Corresponds to the JSON property `selector`
2155
+ # @return [String]
2156
+ attr_accessor :selector
2157
+
2158
+ def initialize(**args)
2159
+ update!(**args)
2160
+ end
2161
+
2162
+ # Update properties of this object
2163
+ def update!(**args)
2164
+ @metric_costs = args[:metric_costs] if args.key?(:metric_costs)
2165
+ @selector = args[:selector] if args.key?(:selector)
2166
+ end
2167
+ end
2168
+
2169
+ # Declares an API Interface to be included in this interface. The including
2170
+ # interface must redeclare all the methods from the included interface, but
2171
+ # documentation and options are inherited as follows: - If after comment and
2172
+ # whitespace stripping, the documentation string of the redeclared method is
2173
+ # empty, it will be inherited from the original method. - Each annotation
2174
+ # belonging to the service config (http, visibility) which is not set in the
2175
+ # redeclared method will be inherited. - If an http annotation is inherited, the
2176
+ # path pattern will be modified as follows. Any version prefix will be replaced
2177
+ # by the version of the including interface plus the root path if specified.
2178
+ # Example of a simple mixin: package google.acl.v1; service AccessControl ` //
2179
+ # Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) `
2180
+ # option (google.api.http).get = "/v1/`resource=**`:getAcl"; ` ` package google.
2181
+ # storage.v2; service Storage ` // rpc GetAcl(GetAclRequest) returns (Acl); //
2182
+ # Get a data record. rpc GetData(GetDataRequest) returns (Data) ` option (google.
2183
+ # api.http).get = "/v2/`resource=**`"; ` ` Example of a mixin configuration:
2184
+ # apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.
2185
+ # AccessControl The mixin construct implies that all methods in `AccessControl`
2186
+ # are also declared with same name and request/response types in `Storage`. A
2187
+ # documentation generator or annotation processor will see the effective `
2188
+ # Storage.GetAcl` method after inheriting documentation and annotations as
2189
+ # follows: service Storage ` // Get the underlying ACL object. rpc GetAcl(
2190
+ # GetAclRequest) returns (Acl) ` option (google.api.http).get = "/v2/`resource=**
2191
+ # `:getAcl"; ` ... ` Note how the version in the path pattern changed from `v1`
2192
+ # to `v2`. If the `root` field in the mixin is specified, it should be a
2193
+ # relative path under which inherited HTTP paths are placed. Example: apis: -
2194
+ # name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl
2195
+ # root: acls This implies the following inherited HTTP annotation: service
2196
+ # Storage ` // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (
2197
+ # Acl) ` option (google.api.http).get = "/v2/acls/`resource=**`:getAcl"; ` ... `
2198
+ class Mixin
2199
+ include Google::Apis::Core::Hashable
2200
+
2201
+ # The fully qualified name of the interface which is included.
2202
+ # Corresponds to the JSON property `name`
2203
+ # @return [String]
2204
+ attr_accessor :name
2205
+
2206
+ # If non-empty specifies a path under which inherited HTTP paths are rooted.
2207
+ # Corresponds to the JSON property `root`
2208
+ # @return [String]
2209
+ attr_accessor :root
2210
+
2211
+ def initialize(**args)
2212
+ update!(**args)
2213
+ end
2214
+
2215
+ # Update properties of this object
2216
+ def update!(**args)
2217
+ @name = args[:name] if args.key?(:name)
2218
+ @root = args[:root] if args.key?(:root)
2219
+ end
2220
+ end
2221
+
2222
+ # An object that describes the schema of a MonitoredResource object using a type
2223
+ # name and a set of labels. For example, the monitored resource descriptor for
2224
+ # Google Compute Engine VM instances has a type of `"gce_instance"` and
2225
+ # specifies the use of the labels `"instance_id"` and `"zone"` to identify
2226
+ # particular VM instances. Different APIs can support different monitored
2227
+ # resource types. APIs generally provide a `list` method that returns the
2228
+ # monitored resource descriptors used by the API.
2229
+ class MonitoredResourceDescriptor
2230
+ include Google::Apis::Core::Hashable
2231
+
2232
+ # Optional. A detailed description of the monitored resource type that might be
2233
+ # used in documentation.
2234
+ # Corresponds to the JSON property `description`
2235
+ # @return [String]
2236
+ attr_accessor :description
2237
+
2238
+ # Optional. A concise name for the monitored resource type that might be
2239
+ # displayed in user interfaces. It should be a Title Cased Noun Phrase, without
2240
+ # any article or other determiners. For example, `"Google Cloud SQL Database"`.
2241
+ # Corresponds to the JSON property `displayName`
2242
+ # @return [String]
2243
+ attr_accessor :display_name
2244
+
2245
+ # Required. A set of labels used to describe instances of this monitored
2246
+ # resource type. For example, an individual Google Cloud SQL database is
2247
+ # identified by values for the labels `"database_id"` and `"zone"`.
2248
+ # Corresponds to the JSON property `labels`
2249
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::LabelDescriptor>]
2250
+ attr_accessor :labels
2251
+
2252
+ # Optional. The launch stage of the monitored resource definition.
2253
+ # Corresponds to the JSON property `launchStage`
2254
+ # @return [String]
2255
+ attr_accessor :launch_stage
2256
+
2257
+ # Optional. The resource name of the monitored resource descriptor: `"projects/`
2258
+ # project_id`/monitoredResourceDescriptors/`type`"` where `type` is the value of
2259
+ # the `type` field in this object and `project_id` is a project ID that provides
2260
+ # API-specific context for accessing the type. APIs that do not use project
2261
+ # information can use the resource name format `"monitoredResourceDescriptors/`
2262
+ # type`"`.
2263
+ # Corresponds to the JSON property `name`
2264
+ # @return [String]
2265
+ attr_accessor :name
2266
+
2267
+ # Required. The monitored resource type. For example, the type `"
2268
+ # cloudsql_database"` represents databases in Google Cloud SQL.
2269
+ # Corresponds to the JSON property `type`
2270
+ # @return [String]
2271
+ attr_accessor :type
2272
+
2273
+ def initialize(**args)
2274
+ update!(**args)
2275
+ end
2276
+
2277
+ # Update properties of this object
2278
+ def update!(**args)
2279
+ @description = args[:description] if args.key?(:description)
2280
+ @display_name = args[:display_name] if args.key?(:display_name)
2281
+ @labels = args[:labels] if args.key?(:labels)
2282
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2283
+ @name = args[:name] if args.key?(:name)
2284
+ @type = args[:type] if args.key?(:type)
2285
+ end
2286
+ end
2287
+
2288
+ # Monitoring configuration of the service. The example below shows how to
2289
+ # configure monitored resources and metrics for monitoring. In the example, a
2290
+ # monitored resource and two metrics are defined. The `library.googleapis.com/
2291
+ # book/returned_count` metric is sent to both producer and consumer projects,
2292
+ # whereas the `library.googleapis.com/book/num_overdue` metric is only sent to
2293
+ # the consumer project. monitored_resources: - type: library.googleapis.com/
2294
+ # Branch display_name: "Library Branch" description: "A branch of a library."
2295
+ # launch_stage: GA labels: - key: resource_container description: "The Cloud
2296
+ # container (ie. project id) for the Branch." - key: location description: "The
2297
+ # location of the library branch." - key: branch_id description: "The id of the
2298
+ # branch." metrics: - name: library.googleapis.com/book/returned_count
2299
+ # display_name: "Books Returned" description: "The count of books that have been
2300
+ # returned." launch_stage: GA metric_kind: DELTA value_type: INT64 unit: "1"
2301
+ # labels: - key: customer_id description: "The id of the customer." - name:
2302
+ # library.googleapis.com/book/num_overdue display_name: "Books Overdue"
2303
+ # description: "The current number of overdue books." launch_stage: GA
2304
+ # metric_kind: GAUGE value_type: INT64 unit: "1" labels: - key: customer_id
2305
+ # description: "The id of the customer." monitoring: producer_destinations: -
2306
+ # monitored_resource: library.googleapis.com/Branch metrics: - library.
2307
+ # googleapis.com/book/returned_count consumer_destinations: - monitored_resource:
2308
+ # library.googleapis.com/Branch metrics: - library.googleapis.com/book/
2309
+ # returned_count - library.googleapis.com/book/num_overdue
2310
+ class Monitoring
2311
+ include Google::Apis::Core::Hashable
2312
+
2313
+ # Monitoring configurations for sending metrics to the consumer project. There
2314
+ # can be multiple consumer destinations. A monitored resource type may appear in
2315
+ # multiple monitoring destinations if different aggregations are needed for
2316
+ # different sets of metrics associated with that monitored resource type. A
2317
+ # monitored resource and metric pair may only be used once in the Monitoring
2318
+ # configuration.
2319
+ # Corresponds to the JSON property `consumerDestinations`
2320
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::MonitoringDestination>]
2321
+ attr_accessor :consumer_destinations
2322
+
2323
+ # Monitoring configurations for sending metrics to the producer project. There
2324
+ # can be multiple producer destinations. A monitored resource type may appear in
2325
+ # multiple monitoring destinations if different aggregations are needed for
2326
+ # different sets of metrics associated with that monitored resource type. A
2327
+ # monitored resource and metric pair may only be used once in the Monitoring
2328
+ # configuration.
2329
+ # Corresponds to the JSON property `producerDestinations`
2330
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::MonitoringDestination>]
2331
+ attr_accessor :producer_destinations
2332
+
2333
+ def initialize(**args)
2334
+ update!(**args)
2335
+ end
2336
+
2337
+ # Update properties of this object
2338
+ def update!(**args)
2339
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
2340
+ @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
2341
+ end
2342
+ end
2343
+
2344
+ # Configuration of a specific monitoring destination (the producer project or
2345
+ # the consumer project).
2346
+ class MonitoringDestination
2347
+ include Google::Apis::Core::Hashable
2348
+
2349
+ # Types of the metrics to report to this monitoring destination. Each type must
2350
+ # be defined in Service.metrics section.
2351
+ # Corresponds to the JSON property `metrics`
2352
+ # @return [Array<String>]
2353
+ attr_accessor :metrics
2354
+
2355
+ # The monitored resource type. The type must be defined in Service.
2356
+ # monitored_resources section.
2357
+ # Corresponds to the JSON property `monitoredResource`
2358
+ # @return [String]
2359
+ attr_accessor :monitored_resource
2360
+
2361
+ def initialize(**args)
2362
+ update!(**args)
2363
+ end
2364
+
2365
+ # Update properties of this object
2366
+ def update!(**args)
2367
+ @metrics = args[:metrics] if args.key?(:metrics)
2368
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
2369
+ end
2370
+ end
2371
+
2372
+ # OAuth scopes are a way to define data and permissions on data. For example,
2373
+ # there are scopes defined for "Read-only access to Google Calendar" and "Access
2374
+ # to Cloud Platform". Users can consent to a scope for an application, giving it
2375
+ # permission to access that data on their behalf. OAuth scope specifications
2376
+ # should be fairly coarse grained; a user will need to see and understand the
2377
+ # text description of what your scope means. In most cases: use one or at most
2378
+ # two OAuth scopes for an entire family of products. If your product has
2379
+ # multiple APIs, you should probably be sharing the OAuth scope across all of
2380
+ # those APIs. When you need finer grained OAuth consent screens: talk with your
2381
+ # product management about how developers will use them in practice. Please note
2382
+ # that even though each of the canonical scopes is enough for a request to be
2383
+ # accepted and passed to the backend, a request can still fail due to the
2384
+ # backend requiring additional scopes or permissions.
2385
+ class OAuthRequirements
2386
+ include Google::Apis::Core::Hashable
2387
+
2388
+ # The list of publicly documented OAuth scopes that are allowed access. An OAuth
2389
+ # token containing any of these scopes will be accepted. Example:
2390
+ # canonical_scopes: https://www.googleapis.com/auth/calendar, https://www.
2391
+ # googleapis.com/auth/calendar.read
2392
+ # Corresponds to the JSON property `canonicalScopes`
2393
+ # @return [String]
2394
+ attr_accessor :canonical_scopes
2395
+
2396
+ def initialize(**args)
2397
+ update!(**args)
2398
+ end
2399
+
2400
+ # Update properties of this object
2401
+ def update!(**args)
2402
+ @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes)
2403
+ end
2404
+ end
2405
+
2406
+ # This resource represents a long-running operation that is the result of a
2407
+ # network API call.
2408
+ class Operation
2409
+ include Google::Apis::Core::Hashable
2410
+
2411
+ # If the value is `false`, it means the operation is still in progress. If `true`
2412
+ # , the operation is completed, and either `error` or `response` is available.
2413
+ # Corresponds to the JSON property `done`
2414
+ # @return [Boolean]
2415
+ attr_accessor :done
2416
+ alias_method :done?, :done
2417
+
2418
+ # The `Status` type defines a logical error model that is suitable for different
2419
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2420
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2421
+ # data: error code, error message, and error details. You can find out more
2422
+ # about this error model and how to work with it in the [API Design Guide](https:
2423
+ # //cloud.google.com/apis/design/errors).
2424
+ # Corresponds to the JSON property `error`
2425
+ # @return [Google::Apis::ServicenetworkingV1beta::Status]
2426
+ attr_accessor :error
2427
+
2428
+ # Service-specific metadata associated with the operation. It typically contains
2429
+ # progress information and common metadata such as create time. Some services
2430
+ # might not provide such metadata. Any method that returns a long-running
2431
+ # operation should document the metadata type, if any.
2432
+ # Corresponds to the JSON property `metadata`
2433
+ # @return [Hash<String,Object>]
2434
+ attr_accessor :metadata
2435
+
2436
+ # The server-assigned name, which is only unique within the same service that
2437
+ # originally returns it. If you use the default HTTP mapping, the `name` should
2438
+ # be a resource name ending with `operations/`unique_id``.
2439
+ # Corresponds to the JSON property `name`
2440
+ # @return [String]
2441
+ attr_accessor :name
2442
+
2443
+ # The normal response of the operation in case of success. If the original
2444
+ # method returns no data on success, such as `Delete`, the response is `google.
2445
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
2446
+ # the response should be the resource. For other methods, the response should
2447
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
2448
+ # example, if the original method name is `TakeSnapshot()`, the inferred
2449
+ # response type is `TakeSnapshotResponse`.
2450
+ # Corresponds to the JSON property `response`
2451
+ # @return [Hash<String,Object>]
2452
+ attr_accessor :response
2453
+
2454
+ def initialize(**args)
2455
+ update!(**args)
2456
+ end
2457
+
2458
+ # Update properties of this object
2459
+ def update!(**args)
2460
+ @done = args[:done] if args.key?(:done)
2461
+ @error = args[:error] if args.key?(:error)
2462
+ @metadata = args[:metadata] if args.key?(:metadata)
2463
+ @name = args[:name] if args.key?(:name)
2464
+ @response = args[:response] if args.key?(:response)
2465
+ end
2466
+ end
2467
+
2468
+ # A protocol buffer option, which can be attached to a message, field,
2469
+ # enumeration, etc.
2470
+ class Option
2471
+ include Google::Apis::Core::Hashable
2472
+
2473
+ # The option's name. For protobuf built-in options (options defined in
2474
+ # descriptor.proto), this is the short name. For example, `"map_entry"`. For
2475
+ # custom options, it should be the fully-qualified name. For example, `"google.
2476
+ # api.http"`.
2477
+ # Corresponds to the JSON property `name`
2478
+ # @return [String]
2479
+ attr_accessor :name
2480
+
2481
+ # The option's value packed in an Any message. If the value is a primitive, the
2482
+ # corresponding wrapper type defined in google/protobuf/wrappers.proto should be
2483
+ # used. If the value is an enum, it should be stored as an int32 value using the
2484
+ # google.protobuf.Int32Value type.
2485
+ # Corresponds to the JSON property `value`
2486
+ # @return [Hash<String,Object>]
2487
+ attr_accessor :value
2488
+
2489
+ def initialize(**args)
2490
+ update!(**args)
2491
+ end
2492
+
2493
+ # Update properties of this object
2494
+ def update!(**args)
2495
+ @name = args[:name] if args.key?(:name)
2496
+ @value = args[:value] if args.key?(:value)
2497
+ end
2498
+ end
2499
+
2500
+ # Represents a documentation page. A page can contain subpages to represent
2501
+ # nested documentation set structure.
2502
+ class Page
2503
+ include Google::Apis::Core::Hashable
2504
+
2505
+ # The Markdown content of the page. You can use (== include `path` ==) to
2506
+ # include content from a Markdown file.
2507
+ # Corresponds to the JSON property `content`
2508
+ # @return [String]
2509
+ attr_accessor :content
2510
+
2511
+ # The name of the page. It will be used as an identity of the page to generate
2512
+ # URI of the page, text of the link to this page in navigation, etc. The full
2513
+ # page name (start from the root page name to this page concatenated with `.`)
2514
+ # can be used as reference to the page in your documentation. For example: pages:
2515
+ # - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java
2516
+ # content: (== include tutorial_java.md ==) You can reference `Java` page using
2517
+ # Markdown reference link syntax: `Java`.
2518
+ # Corresponds to the JSON property `name`
2519
+ # @return [String]
2520
+ attr_accessor :name
2521
+
2522
+ # Subpages of this page. The order of subpages specified here will be honored in
2523
+ # the generated docset.
2524
+ # Corresponds to the JSON property `subpages`
2525
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Page>]
2526
+ attr_accessor :subpages
2527
+
2528
+ def initialize(**args)
2529
+ update!(**args)
2530
+ end
2531
+
2532
+ # Update properties of this object
2533
+ def update!(**args)
2534
+ @content = args[:content] if args.key?(:content)
2535
+ @name = args[:name] if args.key?(:name)
2536
+ @subpages = args[:subpages] if args.key?(:subpages)
2537
+ end
2538
+ end
2539
+
2540
+ # DNS domain suffix for which requests originating in the producer VPC network
2541
+ # are resolved in the associated consumer VPC network.
2542
+ class PeeredDnsDomain
2543
+ include Google::Apis::Core::Hashable
2544
+
2545
+ # The DNS domain name suffix e.g. `example.com.`.
2546
+ # Corresponds to the JSON property `dnsSuffix`
2547
+ # @return [String]
2548
+ attr_accessor :dns_suffix
2549
+
2550
+ # User assigned name for this resource. Must be unique within the consumer
2551
+ # network. The name must be 1-63 characters long, must begin with a letter, end
2552
+ # with a letter or digit, and only contain lowercase letters, digits or dashes.
2553
+ # Corresponds to the JSON property `name`
2554
+ # @return [String]
2555
+ attr_accessor :name
2556
+
2557
+ def initialize(**args)
2558
+ update!(**args)
2559
+ end
2560
+
2561
+ # Update properties of this object
2562
+ def update!(**args)
2563
+ @dns_suffix = args[:dns_suffix] if args.key?(:dns_suffix)
2564
+ @name = args[:name] if args.key?(:name)
2565
+ end
2566
+ end
2567
+
2568
+ # Metadata provided through GetOperation request for the LRO generated by
2569
+ # CreatePeeredDnsDomain API.
2570
+ class PeeredDnsDomainMetadata
2571
+ include Google::Apis::Core::Hashable
2572
+
2573
+ def initialize(**args)
2574
+ update!(**args)
2575
+ end
2576
+
2577
+ # Update properties of this object
2578
+ def update!(**args)
2579
+ end
2580
+ end
2581
+
2582
+ # Grouping of IAM role and IAM member.
2583
+ class PolicyBinding
2584
+ include Google::Apis::Core::Hashable
2585
+
2586
+ # Required. Member to bind the role with. See /iam/docs/reference/rest/v1/Policy#
2587
+ # Binding for how to format each member. Eg. - user:myuser@mydomain.com -
2588
+ # serviceAccount:my-service-account@app.gserviceaccount.com
2589
+ # Corresponds to the JSON property `member`
2590
+ # @return [String]
2591
+ attr_accessor :member
2592
+
2593
+ # Required. Role to apply. Only allowlisted roles can be used at the specified
2594
+ # granularity. The role must be one of the following: - 'roles/container.
2595
+ # hostServiceAgentUser' applied on the shared VPC host project - 'roles/compute.
2596
+ # securityAdmin' applied on the shared VPC host project
2597
+ # Corresponds to the JSON property `role`
2598
+ # @return [String]
2599
+ attr_accessor :role
2600
+
2601
+ def initialize(**args)
2602
+ update!(**args)
2603
+ end
2604
+
2605
+ # Update properties of this object
2606
+ def update!(**args)
2607
+ @member = args[:member] if args.key?(:member)
2608
+ @role = args[:role] if args.key?(:role)
2609
+ end
2610
+ end
2611
+
2612
+ # Quota configuration helps to achieve fairness and budgeting in service usage.
2613
+ # The metric based quota configuration works this way: - The service
2614
+ # configuration defines a set of metrics. - For API calls, the quota.
2615
+ # metric_rules maps methods to metrics with corresponding costs. - The quota.
2616
+ # limits defines limits on the metrics, which will be used for quota checks at
2617
+ # runtime. An example quota configuration in yaml format: quota: limits: - name:
2618
+ # apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: "1/min/`
2619
+ # project`" # rate limit for consumer projects values: STANDARD: 10000 # The
2620
+ # metric rules bind all methods to the read_calls metric, # except for the
2621
+ # UpdateBook and DeleteBook methods. These two methods # are mapped to the
2622
+ # write_calls metric, with the UpdateBook method # consuming at twice rate as
2623
+ # the DeleteBook method. metric_rules: - selector: "*" metric_costs: library.
2624
+ # googleapis.com/read_calls: 1 - selector: google.example.library.v1.
2625
+ # LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 -
2626
+ # selector: google.example.library.v1.LibraryService.DeleteBook metric_costs:
2627
+ # library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics:
2628
+ # - name: library.googleapis.com/read_calls display_name: Read requests
2629
+ # metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/
2630
+ # write_calls display_name: Write requests metric_kind: DELTA value_type: INT64
2631
+ class Quota
2632
+ include Google::Apis::Core::Hashable
2633
+
2634
+ # List of `QuotaLimit` definitions for the service.
2635
+ # Corresponds to the JSON property `limits`
2636
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::QuotaLimit>]
2637
+ attr_accessor :limits
2638
+
2639
+ # List of `MetricRule` definitions, each one mapping a selected method to one or
2640
+ # more metrics.
2641
+ # Corresponds to the JSON property `metricRules`
2642
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::MetricRule>]
2643
+ attr_accessor :metric_rules
2644
+
2645
+ def initialize(**args)
2646
+ update!(**args)
2647
+ end
2648
+
2649
+ # Update properties of this object
2650
+ def update!(**args)
2651
+ @limits = args[:limits] if args.key?(:limits)
2652
+ @metric_rules = args[:metric_rules] if args.key?(:metric_rules)
2653
+ end
2654
+ end
2655
+
2656
+ # `QuotaLimit` defines a specific limit that applies over a specified duration
2657
+ # for a limit type. There can be at most one limit for a duration and limit type
2658
+ # combination defined within a `QuotaGroup`.
2659
+ class QuotaLimit
2660
+ include Google::Apis::Core::Hashable
2661
+
2662
+ # Default number of tokens that can be consumed during the specified duration.
2663
+ # This is the number of tokens assigned when a client application developer
2664
+ # activates the service for his/her project. Specifying a value of 0 will block
2665
+ # all requests. This can be used if you are provisioning quota to selected
2666
+ # consumers and blocking others. Similarly, a value of -1 will indicate an
2667
+ # unlimited quota. No other negative values are allowed. Used by group-based
2668
+ # quotas only.
2669
+ # Corresponds to the JSON property `defaultLimit`
2670
+ # @return [Fixnum]
2671
+ attr_accessor :default_limit
2672
+
2673
+ # Optional. User-visible, extended description for this quota limit. Should be
2674
+ # used only when more context is needed to understand this limit than provided
2675
+ # by the limit's display name (see: `display_name`).
2676
+ # Corresponds to the JSON property `description`
2677
+ # @return [String]
2678
+ attr_accessor :description
2679
+
2680
+ # User-visible display name for this limit. Optional. If not set, the UI will
2681
+ # provide a default display name based on the quota configuration. This field
2682
+ # can be used to override the default display name generated from the
2683
+ # configuration.
2684
+ # Corresponds to the JSON property `displayName`
2685
+ # @return [String]
2686
+ attr_accessor :display_name
2687
+
2688
+ # Duration of this limit in textual notation. Must be "100s" or "1d". Used by
2689
+ # group-based quotas only.
2690
+ # Corresponds to the JSON property `duration`
2691
+ # @return [String]
2692
+ attr_accessor :duration
2693
+
2694
+ # Free tier value displayed in the Developers Console for this limit. The free
2695
+ # tier is the number of tokens that will be subtracted from the billed amount
2696
+ # when billing is enabled. This field can only be set on a limit with duration "
2697
+ # 1d", in a billable group; it is invalid on any other limit. If this field is
2698
+ # not set, it defaults to 0, indicating that there is no free tier for this
2699
+ # service. Used by group-based quotas only.
2700
+ # Corresponds to the JSON property `freeTier`
2701
+ # @return [Fixnum]
2702
+ attr_accessor :free_tier
2703
+
2704
+ # Maximum number of tokens that can be consumed during the specified duration.
2705
+ # Client application developers can override the default limit up to this
2706
+ # maximum. If specified, this value cannot be set to a value less than the
2707
+ # default limit. If not specified, it is set to the default limit. To allow
2708
+ # clients to apply overrides with no upper bound, set this to -1, indicating
2709
+ # unlimited maximum quota. Used by group-based quotas only.
2710
+ # Corresponds to the JSON property `maxLimit`
2711
+ # @return [Fixnum]
2712
+ attr_accessor :max_limit
2713
+
2714
+ # The name of the metric this quota limit applies to. The quota limits with the
2715
+ # same metric will be checked together during runtime. The metric must be
2716
+ # defined within the service config.
2717
+ # Corresponds to the JSON property `metric`
2718
+ # @return [String]
2719
+ attr_accessor :metric
2720
+
2721
+ # Name of the quota limit. The name must be provided, and it must be unique
2722
+ # within the service. The name can only include alphanumeric characters as well
2723
+ # as '-'. The maximum length of the limit name is 64 characters.
2724
+ # Corresponds to the JSON property `name`
2725
+ # @return [String]
2726
+ attr_accessor :name
2727
+
2728
+ # Specify the unit of the quota limit. It uses the same syntax as Metric.unit.
2729
+ # The supported unit kinds are determined by the quota backend system. Here are
2730
+ # some examples: * "1/min/`project`" for quota per minute per project. Note: the
2731
+ # order of unit components is insignificant. The "1" at the beginning is
2732
+ # required to follow the metric unit syntax.
2733
+ # Corresponds to the JSON property `unit`
2734
+ # @return [String]
2735
+ attr_accessor :unit
2736
+
2737
+ # Tiered limit values. You must specify this as a key:value pair, with an
2738
+ # integer value that is the maximum number of requests allowed for the specified
2739
+ # unit. Currently only STANDARD is supported.
2740
+ # Corresponds to the JSON property `values`
2741
+ # @return [Hash<String,Fixnum>]
2742
+ attr_accessor :values
2743
+
2744
+ def initialize(**args)
2745
+ update!(**args)
2746
+ end
2747
+
2748
+ # Update properties of this object
2749
+ def update!(**args)
2750
+ @default_limit = args[:default_limit] if args.key?(:default_limit)
2751
+ @description = args[:description] if args.key?(:description)
2752
+ @display_name = args[:display_name] if args.key?(:display_name)
2753
+ @duration = args[:duration] if args.key?(:duration)
2754
+ @free_tier = args[:free_tier] if args.key?(:free_tier)
2755
+ @max_limit = args[:max_limit] if args.key?(:max_limit)
2756
+ @metric = args[:metric] if args.key?(:metric)
2757
+ @name = args[:name] if args.key?(:name)
2758
+ @unit = args[:unit] if args.key?(:unit)
2759
+ @values = args[:values] if args.key?(:values)
2760
+ end
2761
+ end
2762
+
2763
+ # Represents a found unused range.
2764
+ class Range
2765
+ include Google::Apis::Core::Hashable
2766
+
2767
+ # CIDR range in "10.x.x.x/y" format that is within the allocated ranges and
2768
+ # currently unused.
2769
+ # Corresponds to the JSON property `ipCidrRange`
2770
+ # @return [String]
2771
+ attr_accessor :ip_cidr_range
2772
+
2773
+ # In the Shared VPC host project, the VPC network that's peered with the
2774
+ # consumer network. For example: `projects/1234321/global/networks/host-network`
2775
+ # Corresponds to the JSON property `network`
2776
+ # @return [String]
2777
+ attr_accessor :network
2778
+
2779
+ def initialize(**args)
2780
+ update!(**args)
2781
+ end
2782
+
2783
+ # Update properties of this object
2784
+ def update!(**args)
2785
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
2786
+ @network = args[:network] if args.key?(:network)
2787
+ end
2788
+ end
2789
+
2790
+ # Metadata provided through GetOperation request for the LRO generated by
2791
+ # RemoveDnsRecordSet API
2792
+ class RemoveDnsRecordSetMetadata
2793
+ include Google::Apis::Core::Hashable
2794
+
2795
+ def initialize(**args)
2796
+ update!(**args)
2797
+ end
2798
+
2799
+ # Update properties of this object
2800
+ def update!(**args)
2801
+ end
2802
+ end
2803
+
2804
+ # Blank message response type for RemoveDnsRecordSet API
2805
+ class RemoveDnsRecordSetResponse
2806
+ include Google::Apis::Core::Hashable
2807
+
2808
+ def initialize(**args)
2809
+ update!(**args)
2810
+ end
2811
+
2812
+ # Update properties of this object
2813
+ def update!(**args)
2814
+ end
2815
+ end
2816
+
2817
+ # Metadata provided through GetOperation request for the LRO generated by
2818
+ # RemoveDnsZone API
2819
+ class RemoveDnsZoneMetadata
2820
+ include Google::Apis::Core::Hashable
2821
+
2822
+ def initialize(**args)
2823
+ update!(**args)
2824
+ end
2825
+
2826
+ # Update properties of this object
2827
+ def update!(**args)
2828
+ end
2829
+ end
2830
+
2831
+ # Blank message response type for RemoveDnsZone API
2832
+ class RemoveDnsZoneResponse
2833
+ include Google::Apis::Core::Hashable
2834
+
2835
+ def initialize(**args)
2836
+ update!(**args)
2837
+ end
2838
+
2839
+ # Update properties of this object
2840
+ def update!(**args)
2841
+ end
2842
+ end
2843
+
2844
+ # Represents a route that was created or discovered by a private access
2845
+ # management service.
2846
+ class Route
2847
+ include Google::Apis::Core::Hashable
2848
+
2849
+ # Destination CIDR range that this route applies to.
2850
+ # Corresponds to the JSON property `destRange`
2851
+ # @return [String]
2852
+ attr_accessor :dest_range
2853
+
2854
+ # Route name. See https://cloud.google.com/vpc/docs/routes
2855
+ # Corresponds to the JSON property `name`
2856
+ # @return [String]
2857
+ attr_accessor :name
2858
+
2859
+ # Fully-qualified URL of the VPC network in the producer host tenant project
2860
+ # that this route applies to. For example: `projects/123456/global/networks/host-
2861
+ # network`
2862
+ # Corresponds to the JSON property `network`
2863
+ # @return [String]
2864
+ attr_accessor :network
2865
+
2866
+ # Fully-qualified URL of the gateway that should handle matching packets that
2867
+ # this route applies to. For example: `projects/123456/global/gateways/default-
2868
+ # internet-gateway`
2869
+ # Corresponds to the JSON property `nextHopGateway`
2870
+ # @return [String]
2871
+ attr_accessor :next_hop_gateway
2872
+
2873
+ def initialize(**args)
2874
+ update!(**args)
2875
+ end
2876
+
2877
+ # Update properties of this object
2878
+ def update!(**args)
2879
+ @dest_range = args[:dest_range] if args.key?(:dest_range)
2880
+ @name = args[:name] if args.key?(:name)
2881
+ @network = args[:network] if args.key?(:network)
2882
+ @next_hop_gateway = args[:next_hop_gateway] if args.key?(:next_hop_gateway)
2883
+ end
2884
+ end
2885
+
2886
+ # Request to search for an unused range within allocated ranges.
2887
+ class SearchRangeRequest
2888
+ include Google::Apis::Core::Hashable
2889
+
2890
+ # Required. The prefix length of the IP range. Use usual CIDR range notation.
2891
+ # For example, '30' to find unused x.x.x.x/30 CIDR range. Actual range will be
2892
+ # determined using allocated range for the consumer peered network and returned
2893
+ # in the result.
2894
+ # Corresponds to the JSON property `ipPrefixLength`
2895
+ # @return [Fixnum]
2896
+ attr_accessor :ip_prefix_length
2897
+
2898
+ # Network name in the consumer project. This network must have been already
2899
+ # peered with a shared VPC network using CreateConnection method. Must be in a
2900
+ # form 'projects/`project`/global/networks/`network`'. `project` is a project
2901
+ # number, as in '12345' `network` is network name.
2902
+ # Corresponds to the JSON property `network`
2903
+ # @return [String]
2904
+ attr_accessor :network
2905
+
2906
+ def initialize(**args)
2907
+ update!(**args)
2908
+ end
2909
+
2910
+ # Update properties of this object
2911
+ def update!(**args)
2912
+ @ip_prefix_length = args[:ip_prefix_length] if args.key?(:ip_prefix_length)
2913
+ @network = args[:network] if args.key?(:network)
2914
+ end
2915
+ end
2916
+
2917
+ #
2918
+ class SecondaryIpRange
2919
+ include Google::Apis::Core::Hashable
2920
+
2921
+ # Secondary IP CIDR range in `x.x.x.x/y` format.
2922
+ # Corresponds to the JSON property `ipCidrRange`
2923
+ # @return [String]
2924
+ attr_accessor :ip_cidr_range
2925
+
2926
+ # Name of the secondary IP range.
2927
+ # Corresponds to the JSON property `rangeName`
2928
+ # @return [String]
2929
+ attr_accessor :range_name
2930
+
2931
+ def initialize(**args)
2932
+ update!(**args)
2933
+ end
2934
+
2935
+ # Update properties of this object
2936
+ def update!(**args)
2937
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
2938
+ @range_name = args[:range_name] if args.key?(:range_name)
2939
+ end
2940
+ end
2941
+
2942
+ # `Service` is the root object of Google service configuration schema. It
2943
+ # describes basic information about a service, such as the name and the title,
2944
+ # and delegates other aspects to sub-sections. Each sub-section is either a
2945
+ # proto message or a repeated proto message that configures a specific aspect,
2946
+ # such as auth. See each proto message definition for details. Example: type:
2947
+ # google.api.Service config_version: 3 name: calendar.googleapis.com title:
2948
+ # Google Calendar API apis: - name: google.calendar.v3.Calendar authentication:
2949
+ # providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/
2950
+ # oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: "*"
2951
+ # requirements: provider_id: google_calendar_auth
2952
+ class Service
2953
+ include Google::Apis::Core::Hashable
2954
+
2955
+ # A list of API interfaces exported by this service. Only the `name` field of
2956
+ # the google.protobuf.Api needs to be provided by the configuration author, as
2957
+ # the remaining fields will be derived from the IDL during the normalization
2958
+ # process. It is an error to specify an API interface here which cannot be
2959
+ # resolved against the associated IDL files.
2960
+ # Corresponds to the JSON property `apis`
2961
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Api>]
2962
+ attr_accessor :apis
2963
+
2964
+ # `Authentication` defines the authentication configuration for an API. Example
2965
+ # for an API targeted for external use: name: calendar.googleapis.com
2966
+ # authentication: providers: - id: google_calendar_auth jwks_uri: https://www.
2967
+ # googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: -
2968
+ # selector: "*" requirements: provider_id: google_calendar_auth
2969
+ # Corresponds to the JSON property `authentication`
2970
+ # @return [Google::Apis::ServicenetworkingV1beta::Authentication]
2971
+ attr_accessor :authentication
2972
+
2973
+ # `Backend` defines the backend configuration for a service.
2974
+ # Corresponds to the JSON property `backend`
2975
+ # @return [Google::Apis::ServicenetworkingV1beta::Backend]
2976
+ attr_accessor :backend
2977
+
2978
+ # Billing related configuration of the service. The following example shows how
2979
+ # to configure monitored resources and metrics for billing, `
2980
+ # consumer_destinations` is the only supported destination and the monitored
2981
+ # resources need at least one label key `cloud.googleapis.com/location` to
2982
+ # indicate the location of the billing usage, using different monitored
2983
+ # resources between monitoring and billing is recommended so they can be evolved
2984
+ # independently: monitored_resources: - type: library.googleapis.com/
2985
+ # billing_branch labels: - key: cloud.googleapis.com/location description: |
2986
+ # Predefined label to support billing location restriction. - key: city
2987
+ # description: | Custom label to define the city where the library branch is
2988
+ # located in. - key: name description: Custom label to define the name of the
2989
+ # library branch. metrics: - name: library.googleapis.com/book/borrowed_count
2990
+ # metric_kind: DELTA value_type: INT64 unit: "1" billing: consumer_destinations:
2991
+ # - monitored_resource: library.googleapis.com/billing_branch metrics: - library.
2992
+ # googleapis.com/book/borrowed_count
2993
+ # Corresponds to the JSON property `billing`
2994
+ # @return [Google::Apis::ServicenetworkingV1beta::Billing]
2995
+ attr_accessor :billing
2996
+
2997
+ # Deprecated. The service config compiler always sets this field to `3`.
2998
+ # Corresponds to the JSON property `configVersion`
2999
+ # @return [Fixnum]
3000
+ attr_accessor :config_version
3001
+
3002
+ # `Context` defines which contexts an API requests. Example: context: rules: -
3003
+ # selector: "*" requested: - google.rpc.context.ProjectContext - google.rpc.
3004
+ # context.OriginContext The above specifies that all methods in the API request `
3005
+ # google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`.
3006
+ # Available context types are defined in package `google.rpc.context`. This also
3007
+ # provides mechanism to allowlist any protobuf message extension that can be
3008
+ # sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format.
3009
+ # For example, list any service specific protobuf types that can appear in grpc
3010
+ # metadata as follows in your yaml file: Example: context: rules: - selector: "
3011
+ # google.example.library.v1.LibraryService.CreateBook"
3012
+ # allowed_request_extensions: - google.foo.v1.NewExtension
3013
+ # allowed_response_extensions: - google.foo.v1.NewExtension You can also specify
3014
+ # extension ID instead of fully qualified extension name here.
3015
+ # Corresponds to the JSON property `context`
3016
+ # @return [Google::Apis::ServicenetworkingV1beta::Context]
3017
+ attr_accessor :context
3018
+
3019
+ # Selects and configures the service controller used by the service. The service
3020
+ # controller handles features like abuse, quota, billing, logging, monitoring,
3021
+ # etc.
3022
+ # Corresponds to the JSON property `control`
3023
+ # @return [Google::Apis::ServicenetworkingV1beta::Control]
3024
+ attr_accessor :control
3025
+
3026
+ # Customize service error responses. For example, list any service specific
3027
+ # protobuf types that can appear in error detail lists of error responses.
3028
+ # Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.
3029
+ # AnotherError
3030
+ # Corresponds to the JSON property `customError`
3031
+ # @return [Google::Apis::ServicenetworkingV1beta::CustomError]
3032
+ attr_accessor :custom_error
3033
+
3034
+ # `Documentation` provides the information for describing a service. Example:
3035
+ # documentation: summary: > The Google Calendar API gives access to most
3036
+ # calendar features. pages: - name: Overview content: (== include google/foo/
3037
+ # overview.md ==) - name: Tutorial content: (== include google/foo/tutorial.md ==
3038
+ # ) subpages; - name: Java content: (== include google/foo/tutorial_java.md ==)
3039
+ # rules: - selector: google.calendar.Calendar.Get description: > ... - selector:
3040
+ # google.calendar.Calendar.Put description: > ... Documentation is provided in
3041
+ # markdown syntax. In addition to standard markdown features, definition lists,
3042
+ # tables and fenced code blocks are supported. Section headers can be provided
3043
+ # and are interpreted relative to the section nesting of the context where a
3044
+ # documentation fragment is embedded. Documentation from the IDL is merged with
3045
+ # documentation defined via the config at normalization time, where
3046
+ # documentation provided by config rules overrides IDL provided. A number of
3047
+ # constructs specific to the API platform are supported in documentation text.
3048
+ # In order to reference a proto element, the following notation can be used: [
3049
+ # fully.qualified.proto.name][] To override the display text used for the link,
3050
+ # this can be used: [display text][fully.qualified.proto.name] Text can be
3051
+ # excluded from doc using the following notation: (-- internal comment --) A few
3052
+ # directives are available in documentation. Note that directives must appear on
3053
+ # a single line to be properly identified. The `include` directive includes a
3054
+ # markdown file from an external source: (== include path/to/file ==) The `
3055
+ # resource_for` directive marks a message to be the resource of a collection in
3056
+ # REST view. If it is not specified, tools attempt to infer the resource from
3057
+ # the operations in a collection: (== resource_for v1.shelves.books ==) The
3058
+ # directive `suppress_warning` does not directly affect documentation and is
3059
+ # documented together with service config validation.
3060
+ # Corresponds to the JSON property `documentation`
3061
+ # @return [Google::Apis::ServicenetworkingV1beta::Documentation]
3062
+ attr_accessor :documentation
3063
+
3064
+ # Configuration for network endpoints. If this is empty, then an endpoint with
3065
+ # the same name as the service is automatically generated to service all defined
3066
+ # APIs.
3067
+ # Corresponds to the JSON property `endpoints`
3068
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Endpoint>]
3069
+ attr_accessor :endpoints
3070
+
3071
+ # A list of all enum types included in this API service. Enums referenced
3072
+ # directly or indirectly by the `apis` are automatically included. Enums which
3073
+ # are not referenced but shall be included should be listed here by name.
3074
+ # Example: enums: - name: google.someapi.v1.SomeEnum
3075
+ # Corresponds to the JSON property `enums`
3076
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Enum>]
3077
+ attr_accessor :enums
3078
+
3079
+ # Defines the HTTP configuration for an API service. It contains a list of
3080
+ # HttpRule, each specifying the mapping of an RPC method to one or more HTTP
3081
+ # REST API methods.
3082
+ # Corresponds to the JSON property `http`
3083
+ # @return [Google::Apis::ServicenetworkingV1beta::Http]
3084
+ attr_accessor :http
3085
+
3086
+ # A unique ID for a specific instance of this message, typically assigned by the
3087
+ # client for tracking purpose. Must be no longer than 63 characters and only
3088
+ # lower case letters, digits, '.', '_' and '-' are allowed. If empty, the server
3089
+ # may choose to generate one instead.
3090
+ # Corresponds to the JSON property `id`
3091
+ # @return [String]
3092
+ attr_accessor :id
3093
+
3094
+ # Logging configuration of the service. The following example shows how to
3095
+ # configure logs to be sent to the producer and consumer projects. In the
3096
+ # example, the `activity_history` log is sent to both the producer and consumer
3097
+ # projects, whereas the `purchase_history` log is only sent to the producer
3098
+ # project. monitored_resources: - type: library.googleapis.com/branch labels: -
3099
+ # key: /city description: The city where the library branch is located in. - key:
3100
+ # /name description: The name of the branch. logs: - name: activity_history
3101
+ # labels: - key: /customer_id - name: purchase_history logging:
3102
+ # producer_destinations: - monitored_resource: library.googleapis.com/branch
3103
+ # logs: - activity_history - purchase_history consumer_destinations: -
3104
+ # monitored_resource: library.googleapis.com/branch logs: - activity_history
3105
+ # Corresponds to the JSON property `logging`
3106
+ # @return [Google::Apis::ServicenetworkingV1beta::Logging]
3107
+ attr_accessor :logging
3108
+
3109
+ # Defines the logs used by this service.
3110
+ # Corresponds to the JSON property `logs`
3111
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::LogDescriptor>]
3112
+ attr_accessor :logs
3113
+
3114
+ # Defines the metrics used by this service.
3115
+ # Corresponds to the JSON property `metrics`
3116
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::MetricDescriptor>]
3117
+ attr_accessor :metrics
3118
+
3119
+ # Defines the monitored resources used by this service. This is required by the
3120
+ # Service.monitoring and Service.logging configurations.
3121
+ # Corresponds to the JSON property `monitoredResources`
3122
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::MonitoredResourceDescriptor>]
3123
+ attr_accessor :monitored_resources
3124
+
3125
+ # Monitoring configuration of the service. The example below shows how to
3126
+ # configure monitored resources and metrics for monitoring. In the example, a
3127
+ # monitored resource and two metrics are defined. The `library.googleapis.com/
3128
+ # book/returned_count` metric is sent to both producer and consumer projects,
3129
+ # whereas the `library.googleapis.com/book/num_overdue` metric is only sent to
3130
+ # the consumer project. monitored_resources: - type: library.googleapis.com/
3131
+ # Branch display_name: "Library Branch" description: "A branch of a library."
3132
+ # launch_stage: GA labels: - key: resource_container description: "The Cloud
3133
+ # container (ie. project id) for the Branch." - key: location description: "The
3134
+ # location of the library branch." - key: branch_id description: "The id of the
3135
+ # branch." metrics: - name: library.googleapis.com/book/returned_count
3136
+ # display_name: "Books Returned" description: "The count of books that have been
3137
+ # returned." launch_stage: GA metric_kind: DELTA value_type: INT64 unit: "1"
3138
+ # labels: - key: customer_id description: "The id of the customer." - name:
3139
+ # library.googleapis.com/book/num_overdue display_name: "Books Overdue"
3140
+ # description: "The current number of overdue books." launch_stage: GA
3141
+ # metric_kind: GAUGE value_type: INT64 unit: "1" labels: - key: customer_id
3142
+ # description: "The id of the customer." monitoring: producer_destinations: -
3143
+ # monitored_resource: library.googleapis.com/Branch metrics: - library.
3144
+ # googleapis.com/book/returned_count consumer_destinations: - monitored_resource:
3145
+ # library.googleapis.com/Branch metrics: - library.googleapis.com/book/
3146
+ # returned_count - library.googleapis.com/book/num_overdue
3147
+ # Corresponds to the JSON property `monitoring`
3148
+ # @return [Google::Apis::ServicenetworkingV1beta::Monitoring]
3149
+ attr_accessor :monitoring
3150
+
3151
+ # The service name, which is a DNS-like logical identifier for the service, such
3152
+ # as `calendar.googleapis.com`. The service name typically goes through DNS
3153
+ # verification to make sure the owner of the service also owns the DNS name.
3154
+ # Corresponds to the JSON property `name`
3155
+ # @return [String]
3156
+ attr_accessor :name
3157
+
3158
+ # The Google project that owns this service.
3159
+ # Corresponds to the JSON property `producerProjectId`
3160
+ # @return [String]
3161
+ attr_accessor :producer_project_id
3162
+
3163
+ # Quota configuration helps to achieve fairness and budgeting in service usage.
3164
+ # The metric based quota configuration works this way: - The service
3165
+ # configuration defines a set of metrics. - For API calls, the quota.
3166
+ # metric_rules maps methods to metrics with corresponding costs. - The quota.
3167
+ # limits defines limits on the metrics, which will be used for quota checks at
3168
+ # runtime. An example quota configuration in yaml format: quota: limits: - name:
3169
+ # apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: "1/min/`
3170
+ # project`" # rate limit for consumer projects values: STANDARD: 10000 # The
3171
+ # metric rules bind all methods to the read_calls metric, # except for the
3172
+ # UpdateBook and DeleteBook methods. These two methods # are mapped to the
3173
+ # write_calls metric, with the UpdateBook method # consuming at twice rate as
3174
+ # the DeleteBook method. metric_rules: - selector: "*" metric_costs: library.
3175
+ # googleapis.com/read_calls: 1 - selector: google.example.library.v1.
3176
+ # LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 -
3177
+ # selector: google.example.library.v1.LibraryService.DeleteBook metric_costs:
3178
+ # library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics:
3179
+ # - name: library.googleapis.com/read_calls display_name: Read requests
3180
+ # metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/
3181
+ # write_calls display_name: Write requests metric_kind: DELTA value_type: INT64
3182
+ # Corresponds to the JSON property `quota`
3183
+ # @return [Google::Apis::ServicenetworkingV1beta::Quota]
3184
+ attr_accessor :quota
3185
+
3186
+ # Source information used to create a Service Config
3187
+ # Corresponds to the JSON property `sourceInfo`
3188
+ # @return [Google::Apis::ServicenetworkingV1beta::SourceInfo]
3189
+ attr_accessor :source_info
3190
+
3191
+ # ### System parameter configuration A system parameter is a special kind of
3192
+ # parameter defined by the API system, not by an individual API. It is typically
3193
+ # mapped to an HTTP header and/or a URL query parameter. This configuration
3194
+ # specifies which methods change the names of the system parameters.
3195
+ # Corresponds to the JSON property `systemParameters`
3196
+ # @return [Google::Apis::ServicenetworkingV1beta::SystemParameters]
3197
+ attr_accessor :system_parameters
3198
+
3199
+ # A list of all proto message types included in this API service. It serves
3200
+ # similar purpose as [google.api.Service.types], except that these types are not
3201
+ # needed by user-defined APIs. Therefore, they will not show up in the generated
3202
+ # discovery doc. This field should only be used to define system APIs in ESF.
3203
+ # Corresponds to the JSON property `systemTypes`
3204
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Type>]
3205
+ attr_accessor :system_types
3206
+
3207
+ # The product title for this service.
3208
+ # Corresponds to the JSON property `title`
3209
+ # @return [String]
3210
+ attr_accessor :title
3211
+
3212
+ # A list of all proto message types included in this API service. Types
3213
+ # referenced directly or indirectly by the `apis` are automatically included.
3214
+ # Messages which are not referenced but shall be included, such as types used by
3215
+ # the `google.protobuf.Any` type, should be listed here by name. Example: types:
3216
+ # - name: google.protobuf.Int32
3217
+ # Corresponds to the JSON property `types`
3218
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Type>]
3219
+ attr_accessor :types
3220
+
3221
+ # Configuration controlling usage of a service.
3222
+ # Corresponds to the JSON property `usage`
3223
+ # @return [Google::Apis::ServicenetworkingV1beta::Usage]
3224
+ attr_accessor :usage
3225
+
3226
+ def initialize(**args)
3227
+ update!(**args)
3228
+ end
3229
+
3230
+ # Update properties of this object
3231
+ def update!(**args)
3232
+ @apis = args[:apis] if args.key?(:apis)
3233
+ @authentication = args[:authentication] if args.key?(:authentication)
3234
+ @backend = args[:backend] if args.key?(:backend)
3235
+ @billing = args[:billing] if args.key?(:billing)
3236
+ @config_version = args[:config_version] if args.key?(:config_version)
3237
+ @context = args[:context] if args.key?(:context)
3238
+ @control = args[:control] if args.key?(:control)
3239
+ @custom_error = args[:custom_error] if args.key?(:custom_error)
3240
+ @documentation = args[:documentation] if args.key?(:documentation)
3241
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
3242
+ @enums = args[:enums] if args.key?(:enums)
3243
+ @http = args[:http] if args.key?(:http)
3244
+ @id = args[:id] if args.key?(:id)
3245
+ @logging = args[:logging] if args.key?(:logging)
3246
+ @logs = args[:logs] if args.key?(:logs)
3247
+ @metrics = args[:metrics] if args.key?(:metrics)
3248
+ @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources)
3249
+ @monitoring = args[:monitoring] if args.key?(:monitoring)
3250
+ @name = args[:name] if args.key?(:name)
3251
+ @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id)
3252
+ @quota = args[:quota] if args.key?(:quota)
3253
+ @source_info = args[:source_info] if args.key?(:source_info)
3254
+ @system_parameters = args[:system_parameters] if args.key?(:system_parameters)
3255
+ @system_types = args[:system_types] if args.key?(:system_types)
3256
+ @title = args[:title] if args.key?(:title)
3257
+ @types = args[:types] if args.key?(:types)
3258
+ @usage = args[:usage] if args.key?(:usage)
3259
+ end
3260
+ end
3261
+
3262
+ # `SourceContext` represents information about the source of a protobuf element,
3263
+ # like the file in which it is defined.
3264
+ class SourceContext
3265
+ include Google::Apis::Core::Hashable
3266
+
3267
+ # The path-qualified name of the .proto file that contained the associated
3268
+ # protobuf element. For example: `"google/protobuf/source_context.proto"`.
3269
+ # Corresponds to the JSON property `fileName`
3270
+ # @return [String]
3271
+ attr_accessor :file_name
3272
+
3273
+ def initialize(**args)
3274
+ update!(**args)
3275
+ end
3276
+
3277
+ # Update properties of this object
3278
+ def update!(**args)
3279
+ @file_name = args[:file_name] if args.key?(:file_name)
3280
+ end
3281
+ end
3282
+
3283
+ # Source information used to create a Service Config
3284
+ class SourceInfo
3285
+ include Google::Apis::Core::Hashable
3286
+
3287
+ # All files used during config generation.
3288
+ # Corresponds to the JSON property `sourceFiles`
3289
+ # @return [Array<Hash<String,Object>>]
3290
+ attr_accessor :source_files
3291
+
3292
+ def initialize(**args)
3293
+ update!(**args)
3294
+ end
3295
+
3296
+ # Update properties of this object
3297
+ def update!(**args)
3298
+ @source_files = args[:source_files] if args.key?(:source_files)
3299
+ end
3300
+ end
3301
+
3302
+ # The `Status` type defines a logical error model that is suitable for different
3303
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3304
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3305
+ # data: error code, error message, and error details. You can find out more
3306
+ # about this error model and how to work with it in the [API Design Guide](https:
3307
+ # //cloud.google.com/apis/design/errors).
3308
+ class Status
3309
+ include Google::Apis::Core::Hashable
3310
+
3311
+ # The status code, which should be an enum value of google.rpc.Code.
3312
+ # Corresponds to the JSON property `code`
3313
+ # @return [Fixnum]
3314
+ attr_accessor :code
3315
+
3316
+ # A list of messages that carry the error details. There is a common set of
3317
+ # message types for APIs to use.
3318
+ # Corresponds to the JSON property `details`
3319
+ # @return [Array<Hash<String,Object>>]
3320
+ attr_accessor :details
3321
+
3322
+ # A developer-facing error message, which should be in English. Any user-facing
3323
+ # error message should be localized and sent in the google.rpc.Status.details
3324
+ # field, or localized by the client.
3325
+ # Corresponds to the JSON property `message`
3326
+ # @return [String]
3327
+ attr_accessor :message
3328
+
3329
+ def initialize(**args)
3330
+ update!(**args)
3331
+ end
3332
+
3333
+ # Update properties of this object
3334
+ def update!(**args)
3335
+ @code = args[:code] if args.key?(:code)
3336
+ @details = args[:details] if args.key?(:details)
3337
+ @message = args[:message] if args.key?(:message)
3338
+ end
3339
+ end
3340
+
3341
+ # Represents a subnet that was created or discovered by a private access
3342
+ # management service.
3343
+ class Subnetwork
3344
+ include Google::Apis::Core::Hashable
3345
+
3346
+ # Subnetwork CIDR range in `10.x.x.x/y` format.
3347
+ # Corresponds to the JSON property `ipCidrRange`
3348
+ # @return [String]
3349
+ attr_accessor :ip_cidr_range
3350
+
3351
+ # Subnetwork name. See https://cloud.google.com/compute/docs/vpc/
3352
+ # Corresponds to the JSON property `name`
3353
+ # @return [String]
3354
+ attr_accessor :name
3355
+
3356
+ # In the Shared VPC host project, the VPC network that's peered with the
3357
+ # consumer network. For example: `projects/1234321/global/networks/host-network`
3358
+ # Corresponds to the JSON property `network`
3359
+ # @return [String]
3360
+ attr_accessor :network
3361
+
3362
+ # This is a discovered subnet that is not within the current consumer allocated
3363
+ # ranges.
3364
+ # Corresponds to the JSON property `outsideAllocation`
3365
+ # @return [Boolean]
3366
+ attr_accessor :outside_allocation
3367
+ alias_method :outside_allocation?, :outside_allocation
3368
+
3369
+ # List of secondary IP ranges in this subnetwork.
3370
+ # Corresponds to the JSON property `secondaryIpRanges`
3371
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::SecondaryIpRange>]
3372
+ attr_accessor :secondary_ip_ranges
3373
+
3374
+ def initialize(**args)
3375
+ update!(**args)
3376
+ end
3377
+
3378
+ # Update properties of this object
3379
+ def update!(**args)
3380
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
3381
+ @name = args[:name] if args.key?(:name)
3382
+ @network = args[:network] if args.key?(:network)
3383
+ @outside_allocation = args[:outside_allocation] if args.key?(:outside_allocation)
3384
+ @secondary_ip_ranges = args[:secondary_ip_ranges] if args.key?(:secondary_ip_ranges)
3385
+ end
3386
+ end
3387
+
3388
+ # Define a parameter's name and location. The parameter may be passed as either
3389
+ # an HTTP header or a URL query parameter, and if both are passed the behavior
3390
+ # is implementation-dependent.
3391
+ class SystemParameter
3392
+ include Google::Apis::Core::Hashable
3393
+
3394
+ # Define the HTTP header name to use for the parameter. It is case insensitive.
3395
+ # Corresponds to the JSON property `httpHeader`
3396
+ # @return [String]
3397
+ attr_accessor :http_header
3398
+
3399
+ # Define the name of the parameter, such as "api_key" . It is case sensitive.
3400
+ # Corresponds to the JSON property `name`
3401
+ # @return [String]
3402
+ attr_accessor :name
3403
+
3404
+ # Define the URL query parameter name to use for the parameter. It is case
3405
+ # sensitive.
3406
+ # Corresponds to the JSON property `urlQueryParameter`
3407
+ # @return [String]
3408
+ attr_accessor :url_query_parameter
3409
+
3410
+ def initialize(**args)
3411
+ update!(**args)
3412
+ end
3413
+
3414
+ # Update properties of this object
3415
+ def update!(**args)
3416
+ @http_header = args[:http_header] if args.key?(:http_header)
3417
+ @name = args[:name] if args.key?(:name)
3418
+ @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter)
3419
+ end
3420
+ end
3421
+
3422
+ # Define a system parameter rule mapping system parameter definitions to methods.
3423
+ class SystemParameterRule
3424
+ include Google::Apis::Core::Hashable
3425
+
3426
+ # Define parameters. Multiple names may be defined for a parameter. For a given
3427
+ # method call, only one of them should be used. If multiple names are used the
3428
+ # behavior is implementation-dependent. If none of the specified names are
3429
+ # present the behavior is parameter-dependent.
3430
+ # Corresponds to the JSON property `parameters`
3431
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::SystemParameter>]
3432
+ attr_accessor :parameters
3433
+
3434
+ # Selects the methods to which this rule applies. Use '*' to indicate all
3435
+ # methods in all APIs. Refer to selector for syntax details.
3436
+ # Corresponds to the JSON property `selector`
3437
+ # @return [String]
3438
+ attr_accessor :selector
3439
+
3440
+ def initialize(**args)
3441
+ update!(**args)
3442
+ end
3443
+
3444
+ # Update properties of this object
3445
+ def update!(**args)
3446
+ @parameters = args[:parameters] if args.key?(:parameters)
3447
+ @selector = args[:selector] if args.key?(:selector)
3448
+ end
3449
+ end
3450
+
3451
+ # ### System parameter configuration A system parameter is a special kind of
3452
+ # parameter defined by the API system, not by an individual API. It is typically
3453
+ # mapped to an HTTP header and/or a URL query parameter. This configuration
3454
+ # specifies which methods change the names of the system parameters.
3455
+ class SystemParameters
3456
+ include Google::Apis::Core::Hashable
3457
+
3458
+ # Define system parameters. The parameters defined here will override the
3459
+ # default parameters implemented by the system. If this field is missing from
3460
+ # the service config, default system parameters will be used. Default system
3461
+ # parameters and names is implementation-dependent. Example: define api key for
3462
+ # all methods system_parameters rules: - selector: "*" parameters: - name:
3463
+ # api_key url_query_parameter: api_key Example: define 2 api key names for a
3464
+ # specific method. system_parameters rules: - selector: "/ListShelves"
3465
+ # parameters: - name: api_key http_header: Api-Key1 - name: api_key http_header:
3466
+ # Api-Key2 **NOTE:** All service configuration rules follow "last one wins"
3467
+ # order.
3468
+ # Corresponds to the JSON property `rules`
3469
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::SystemParameterRule>]
3470
+ attr_accessor :rules
3471
+
3472
+ def initialize(**args)
3473
+ update!(**args)
3474
+ end
3475
+
3476
+ # Update properties of this object
3477
+ def update!(**args)
3478
+ @rules = args[:rules] if args.key?(:rules)
3479
+ end
3480
+ end
3481
+
3482
+ # A protocol buffer message type.
3483
+ class Type
3484
+ include Google::Apis::Core::Hashable
3485
+
3486
+ # The list of fields.
3487
+ # Corresponds to the JSON property `fields`
3488
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Field>]
3489
+ attr_accessor :fields
3490
+
3491
+ # The fully qualified message name.
3492
+ # Corresponds to the JSON property `name`
3493
+ # @return [String]
3494
+ attr_accessor :name
3495
+
3496
+ # The list of types appearing in `oneof` definitions in this type.
3497
+ # Corresponds to the JSON property `oneofs`
3498
+ # @return [Array<String>]
3499
+ attr_accessor :oneofs
3500
+
3501
+ # The protocol buffer options.
3502
+ # Corresponds to the JSON property `options`
3503
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::Option>]
3504
+ attr_accessor :options
3505
+
3506
+ # `SourceContext` represents information about the source of a protobuf element,
3507
+ # like the file in which it is defined.
3508
+ # Corresponds to the JSON property `sourceContext`
3509
+ # @return [Google::Apis::ServicenetworkingV1beta::SourceContext]
3510
+ attr_accessor :source_context
3511
+
3512
+ # The source syntax.
3513
+ # Corresponds to the JSON property `syntax`
3514
+ # @return [String]
3515
+ attr_accessor :syntax
3516
+
3517
+ def initialize(**args)
3518
+ update!(**args)
3519
+ end
3520
+
3521
+ # Update properties of this object
3522
+ def update!(**args)
3523
+ @fields = args[:fields] if args.key?(:fields)
3524
+ @name = args[:name] if args.key?(:name)
3525
+ @oneofs = args[:oneofs] if args.key?(:oneofs)
3526
+ @options = args[:options] if args.key?(:options)
3527
+ @source_context = args[:source_context] if args.key?(:source_context)
3528
+ @syntax = args[:syntax] if args.key?(:syntax)
3529
+ end
3530
+ end
3531
+
3532
+ # Metadata provided through GetOperation request for the LRO generated by
3533
+ # UpdateDnsRecordSet API
3534
+ class UpdateDnsRecordSetMetadata
3535
+ include Google::Apis::Core::Hashable
3536
+
3537
+ def initialize(**args)
3538
+ update!(**args)
3539
+ end
3540
+
3541
+ # Update properties of this object
3542
+ def update!(**args)
3543
+ end
3544
+ end
3545
+
3546
+ # Configuration controlling usage of a service.
3547
+ class Usage
3548
+ include Google::Apis::Core::Hashable
3549
+
3550
+ # The full resource name of a channel used for sending notifications to the
3551
+ # service producer. Google Service Management currently only supports [Google
3552
+ # Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification channel. To
3553
+ # use Google Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/
3554
+ # Sub topic that uses the Cloud Pub/Sub topic name format documented in https://
3555
+ # cloud.google.com/pubsub/docs/overview.
3556
+ # Corresponds to the JSON property `producerNotificationChannel`
3557
+ # @return [String]
3558
+ attr_accessor :producer_notification_channel
3559
+
3560
+ # Requirements that must be satisfied before a consumer project can use the
3561
+ # service. Each requirement is of the form /; for example 'serviceusage.
3562
+ # googleapis.com/billing-enabled'.
3563
+ # Corresponds to the JSON property `requirements`
3564
+ # @return [Array<String>]
3565
+ attr_accessor :requirements
3566
+
3567
+ # A list of usage rules that apply to individual API methods. **NOTE:** All
3568
+ # service configuration rules follow "last one wins" order.
3569
+ # Corresponds to the JSON property `rules`
3570
+ # @return [Array<Google::Apis::ServicenetworkingV1beta::UsageRule>]
3571
+ attr_accessor :rules
3572
+
3573
+ def initialize(**args)
3574
+ update!(**args)
3575
+ end
3576
+
3577
+ # Update properties of this object
3578
+ def update!(**args)
3579
+ @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel)
3580
+ @requirements = args[:requirements] if args.key?(:requirements)
3581
+ @rules = args[:rules] if args.key?(:rules)
3582
+ end
3583
+ end
3584
+
3585
+ # Usage configuration rules for the service. NOTE: Under development. Use this
3586
+ # rule to configure unregistered calls for the service. Unregistered calls are
3587
+ # calls that do not contain consumer project identity. (Example: calls that do
3588
+ # not contain an API key). By default, API methods do not allow unregistered
3589
+ # calls, and each method call must be identified by a consumer project identity.
3590
+ # Use this rule to allow/disallow unregistered calls. Example of an API that
3591
+ # wants to allow unregistered calls for entire service. usage: rules: - selector:
3592
+ # "*" allow_unregistered_calls: true Example of a method that wants to allow
3593
+ # unregistered calls. usage: rules: - selector: "google.example.library.v1.
3594
+ # LibraryService.CreateBook" allow_unregistered_calls: true
3595
+ class UsageRule
3596
+ include Google::Apis::Core::Hashable
3597
+
3598
+ # If true, the selected method allows unregistered calls, e.g. calls that don't
3599
+ # identify any user or application.
3600
+ # Corresponds to the JSON property `allowUnregisteredCalls`
3601
+ # @return [Boolean]
3602
+ attr_accessor :allow_unregistered_calls
3603
+ alias_method :allow_unregistered_calls?, :allow_unregistered_calls
3604
+
3605
+ # Selects the methods to which this rule applies. Use '*' to indicate all
3606
+ # methods in all APIs. Refer to selector for syntax details.
3607
+ # Corresponds to the JSON property `selector`
3608
+ # @return [String]
3609
+ attr_accessor :selector
3610
+
3611
+ # If true, the selected method should skip service control and the control plane
3612
+ # features, such as quota and billing, will not be available. This flag is used
3613
+ # by Google Cloud Endpoints to bypass checks for internal methods, such as
3614
+ # service health check methods.
3615
+ # Corresponds to the JSON property `skipServiceControl`
3616
+ # @return [Boolean]
3617
+ attr_accessor :skip_service_control
3618
+ alias_method :skip_service_control?, :skip_service_control
3619
+
3620
+ def initialize(**args)
3621
+ update!(**args)
3622
+ end
3623
+
3624
+ # Update properties of this object
3625
+ def update!(**args)
3626
+ @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls)
3627
+ @selector = args[:selector] if args.key?(:selector)
3628
+ @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control)
3629
+ end
3630
+ end
3631
+ end
3632
+ end
3633
+ end