google-api-client 0.37.2 → 0.37.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +74 -0
  3. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  4. data/generated/google/apis/accesscontextmanager_v1/classes.rb +11 -1
  5. data/generated/google/apis/accesscontextmanager_v1/representations.rb +1 -0
  6. data/generated/google/apis/accesscontextmanager_v1/service.rb +6 -5
  7. data/generated/google/apis/accesscontextmanager_v1beta.rb +1 -1
  8. data/generated/google/apis/accesscontextmanager_v1beta/classes.rb +2 -1
  9. data/generated/google/apis/accesscontextmanager_v1beta/service.rb +6 -5
  10. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  11. data/generated/google/apis/alertcenter_v1beta1/classes.rb +7 -71
  12. data/generated/google/apis/alertcenter_v1beta1/representations.rb +0 -31
  13. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  14. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  15. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  16. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +111 -9
  17. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +56 -0
  18. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +151 -0
  19. data/generated/google/apis/billingbudgets_v1beta1.rb +1 -1
  20. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +2 -2
  21. data/generated/google/apis/billingbudgets_v1beta1/service.rb +11 -0
  22. data/generated/google/apis/chat_v1.rb +1 -1
  23. data/generated/google/apis/chat_v1/classes.rb +4 -2
  24. data/generated/google/apis/classroom_v1.rb +1 -1
  25. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  26. data/generated/google/apis/cloudbuild_v1/classes.rb +23 -0
  27. data/generated/google/apis/cloudbuild_v1/representations.rb +3 -0
  28. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  29. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +8 -0
  30. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +1 -0
  31. data/generated/google/apis/cloudbuild_v1alpha1/service.rb +0 -5
  32. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  33. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +8 -0
  34. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +1 -0
  35. data/generated/google/apis/clouddebugger_v2.rb +2 -2
  36. data/generated/google/apis/clouddebugger_v2/service.rb +1 -1
  37. data/generated/google/apis/clouderrorreporting_v1beta1.rb +2 -2
  38. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +1 -1
  39. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  40. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +2 -2
  41. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  42. data/generated/google/apis/cloudtasks_v2/classes.rb +30 -0
  43. data/generated/google/apis/cloudtasks_v2/representations.rb +15 -0
  44. data/generated/google/apis/cloudtrace_v1.rb +4 -4
  45. data/generated/google/apis/cloudtrace_v1/service.rb +3 -3
  46. data/generated/google/apis/cloudtrace_v2.rb +4 -4
  47. data/generated/google/apis/cloudtrace_v2/service.rb +3 -3
  48. data/generated/google/apis/cloudtrace_v2beta1.rb +4 -4
  49. data/generated/google/apis/cloudtrace_v2beta1/service.rb +3 -3
  50. data/generated/google/apis/commentanalyzer_v1alpha1.rb +1 -1
  51. data/generated/google/apis/commentanalyzer_v1alpha1/classes.rb +2 -2
  52. data/generated/google/apis/container_v1.rb +1 -1
  53. data/generated/google/apis/container_v1/classes.rb +224 -66
  54. data/generated/google/apis/container_v1/representations.rb +70 -0
  55. data/generated/google/apis/container_v1/service.rb +116 -116
  56. data/generated/google/apis/container_v1beta1/classes.rb +18 -4
  57. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  58. data/generated/google/apis/content_v2.rb +1 -1
  59. data/generated/google/apis/content_v2/classes.rb +18 -2
  60. data/generated/google/apis/content_v2/service.rb +3 -1
  61. data/generated/google/apis/content_v2_1.rb +1 -1
  62. data/generated/google/apis/content_v2_1/classes.rb +51 -0
  63. data/generated/google/apis/content_v2_1/representations.rb +15 -0
  64. data/generated/google/apis/content_v2_1/service.rb +73 -1
  65. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  66. data/generated/google/apis/datacatalog_v1beta1/classes.rb +27 -0
  67. data/generated/google/apis/datacatalog_v1beta1/representations.rb +15 -0
  68. data/generated/google/apis/datacatalog_v1beta1/service.rb +43 -0
  69. data/generated/google/apis/dataproc_v1.rb +1 -1
  70. data/generated/google/apis/dataproc_v1/classes.rb +15 -0
  71. data/generated/google/apis/dataproc_v1/representations.rb +2 -0
  72. data/generated/google/apis/dialogflow_v2.rb +1 -1
  73. data/generated/google/apis/dialogflow_v2/classes.rb +11 -3
  74. data/generated/google/apis/dialogflow_v2/service.rb +555 -16
  75. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  76. data/generated/google/apis/dialogflow_v2beta1/classes.rb +11 -3
  77. data/generated/google/apis/dialogflow_v2beta1/service.rb +26 -42
  78. data/generated/google/apis/displayvideo_v1.rb +1 -1
  79. data/generated/google/apis/dlp_v2.rb +1 -1
  80. data/generated/google/apis/dlp_v2/classes.rb +417 -2
  81. data/generated/google/apis/dlp_v2/representations.rb +175 -0
  82. data/generated/google/apis/dlp_v2/service.rb +116 -0
  83. data/generated/google/apis/file_v1.rb +1 -1
  84. data/generated/google/apis/file_v1/classes.rb +1 -145
  85. data/generated/google/apis/file_v1/representations.rb +0 -34
  86. data/generated/google/apis/file_v1beta1.rb +1 -1
  87. data/generated/google/apis/file_v1beta1/classes.rb +1 -145
  88. data/generated/google/apis/file_v1beta1/representations.rb +0 -34
  89. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  90. data/generated/google/apis/firebase_v1beta1/service.rb +3 -3
  91. data/generated/google/apis/firebaserules_v1.rb +1 -1
  92. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  93. data/generated/google/apis/healthcare_v1beta1/classes.rb +4 -0
  94. data/generated/google/apis/iamcredentials_v1.rb +1 -1
  95. data/generated/google/apis/iap_v1beta1.rb +1 -1
  96. data/generated/google/apis/lifesciences_v2beta.rb +1 -1
  97. data/generated/google/apis/logging_v2.rb +6 -7
  98. data/generated/google/apis/logging_v2/service.rb +5 -6
  99. data/generated/google/apis/manufacturers_v1.rb +1 -1
  100. data/generated/google/apis/manufacturers_v1/classes.rb +7 -0
  101. data/generated/google/apis/manufacturers_v1/representations.rb +1 -0
  102. data/generated/google/apis/ml_v1.rb +1 -1
  103. data/generated/google/apis/ml_v1/classes.rb +966 -21
  104. data/generated/google/apis/ml_v1/representations.rb +477 -0
  105. data/generated/google/apis/ml_v1/service.rb +491 -0
  106. data/generated/google/apis/{toolresults_v1.rb → networkmanagement_v1beta1.rb} +13 -9
  107. data/generated/google/apis/networkmanagement_v1beta1/classes.rb +1856 -0
  108. data/generated/google/apis/networkmanagement_v1beta1/representations.rb +661 -0
  109. data/generated/google/apis/networkmanagement_v1beta1/service.rb +664 -0
  110. data/generated/google/apis/osconfig_v1beta.rb +1 -1
  111. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  112. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  113. data/generated/google/apis/recommender_v1beta1/classes.rb +214 -0
  114. data/generated/google/apis/recommender_v1beta1/representations.rb +96 -0
  115. data/generated/google/apis/recommender_v1beta1/service.rb +123 -0
  116. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  117. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  118. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  119. data/generated/google/apis/run_v1.rb +1 -1
  120. data/generated/google/apis/run_v1/classes.rb +84 -0
  121. data/generated/google/apis/run_v1/representations.rb +44 -0
  122. data/generated/google/apis/run_v1/service.rb +138 -0
  123. data/generated/google/apis/run_v1alpha1.rb +1 -1
  124. data/generated/google/apis/securitycenter_v1.rb +1 -1
  125. data/generated/google/apis/securitycenter_v1/classes.rb +154 -6
  126. data/generated/google/apis/securitycenter_v1/representations.rb +61 -0
  127. data/generated/google/apis/securitycenter_v1/service.rb +194 -6
  128. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  129. data/generated/google/apis/securitycenter_v1beta1/classes.rb +171 -0
  130. data/generated/google/apis/securitycenter_v1beta1/representations.rb +52 -0
  131. data/generated/google/apis/securitycenter_v1p1alpha1.rb +1 -1
  132. data/generated/google/apis/securitycenter_v1p1alpha1/classes.rb +171 -0
  133. data/generated/google/apis/securitycenter_v1p1alpha1/representations.rb +52 -0
  134. data/generated/google/apis/securitycenter_v1p1beta1.rb +1 -1
  135. data/generated/google/apis/securitycenter_v1p1beta1/classes.rb +183 -6
  136. data/generated/google/apis/securitycenter_v1p1beta1/representations.rb +52 -0
  137. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +12 -6
  138. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  139. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +8 -7
  140. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  141. data/generated/google/apis/servicemanagement_v1/classes.rb +58 -1
  142. data/generated/google/apis/servicemanagement_v1/representations.rb +17 -0
  143. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  144. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  145. data/generated/google/apis/serviceusage_v1.rb +1 -1
  146. data/generated/google/apis/serviceusage_v1/classes.rb +8 -7
  147. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  148. data/generated/google/apis/serviceusage_v1beta1/classes.rb +280 -7
  149. data/generated/google/apis/serviceusage_v1beta1/representations.rb +117 -0
  150. data/generated/google/apis/serviceusage_v1beta1/service.rb +515 -0
  151. data/generated/google/apis/sheets_v4.rb +1 -1
  152. data/generated/google/apis/testing_v1.rb +1 -1
  153. data/generated/google/apis/testing_v1/classes.rb +7 -1
  154. data/generated/google/apis/testing_v1/representations.rb +1 -0
  155. data/generated/google/apis/tpu_v1.rb +1 -1
  156. data/generated/google/apis/tpu_v1alpha1.rb +1 -1
  157. data/generated/google/apis/translate_v3.rb +1 -1
  158. data/generated/google/apis/translate_v3/classes.rb +6 -3
  159. data/generated/google/apis/videointelligence_v1.rb +1 -1
  160. data/generated/google/apis/videointelligence_v1/classes.rb +13 -13
  161. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  162. data/generated/google/apis/videointelligence_v1beta2/classes.rb +13 -13
  163. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  164. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +13 -13
  165. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  166. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +13 -13
  167. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  168. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +13 -13
  169. data/generated/google/apis/vision_v1.rb +1 -1
  170. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  171. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  172. data/lib/google/apis/core/api_command.rb +4 -0
  173. data/lib/google/apis/version.rb +1 -1
  174. metadata +7 -7
  175. data/generated/google/apis/toolresults_v1/classes.rb +0 -696
  176. data/generated/google/apis/toolresults_v1/representations.rb +0 -438
  177. data/generated/google/apis/toolresults_v1/service.rb +0 -59
@@ -12,20 +12,24 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'google/apis/toolresults_v1/service.rb'
16
- require 'google/apis/toolresults_v1/classes.rb'
17
- require 'google/apis/toolresults_v1/representations.rb'
15
+ require 'google/apis/networkmanagement_v1beta1/service.rb'
16
+ require 'google/apis/networkmanagement_v1beta1/classes.rb'
17
+ require 'google/apis/networkmanagement_v1beta1/representations.rb'
18
18
 
19
19
  module Google
20
20
  module Apis
21
- # Cloud Tool Results API
21
+ # Network Management API
22
22
  #
23
- # API to publish and access results from developer tools.
23
+ # The Network Management API provides a collection of network performance
24
+ # monitoring and diagnostic capabilities.
24
25
  #
25
- # @see https://firebase.google.com/docs/test-lab/
26
- module ToolresultsV1
27
- VERSION = 'V1'
28
- REVISION = '20200224'
26
+ # @see https://cloud.google.com/
27
+ module NetworkmanagementV1beta1
28
+ VERSION = 'V1beta1'
29
+ REVISION = '20200303'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
29
33
  end
30
34
  end
31
35
  end
@@ -0,0 +1,1856 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module NetworkmanagementV1beta1
24
+
25
+ # Details of the final state "abort" and associated resource.
26
+ class AbortInfo
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Causes that the analysis is aborted.
30
+ # Corresponds to the JSON property `cause`
31
+ # @return [String]
32
+ attr_accessor :cause
33
+
34
+ # URI of the resource that caused the abort.
35
+ # Corresponds to the JSON property `resourceUri`
36
+ # @return [String]
37
+ attr_accessor :resource_uri
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @cause = args[:cause] if args.key?(:cause)
46
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
47
+ end
48
+ end
49
+
50
+ # Specifies the audit configuration for a service.
51
+ # The configuration determines which permission types are logged, and what
52
+ # identities, if any, are exempted from logging.
53
+ # An AuditConfig must have one or more AuditLogConfigs.
54
+ # If there are AuditConfigs for both `allServices` and a specific service,
55
+ # the union of the two AuditConfigs is used for that service: the log_types
56
+ # specified in each AuditConfig are enabled, and the exempted_members in each
57
+ # AuditLogConfig are exempted.
58
+ # Example Policy with multiple AuditConfigs:
59
+ # `
60
+ # "audit_configs": [
61
+ # `
62
+ # "service": "allServices"
63
+ # "audit_log_configs": [
64
+ # `
65
+ # "log_type": "DATA_READ",
66
+ # "exempted_members": [
67
+ # "user:jose@example.com"
68
+ # ]
69
+ # `,
70
+ # `
71
+ # "log_type": "DATA_WRITE",
72
+ # `,
73
+ # `
74
+ # "log_type": "ADMIN_READ",
75
+ # `
76
+ # ]
77
+ # `,
78
+ # `
79
+ # "service": "sampleservice.googleapis.com"
80
+ # "audit_log_configs": [
81
+ # `
82
+ # "log_type": "DATA_READ",
83
+ # `,
84
+ # `
85
+ # "log_type": "DATA_WRITE",
86
+ # "exempted_members": [
87
+ # "user:aliya@example.com"
88
+ # ]
89
+ # `
90
+ # ]
91
+ # `
92
+ # ]
93
+ # `
94
+ # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
95
+ # logging. It also exempts jose@example.com from DATA_READ logging, and
96
+ # aliya@example.com from DATA_WRITE logging.
97
+ class AuditConfig
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # The configuration for logging of each type of permission.
101
+ # Corresponds to the JSON property `auditLogConfigs`
102
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::AuditLogConfig>]
103
+ attr_accessor :audit_log_configs
104
+
105
+ # Specifies a service that will be enabled for audit logging.
106
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
107
+ # `allServices` is a special value that covers all services.
108
+ # Corresponds to the JSON property `service`
109
+ # @return [String]
110
+ attr_accessor :service
111
+
112
+ def initialize(**args)
113
+ update!(**args)
114
+ end
115
+
116
+ # Update properties of this object
117
+ def update!(**args)
118
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
119
+ @service = args[:service] if args.key?(:service)
120
+ end
121
+ end
122
+
123
+ # Provides the configuration for logging a type of permissions.
124
+ # Example:
125
+ # `
126
+ # "audit_log_configs": [
127
+ # `
128
+ # "log_type": "DATA_READ",
129
+ # "exempted_members": [
130
+ # "user:jose@example.com"
131
+ # ]
132
+ # `,
133
+ # `
134
+ # "log_type": "DATA_WRITE",
135
+ # `
136
+ # ]
137
+ # `
138
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
139
+ # jose@example.com from DATA_READ logging.
140
+ class AuditLogConfig
141
+ include Google::Apis::Core::Hashable
142
+
143
+ # Specifies the identities that do not cause logging for this type of
144
+ # permission.
145
+ # Follows the same format of Binding.members.
146
+ # Corresponds to the JSON property `exemptedMembers`
147
+ # @return [Array<String>]
148
+ attr_accessor :exempted_members
149
+
150
+ # The log type that this config enables.
151
+ # Corresponds to the JSON property `logType`
152
+ # @return [String]
153
+ attr_accessor :log_type
154
+
155
+ def initialize(**args)
156
+ update!(**args)
157
+ end
158
+
159
+ # Update properties of this object
160
+ def update!(**args)
161
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
162
+ @log_type = args[:log_type] if args.key?(:log_type)
163
+ end
164
+ end
165
+
166
+ # Associates `members` with a `role`.
167
+ class Binding
168
+ include Google::Apis::Core::Hashable
169
+
170
+ # Represents a textual expression in the Common Expression Language (CEL)
171
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
172
+ # are documented at https://github.com/google/cel-spec.
173
+ # Example (Comparison):
174
+ # title: "Summary size limit"
175
+ # description: "Determines if a summary is less than 100 chars"
176
+ # expression: "document.summary.size() < 100"
177
+ # Example (Equality):
178
+ # title: "Requestor is owner"
179
+ # description: "Determines if requestor is the document owner"
180
+ # expression: "document.owner == request.auth.claims.email"
181
+ # Example (Logic):
182
+ # title: "Public documents"
183
+ # description: "Determine whether the document should be publicly visible"
184
+ # expression: "document.type != 'private' && document.type != 'internal'"
185
+ # Example (Data Manipulation):
186
+ # title: "Notification string"
187
+ # description: "Create a notification string with a timestamp."
188
+ # expression: "'New message received at ' + string(document.create_time)"
189
+ # The exact variables and functions that may be referenced within an expression
190
+ # are determined by the service that evaluates it. See the service
191
+ # documentation for additional information.
192
+ # Corresponds to the JSON property `condition`
193
+ # @return [Google::Apis::NetworkmanagementV1beta1::Expr]
194
+ attr_accessor :condition
195
+
196
+ # Specifies the identities requesting access for a Cloud Platform resource.
197
+ # `members` can have the following values:
198
+ # * `allUsers`: A special identifier that represents anyone who is
199
+ # on the internet; with or without a Google account.
200
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
201
+ # who is authenticated with a Google account or a service account.
202
+ # * `user:`emailid``: An email address that represents a specific Google
203
+ # account. For example, `alice@example.com` .
204
+ # * `serviceAccount:`emailid``: An email address that represents a service
205
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
206
+ # * `group:`emailid``: An email address that represents a Google group.
207
+ # For example, `admins@example.com`.
208
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
209
+ # identifier) representing a user that has been recently deleted. For
210
+ # example, `alice@example.com?uid=123456789012345678901`. If the user is
211
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
212
+ # retains the role in the binding.
213
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
214
+ # unique identifier) representing a service account that has been recently
215
+ # deleted. For example,
216
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
217
+ # If the service account is undeleted, this value reverts to
218
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
219
+ # role in the binding.
220
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
221
+ # identifier) representing a Google group that has been recently
222
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
223
+ # the group is recovered, this value reverts to `group:`emailid`` and the
224
+ # recovered group retains the role in the binding.
225
+ # * `domain:`domain``: The G Suite domain (primary) that represents all the
226
+ # users of that domain. For example, `google.com` or `example.com`.
227
+ # Corresponds to the JSON property `members`
228
+ # @return [Array<String>]
229
+ attr_accessor :members
230
+
231
+ # Role that is assigned to `members`.
232
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
233
+ # Corresponds to the JSON property `role`
234
+ # @return [String]
235
+ attr_accessor :role
236
+
237
+ def initialize(**args)
238
+ update!(**args)
239
+ end
240
+
241
+ # Update properties of this object
242
+ def update!(**args)
243
+ @condition = args[:condition] if args.key?(:condition)
244
+ @members = args[:members] if args.key?(:members)
245
+ @role = args[:role] if args.key?(:role)
246
+ end
247
+ end
248
+
249
+ # The request message for Operations.CancelOperation.
250
+ class CancelOperationRequest
251
+ include Google::Apis::Core::Hashable
252
+
253
+ def initialize(**args)
254
+ update!(**args)
255
+ end
256
+
257
+ # Update properties of this object
258
+ def update!(**args)
259
+ end
260
+ end
261
+
262
+ # A Connectivity Test for a network reachability analysis.
263
+ class ConnectivityTest
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # Output only. The time the test was created.
267
+ # Corresponds to the JSON property `createTime`
268
+ # @return [String]
269
+ attr_accessor :create_time
270
+
271
+ # The user-supplied description of the Connectivity Test.
272
+ # Maximum of 512 characters.
273
+ # Corresponds to the JSON property `description`
274
+ # @return [String]
275
+ attr_accessor :description
276
+
277
+ # Source or destination of the Connectivity Test.
278
+ # Corresponds to the JSON property `destination`
279
+ # @return [Google::Apis::NetworkmanagementV1beta1::Endpoint]
280
+ attr_accessor :destination
281
+
282
+ # Output only. The display name of a Connectivity Test.
283
+ # Corresponds to the JSON property `displayName`
284
+ # @return [String]
285
+ attr_accessor :display_name
286
+
287
+ # Resource labels to represent user-provided metadata.
288
+ # Corresponds to the JSON property `labels`
289
+ # @return [Hash<String,String>]
290
+ attr_accessor :labels
291
+
292
+ # Required. Unique name of the resource using the form:
293
+ # `projects/`project_id`/tests/`test_id``
294
+ # Corresponds to the JSON property `name`
295
+ # @return [String]
296
+ attr_accessor :name
297
+
298
+ # IP Protocol of the test. When not provided, "TCP" is assumed.
299
+ # Corresponds to the JSON property `protocol`
300
+ # @return [String]
301
+ attr_accessor :protocol
302
+
303
+ # The details of reachability state from the latest run.
304
+ # Corresponds to the JSON property `reachabilityDetails`
305
+ # @return [Google::Apis::NetworkmanagementV1beta1::ReachabilityDetails]
306
+ attr_accessor :reachability_details
307
+
308
+ # Other projects that may be relevant for reachability analysis.
309
+ # This is applicable to scenarios where a test can cross project boundaries.
310
+ # Corresponds to the JSON property `relatedProjects`
311
+ # @return [Array<String>]
312
+ attr_accessor :related_projects
313
+
314
+ # Source or destination of the Connectivity Test.
315
+ # Corresponds to the JSON property `source`
316
+ # @return [Google::Apis::NetworkmanagementV1beta1::Endpoint]
317
+ attr_accessor :source
318
+
319
+ # Output only. The time the test's configuration was updated.
320
+ # Corresponds to the JSON property `updateTime`
321
+ # @return [String]
322
+ attr_accessor :update_time
323
+
324
+ def initialize(**args)
325
+ update!(**args)
326
+ end
327
+
328
+ # Update properties of this object
329
+ def update!(**args)
330
+ @create_time = args[:create_time] if args.key?(:create_time)
331
+ @description = args[:description] if args.key?(:description)
332
+ @destination = args[:destination] if args.key?(:destination)
333
+ @display_name = args[:display_name] if args.key?(:display_name)
334
+ @labels = args[:labels] if args.key?(:labels)
335
+ @name = args[:name] if args.key?(:name)
336
+ @protocol = args[:protocol] if args.key?(:protocol)
337
+ @reachability_details = args[:reachability_details] if args.key?(:reachability_details)
338
+ @related_projects = args[:related_projects] if args.key?(:related_projects)
339
+ @source = args[:source] if args.key?(:source)
340
+ @update_time = args[:update_time] if args.key?(:update_time)
341
+ end
342
+ end
343
+
344
+ # Details of the final state "deliver" and associated resource.
345
+ class DeliverInfo
346
+ include Google::Apis::Core::Hashable
347
+
348
+ # URI of the resource that the packet is delivered to.
349
+ # Corresponds to the JSON property `resourceUri`
350
+ # @return [String]
351
+ attr_accessor :resource_uri
352
+
353
+ # Target type where the packet is delivered to.
354
+ # Corresponds to the JSON property `target`
355
+ # @return [String]
356
+ attr_accessor :target
357
+
358
+ def initialize(**args)
359
+ update!(**args)
360
+ end
361
+
362
+ # Update properties of this object
363
+ def update!(**args)
364
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
365
+ @target = args[:target] if args.key?(:target)
366
+ end
367
+ end
368
+
369
+ # Details of the final state "drop" and associated resource.
370
+ class DropInfo
371
+ include Google::Apis::Core::Hashable
372
+
373
+ # Cause that the packet is dropped.
374
+ # Corresponds to the JSON property `cause`
375
+ # @return [String]
376
+ attr_accessor :cause
377
+
378
+ # URI of the resource that caused the drop.
379
+ # Corresponds to the JSON property `resourceUri`
380
+ # @return [String]
381
+ attr_accessor :resource_uri
382
+
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @cause = args[:cause] if args.key?(:cause)
390
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
391
+ end
392
+ end
393
+
394
+ # A generic empty message that you can re-use to avoid defining duplicated
395
+ # empty messages in your APIs. A typical example is to use it as the request
396
+ # or the response type of an API method. For instance:
397
+ # service Foo `
398
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
399
+ # `
400
+ # The JSON representation for `Empty` is empty JSON object ````.
401
+ class Empty
402
+ include Google::Apis::Core::Hashable
403
+
404
+ def initialize(**args)
405
+ update!(**args)
406
+ end
407
+
408
+ # Update properties of this object
409
+ def update!(**args)
410
+ end
411
+ end
412
+
413
+ # Source or destination of the Connectivity Test.
414
+ class Endpoint
415
+ include Google::Apis::Core::Hashable
416
+
417
+ # A Compute Engine instance URI.
418
+ # Corresponds to the JSON property `instance`
419
+ # @return [String]
420
+ attr_accessor :instance
421
+
422
+ # The IP address of the endpoint, which can be an external or internal IP.
423
+ # An IPv6 address is only allowed when the test's destination is a
424
+ # [global load balancer VIP](/load-balancing/docs/load-balancing-overview).
425
+ # Corresponds to the JSON property `ipAddress`
426
+ # @return [String]
427
+ attr_accessor :ip_address
428
+
429
+ # A Compute Engine network URI.
430
+ # Corresponds to the JSON property `network`
431
+ # @return [String]
432
+ attr_accessor :network
433
+
434
+ # Type of the network where the endpoint is located.
435
+ # Applicable only to source endpoint, as destination network type can be
436
+ # inferred from the source.
437
+ # Corresponds to the JSON property `networkType`
438
+ # @return [String]
439
+ attr_accessor :network_type
440
+
441
+ # The IP protocol port of the endpoint.
442
+ # Only applicable when protocol is TCP or UDP.
443
+ # Corresponds to the JSON property `port`
444
+ # @return [Fixnum]
445
+ attr_accessor :port
446
+
447
+ # Project ID where the endpoint is located.
448
+ # The Project ID can be derived from the URI if you provide a VM instance or
449
+ # network URI.
450
+ # The following are two cases where you must provide the project ID:
451
+ # 1. Only the IP address is specified, and the IP address is within a GCP
452
+ # project.
453
+ # 2. When you are using Shared VPC and the IP address that you provide is
454
+ # from the service project. In this case, the network that the IP address
455
+ # resides in is defined in the host project.
456
+ # Corresponds to the JSON property `projectId`
457
+ # @return [String]
458
+ attr_accessor :project_id
459
+
460
+ def initialize(**args)
461
+ update!(**args)
462
+ end
463
+
464
+ # Update properties of this object
465
+ def update!(**args)
466
+ @instance = args[:instance] if args.key?(:instance)
467
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
468
+ @network = args[:network] if args.key?(:network)
469
+ @network_type = args[:network_type] if args.key?(:network_type)
470
+ @port = args[:port] if args.key?(:port)
471
+ @project_id = args[:project_id] if args.key?(:project_id)
472
+ end
473
+ end
474
+
475
+ # For display only. The specification of the endpoints for the test.
476
+ # EndpointInfo is derived from source and destination Endpoint and validated
477
+ # by the backend data plane model.
478
+ class EndpointInfo
479
+ include Google::Apis::Core::Hashable
480
+
481
+ # Destination IP address.
482
+ # Corresponds to the JSON property `destinationIp`
483
+ # @return [String]
484
+ attr_accessor :destination_ip
485
+
486
+ # URI of the network where this packet is sent to.
487
+ # Corresponds to the JSON property `destinationNetworkUri`
488
+ # @return [String]
489
+ attr_accessor :destination_network_uri
490
+
491
+ # Destination port. Only valid when protocol is TCP or UDP.
492
+ # Corresponds to the JSON property `destinationPort`
493
+ # @return [Fixnum]
494
+ attr_accessor :destination_port
495
+
496
+ # IP protocol in string format, for example: "TCP", "UDP", "ICMP".
497
+ # Corresponds to the JSON property `protocol`
498
+ # @return [String]
499
+ attr_accessor :protocol
500
+
501
+ # Source IP address.
502
+ # Corresponds to the JSON property `sourceIp`
503
+ # @return [String]
504
+ attr_accessor :source_ip
505
+
506
+ # URI of the network where this packet originates from.
507
+ # Corresponds to the JSON property `sourceNetworkUri`
508
+ # @return [String]
509
+ attr_accessor :source_network_uri
510
+
511
+ # Source port. Only valid when protocol is TCP or UDP.
512
+ # Corresponds to the JSON property `sourcePort`
513
+ # @return [Fixnum]
514
+ attr_accessor :source_port
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ @destination_ip = args[:destination_ip] if args.key?(:destination_ip)
523
+ @destination_network_uri = args[:destination_network_uri] if args.key?(:destination_network_uri)
524
+ @destination_port = args[:destination_port] if args.key?(:destination_port)
525
+ @protocol = args[:protocol] if args.key?(:protocol)
526
+ @source_ip = args[:source_ip] if args.key?(:source_ip)
527
+ @source_network_uri = args[:source_network_uri] if args.key?(:source_network_uri)
528
+ @source_port = args[:source_port] if args.key?(:source_port)
529
+ end
530
+ end
531
+
532
+ # Represents a textual expression in the Common Expression Language (CEL)
533
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
534
+ # are documented at https://github.com/google/cel-spec.
535
+ # Example (Comparison):
536
+ # title: "Summary size limit"
537
+ # description: "Determines if a summary is less than 100 chars"
538
+ # expression: "document.summary.size() < 100"
539
+ # Example (Equality):
540
+ # title: "Requestor is owner"
541
+ # description: "Determines if requestor is the document owner"
542
+ # expression: "document.owner == request.auth.claims.email"
543
+ # Example (Logic):
544
+ # title: "Public documents"
545
+ # description: "Determine whether the document should be publicly visible"
546
+ # expression: "document.type != 'private' && document.type != 'internal'"
547
+ # Example (Data Manipulation):
548
+ # title: "Notification string"
549
+ # description: "Create a notification string with a timestamp."
550
+ # expression: "'New message received at ' + string(document.create_time)"
551
+ # The exact variables and functions that may be referenced within an expression
552
+ # are determined by the service that evaluates it. See the service
553
+ # documentation for additional information.
554
+ class Expr
555
+ include Google::Apis::Core::Hashable
556
+
557
+ # Optional. Description of the expression. This is a longer text which
558
+ # describes the expression, e.g. when hovered over it in a UI.
559
+ # Corresponds to the JSON property `description`
560
+ # @return [String]
561
+ attr_accessor :description
562
+
563
+ # Textual representation of an expression in Common Expression Language
564
+ # syntax.
565
+ # Corresponds to the JSON property `expression`
566
+ # @return [String]
567
+ attr_accessor :expression
568
+
569
+ # Optional. String indicating the location of the expression for error
570
+ # reporting, e.g. a file name and a position in the file.
571
+ # Corresponds to the JSON property `location`
572
+ # @return [String]
573
+ attr_accessor :location
574
+
575
+ # Optional. Title for the expression, i.e. a short string describing
576
+ # its purpose. This can be used e.g. in UIs which allow to enter the
577
+ # expression.
578
+ # Corresponds to the JSON property `title`
579
+ # @return [String]
580
+ attr_accessor :title
581
+
582
+ def initialize(**args)
583
+ update!(**args)
584
+ end
585
+
586
+ # Update properties of this object
587
+ def update!(**args)
588
+ @description = args[:description] if args.key?(:description)
589
+ @expression = args[:expression] if args.key?(:expression)
590
+ @location = args[:location] if args.key?(:location)
591
+ @title = args[:title] if args.key?(:title)
592
+ end
593
+ end
594
+
595
+ # For display only. Metadata associated with a Compute Engine firewall rule.
596
+ class FirewallInfo
597
+ include Google::Apis::Core::Hashable
598
+
599
+ # Possible values: ALLOW, DENY
600
+ # Corresponds to the JSON property `action`
601
+ # @return [String]
602
+ attr_accessor :action
603
+
604
+ # Possible values: INGRESS, EGRESS
605
+ # Corresponds to the JSON property `direction`
606
+ # @return [String]
607
+ attr_accessor :direction
608
+
609
+ # Name of a Compute Engine firewall rule.
610
+ # Corresponds to the JSON property `displayName`
611
+ # @return [String]
612
+ attr_accessor :display_name
613
+
614
+ # URI of a Compute Engine network.
615
+ # Corresponds to the JSON property `networkUri`
616
+ # @return [String]
617
+ attr_accessor :network_uri
618
+
619
+ # Priority of the firewall rule.
620
+ # Corresponds to the JSON property `priority`
621
+ # @return [Fixnum]
622
+ attr_accessor :priority
623
+
624
+ # Target service accounts of the firewall rule.
625
+ # Corresponds to the JSON property `targetServiceAccounts`
626
+ # @return [Array<String>]
627
+ attr_accessor :target_service_accounts
628
+
629
+ # Target tags of the firewall rule.
630
+ # Corresponds to the JSON property `targetTags`
631
+ # @return [Array<String>]
632
+ attr_accessor :target_tags
633
+
634
+ # URI of a Compute Engine firewall rule.
635
+ # Implied default rule does not have URI.
636
+ # Corresponds to the JSON property `uri`
637
+ # @return [String]
638
+ attr_accessor :uri
639
+
640
+ def initialize(**args)
641
+ update!(**args)
642
+ end
643
+
644
+ # Update properties of this object
645
+ def update!(**args)
646
+ @action = args[:action] if args.key?(:action)
647
+ @direction = args[:direction] if args.key?(:direction)
648
+ @display_name = args[:display_name] if args.key?(:display_name)
649
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
650
+ @priority = args[:priority] if args.key?(:priority)
651
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
652
+ @target_tags = args[:target_tags] if args.key?(:target_tags)
653
+ @uri = args[:uri] if args.key?(:uri)
654
+ end
655
+ end
656
+
657
+ # Details of the final state "forward" and associated resource.
658
+ class ForwardInfo
659
+ include Google::Apis::Core::Hashable
660
+
661
+ # URI of the resource that the packet is forwarded to.
662
+ # Corresponds to the JSON property `resourceUri`
663
+ # @return [String]
664
+ attr_accessor :resource_uri
665
+
666
+ # Target type where this packet is forwarded to.
667
+ # Corresponds to the JSON property `target`
668
+ # @return [String]
669
+ attr_accessor :target
670
+
671
+ def initialize(**args)
672
+ update!(**args)
673
+ end
674
+
675
+ # Update properties of this object
676
+ def update!(**args)
677
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
678
+ @target = args[:target] if args.key?(:target)
679
+ end
680
+ end
681
+
682
+ # For display only. Metadata associated with a Compute Engine forwarding rule.
683
+ class ForwardingRuleInfo
684
+ include Google::Apis::Core::Hashable
685
+
686
+ # Name of a Compute Engine forwarding rule.
687
+ # Corresponds to the JSON property `displayName`
688
+ # @return [String]
689
+ attr_accessor :display_name
690
+
691
+ # Port range defined in the forwarding rule that matches the test.
692
+ # Corresponds to the JSON property `matchedPortRange`
693
+ # @return [String]
694
+ attr_accessor :matched_port_range
695
+
696
+ # Protocol defined in the forwarding rule that matches the test.
697
+ # Corresponds to the JSON property `matchedProtocol`
698
+ # @return [String]
699
+ attr_accessor :matched_protocol
700
+
701
+ # Network URI. Only valid for Internal Load Balancer.
702
+ # Corresponds to the JSON property `networkUri`
703
+ # @return [String]
704
+ attr_accessor :network_uri
705
+
706
+ # Target type of the forwarding rule.
707
+ # Corresponds to the JSON property `target`
708
+ # @return [String]
709
+ attr_accessor :target
710
+
711
+ # URI of a Compute Engine forwarding rule.
712
+ # Corresponds to the JSON property `uri`
713
+ # @return [String]
714
+ attr_accessor :uri
715
+
716
+ # VIP of the forwarding rule.
717
+ # Corresponds to the JSON property `vip`
718
+ # @return [String]
719
+ attr_accessor :vip
720
+
721
+ def initialize(**args)
722
+ update!(**args)
723
+ end
724
+
725
+ # Update properties of this object
726
+ def update!(**args)
727
+ @display_name = args[:display_name] if args.key?(:display_name)
728
+ @matched_port_range = args[:matched_port_range] if args.key?(:matched_port_range)
729
+ @matched_protocol = args[:matched_protocol] if args.key?(:matched_protocol)
730
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
731
+ @target = args[:target] if args.key?(:target)
732
+ @uri = args[:uri] if args.key?(:uri)
733
+ @vip = args[:vip] if args.key?(:vip)
734
+ end
735
+ end
736
+
737
+ # For display only. Metadata associated with a Compute Engine instance.
738
+ class InstanceInfo
739
+ include Google::Apis::Core::Hashable
740
+
741
+ # Name of a Compute Engine instance.
742
+ # Corresponds to the JSON property `displayName`
743
+ # @return [String]
744
+ attr_accessor :display_name
745
+
746
+ # External IP address of the network interface.
747
+ # Corresponds to the JSON property `externalIp`
748
+ # @return [String]
749
+ attr_accessor :external_ip
750
+
751
+ # Name of the network interface of a Compute Engine instance.
752
+ # Corresponds to the JSON property `interface`
753
+ # @return [String]
754
+ attr_accessor :interface
755
+
756
+ # Internal IP address of the network interface.
757
+ # Corresponds to the JSON property `internalIp`
758
+ # @return [String]
759
+ attr_accessor :internal_ip
760
+
761
+ # Network tags configured on the instance.
762
+ # Corresponds to the JSON property `networkTags`
763
+ # @return [Array<String>]
764
+ attr_accessor :network_tags
765
+
766
+ # URI of a Compute Engine network.
767
+ # Corresponds to the JSON property `networkUri`
768
+ # @return [String]
769
+ attr_accessor :network_uri
770
+
771
+ # Service account authorized for the instance.
772
+ # Corresponds to the JSON property `serviceAccount`
773
+ # @return [String]
774
+ attr_accessor :service_account
775
+
776
+ # URI of a Compute Engine instance.
777
+ # Corresponds to the JSON property `uri`
778
+ # @return [String]
779
+ attr_accessor :uri
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @display_name = args[:display_name] if args.key?(:display_name)
788
+ @external_ip = args[:external_ip] if args.key?(:external_ip)
789
+ @interface = args[:interface] if args.key?(:interface)
790
+ @internal_ip = args[:internal_ip] if args.key?(:internal_ip)
791
+ @network_tags = args[:network_tags] if args.key?(:network_tags)
792
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
793
+ @service_account = args[:service_account] if args.key?(:service_account)
794
+ @uri = args[:uri] if args.key?(:uri)
795
+ end
796
+ end
797
+
798
+ # Response for the `ListConnectivityTests` method.
799
+ class ListConnectivityTestsResponse
800
+ include Google::Apis::Core::Hashable
801
+
802
+ # Page token to fetch the next set of Connectivity Tests.
803
+ # Corresponds to the JSON property `nextPageToken`
804
+ # @return [String]
805
+ attr_accessor :next_page_token
806
+
807
+ # List of Connectivity Tests.
808
+ # Corresponds to the JSON property `resources`
809
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::ConnectivityTest>]
810
+ attr_accessor :resources
811
+
812
+ # Locations that could not be reached (when querying all locations with `-`).
813
+ # Corresponds to the JSON property `unreachable`
814
+ # @return [Array<String>]
815
+ attr_accessor :unreachable
816
+
817
+ def initialize(**args)
818
+ update!(**args)
819
+ end
820
+
821
+ # Update properties of this object
822
+ def update!(**args)
823
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
824
+ @resources = args[:resources] if args.key?(:resources)
825
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
826
+ end
827
+ end
828
+
829
+ # The response message for Locations.ListLocations.
830
+ class ListLocationsResponse
831
+ include Google::Apis::Core::Hashable
832
+
833
+ # A list of locations that matches the specified filter in the request.
834
+ # Corresponds to the JSON property `locations`
835
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::Location>]
836
+ attr_accessor :locations
837
+
838
+ # The standard List next-page token.
839
+ # Corresponds to the JSON property `nextPageToken`
840
+ # @return [String]
841
+ attr_accessor :next_page_token
842
+
843
+ def initialize(**args)
844
+ update!(**args)
845
+ end
846
+
847
+ # Update properties of this object
848
+ def update!(**args)
849
+ @locations = args[:locations] if args.key?(:locations)
850
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
851
+ end
852
+ end
853
+
854
+ # The response message for Operations.ListOperations.
855
+ class ListOperationsResponse
856
+ include Google::Apis::Core::Hashable
857
+
858
+ # The standard List next-page token.
859
+ # Corresponds to the JSON property `nextPageToken`
860
+ # @return [String]
861
+ attr_accessor :next_page_token
862
+
863
+ # A list of operations that matches the specified filter in the request.
864
+ # Corresponds to the JSON property `operations`
865
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::Operation>]
866
+ attr_accessor :operations
867
+
868
+ def initialize(**args)
869
+ update!(**args)
870
+ end
871
+
872
+ # Update properties of this object
873
+ def update!(**args)
874
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
875
+ @operations = args[:operations] if args.key?(:operations)
876
+ end
877
+ end
878
+
879
+ # For display only. Metadata associated with a specific load balancer backend.
880
+ class LoadBalancerBackend
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # Name of a Compute Engine instance or network endpoint.
884
+ # Corresponds to the JSON property `displayName`
885
+ # @return [String]
886
+ attr_accessor :display_name
887
+
888
+ # A list of firewall rule URIs allowing probes from health check IP ranges.
889
+ # Corresponds to the JSON property `healthCheckAllowingFirewallRules`
890
+ # @return [Array<String>]
891
+ attr_accessor :health_check_allowing_firewall_rules
892
+
893
+ # A list of firewall rule URIs blocking probes from health check IP ranges.
894
+ # Corresponds to the JSON property `healthCheckBlockingFirewallRules`
895
+ # @return [Array<String>]
896
+ attr_accessor :health_check_blocking_firewall_rules
897
+
898
+ # State of the health check firewall configuration.
899
+ # Corresponds to the JSON property `healthCheckFirewallState`
900
+ # @return [String]
901
+ attr_accessor :health_check_firewall_state
902
+
903
+ # URI of a Compute Engine instance or network endpoint.
904
+ # Corresponds to the JSON property `uri`
905
+ # @return [String]
906
+ attr_accessor :uri
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @display_name = args[:display_name] if args.key?(:display_name)
915
+ @health_check_allowing_firewall_rules = args[:health_check_allowing_firewall_rules] if args.key?(:health_check_allowing_firewall_rules)
916
+ @health_check_blocking_firewall_rules = args[:health_check_blocking_firewall_rules] if args.key?(:health_check_blocking_firewall_rules)
917
+ @health_check_firewall_state = args[:health_check_firewall_state] if args.key?(:health_check_firewall_state)
918
+ @uri = args[:uri] if args.key?(:uri)
919
+ end
920
+ end
921
+
922
+ # For display only. Metadata associated with a load balancer.
923
+ class LoadBalancerInfo
924
+ include Google::Apis::Core::Hashable
925
+
926
+ # Type of load balancer's backend configuration.
927
+ # Corresponds to the JSON property `backendType`
928
+ # @return [String]
929
+ attr_accessor :backend_type
930
+
931
+ # Backend configuration URI.
932
+ # Corresponds to the JSON property `backendUri`
933
+ # @return [String]
934
+ attr_accessor :backend_uri
935
+
936
+ # Information for the loadbalancer backends.
937
+ # Corresponds to the JSON property `backends`
938
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::LoadBalancerBackend>]
939
+ attr_accessor :backends
940
+
941
+ # URI of the health check for the load balancer.
942
+ # Corresponds to the JSON property `healthCheckUri`
943
+ # @return [String]
944
+ attr_accessor :health_check_uri
945
+
946
+ # Type of the load balancer.
947
+ # Corresponds to the JSON property `loadBalancerType`
948
+ # @return [String]
949
+ attr_accessor :load_balancer_type
950
+
951
+ def initialize(**args)
952
+ update!(**args)
953
+ end
954
+
955
+ # Update properties of this object
956
+ def update!(**args)
957
+ @backend_type = args[:backend_type] if args.key?(:backend_type)
958
+ @backend_uri = args[:backend_uri] if args.key?(:backend_uri)
959
+ @backends = args[:backends] if args.key?(:backends)
960
+ @health_check_uri = args[:health_check_uri] if args.key?(:health_check_uri)
961
+ @load_balancer_type = args[:load_balancer_type] if args.key?(:load_balancer_type)
962
+ end
963
+ end
964
+
965
+ # A resource that represents Google Cloud Platform location.
966
+ class Location
967
+ include Google::Apis::Core::Hashable
968
+
969
+ # The friendly name for this location, typically a nearby city name.
970
+ # For example, "Tokyo".
971
+ # Corresponds to the JSON property `displayName`
972
+ # @return [String]
973
+ attr_accessor :display_name
974
+
975
+ # Cross-service attributes for the location. For example
976
+ # `"cloud.googleapis.com/region": "us-east1"`
977
+ # Corresponds to the JSON property `labels`
978
+ # @return [Hash<String,String>]
979
+ attr_accessor :labels
980
+
981
+ # The canonical id for this location. For example: `"us-east1"`.
982
+ # Corresponds to the JSON property `locationId`
983
+ # @return [String]
984
+ attr_accessor :location_id
985
+
986
+ # Service-specific metadata. For example the available capacity at the given
987
+ # location.
988
+ # Corresponds to the JSON property `metadata`
989
+ # @return [Hash<String,Object>]
990
+ attr_accessor :metadata
991
+
992
+ # Resource name for the location, which may vary between implementations.
993
+ # For example: `"projects/example-project/locations/us-east1"`
994
+ # Corresponds to the JSON property `name`
995
+ # @return [String]
996
+ attr_accessor :name
997
+
998
+ def initialize(**args)
999
+ update!(**args)
1000
+ end
1001
+
1002
+ # Update properties of this object
1003
+ def update!(**args)
1004
+ @display_name = args[:display_name] if args.key?(:display_name)
1005
+ @labels = args[:labels] if args.key?(:labels)
1006
+ @location_id = args[:location_id] if args.key?(:location_id)
1007
+ @metadata = args[:metadata] if args.key?(:metadata)
1008
+ @name = args[:name] if args.key?(:name)
1009
+ end
1010
+ end
1011
+
1012
+ # For display only. Metadata associated with a Compute Engine network.
1013
+ class NetworkInfo
1014
+ include Google::Apis::Core::Hashable
1015
+
1016
+ # Name of a Compute Engine network.
1017
+ # Corresponds to the JSON property `displayName`
1018
+ # @return [String]
1019
+ attr_accessor :display_name
1020
+
1021
+ # The IP range that matches the test.
1022
+ # Corresponds to the JSON property `matchedIpRange`
1023
+ # @return [String]
1024
+ attr_accessor :matched_ip_range
1025
+
1026
+ # URI of a Compute Engine network.
1027
+ # Corresponds to the JSON property `uri`
1028
+ # @return [String]
1029
+ attr_accessor :uri
1030
+
1031
+ def initialize(**args)
1032
+ update!(**args)
1033
+ end
1034
+
1035
+ # Update properties of this object
1036
+ def update!(**args)
1037
+ @display_name = args[:display_name] if args.key?(:display_name)
1038
+ @matched_ip_range = args[:matched_ip_range] if args.key?(:matched_ip_range)
1039
+ @uri = args[:uri] if args.key?(:uri)
1040
+ end
1041
+ end
1042
+
1043
+ # This resource represents a long-running operation that is the result of a
1044
+ # network API call.
1045
+ class Operation
1046
+ include Google::Apis::Core::Hashable
1047
+
1048
+ # If the value is `false`, it means the operation is still in progress.
1049
+ # If `true`, the operation is completed, and either `error` or `response` is
1050
+ # available.
1051
+ # Corresponds to the JSON property `done`
1052
+ # @return [Boolean]
1053
+ attr_accessor :done
1054
+ alias_method :done?, :done
1055
+
1056
+ # The `Status` type defines a logical error model that is suitable for
1057
+ # different programming environments, including REST APIs and RPC APIs. It is
1058
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1059
+ # three pieces of data: error code, error message, and error details.
1060
+ # You can find out more about this error model and how to work with it in the
1061
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1062
+ # Corresponds to the JSON property `error`
1063
+ # @return [Google::Apis::NetworkmanagementV1beta1::Status]
1064
+ attr_accessor :error
1065
+
1066
+ # Service-specific metadata associated with the operation. It typically
1067
+ # contains progress information and common metadata such as create time.
1068
+ # Some services might not provide such metadata. Any method that returns a
1069
+ # long-running operation should document the metadata type, if any.
1070
+ # Corresponds to the JSON property `metadata`
1071
+ # @return [Hash<String,Object>]
1072
+ attr_accessor :metadata
1073
+
1074
+ # The server-assigned name, which is only unique within the same service that
1075
+ # originally returns it. If you use the default HTTP mapping, the
1076
+ # `name` should be a resource name ending with `operations/`unique_id``.
1077
+ # Corresponds to the JSON property `name`
1078
+ # @return [String]
1079
+ attr_accessor :name
1080
+
1081
+ # The normal response of the operation in case of success. If the original
1082
+ # method returns no data on success, such as `Delete`, the response is
1083
+ # `google.protobuf.Empty`. If the original method is standard
1084
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
1085
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
1086
+ # is the original method name. For example, if the original method name
1087
+ # is `TakeSnapshot()`, the inferred response type is
1088
+ # `TakeSnapshotResponse`.
1089
+ # Corresponds to the JSON property `response`
1090
+ # @return [Hash<String,Object>]
1091
+ attr_accessor :response
1092
+
1093
+ def initialize(**args)
1094
+ update!(**args)
1095
+ end
1096
+
1097
+ # Update properties of this object
1098
+ def update!(**args)
1099
+ @done = args[:done] if args.key?(:done)
1100
+ @error = args[:error] if args.key?(:error)
1101
+ @metadata = args[:metadata] if args.key?(:metadata)
1102
+ @name = args[:name] if args.key?(:name)
1103
+ @response = args[:response] if args.key?(:response)
1104
+ end
1105
+ end
1106
+
1107
+ # Metadata describing an Operation
1108
+ class OperationMetadata
1109
+ include Google::Apis::Core::Hashable
1110
+
1111
+ # API version.
1112
+ # Corresponds to the JSON property `apiVersion`
1113
+ # @return [String]
1114
+ attr_accessor :api_version
1115
+
1116
+ # Specifies if cancellation was requested for the operation.
1117
+ # Corresponds to the JSON property `cancelRequested`
1118
+ # @return [Boolean]
1119
+ attr_accessor :cancel_requested
1120
+ alias_method :cancel_requested?, :cancel_requested
1121
+
1122
+ # The time the operation was created.
1123
+ # Corresponds to the JSON property `createTime`
1124
+ # @return [String]
1125
+ attr_accessor :create_time
1126
+
1127
+ # The time the operation finished running.
1128
+ # Corresponds to the JSON property `endTime`
1129
+ # @return [String]
1130
+ attr_accessor :end_time
1131
+
1132
+ # Human-readable status of the operation, if any.
1133
+ # Corresponds to the JSON property `statusDetail`
1134
+ # @return [String]
1135
+ attr_accessor :status_detail
1136
+
1137
+ # Target of the operation - for example
1138
+ # projects/project-1/connectivityTests/test-1
1139
+ # Corresponds to the JSON property `target`
1140
+ # @return [String]
1141
+ attr_accessor :target
1142
+
1143
+ # Name of the verb executed by the operation.
1144
+ # Corresponds to the JSON property `verb`
1145
+ # @return [String]
1146
+ attr_accessor :verb
1147
+
1148
+ def initialize(**args)
1149
+ update!(**args)
1150
+ end
1151
+
1152
+ # Update properties of this object
1153
+ def update!(**args)
1154
+ @api_version = args[:api_version] if args.key?(:api_version)
1155
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
1156
+ @create_time = args[:create_time] if args.key?(:create_time)
1157
+ @end_time = args[:end_time] if args.key?(:end_time)
1158
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1159
+ @target = args[:target] if args.key?(:target)
1160
+ @verb = args[:verb] if args.key?(:verb)
1161
+ end
1162
+ end
1163
+
1164
+ # An Identity and Access Management (IAM) policy, which specifies access
1165
+ # controls for Google Cloud resources.
1166
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1167
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1168
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1169
+ # permissions; each `role` can be an IAM predefined role or a user-created
1170
+ # custom role.
1171
+ # Optionally, a `binding` can specify a `condition`, which is a logical
1172
+ # expression that allows access to a resource only if the expression evaluates
1173
+ # to `true`. A condition can add constraints based on attributes of the
1174
+ # request, the resource, or both.
1175
+ # **JSON example:**
1176
+ # `
1177
+ # "bindings": [
1178
+ # `
1179
+ # "role": "roles/resourcemanager.organizationAdmin",
1180
+ # "members": [
1181
+ # "user:mike@example.com",
1182
+ # "group:admins@example.com",
1183
+ # "domain:google.com",
1184
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1185
+ # ]
1186
+ # `,
1187
+ # `
1188
+ # "role": "roles/resourcemanager.organizationViewer",
1189
+ # "members": ["user:eve@example.com"],
1190
+ # "condition": `
1191
+ # "title": "expirable access",
1192
+ # "description": "Does not grant access after Sep 2020",
1193
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1194
+ # ",
1195
+ # `
1196
+ # `
1197
+ # ],
1198
+ # "etag": "BwWWja0YfJA=",
1199
+ # "version": 3
1200
+ # `
1201
+ # **YAML example:**
1202
+ # bindings:
1203
+ # - members:
1204
+ # - user:mike@example.com
1205
+ # - group:admins@example.com
1206
+ # - domain:google.com
1207
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1208
+ # role: roles/resourcemanager.organizationAdmin
1209
+ # - members:
1210
+ # - user:eve@example.com
1211
+ # role: roles/resourcemanager.organizationViewer
1212
+ # condition:
1213
+ # title: expirable access
1214
+ # description: Does not grant access after Sep 2020
1215
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1216
+ # - etag: BwWWja0YfJA=
1217
+ # - version: 3
1218
+ # For a description of IAM and its features, see the
1219
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1220
+ class Policy
1221
+ include Google::Apis::Core::Hashable
1222
+
1223
+ # Specifies cloud audit logging configuration for this policy.
1224
+ # Corresponds to the JSON property `auditConfigs`
1225
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::AuditConfig>]
1226
+ attr_accessor :audit_configs
1227
+
1228
+ # Associates a list of `members` to a `role`. Optionally, may specify a
1229
+ # `condition` that determines how and when the `bindings` are applied. Each
1230
+ # of the `bindings` must contain at least one member.
1231
+ # Corresponds to the JSON property `bindings`
1232
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::Binding>]
1233
+ attr_accessor :bindings
1234
+
1235
+ # `etag` is used for optimistic concurrency control as a way to help
1236
+ # prevent simultaneous updates of a policy from overwriting each other.
1237
+ # It is strongly suggested that systems make use of the `etag` in the
1238
+ # read-modify-write cycle to perform policy updates in order to avoid race
1239
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
1240
+ # systems are expected to put that etag in the request to `setIamPolicy` to
1241
+ # ensure that their change will be applied to the same version of the policy.
1242
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1243
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1244
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1245
+ # the conditions in the version `3` policy are lost.
1246
+ # Corresponds to the JSON property `etag`
1247
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1248
+ # @return [String]
1249
+ attr_accessor :etag
1250
+
1251
+ # Specifies the format of the policy.
1252
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
1253
+ # are rejected.
1254
+ # Any operation that affects conditional role bindings must specify version
1255
+ # `3`. This requirement applies to the following operations:
1256
+ # * Getting a policy that includes a conditional role binding
1257
+ # * Adding a conditional role binding to a policy
1258
+ # * Changing a conditional role binding in a policy
1259
+ # * Removing any role binding, with or without a condition, from a policy
1260
+ # that includes conditions
1261
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1262
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1263
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1264
+ # the conditions in the version `3` policy are lost.
1265
+ # If a policy does not include any conditions, operations on that policy may
1266
+ # specify any valid version or leave the field unset.
1267
+ # Corresponds to the JSON property `version`
1268
+ # @return [Fixnum]
1269
+ attr_accessor :version
1270
+
1271
+ def initialize(**args)
1272
+ update!(**args)
1273
+ end
1274
+
1275
+ # Update properties of this object
1276
+ def update!(**args)
1277
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1278
+ @bindings = args[:bindings] if args.key?(:bindings)
1279
+ @etag = args[:etag] if args.key?(:etag)
1280
+ @version = args[:version] if args.key?(:version)
1281
+ end
1282
+ end
1283
+
1284
+ # The details of reachability state from the latest run.
1285
+ class ReachabilityDetails
1286
+ include Google::Apis::Core::Hashable
1287
+
1288
+ # The `Status` type defines a logical error model that is suitable for
1289
+ # different programming environments, including REST APIs and RPC APIs. It is
1290
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1291
+ # three pieces of data: error code, error message, and error details.
1292
+ # You can find out more about this error model and how to work with it in the
1293
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1294
+ # Corresponds to the JSON property `error`
1295
+ # @return [Google::Apis::NetworkmanagementV1beta1::Status]
1296
+ attr_accessor :error
1297
+
1298
+ # The overall reachability result of the test.
1299
+ # Corresponds to the JSON property `result`
1300
+ # @return [String]
1301
+ attr_accessor :result
1302
+
1303
+ # Result may contain a list of traces if a test has multiple possible
1304
+ # paths in the network, such as when destination endpoint is a load balancer
1305
+ # with multiple backends.
1306
+ # Corresponds to the JSON property `traces`
1307
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::Trace>]
1308
+ attr_accessor :traces
1309
+
1310
+ # The time the reachability state was verified.
1311
+ # Corresponds to the JSON property `verifyTime`
1312
+ # @return [String]
1313
+ attr_accessor :verify_time
1314
+
1315
+ def initialize(**args)
1316
+ update!(**args)
1317
+ end
1318
+
1319
+ # Update properties of this object
1320
+ def update!(**args)
1321
+ @error = args[:error] if args.key?(:error)
1322
+ @result = args[:result] if args.key?(:result)
1323
+ @traces = args[:traces] if args.key?(:traces)
1324
+ @verify_time = args[:verify_time] if args.key?(:verify_time)
1325
+ end
1326
+ end
1327
+
1328
+ # Request for the `RerunConnectivityTest` method.
1329
+ class RerunConnectivityTestRequest
1330
+ include Google::Apis::Core::Hashable
1331
+
1332
+ def initialize(**args)
1333
+ update!(**args)
1334
+ end
1335
+
1336
+ # Update properties of this object
1337
+ def update!(**args)
1338
+ end
1339
+ end
1340
+
1341
+ # For display only. Metadata associated with a Compute Engine route.
1342
+ class RouteInfo
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # Destination IP range of the route.
1346
+ # Corresponds to the JSON property `destIpRange`
1347
+ # @return [String]
1348
+ attr_accessor :dest_ip_range
1349
+
1350
+ # Name of a Compute Engine route.
1351
+ # Corresponds to the JSON property `displayName`
1352
+ # @return [String]
1353
+ attr_accessor :display_name
1354
+
1355
+ # Instance tags of the route.
1356
+ # Corresponds to the JSON property `instanceTags`
1357
+ # @return [Array<String>]
1358
+ attr_accessor :instance_tags
1359
+
1360
+ # URI of a Compute Engine network.
1361
+ # Corresponds to the JSON property `networkUri`
1362
+ # @return [String]
1363
+ attr_accessor :network_uri
1364
+
1365
+ # Next hop of the route.
1366
+ # Corresponds to the JSON property `nextHop`
1367
+ # @return [String]
1368
+ attr_accessor :next_hop
1369
+
1370
+ # Type of next hop.
1371
+ # Corresponds to the JSON property `nextHopType`
1372
+ # @return [String]
1373
+ attr_accessor :next_hop_type
1374
+
1375
+ # Priority of the route.
1376
+ # Corresponds to the JSON property `priority`
1377
+ # @return [Fixnum]
1378
+ attr_accessor :priority
1379
+
1380
+ # Type of route.
1381
+ # Corresponds to the JSON property `routeType`
1382
+ # @return [String]
1383
+ attr_accessor :route_type
1384
+
1385
+ # URI of a Compute Engine route.
1386
+ # Dynamic route from cloud router does not have a URI.
1387
+ # Advertised route from Google Cloud VPC to on-premises network also does
1388
+ # not have a URI.
1389
+ # Corresponds to the JSON property `uri`
1390
+ # @return [String]
1391
+ attr_accessor :uri
1392
+
1393
+ def initialize(**args)
1394
+ update!(**args)
1395
+ end
1396
+
1397
+ # Update properties of this object
1398
+ def update!(**args)
1399
+ @dest_ip_range = args[:dest_ip_range] if args.key?(:dest_ip_range)
1400
+ @display_name = args[:display_name] if args.key?(:display_name)
1401
+ @instance_tags = args[:instance_tags] if args.key?(:instance_tags)
1402
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1403
+ @next_hop = args[:next_hop] if args.key?(:next_hop)
1404
+ @next_hop_type = args[:next_hop_type] if args.key?(:next_hop_type)
1405
+ @priority = args[:priority] if args.key?(:priority)
1406
+ @route_type = args[:route_type] if args.key?(:route_type)
1407
+ @uri = args[:uri] if args.key?(:uri)
1408
+ end
1409
+ end
1410
+
1411
+ # Request message for `SetIamPolicy` method.
1412
+ class SetIamPolicyRequest
1413
+ include Google::Apis::Core::Hashable
1414
+
1415
+ # An Identity and Access Management (IAM) policy, which specifies access
1416
+ # controls for Google Cloud resources.
1417
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1418
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1419
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1420
+ # permissions; each `role` can be an IAM predefined role or a user-created
1421
+ # custom role.
1422
+ # Optionally, a `binding` can specify a `condition`, which is a logical
1423
+ # expression that allows access to a resource only if the expression evaluates
1424
+ # to `true`. A condition can add constraints based on attributes of the
1425
+ # request, the resource, or both.
1426
+ # **JSON example:**
1427
+ # `
1428
+ # "bindings": [
1429
+ # `
1430
+ # "role": "roles/resourcemanager.organizationAdmin",
1431
+ # "members": [
1432
+ # "user:mike@example.com",
1433
+ # "group:admins@example.com",
1434
+ # "domain:google.com",
1435
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1436
+ # ]
1437
+ # `,
1438
+ # `
1439
+ # "role": "roles/resourcemanager.organizationViewer",
1440
+ # "members": ["user:eve@example.com"],
1441
+ # "condition": `
1442
+ # "title": "expirable access",
1443
+ # "description": "Does not grant access after Sep 2020",
1444
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1445
+ # ",
1446
+ # `
1447
+ # `
1448
+ # ],
1449
+ # "etag": "BwWWja0YfJA=",
1450
+ # "version": 3
1451
+ # `
1452
+ # **YAML example:**
1453
+ # bindings:
1454
+ # - members:
1455
+ # - user:mike@example.com
1456
+ # - group:admins@example.com
1457
+ # - domain:google.com
1458
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1459
+ # role: roles/resourcemanager.organizationAdmin
1460
+ # - members:
1461
+ # - user:eve@example.com
1462
+ # role: roles/resourcemanager.organizationViewer
1463
+ # condition:
1464
+ # title: expirable access
1465
+ # description: Does not grant access after Sep 2020
1466
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1467
+ # - etag: BwWWja0YfJA=
1468
+ # - version: 3
1469
+ # For a description of IAM and its features, see the
1470
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1471
+ # Corresponds to the JSON property `policy`
1472
+ # @return [Google::Apis::NetworkmanagementV1beta1::Policy]
1473
+ attr_accessor :policy
1474
+
1475
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1476
+ # the fields in the mask will be modified. If no mask is provided, the
1477
+ # following default mask is used:
1478
+ # paths: "bindings, etag"
1479
+ # This field is only used by Cloud IAM.
1480
+ # Corresponds to the JSON property `updateMask`
1481
+ # @return [String]
1482
+ attr_accessor :update_mask
1483
+
1484
+ def initialize(**args)
1485
+ update!(**args)
1486
+ end
1487
+
1488
+ # Update properties of this object
1489
+ def update!(**args)
1490
+ @policy = args[:policy] if args.key?(:policy)
1491
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1492
+ end
1493
+ end
1494
+
1495
+ # The `Status` type defines a logical error model that is suitable for
1496
+ # different programming environments, including REST APIs and RPC APIs. It is
1497
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1498
+ # three pieces of data: error code, error message, and error details.
1499
+ # You can find out more about this error model and how to work with it in the
1500
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1501
+ class Status
1502
+ include Google::Apis::Core::Hashable
1503
+
1504
+ # The status code, which should be an enum value of google.rpc.Code.
1505
+ # Corresponds to the JSON property `code`
1506
+ # @return [Fixnum]
1507
+ attr_accessor :code
1508
+
1509
+ # A list of messages that carry the error details. There is a common set of
1510
+ # message types for APIs to use.
1511
+ # Corresponds to the JSON property `details`
1512
+ # @return [Array<Hash<String,Object>>]
1513
+ attr_accessor :details
1514
+
1515
+ # A developer-facing error message, which should be in English. Any
1516
+ # user-facing error message should be localized and sent in the
1517
+ # google.rpc.Status.details field, or localized by the client.
1518
+ # Corresponds to the JSON property `message`
1519
+ # @return [String]
1520
+ attr_accessor :message
1521
+
1522
+ def initialize(**args)
1523
+ update!(**args)
1524
+ end
1525
+
1526
+ # Update properties of this object
1527
+ def update!(**args)
1528
+ @code = args[:code] if args.key?(:code)
1529
+ @details = args[:details] if args.key?(:details)
1530
+ @message = args[:message] if args.key?(:message)
1531
+ end
1532
+ end
1533
+
1534
+ # A simulated forwarding path is composed of multiple steps.
1535
+ # Each step has a well-defined state and an associated configuration.
1536
+ class Step
1537
+ include Google::Apis::Core::Hashable
1538
+
1539
+ # Details of the final state "abort" and associated resource.
1540
+ # Corresponds to the JSON property `abort`
1541
+ # @return [Google::Apis::NetworkmanagementV1beta1::AbortInfo]
1542
+ attr_accessor :abort
1543
+
1544
+ # This is a step that leads to the final state Drop.
1545
+ # Corresponds to the JSON property `causesDrop`
1546
+ # @return [Boolean]
1547
+ attr_accessor :causes_drop
1548
+ alias_method :causes_drop?, :causes_drop
1549
+
1550
+ # Details of the final state "deliver" and associated resource.
1551
+ # Corresponds to the JSON property `deliver`
1552
+ # @return [Google::Apis::NetworkmanagementV1beta1::DeliverInfo]
1553
+ attr_accessor :deliver
1554
+
1555
+ # A description of the step. Usually this is a summary of the state.
1556
+ # Corresponds to the JSON property `description`
1557
+ # @return [String]
1558
+ attr_accessor :description
1559
+
1560
+ # Details of the final state "drop" and associated resource.
1561
+ # Corresponds to the JSON property `drop`
1562
+ # @return [Google::Apis::NetworkmanagementV1beta1::DropInfo]
1563
+ attr_accessor :drop
1564
+
1565
+ # For display only. The specification of the endpoints for the test.
1566
+ # EndpointInfo is derived from source and destination Endpoint and validated
1567
+ # by the backend data plane model.
1568
+ # Corresponds to the JSON property `endpoint`
1569
+ # @return [Google::Apis::NetworkmanagementV1beta1::EndpointInfo]
1570
+ attr_accessor :endpoint
1571
+
1572
+ # For display only. Metadata associated with a Compute Engine firewall rule.
1573
+ # Corresponds to the JSON property `firewall`
1574
+ # @return [Google::Apis::NetworkmanagementV1beta1::FirewallInfo]
1575
+ attr_accessor :firewall
1576
+
1577
+ # Details of the final state "forward" and associated resource.
1578
+ # Corresponds to the JSON property `forward`
1579
+ # @return [Google::Apis::NetworkmanagementV1beta1::ForwardInfo]
1580
+ attr_accessor :forward
1581
+
1582
+ # For display only. Metadata associated with a Compute Engine forwarding rule.
1583
+ # Corresponds to the JSON property `forwardingRule`
1584
+ # @return [Google::Apis::NetworkmanagementV1beta1::ForwardingRuleInfo]
1585
+ attr_accessor :forwarding_rule
1586
+
1587
+ # For display only. Metadata associated with a Compute Engine instance.
1588
+ # Corresponds to the JSON property `instance`
1589
+ # @return [Google::Apis::NetworkmanagementV1beta1::InstanceInfo]
1590
+ attr_accessor :instance
1591
+
1592
+ # For display only. Metadata associated with a load balancer.
1593
+ # Corresponds to the JSON property `loadBalancer`
1594
+ # @return [Google::Apis::NetworkmanagementV1beta1::LoadBalancerInfo]
1595
+ attr_accessor :load_balancer
1596
+
1597
+ # For display only. Metadata associated with a Compute Engine network.
1598
+ # Corresponds to the JSON property `network`
1599
+ # @return [Google::Apis::NetworkmanagementV1beta1::NetworkInfo]
1600
+ attr_accessor :network
1601
+
1602
+ # Project ID that contains the configuration this step is validating.
1603
+ # Corresponds to the JSON property `projectId`
1604
+ # @return [String]
1605
+ attr_accessor :project_id
1606
+
1607
+ # For display only. Metadata associated with a Compute Engine route.
1608
+ # Corresponds to the JSON property `route`
1609
+ # @return [Google::Apis::NetworkmanagementV1beta1::RouteInfo]
1610
+ attr_accessor :route
1611
+
1612
+ # Each step is in one of the pre-defined states.
1613
+ # Corresponds to the JSON property `state`
1614
+ # @return [String]
1615
+ attr_accessor :state
1616
+
1617
+ # For display only. Metadata associated with a Compute Engine VPN gateway.
1618
+ # Corresponds to the JSON property `vpnGateway`
1619
+ # @return [Google::Apis::NetworkmanagementV1beta1::VpnGatewayInfo]
1620
+ attr_accessor :vpn_gateway
1621
+
1622
+ # For display only. Metadata associated with a Compute Engine VPN tunnel.
1623
+ # Corresponds to the JSON property `vpnTunnel`
1624
+ # @return [Google::Apis::NetworkmanagementV1beta1::VpnTunnelInfo]
1625
+ attr_accessor :vpn_tunnel
1626
+
1627
+ def initialize(**args)
1628
+ update!(**args)
1629
+ end
1630
+
1631
+ # Update properties of this object
1632
+ def update!(**args)
1633
+ @abort = args[:abort] if args.key?(:abort)
1634
+ @causes_drop = args[:causes_drop] if args.key?(:causes_drop)
1635
+ @deliver = args[:deliver] if args.key?(:deliver)
1636
+ @description = args[:description] if args.key?(:description)
1637
+ @drop = args[:drop] if args.key?(:drop)
1638
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
1639
+ @firewall = args[:firewall] if args.key?(:firewall)
1640
+ @forward = args[:forward] if args.key?(:forward)
1641
+ @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
1642
+ @instance = args[:instance] if args.key?(:instance)
1643
+ @load_balancer = args[:load_balancer] if args.key?(:load_balancer)
1644
+ @network = args[:network] if args.key?(:network)
1645
+ @project_id = args[:project_id] if args.key?(:project_id)
1646
+ @route = args[:route] if args.key?(:route)
1647
+ @state = args[:state] if args.key?(:state)
1648
+ @vpn_gateway = args[:vpn_gateway] if args.key?(:vpn_gateway)
1649
+ @vpn_tunnel = args[:vpn_tunnel] if args.key?(:vpn_tunnel)
1650
+ end
1651
+ end
1652
+
1653
+ # Request message for `TestIamPermissions` method.
1654
+ class TestIamPermissionsRequest
1655
+ include Google::Apis::Core::Hashable
1656
+
1657
+ # The set of permissions to check for the `resource`. Permissions with
1658
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
1659
+ # information see
1660
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1661
+ # Corresponds to the JSON property `permissions`
1662
+ # @return [Array<String>]
1663
+ attr_accessor :permissions
1664
+
1665
+ def initialize(**args)
1666
+ update!(**args)
1667
+ end
1668
+
1669
+ # Update properties of this object
1670
+ def update!(**args)
1671
+ @permissions = args[:permissions] if args.key?(:permissions)
1672
+ end
1673
+ end
1674
+
1675
+ # Response message for `TestIamPermissions` method.
1676
+ class TestIamPermissionsResponse
1677
+ include Google::Apis::Core::Hashable
1678
+
1679
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
1680
+ # allowed.
1681
+ # Corresponds to the JSON property `permissions`
1682
+ # @return [Array<String>]
1683
+ attr_accessor :permissions
1684
+
1685
+ def initialize(**args)
1686
+ update!(**args)
1687
+ end
1688
+
1689
+ # Update properties of this object
1690
+ def update!(**args)
1691
+ @permissions = args[:permissions] if args.key?(:permissions)
1692
+ end
1693
+ end
1694
+
1695
+ # Trace represents one simulated packet forwarding path.
1696
+ # <ul>
1697
+ # <li>Each trace contains multiple ordered steps.</li>
1698
+ # <li>Each step is in a particular state and has an associated
1699
+ # configuration.</li> <li>State is categorized as a final or non-final
1700
+ # state.</li> <li>Each final state has a reason associated with it.</li>
1701
+ # <li>Each trace must end with a final state (the last step).</li>
1702
+ # </ul>
1703
+ # <pre><code>
1704
+ # |---------------------Trace----------------------|
1705
+ # Step1(State) Step2(State) --- StepN(State(final))
1706
+ # </code></pre>
1707
+ class Trace
1708
+ include Google::Apis::Core::Hashable
1709
+
1710
+ # For display only. The specification of the endpoints for the test.
1711
+ # EndpointInfo is derived from source and destination Endpoint and validated
1712
+ # by the backend data plane model.
1713
+ # Corresponds to the JSON property `endpointInfo`
1714
+ # @return [Google::Apis::NetworkmanagementV1beta1::EndpointInfo]
1715
+ attr_accessor :endpoint_info
1716
+
1717
+ # A trace of a test contains multiple steps from the initial state to the
1718
+ # final state (delivered, dropped, forwarded, or aborted).
1719
+ # The steps are ordered by the processing sequence within the simulated
1720
+ # network state machine. It is critical to preserve the order of the steps
1721
+ # and avoid reordering or sorting them.
1722
+ # Corresponds to the JSON property `steps`
1723
+ # @return [Array<Google::Apis::NetworkmanagementV1beta1::Step>]
1724
+ attr_accessor :steps
1725
+
1726
+ def initialize(**args)
1727
+ update!(**args)
1728
+ end
1729
+
1730
+ # Update properties of this object
1731
+ def update!(**args)
1732
+ @endpoint_info = args[:endpoint_info] if args.key?(:endpoint_info)
1733
+ @steps = args[:steps] if args.key?(:steps)
1734
+ end
1735
+ end
1736
+
1737
+ # For display only. Metadata associated with a Compute Engine VPN gateway.
1738
+ class VpnGatewayInfo
1739
+ include Google::Apis::Core::Hashable
1740
+
1741
+ # Name of a VPN gateway.
1742
+ # Corresponds to the JSON property `displayName`
1743
+ # @return [String]
1744
+ attr_accessor :display_name
1745
+
1746
+ # IP address of the VPN gateway.
1747
+ # Corresponds to the JSON property `ipAddress`
1748
+ # @return [String]
1749
+ attr_accessor :ip_address
1750
+
1751
+ # URI of a Compute Engine network where the VPN gateway is configured.
1752
+ # Corresponds to the JSON property `networkUri`
1753
+ # @return [String]
1754
+ attr_accessor :network_uri
1755
+
1756
+ # Name of a GCP region where this VPN gateway is configured.
1757
+ # Corresponds to the JSON property `region`
1758
+ # @return [String]
1759
+ attr_accessor :region
1760
+
1761
+ # URI of a VPN gateway.
1762
+ # Corresponds to the JSON property `uri`
1763
+ # @return [String]
1764
+ attr_accessor :uri
1765
+
1766
+ # A VPN tunnel that is associated with this VPN gateway.
1767
+ # There may be multiple VPN tunnels configured on a VPN gateway, and only
1768
+ # the one relevant to the test is displayed.
1769
+ # Corresponds to the JSON property `vpnTunnelUri`
1770
+ # @return [String]
1771
+ attr_accessor :vpn_tunnel_uri
1772
+
1773
+ def initialize(**args)
1774
+ update!(**args)
1775
+ end
1776
+
1777
+ # Update properties of this object
1778
+ def update!(**args)
1779
+ @display_name = args[:display_name] if args.key?(:display_name)
1780
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
1781
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1782
+ @region = args[:region] if args.key?(:region)
1783
+ @uri = args[:uri] if args.key?(:uri)
1784
+ @vpn_tunnel_uri = args[:vpn_tunnel_uri] if args.key?(:vpn_tunnel_uri)
1785
+ end
1786
+ end
1787
+
1788
+ # For display only. Metadata associated with a Compute Engine VPN tunnel.
1789
+ class VpnTunnelInfo
1790
+ include Google::Apis::Core::Hashable
1791
+
1792
+ # Name of a VPN tunnel.
1793
+ # Corresponds to the JSON property `displayName`
1794
+ # @return [String]
1795
+ attr_accessor :display_name
1796
+
1797
+ # URI of a Compute Engine network where the VPN tunnel is configured.
1798
+ # Corresponds to the JSON property `networkUri`
1799
+ # @return [String]
1800
+ attr_accessor :network_uri
1801
+
1802
+ # Name of a GCP region where this VPN tunnel is configured.
1803
+ # Corresponds to the JSON property `region`
1804
+ # @return [String]
1805
+ attr_accessor :region
1806
+
1807
+ # URI of a VPN gateway at remote end of the tunnel.
1808
+ # Corresponds to the JSON property `remoteGateway`
1809
+ # @return [String]
1810
+ attr_accessor :remote_gateway
1811
+
1812
+ # Remote VPN gateway's IP address.
1813
+ # Corresponds to the JSON property `remoteGatewayIp`
1814
+ # @return [String]
1815
+ attr_accessor :remote_gateway_ip
1816
+
1817
+ # Type of the routing policy.
1818
+ # Corresponds to the JSON property `routingType`
1819
+ # @return [String]
1820
+ attr_accessor :routing_type
1821
+
1822
+ # URI of the VPN gateway at local end of the tunnel.
1823
+ # Corresponds to the JSON property `sourceGateway`
1824
+ # @return [String]
1825
+ attr_accessor :source_gateway
1826
+
1827
+ # Local VPN gateway's IP address.
1828
+ # Corresponds to the JSON property `sourceGatewayIp`
1829
+ # @return [String]
1830
+ attr_accessor :source_gateway_ip
1831
+
1832
+ # URI of a VPN tunnel.
1833
+ # Corresponds to the JSON property `uri`
1834
+ # @return [String]
1835
+ attr_accessor :uri
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @display_name = args[:display_name] if args.key?(:display_name)
1844
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1845
+ @region = args[:region] if args.key?(:region)
1846
+ @remote_gateway = args[:remote_gateway] if args.key?(:remote_gateway)
1847
+ @remote_gateway_ip = args[:remote_gateway_ip] if args.key?(:remote_gateway_ip)
1848
+ @routing_type = args[:routing_type] if args.key?(:routing_type)
1849
+ @source_gateway = args[:source_gateway] if args.key?(:source_gateway)
1850
+ @source_gateway_ip = args[:source_gateway_ip] if args.key?(:source_gateway_ip)
1851
+ @uri = args[:uri] if args.key?(:uri)
1852
+ end
1853
+ end
1854
+ end
1855
+ end
1856
+ end