google-api-client 0.48.0 → 0.49.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +94 -0
  3. data/generated/google/apis/analyticsadmin_v1alpha.rb +1 -1
  4. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +13 -12
  5. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +4 -4
  6. data/generated/google/apis/analyticsdata_v1alpha.rb +1 -1
  7. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +145 -6
  8. data/generated/google/apis/analyticsdata_v1alpha/representations.rb +52 -0
  9. data/generated/google/apis/analyticsdata_v1alpha/service.rb +38 -0
  10. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  11. data/generated/google/apis/apigateway_v1beta/classes.rb +8 -5
  12. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -0
  13. data/generated/google/apis/apigee_v1.rb +1 -1
  14. data/generated/google/apis/apigee_v1/classes.rb +253 -78
  15. data/generated/google/apis/apigee_v1/representations.rb +70 -0
  16. data/generated/google/apis/apigee_v1/service.rb +282 -41
  17. data/generated/google/apis/area120tables_v1alpha1.rb +1 -1
  18. data/generated/google/apis/area120tables_v1alpha1/classes.rb +58 -0
  19. data/generated/google/apis/area120tables_v1alpha1/representations.rb +31 -0
  20. data/generated/google/apis/area120tables_v1alpha1/service.rb +67 -0
  21. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  22. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +1 -2
  23. data/generated/google/apis/assuredworkloads_v1beta1.rb +1 -1
  24. data/generated/google/apis/assuredworkloads_v1beta1/classes.rb +10 -2
  25. data/generated/google/apis/assuredworkloads_v1beta1/service.rb +5 -1
  26. data/generated/google/apis/bigquery_v2.rb +1 -1
  27. data/generated/google/apis/bigquery_v2/classes.rb +6 -0
  28. data/generated/google/apis/bigquery_v2/representations.rb +1 -0
  29. data/generated/google/apis/bigquery_v2/service.rb +1 -1
  30. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  31. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +6 -0
  32. data/generated/google/apis/bigqueryconnection_v1beta1/representations.rb +1 -0
  33. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  34. data/generated/google/apis/binaryauthorization_v1/classes.rb +1 -2
  35. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  36. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +1 -2
  37. data/generated/google/apis/calendar_v3.rb +1 -1
  38. data/generated/google/apis/calendar_v3/classes.rb +2 -2
  39. data/generated/google/apis/chat_v1.rb +1 -1
  40. data/generated/google/apis/chat_v1/classes.rb +1 -2
  41. data/generated/google/apis/cloudasset_v1.rb +1 -1
  42. data/generated/google/apis/cloudasset_v1/classes.rb +6 -0
  43. data/generated/google/apis/cloudasset_v1/representations.rb +1 -0
  44. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  45. data/generated/google/apis/cloudasset_v1beta1/classes.rb +6 -0
  46. data/generated/google/apis/cloudasset_v1beta1/representations.rb +1 -0
  47. data/generated/google/apis/cloudasset_v1p1beta1.rb +1 -1
  48. data/generated/google/apis/cloudasset_v1p1beta1/classes.rb +6 -0
  49. data/generated/google/apis/cloudasset_v1p1beta1/representations.rb +1 -0
  50. data/generated/google/apis/cloudasset_v1p4beta1.rb +1 -1
  51. data/generated/google/apis/cloudasset_v1p4beta1/classes.rb +6 -0
  52. data/generated/google/apis/cloudasset_v1p4beta1/representations.rb +1 -0
  53. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  54. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +6 -0
  55. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +1 -0
  56. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  57. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -0
  58. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  59. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  60. data/generated/google/apis/cloudidentity_v1beta1/service.rb +22 -14
  61. data/generated/google/apis/cloudiot_v1.rb +1 -1
  62. data/generated/google/apis/cloudiot_v1/classes.rb +1 -2
  63. data/generated/google/apis/cloudkms_v1.rb +1 -1
  64. data/generated/google/apis/cloudkms_v1/classes.rb +1 -2
  65. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  66. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +79 -2
  67. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +32 -0
  68. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  69. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +79 -2
  70. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +32 -0
  71. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  72. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +83 -6
  73. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +32 -0
  74. data/generated/google/apis/cloudresourcemanager_v2/service.rb +3 -3
  75. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  76. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +83 -6
  77. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +32 -0
  78. data/generated/google/apis/cloudresourcemanager_v2beta1/service.rb +3 -3
  79. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  80. data/generated/google/apis/cloudtasks_v2/classes.rb +1 -2
  81. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  82. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +1 -2
  83. data/generated/google/apis/cloudtasks_v2beta2/service.rb +12 -2
  84. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  85. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +1 -2
  86. data/generated/google/apis/container_v1beta1.rb +1 -1
  87. data/generated/google/apis/container_v1beta1/classes.rb +29 -0
  88. data/generated/google/apis/container_v1beta1/representations.rb +15 -0
  89. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  90. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +1 -2
  91. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  92. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +1 -2
  93. data/generated/google/apis/content_v2.rb +1 -1
  94. data/generated/google/apis/content_v2/classes.rb +3 -3
  95. data/generated/google/apis/content_v2_1.rb +1 -1
  96. data/generated/google/apis/content_v2_1/classes.rb +7 -5
  97. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  98. data/generated/google/apis/datacatalog_v1beta1/classes.rb +2 -12
  99. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  100. data/generated/google/apis/datamigration_v1beta1.rb +34 -0
  101. data/generated/google/apis/datamigration_v1beta1/classes.rb +1670 -0
  102. data/generated/google/apis/datamigration_v1beta1/representations.rb +678 -0
  103. data/generated/google/apis/datamigration_v1beta1/service.rb +1172 -0
  104. data/generated/google/apis/dataproc_v1.rb +1 -1
  105. data/generated/google/apis/dataproc_v1/classes.rb +3 -4
  106. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  107. data/generated/google/apis/dataproc_v1beta2/classes.rb +3 -4
  108. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  109. data/generated/google/apis/deploymentmanager_v2/classes.rb +6 -0
  110. data/generated/google/apis/deploymentmanager_v2/representations.rb +1 -0
  111. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  112. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +6 -0
  113. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +1 -0
  114. data/generated/google/apis/dfareporting_v3_3.rb +2 -2
  115. data/generated/google/apis/dfareporting_v3_3/classes.rb +6 -6
  116. data/generated/google/apis/dfareporting_v3_3/service.rb +12 -12
  117. data/generated/google/apis/dfareporting_v3_4.rb +2 -2
  118. data/generated/google/apis/dfareporting_v3_4/classes.rb +6 -6
  119. data/generated/google/apis/dfareporting_v3_4/service.rb +12 -12
  120. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  121. data/generated/google/apis/dialogflow_v3beta1/classes.rb +6 -0
  122. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1 -0
  123. data/generated/google/apis/displayvideo_v1.rb +1 -1
  124. data/generated/google/apis/displayvideo_v1/classes.rb +33 -33
  125. data/generated/google/apis/dns_v1beta2.rb +1 -1
  126. data/generated/google/apis/dns_v1beta2/classes.rb +13 -0
  127. data/generated/google/apis/dns_v1beta2/representations.rb +12 -0
  128. data/generated/google/apis/dns_v1beta2/service.rb +176 -0
  129. data/generated/google/apis/drive_v2.rb +1 -1
  130. data/generated/google/apis/drive_v2/classes.rb +19 -19
  131. data/generated/google/apis/drive_v2/service.rb +2 -2
  132. data/generated/google/apis/drive_v3.rb +1 -1
  133. data/generated/google/apis/drive_v3/classes.rb +6 -5
  134. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  135. data/generated/google/apis/eventarc_v1beta1/classes.rb +6 -0
  136. data/generated/google/apis/eventarc_v1beta1/representations.rb +1 -0
  137. data/generated/google/apis/file_v1.rb +1 -1
  138. data/generated/google/apis/file_v1/classes.rb +505 -4
  139. data/generated/google/apis/file_v1/representations.rb +203 -0
  140. data/generated/google/apis/file_v1/service.rb +229 -1
  141. data/generated/google/apis/file_v1beta1.rb +1 -1
  142. data/generated/google/apis/file_v1beta1/classes.rb +346 -6
  143. data/generated/google/apis/file_v1beta1/representations.rb +149 -0
  144. data/generated/google/apis/file_v1beta1/service.rb +6 -2
  145. data/generated/google/apis/gameservices_v1.rb +1 -1
  146. data/generated/google/apis/gameservices_v1/classes.rb +1 -2
  147. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  148. data/generated/google/apis/gameservices_v1beta/classes.rb +1 -2
  149. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  150. data/generated/google/apis/genomics_v2alpha1/classes.rb +25 -0
  151. data/generated/google/apis/genomics_v2alpha1/representations.rb +15 -0
  152. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  153. data/generated/google/apis/healthcare_v1beta1/classes.rb +266 -0
  154. data/generated/google/apis/healthcare_v1beta1/representations.rb +127 -0
  155. data/generated/google/apis/healthcare_v1beta1/service.rb +38 -2
  156. data/generated/google/apis/iam_v1.rb +1 -1
  157. data/generated/google/apis/iam_v1/classes.rb +8 -11
  158. data/generated/google/apis/iam_v1/representations.rb +0 -1
  159. data/generated/google/apis/iap_v1.rb +1 -1
  160. data/generated/google/apis/iap_v1/classes.rb +1 -13
  161. data/generated/google/apis/iap_v1/representations.rb +0 -1
  162. data/generated/google/apis/iap_v1beta1.rb +1 -1
  163. data/generated/google/apis/iap_v1beta1/classes.rb +1 -2
  164. data/generated/google/apis/logging_v2.rb +1 -1
  165. data/generated/google/apis/logging_v2/classes.rb +106 -3
  166. data/generated/google/apis/logging_v2/representations.rb +45 -0
  167. data/generated/google/apis/logging_v2/service.rb +81 -5
  168. data/generated/google/apis/managedidentities_v1.rb +1 -1
  169. data/generated/google/apis/managedidentities_v1/classes.rb +1 -2
  170. data/generated/google/apis/managedidentities_v1alpha1.rb +1 -1
  171. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +1 -2
  172. data/generated/google/apis/managedidentities_v1beta1.rb +1 -1
  173. data/generated/google/apis/managedidentities_v1beta1/classes.rb +1 -2
  174. data/generated/google/apis/ml_v1.rb +1 -1
  175. data/generated/google/apis/ml_v1/classes.rb +35 -2
  176. data/generated/google/apis/ml_v1/representations.rb +26 -0
  177. data/generated/google/apis/ml_v1/service.rb +35 -0
  178. data/generated/google/apis/networkmanagement_v1.rb +1 -1
  179. data/generated/google/apis/networkmanagement_v1/classes.rb +6 -0
  180. data/generated/google/apis/networkmanagement_v1/representations.rb +1 -0
  181. data/generated/google/apis/networkmanagement_v1beta1.rb +1 -1
  182. data/generated/google/apis/networkmanagement_v1beta1/classes.rb +57 -0
  183. data/generated/google/apis/networkmanagement_v1beta1/representations.rb +31 -0
  184. data/generated/google/apis/policytroubleshooter_v1.rb +1 -1
  185. data/generated/google/apis/policytroubleshooter_v1/classes.rb +6 -0
  186. data/generated/google/apis/policytroubleshooter_v1/representations.rb +1 -0
  187. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  188. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +6 -0
  189. data/generated/google/apis/policytroubleshooter_v1beta/representations.rb +1 -0
  190. data/generated/google/apis/privateca_v1beta1.rb +4 -2
  191. data/generated/google/apis/privateca_v1beta1/classes.rb +6 -0
  192. data/generated/google/apis/privateca_v1beta1/representations.rb +1 -0
  193. data/generated/google/apis/privateca_v1beta1/service.rb +3 -1
  194. data/generated/google/apis/pubsub_v1.rb +1 -1
  195. data/generated/google/apis/pubsub_v1/classes.rb +1 -2
  196. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  197. data/generated/google/apis/pubsub_v1beta2/classes.rb +1 -2
  198. data/generated/google/apis/redis_v1.rb +1 -1
  199. data/generated/google/apis/redis_v1/classes.rb +28 -0
  200. data/generated/google/apis/redis_v1/representations.rb +14 -0
  201. data/generated/google/apis/redis_v1/service.rb +34 -0
  202. data/generated/google/apis/run_v1.rb +1 -1
  203. data/generated/google/apis/run_v1/classes.rb +6 -0
  204. data/generated/google/apis/run_v1/representations.rb +1 -0
  205. data/generated/google/apis/run_v1alpha1.rb +1 -1
  206. data/generated/google/apis/run_v1alpha1/classes.rb +6 -0
  207. data/generated/google/apis/run_v1alpha1/representations.rb +1 -0
  208. data/generated/google/apis/securitycenter_v1.rb +1 -1
  209. data/generated/google/apis/securitycenter_v1/classes.rb +6 -0
  210. data/generated/google/apis/securitycenter_v1/representations.rb +1 -0
  211. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  212. data/generated/google/apis/securitycenter_v1beta1/classes.rb +6 -0
  213. data/generated/google/apis/securitycenter_v1beta1/representations.rb +1 -0
  214. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  215. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +1 -1
  216. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  217. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +1 -1
  218. data/generated/google/apis/servicedirectory_v1beta1.rb +1 -1
  219. data/generated/google/apis/servicedirectory_v1beta1/classes.rb +1 -2
  220. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  221. data/generated/google/apis/servicemanagement_v1/classes.rb +6 -0
  222. data/generated/google/apis/servicemanagement_v1/representations.rb +1 -0
  223. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  224. data/generated/google/apis/servicenetworking_v1/classes.rb +22 -1
  225. data/generated/google/apis/servicenetworking_v1/representations.rb +14 -0
  226. data/generated/google/apis/servicenetworking_v1/service.rb +42 -0
  227. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  228. data/generated/google/apis/servicenetworking_v1beta/classes.rb +1 -1
  229. data/generated/google/apis/serviceusage_v1.rb +1 -1
  230. data/generated/google/apis/serviceusage_v1/classes.rb +1 -1
  231. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  232. data/generated/google/apis/serviceusage_v1beta1/classes.rb +1 -1
  233. data/generated/google/apis/sheets_v4.rb +1 -1
  234. data/generated/google/apis/sheets_v4/classes.rb +23 -7
  235. data/generated/google/apis/sheets_v4/representations.rb +3 -0
  236. data/generated/google/apis/spanner_v1.rb +1 -1
  237. data/generated/google/apis/spanner_v1/classes.rb +2 -3
  238. data/lib/google/apis/version.rb +1 -1
  239. metadata +7 -15
  240. data/generated/google/apis/displayvideo_v1beta.rb +0 -38
  241. data/generated/google/apis/displayvideo_v1beta/classes.rb +0 -146
  242. data/generated/google/apis/displayvideo_v1beta/representations.rb +0 -72
  243. data/generated/google/apis/displayvideo_v1beta/service.rb +0 -161
  244. data/generated/google/apis/displayvideo_v1beta2.rb +0 -38
  245. data/generated/google/apis/displayvideo_v1beta2/classes.rb +0 -146
  246. data/generated/google/apis/displayvideo_v1beta2/representations.rb +0 -72
  247. data/generated/google/apis/displayvideo_v1beta2/service.rb +0 -130
  248. data/generated/google/apis/displayvideo_v1dev.rb +0 -38
  249. data/generated/google/apis/displayvideo_v1dev/classes.rb +0 -146
  250. data/generated/google/apis/displayvideo_v1dev/representations.rb +0 -72
  251. data/generated/google/apis/displayvideo_v1dev/service.rb +0 -130
@@ -0,0 +1,1670 @@
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 DatamigrationV1beta1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::DatamigrationV1beta1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # Associates `members` with a `role`.
97
+ class Binding
98
+ include Google::Apis::Core::Hashable
99
+
100
+ #
101
+ # Corresponds to the JSON property `bindingId`
102
+ # @return [String]
103
+ attr_accessor :binding_id
104
+
105
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
106
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
107
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
108
+ # "Summary size limit" description: "Determines if a summary is less than 100
109
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
110
+ # Requestor is owner" description: "Determines if requestor is the document
111
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
112
+ # Logic): title: "Public documents" description: "Determine whether the document
113
+ # should be publicly visible" expression: "document.type != 'private' &&
114
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
115
+ # string" description: "Create a notification string with a timestamp."
116
+ # expression: "'New message received at ' + string(document.create_time)" The
117
+ # exact variables and functions that may be referenced within an expression are
118
+ # determined by the service that evaluates it. See the service documentation for
119
+ # additional information.
120
+ # Corresponds to the JSON property `condition`
121
+ # @return [Google::Apis::DatamigrationV1beta1::Expr]
122
+ attr_accessor :condition
123
+
124
+ # Specifies the identities requesting access for a Cloud Platform resource. `
125
+ # members` can have the following values: * `allUsers`: A special identifier
126
+ # that represents anyone who is on the internet; with or without a Google
127
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
128
+ # anyone who is authenticated with a Google account or a service account. * `
129
+ # user:`emailid``: An email address that represents a specific Google account.
130
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
131
+ # address that represents a service account. For example, `my-other-app@appspot.
132
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
133
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
134
+ # `uniqueid``: An email address (plus unique identifier) representing a user
135
+ # that has been recently deleted. For example, `alice@example.com?uid=
136
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
137
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
138
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
139
+ # identifier) representing a service account that has been recently deleted. For
140
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
141
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
142
+ # emailid`` and the undeleted service account retains the role in the binding. *
143
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
144
+ # identifier) representing a Google group that has been recently deleted. For
145
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
146
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
147
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
148
+ # primary) that represents all the users of that domain. For example, `google.
149
+ # com` or `example.com`.
150
+ # Corresponds to the JSON property `members`
151
+ # @return [Array<String>]
152
+ attr_accessor :members
153
+
154
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
155
+ # , or `roles/owner`.
156
+ # Corresponds to the JSON property `role`
157
+ # @return [String]
158
+ attr_accessor :role
159
+
160
+ def initialize(**args)
161
+ update!(**args)
162
+ end
163
+
164
+ # Update properties of this object
165
+ def update!(**args)
166
+ @binding_id = args[:binding_id] if args.key?(:binding_id)
167
+ @condition = args[:condition] if args.key?(:condition)
168
+ @members = args[:members] if args.key?(:members)
169
+ @role = args[:role] if args.key?(:role)
170
+ end
171
+ end
172
+
173
+ # The request message for Operations.CancelOperation.
174
+ class CancelOperationRequest
175
+ include Google::Apis::Core::Hashable
176
+
177
+ def initialize(**args)
178
+ update!(**args)
179
+ end
180
+
181
+ # Update properties of this object
182
+ def update!(**args)
183
+ end
184
+ end
185
+
186
+ # Specifies required connection parameters, and, optionally, the parameters
187
+ # required to create a Cloud SQL destination database instance.
188
+ class CloudSqlConnectionProfile
189
+ include Google::Apis::Core::Hashable
190
+
191
+ # Output only. The Cloud SQL instance ID that this connection profile is
192
+ # associated with.
193
+ # Corresponds to the JSON property `cloudSqlId`
194
+ # @return [String]
195
+ attr_accessor :cloud_sql_id
196
+
197
+ # Output only. The Cloud SQL database instance's private IP.
198
+ # Corresponds to the JSON property `privateIp`
199
+ # @return [String]
200
+ attr_accessor :private_ip
201
+
202
+ # Output only. The Cloud SQL database instance's public IP.
203
+ # Corresponds to the JSON property `publicIp`
204
+ # @return [String]
205
+ attr_accessor :public_ip
206
+
207
+ # Settings for creating a Cloud SQL database instance.
208
+ # Corresponds to the JSON property `settings`
209
+ # @return [Google::Apis::DatamigrationV1beta1::CloudSqlSettings]
210
+ attr_accessor :settings
211
+
212
+ def initialize(**args)
213
+ update!(**args)
214
+ end
215
+
216
+ # Update properties of this object
217
+ def update!(**args)
218
+ @cloud_sql_id = args[:cloud_sql_id] if args.key?(:cloud_sql_id)
219
+ @private_ip = args[:private_ip] if args.key?(:private_ip)
220
+ @public_ip = args[:public_ip] if args.key?(:public_ip)
221
+ @settings = args[:settings] if args.key?(:settings)
222
+ end
223
+ end
224
+
225
+ # Settings for creating a Cloud SQL database instance.
226
+ class CloudSqlSettings
227
+ include Google::Apis::Core::Hashable
228
+
229
+ # The activation policy specifies when the instance is activated; it is
230
+ # applicable only when the instance state is 'RUNNABLE'. Valid values: 'ALWAYS':
231
+ # The instance is on, and remains so even in the absence of connection requests.
232
+ # `NEVER`: The instance is off; it is not activated, even if a connection
233
+ # request arrives.
234
+ # Corresponds to the JSON property `activationPolicy`
235
+ # @return [String]
236
+ attr_accessor :activation_policy
237
+
238
+ # [default: ON] If you enable this setting, Cloud SQL checks your available
239
+ # storage every 30 seconds. If the available storage falls below a threshold
240
+ # size, Cloud SQL automatically adds additional storage capacity. If the
241
+ # available storage repeatedly falls below the threshold size, Cloud SQL
242
+ # continues to add storage until it reaches the maximum of 30 TB.
243
+ # Corresponds to the JSON property `autoStorageIncrease`
244
+ # @return [Boolean]
245
+ attr_accessor :auto_storage_increase
246
+ alias_method :auto_storage_increase?, :auto_storage_increase
247
+
248
+ # The storage capacity available to the database, in GB. The minimum (and
249
+ # default) size is 10GB.
250
+ # Corresponds to the JSON property `dataDiskSizeGb`
251
+ # @return [Fixnum]
252
+ attr_accessor :data_disk_size_gb
253
+
254
+ # The type of storage: `PD_SSD` (default) or `PD_HDD`.
255
+ # Corresponds to the JSON property `dataDiskType`
256
+ # @return [String]
257
+ attr_accessor :data_disk_type
258
+
259
+ # The database flags passed to the Cloud SQL instance at startup. An object
260
+ # containing a list of "key": value pairs. Example: ` "name": "wrench", "mass": "
261
+ # 1.3kg", "count": "3" `.
262
+ # Corresponds to the JSON property `databaseFlags`
263
+ # @return [Hash<String,String>]
264
+ attr_accessor :database_flags
265
+
266
+ # The database engine type and version (such as `MYSQL_5_7` / `POSTGRES_9_6`).
267
+ # Corresponds to the JSON property `databaseVersion`
268
+ # @return [String]
269
+ attr_accessor :database_version
270
+
271
+ # IP Management configuration.
272
+ # Corresponds to the JSON property `ipConfig`
273
+ # @return [Google::Apis::DatamigrationV1beta1::SqlIpConfig]
274
+ attr_accessor :ip_config
275
+
276
+ # Input only. Initial root password.
277
+ # Corresponds to the JSON property `rootPassword`
278
+ # @return [String]
279
+ attr_accessor :root_password
280
+
281
+ # Output only. Indicates If this connection profile root password is stored.
282
+ # Corresponds to the JSON property `rootPasswordSet`
283
+ # @return [Boolean]
284
+ attr_accessor :root_password_set
285
+ alias_method :root_password_set?, :root_password_set
286
+
287
+ # The Database Migration Service source connection profile ID, in the format: `
288
+ # projects/my_project_name/locations/us-central1/connectionProfiles/
289
+ # connection_profile_ID`
290
+ # Corresponds to the JSON property `sourceId`
291
+ # @return [String]
292
+ attr_accessor :source_id
293
+
294
+ # The maximum size to which storage capacity can be automatically increased. The
295
+ # default value is 0, which specifies that there is no limit.
296
+ # Corresponds to the JSON property `storageAutoResizeLimit`
297
+ # @return [Fixnum]
298
+ attr_accessor :storage_auto_resize_limit
299
+
300
+ # The tier (or machine type) for this instance, for example: `db-n1-standard-1` (
301
+ # MySQL instances) or `db-custom-1-3840` (PostgreSQL instances). For more
302
+ # information, see [Cloud SQL Instance Settings](https://cloud.google.com/sql/
303
+ # docs/mysql/instance-settings).
304
+ # Corresponds to the JSON property `tier`
305
+ # @return [String]
306
+ attr_accessor :tier
307
+
308
+ # The resource labels for a Cloud SQL instance to use to annotate any related
309
+ # underlying resources such as Compute Engine VMs. An object containing a list
310
+ # of "key": "value" pairs. Example: `` "name": "wrench", "mass": "18kg", "count":
311
+ # "3" ``.
312
+ # Corresponds to the JSON property `userLabels`
313
+ # @return [Hash<String,String>]
314
+ attr_accessor :user_labels
315
+
316
+ # The Google Cloud Platform zone where your Cloud SQL datdabse instance is
317
+ # located.
318
+ # Corresponds to the JSON property `zone`
319
+ # @return [String]
320
+ attr_accessor :zone
321
+
322
+ def initialize(**args)
323
+ update!(**args)
324
+ end
325
+
326
+ # Update properties of this object
327
+ def update!(**args)
328
+ @activation_policy = args[:activation_policy] if args.key?(:activation_policy)
329
+ @auto_storage_increase = args[:auto_storage_increase] if args.key?(:auto_storage_increase)
330
+ @data_disk_size_gb = args[:data_disk_size_gb] if args.key?(:data_disk_size_gb)
331
+ @data_disk_type = args[:data_disk_type] if args.key?(:data_disk_type)
332
+ @database_flags = args[:database_flags] if args.key?(:database_flags)
333
+ @database_version = args[:database_version] if args.key?(:database_version)
334
+ @ip_config = args[:ip_config] if args.key?(:ip_config)
335
+ @root_password = args[:root_password] if args.key?(:root_password)
336
+ @root_password_set = args[:root_password_set] if args.key?(:root_password_set)
337
+ @source_id = args[:source_id] if args.key?(:source_id)
338
+ @storage_auto_resize_limit = args[:storage_auto_resize_limit] if args.key?(:storage_auto_resize_limit)
339
+ @tier = args[:tier] if args.key?(:tier)
340
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
341
+ @zone = args[:zone] if args.key?(:zone)
342
+ end
343
+ end
344
+
345
+ # A connection profile definition.
346
+ class ConnectionProfile
347
+ include Google::Apis::Core::Hashable
348
+
349
+ # Specifies required connection parameters, and, optionally, the parameters
350
+ # required to create a Cloud SQL destination database instance.
351
+ # Corresponds to the JSON property `cloudsql`
352
+ # @return [Google::Apis::DatamigrationV1beta1::CloudSqlConnectionProfile]
353
+ attr_accessor :cloudsql
354
+
355
+ # Output only. The timestamp when the resource was created. A timestamp in
356
+ # RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:
357
+ # 23.045123456Z".
358
+ # Corresponds to the JSON property `createTime`
359
+ # @return [String]
360
+ attr_accessor :create_time
361
+
362
+ # The connection profile display name.
363
+ # Corresponds to the JSON property `displayName`
364
+ # @return [String]
365
+ attr_accessor :display_name
366
+
367
+ # The `Status` type defines a logical error model that is suitable for different
368
+ # programming environments, including REST APIs and RPC APIs. It is used by [
369
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
370
+ # data: error code, error message, and error details. You can find out more
371
+ # about this error model and how to work with it in the [API Design Guide](https:
372
+ # //cloud.google.com/apis/design/errors).
373
+ # Corresponds to the JSON property `error`
374
+ # @return [Google::Apis::DatamigrationV1beta1::Status]
375
+ attr_accessor :error
376
+
377
+ # The resource labels for connection profile to use to annotate any related
378
+ # underlying resources such as Compute Engine VMs. An object containing a list
379
+ # of "key": "value" pairs. Example: `` "name": "wrench", "mass": "1.3kg", "count"
380
+ # : "3" ``.
381
+ # Corresponds to the JSON property `labels`
382
+ # @return [Hash<String,String>]
383
+ attr_accessor :labels
384
+
385
+ # Specifies connection parameters required specifically for MySQL databases.
386
+ # Corresponds to the JSON property `mysql`
387
+ # @return [Google::Apis::DatamigrationV1beta1::MySqlConnectionProfile]
388
+ attr_accessor :mysql
389
+
390
+ # The name of this connection profile resource in the form of projects/`project`/
391
+ # locations/`location`/instances/`instance`.
392
+ # Corresponds to the JSON property `name`
393
+ # @return [String]
394
+ attr_accessor :name
395
+
396
+ # The database provider.
397
+ # Corresponds to the JSON property `provider`
398
+ # @return [String]
399
+ attr_accessor :provider
400
+
401
+ # The current connection profile state (e.g. DRAFT, READY, or FAILED).
402
+ # Corresponds to the JSON property `state`
403
+ # @return [String]
404
+ attr_accessor :state
405
+
406
+ # Output only. The timestamp when the resource was last updated. A timestamp in
407
+ # RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:
408
+ # 23.045123456Z".
409
+ # Corresponds to the JSON property `updateTime`
410
+ # @return [String]
411
+ attr_accessor :update_time
412
+
413
+ def initialize(**args)
414
+ update!(**args)
415
+ end
416
+
417
+ # Update properties of this object
418
+ def update!(**args)
419
+ @cloudsql = args[:cloudsql] if args.key?(:cloudsql)
420
+ @create_time = args[:create_time] if args.key?(:create_time)
421
+ @display_name = args[:display_name] if args.key?(:display_name)
422
+ @error = args[:error] if args.key?(:error)
423
+ @labels = args[:labels] if args.key?(:labels)
424
+ @mysql = args[:mysql] if args.key?(:mysql)
425
+ @name = args[:name] if args.key?(:name)
426
+ @provider = args[:provider] if args.key?(:provider)
427
+ @state = args[:state] if args.key?(:state)
428
+ @update_time = args[:update_time] if args.key?(:update_time)
429
+ end
430
+ end
431
+
432
+ # A message defining the database engine and provider.
433
+ class DatabaseType
434
+ include Google::Apis::Core::Hashable
435
+
436
+ # The database engine.
437
+ # Corresponds to the JSON property `engine`
438
+ # @return [String]
439
+ attr_accessor :engine
440
+
441
+ # The database provider.
442
+ # Corresponds to the JSON property `provider`
443
+ # @return [String]
444
+ attr_accessor :provider
445
+
446
+ def initialize(**args)
447
+ update!(**args)
448
+ end
449
+
450
+ # Update properties of this object
451
+ def update!(**args)
452
+ @engine = args[:engine] if args.key?(:engine)
453
+ @provider = args[:provider] if args.key?(:provider)
454
+ end
455
+ end
456
+
457
+ # A generic empty message that you can re-use to avoid defining duplicated empty
458
+ # messages in your APIs. A typical example is to use it as the request or the
459
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
460
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
461
+ # `Empty` is empty JSON object ````.
462
+ class Empty
463
+ include Google::Apis::Core::Hashable
464
+
465
+ def initialize(**args)
466
+ update!(**args)
467
+ end
468
+
469
+ # Update properties of this object
470
+ def update!(**args)
471
+ end
472
+ end
473
+
474
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
475
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
476
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
477
+ # "Summary size limit" description: "Determines if a summary is less than 100
478
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
479
+ # Requestor is owner" description: "Determines if requestor is the document
480
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
481
+ # Logic): title: "Public documents" description: "Determine whether the document
482
+ # should be publicly visible" expression: "document.type != 'private' &&
483
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
484
+ # string" description: "Create a notification string with a timestamp."
485
+ # expression: "'New message received at ' + string(document.create_time)" The
486
+ # exact variables and functions that may be referenced within an expression are
487
+ # determined by the service that evaluates it. See the service documentation for
488
+ # additional information.
489
+ class Expr
490
+ include Google::Apis::Core::Hashable
491
+
492
+ # Optional. Description of the expression. This is a longer text which describes
493
+ # the expression, e.g. when hovered over it in a UI.
494
+ # Corresponds to the JSON property `description`
495
+ # @return [String]
496
+ attr_accessor :description
497
+
498
+ # Textual representation of an expression in Common Expression Language syntax.
499
+ # Corresponds to the JSON property `expression`
500
+ # @return [String]
501
+ attr_accessor :expression
502
+
503
+ # Optional. String indicating the location of the expression for error reporting,
504
+ # e.g. a file name and a position in the file.
505
+ # Corresponds to the JSON property `location`
506
+ # @return [String]
507
+ attr_accessor :location
508
+
509
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
510
+ # This can be used e.g. in UIs which allow to enter the expression.
511
+ # Corresponds to the JSON property `title`
512
+ # @return [String]
513
+ attr_accessor :title
514
+
515
+ def initialize(**args)
516
+ update!(**args)
517
+ end
518
+
519
+ # Update properties of this object
520
+ def update!(**args)
521
+ @description = args[:description] if args.key?(:description)
522
+ @expression = args[:expression] if args.key?(:expression)
523
+ @location = args[:location] if args.key?(:location)
524
+ @title = args[:title] if args.key?(:title)
525
+ end
526
+ end
527
+
528
+ # Request message for 'GenerateSshScript' request.
529
+ class GenerateSshScriptRequest
530
+ include Google::Apis::Core::Hashable
531
+
532
+ # Required. Bastion VM Instance name to use or to create.
533
+ # Corresponds to the JSON property `vm`
534
+ # @return [String]
535
+ attr_accessor :vm
536
+
537
+ # VM creation configuration message
538
+ # Corresponds to the JSON property `vmCreationConfig`
539
+ # @return [Google::Apis::DatamigrationV1beta1::VmCreationConfig]
540
+ attr_accessor :vm_creation_config
541
+
542
+ # The port that will be open on the bastion host
543
+ # Corresponds to the JSON property `vmPort`
544
+ # @return [Fixnum]
545
+ attr_accessor :vm_port
546
+
547
+ # VM selection configuration message
548
+ # Corresponds to the JSON property `vmSelectionConfig`
549
+ # @return [Google::Apis::DatamigrationV1beta1::VmSelectionConfig]
550
+ attr_accessor :vm_selection_config
551
+
552
+ def initialize(**args)
553
+ update!(**args)
554
+ end
555
+
556
+ # Update properties of this object
557
+ def update!(**args)
558
+ @vm = args[:vm] if args.key?(:vm)
559
+ @vm_creation_config = args[:vm_creation_config] if args.key?(:vm_creation_config)
560
+ @vm_port = args[:vm_port] if args.key?(:vm_port)
561
+ @vm_selection_config = args[:vm_selection_config] if args.key?(:vm_selection_config)
562
+ end
563
+ end
564
+
565
+ # Represents the metadata of the long-running operation.
566
+ class GoogleCloudClouddmsV1beta1OperationMetadata
567
+ include Google::Apis::Core::Hashable
568
+
569
+ # Output only. API version used to start the operation.
570
+ # Corresponds to the JSON property `apiVersion`
571
+ # @return [String]
572
+ attr_accessor :api_version
573
+
574
+ # Output only. The time the operation was created.
575
+ # Corresponds to the JSON property `createTime`
576
+ # @return [String]
577
+ attr_accessor :create_time
578
+
579
+ # Output only. The time the operation finished running.
580
+ # Corresponds to the JSON property `endTime`
581
+ # @return [String]
582
+ attr_accessor :end_time
583
+
584
+ # Output only. Identifies whether the user has requested cancellation of the
585
+ # operation. Operations that have successfully been cancelled have Operation.
586
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
587
+ # CANCELLED`.
588
+ # Corresponds to the JSON property `requestedCancellation`
589
+ # @return [Boolean]
590
+ attr_accessor :requested_cancellation
591
+ alias_method :requested_cancellation?, :requested_cancellation
592
+
593
+ # Output only. Human-readable status of the operation, if any.
594
+ # Corresponds to the JSON property `statusMessage`
595
+ # @return [String]
596
+ attr_accessor :status_message
597
+
598
+ # Output only. Server-defined resource path for the target of the operation.
599
+ # Corresponds to the JSON property `target`
600
+ # @return [String]
601
+ attr_accessor :target
602
+
603
+ # Output only. Name of the verb executed by the operation.
604
+ # Corresponds to the JSON property `verb`
605
+ # @return [String]
606
+ attr_accessor :verb
607
+
608
+ def initialize(**args)
609
+ update!(**args)
610
+ end
611
+
612
+ # Update properties of this object
613
+ def update!(**args)
614
+ @api_version = args[:api_version] if args.key?(:api_version)
615
+ @create_time = args[:create_time] if args.key?(:create_time)
616
+ @end_time = args[:end_time] if args.key?(:end_time)
617
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
618
+ @status_message = args[:status_message] if args.key?(:status_message)
619
+ @target = args[:target] if args.key?(:target)
620
+ @verb = args[:verb] if args.key?(:verb)
621
+ end
622
+ end
623
+
624
+ # Response message for 'ListConnectionProfiles' request.
625
+ class ListConnectionProfilesResponse
626
+ include Google::Apis::Core::Hashable
627
+
628
+ # The response list of connection profiles.
629
+ # Corresponds to the JSON property `connectionProfiles`
630
+ # @return [Array<Google::Apis::DatamigrationV1beta1::ConnectionProfile>]
631
+ attr_accessor :connection_profiles
632
+
633
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
634
+ # field is omitted, there are no subsequent pages.
635
+ # Corresponds to the JSON property `nextPageToken`
636
+ # @return [String]
637
+ attr_accessor :next_page_token
638
+
639
+ # Locations that could not be reached.
640
+ # Corresponds to the JSON property `unreachable`
641
+ # @return [Array<String>]
642
+ attr_accessor :unreachable
643
+
644
+ def initialize(**args)
645
+ update!(**args)
646
+ end
647
+
648
+ # Update properties of this object
649
+ def update!(**args)
650
+ @connection_profiles = args[:connection_profiles] if args.key?(:connection_profiles)
651
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
652
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
653
+ end
654
+ end
655
+
656
+ # The response message for Locations.ListLocations.
657
+ class ListLocationsResponse
658
+ include Google::Apis::Core::Hashable
659
+
660
+ # A list of locations that matches the specified filter in the request.
661
+ # Corresponds to the JSON property `locations`
662
+ # @return [Array<Google::Apis::DatamigrationV1beta1::Location>]
663
+ attr_accessor :locations
664
+
665
+ # The standard List next-page token.
666
+ # Corresponds to the JSON property `nextPageToken`
667
+ # @return [String]
668
+ attr_accessor :next_page_token
669
+
670
+ def initialize(**args)
671
+ update!(**args)
672
+ end
673
+
674
+ # Update properties of this object
675
+ def update!(**args)
676
+ @locations = args[:locations] if args.key?(:locations)
677
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
678
+ end
679
+ end
680
+
681
+ # Response message for 'ListMigrationJobs' request.
682
+ class ListMigrationJobsResponse
683
+ include Google::Apis::Core::Hashable
684
+
685
+ # The list of migration jobs objects.
686
+ # Corresponds to the JSON property `migrationJobs`
687
+ # @return [Array<Google::Apis::DatamigrationV1beta1::MigrationJob>]
688
+ attr_accessor :migration_jobs
689
+
690
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
691
+ # field is omitted, there are no subsequent pages.
692
+ # Corresponds to the JSON property `nextPageToken`
693
+ # @return [String]
694
+ attr_accessor :next_page_token
695
+
696
+ # Locations that could not be reached.
697
+ # Corresponds to the JSON property `unreachable`
698
+ # @return [Array<String>]
699
+ attr_accessor :unreachable
700
+
701
+ def initialize(**args)
702
+ update!(**args)
703
+ end
704
+
705
+ # Update properties of this object
706
+ def update!(**args)
707
+ @migration_jobs = args[:migration_jobs] if args.key?(:migration_jobs)
708
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
709
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
710
+ end
711
+ end
712
+
713
+ # The response message for Operations.ListOperations.
714
+ class ListOperationsResponse
715
+ include Google::Apis::Core::Hashable
716
+
717
+ # The standard List next-page token.
718
+ # Corresponds to the JSON property `nextPageToken`
719
+ # @return [String]
720
+ attr_accessor :next_page_token
721
+
722
+ # A list of operations that matches the specified filter in the request.
723
+ # Corresponds to the JSON property `operations`
724
+ # @return [Array<Google::Apis::DatamigrationV1beta1::Operation>]
725
+ attr_accessor :operations
726
+
727
+ def initialize(**args)
728
+ update!(**args)
729
+ end
730
+
731
+ # Update properties of this object
732
+ def update!(**args)
733
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
734
+ @operations = args[:operations] if args.key?(:operations)
735
+ end
736
+ end
737
+
738
+ # A resource that represents Google Cloud Platform location.
739
+ class Location
740
+ include Google::Apis::Core::Hashable
741
+
742
+ # The friendly name for this location, typically a nearby city name. For example,
743
+ # "Tokyo".
744
+ # Corresponds to the JSON property `displayName`
745
+ # @return [String]
746
+ attr_accessor :display_name
747
+
748
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
749
+ # region": "us-east1"`
750
+ # Corresponds to the JSON property `labels`
751
+ # @return [Hash<String,String>]
752
+ attr_accessor :labels
753
+
754
+ # The canonical id for this location. For example: `"us-east1"`.
755
+ # Corresponds to the JSON property `locationId`
756
+ # @return [String]
757
+ attr_accessor :location_id
758
+
759
+ # Service-specific metadata. For example the available capacity at the given
760
+ # location.
761
+ # Corresponds to the JSON property `metadata`
762
+ # @return [Hash<String,Object>]
763
+ attr_accessor :metadata
764
+
765
+ # Resource name for the location, which may vary between implementations. For
766
+ # example: `"projects/example-project/locations/us-east1"`
767
+ # Corresponds to the JSON property `name`
768
+ # @return [String]
769
+ attr_accessor :name
770
+
771
+ def initialize(**args)
772
+ update!(**args)
773
+ end
774
+
775
+ # Update properties of this object
776
+ def update!(**args)
777
+ @display_name = args[:display_name] if args.key?(:display_name)
778
+ @labels = args[:labels] if args.key?(:labels)
779
+ @location_id = args[:location_id] if args.key?(:location_id)
780
+ @metadata = args[:metadata] if args.key?(:metadata)
781
+ @name = args[:name] if args.key?(:name)
782
+ end
783
+ end
784
+
785
+ # Represents a Database Migration Service migration job object.
786
+ class MigrationJob
787
+ include Google::Apis::Core::Hashable
788
+
789
+ # Output only. The timestamp when the migration job resource was created. A
790
+ # timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "
791
+ # 2014-10-02T15:01:23.045123456Z".
792
+ # Corresponds to the JSON property `createTime`
793
+ # @return [String]
794
+ attr_accessor :create_time
795
+
796
+ # Required. The resource name (URI) of the destination connection profile.
797
+ # Corresponds to the JSON property `destination`
798
+ # @return [String]
799
+ attr_accessor :destination
800
+
801
+ # A message defining the database engine and provider.
802
+ # Corresponds to the JSON property `destinationDatabase`
803
+ # @return [Google::Apis::DatamigrationV1beta1::DatabaseType]
804
+ attr_accessor :destination_database
805
+
806
+ # The migration job display name.
807
+ # Corresponds to the JSON property `displayName`
808
+ # @return [String]
809
+ attr_accessor :display_name
810
+
811
+ # The path to the dump file in Google Cloud Storage, in the format: (gs://[
812
+ # BUCKET_NAME]/[OBJECT_NAME]).
813
+ # Corresponds to the JSON property `dumpPath`
814
+ # @return [String]
815
+ attr_accessor :dump_path
816
+
817
+ # Output only. The duration of the migration job (in seconds). A duration in
818
+ # seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
819
+ # Corresponds to the JSON property `duration`
820
+ # @return [String]
821
+ attr_accessor :duration
822
+
823
+ # Output only. If the migration job is completed, the time when it was completed.
824
+ # Corresponds to the JSON property `endTime`
825
+ # @return [String]
826
+ attr_accessor :end_time
827
+
828
+ # The `Status` type defines a logical error model that is suitable for different
829
+ # programming environments, including REST APIs and RPC APIs. It is used by [
830
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
831
+ # data: error code, error message, and error details. You can find out more
832
+ # about this error model and how to work with it in the [API Design Guide](https:
833
+ # //cloud.google.com/apis/design/errors).
834
+ # Corresponds to the JSON property `error`
835
+ # @return [Google::Apis::DatamigrationV1beta1::Status]
836
+ attr_accessor :error
837
+
838
+ # The resource labels for migration job to use to annotate any related
839
+ # underlying resources such as Compute Engine VMs. An object containing a list
840
+ # of "key": "value" pairs. Example: `` "name": "wrench", "mass": "1.3kg", "count"
841
+ # : "3" ``.
842
+ # Corresponds to the JSON property `labels`
843
+ # @return [Hash<String,String>]
844
+ attr_accessor :labels
845
+
846
+ # The name (URI) of this migration job resource, in the form of: projects/`
847
+ # project`/locations/`location`/instances/`instance`.
848
+ # Corresponds to the JSON property `name`
849
+ # @return [String]
850
+ attr_accessor :name
851
+
852
+ # Output only. The current migration job phase.
853
+ # Corresponds to the JSON property `phase`
854
+ # @return [String]
855
+ attr_accessor :phase
856
+
857
+ # The details needed to configure a reverse SSH tunnel between the source and
858
+ # destination databases. These details will be used when calling the
859
+ # generateSshScript method (see https://cloud.google.com/database-migration/docs/
860
+ # reference/rest/v1beta1/projects.locations.migrationJobs/generateSshScript) to
861
+ # produce the script that will help set up the reverse SSH tunnel, and to set up
862
+ # the VPC peering between the Cloud SQL private network and the VPC.
863
+ # Corresponds to the JSON property `reverseSshConnectivity`
864
+ # @return [Google::Apis::DatamigrationV1beta1::ReverseSshConnectivity]
865
+ attr_accessor :reverse_ssh_connectivity
866
+
867
+ # Required. The resource name (URI) of the source connection profile.
868
+ # Corresponds to the JSON property `source`
869
+ # @return [String]
870
+ attr_accessor :source
871
+
872
+ # A message defining the database engine and provider.
873
+ # Corresponds to the JSON property `sourceDatabase`
874
+ # @return [Google::Apis::DatamigrationV1beta1::DatabaseType]
875
+ attr_accessor :source_database
876
+
877
+ # The current migration job state.
878
+ # Corresponds to the JSON property `state`
879
+ # @return [String]
880
+ attr_accessor :state
881
+
882
+ # The source database will allow incoming connections from the destination
883
+ # database's public IP. You can retrieve the Cloud SQL instance's public IP from
884
+ # the Cloud SQL console or using Cloud SQL APIs. No additional configuration is
885
+ # required.
886
+ # Corresponds to the JSON property `staticIpConnectivity`
887
+ # @return [Google::Apis::DatamigrationV1beta1::StaticIpConnectivity]
888
+ attr_accessor :static_ip_connectivity
889
+
890
+ # Required. The migration job type.
891
+ # Corresponds to the JSON property `type`
892
+ # @return [String]
893
+ attr_accessor :type
894
+
895
+ # Output only. The timestamp when the migration job resource was last updated. A
896
+ # timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "
897
+ # 2014-10-02T15:01:23.045123456Z".
898
+ # Corresponds to the JSON property `updateTime`
899
+ # @return [String]
900
+ attr_accessor :update_time
901
+
902
+ # The details of the VPC where the source database is located in Google Cloud.
903
+ # We will use this information to set up the VPC peering connection between
904
+ # Cloud SQL and this VPC.
905
+ # Corresponds to the JSON property `vpcPeeringConnectivity`
906
+ # @return [Google::Apis::DatamigrationV1beta1::VpcPeeringConnectivity]
907
+ attr_accessor :vpc_peering_connectivity
908
+
909
+ def initialize(**args)
910
+ update!(**args)
911
+ end
912
+
913
+ # Update properties of this object
914
+ def update!(**args)
915
+ @create_time = args[:create_time] if args.key?(:create_time)
916
+ @destination = args[:destination] if args.key?(:destination)
917
+ @destination_database = args[:destination_database] if args.key?(:destination_database)
918
+ @display_name = args[:display_name] if args.key?(:display_name)
919
+ @dump_path = args[:dump_path] if args.key?(:dump_path)
920
+ @duration = args[:duration] if args.key?(:duration)
921
+ @end_time = args[:end_time] if args.key?(:end_time)
922
+ @error = args[:error] if args.key?(:error)
923
+ @labels = args[:labels] if args.key?(:labels)
924
+ @name = args[:name] if args.key?(:name)
925
+ @phase = args[:phase] if args.key?(:phase)
926
+ @reverse_ssh_connectivity = args[:reverse_ssh_connectivity] if args.key?(:reverse_ssh_connectivity)
927
+ @source = args[:source] if args.key?(:source)
928
+ @source_database = args[:source_database] if args.key?(:source_database)
929
+ @state = args[:state] if args.key?(:state)
930
+ @static_ip_connectivity = args[:static_ip_connectivity] if args.key?(:static_ip_connectivity)
931
+ @type = args[:type] if args.key?(:type)
932
+ @update_time = args[:update_time] if args.key?(:update_time)
933
+ @vpc_peering_connectivity = args[:vpc_peering_connectivity] if args.key?(:vpc_peering_connectivity)
934
+ end
935
+ end
936
+
937
+ # Error message of a verification Migration job.
938
+ class MigrationJobVerificationError
939
+ include Google::Apis::Core::Hashable
940
+
941
+ # Output only. An instance of ErrorCode specifying the error that occurred.
942
+ # Corresponds to the JSON property `errorCode`
943
+ # @return [String]
944
+ attr_accessor :error_code
945
+
946
+ # Output only. A specific detailed error message, if supplied by the engine.
947
+ # Corresponds to the JSON property `errorDetailMessage`
948
+ # @return [String]
949
+ attr_accessor :error_detail_message
950
+
951
+ # Output only. A formatted message with further details about the error and a
952
+ # CTA.
953
+ # Corresponds to the JSON property `errorMessage`
954
+ # @return [String]
955
+ attr_accessor :error_message
956
+
957
+ def initialize(**args)
958
+ update!(**args)
959
+ end
960
+
961
+ # Update properties of this object
962
+ def update!(**args)
963
+ @error_code = args[:error_code] if args.key?(:error_code)
964
+ @error_detail_message = args[:error_detail_message] if args.key?(:error_detail_message)
965
+ @error_message = args[:error_message] if args.key?(:error_message)
966
+ end
967
+ end
968
+
969
+ # Specifies connection parameters required specifically for MySQL databases.
970
+ class MySqlConnectionProfile
971
+ include Google::Apis::Core::Hashable
972
+
973
+ # If the source is a Cloud SQL database, use this field to provide the Cloud SQL
974
+ # instance ID of the source.
975
+ # Corresponds to the JSON property `cloudSqlId`
976
+ # @return [String]
977
+ attr_accessor :cloud_sql_id
978
+
979
+ # Required. The IP or hostname of the source MySQL database.
980
+ # Corresponds to the JSON property `host`
981
+ # @return [String]
982
+ attr_accessor :host
983
+
984
+ # Required. Input only. The password for the user that Database Migration
985
+ # Service will be using to connect to the database. This field is not returned
986
+ # on request, and the value is encrypted when stored in Database Migration
987
+ # Service.
988
+ # Corresponds to the JSON property `password`
989
+ # @return [String]
990
+ attr_accessor :password
991
+
992
+ # Output only. Indicates If this connection profile password is stored.
993
+ # Corresponds to the JSON property `passwordSet`
994
+ # @return [Boolean]
995
+ attr_accessor :password_set
996
+ alias_method :password_set?, :password_set
997
+
998
+ # Required. The network port of the source MySQL database.
999
+ # Corresponds to the JSON property `port`
1000
+ # @return [Fixnum]
1001
+ attr_accessor :port
1002
+
1003
+ # SSL configuration information.
1004
+ # Corresponds to the JSON property `ssl`
1005
+ # @return [Google::Apis::DatamigrationV1beta1::SslConfig]
1006
+ attr_accessor :ssl
1007
+
1008
+ # Required. The username that Database Migration Service will use to connect to
1009
+ # the database. The value is encrypted when stored in Database Migration Service.
1010
+ # Corresponds to the JSON property `username`
1011
+ # @return [String]
1012
+ attr_accessor :username
1013
+
1014
+ def initialize(**args)
1015
+ update!(**args)
1016
+ end
1017
+
1018
+ # Update properties of this object
1019
+ def update!(**args)
1020
+ @cloud_sql_id = args[:cloud_sql_id] if args.key?(:cloud_sql_id)
1021
+ @host = args[:host] if args.key?(:host)
1022
+ @password = args[:password] if args.key?(:password)
1023
+ @password_set = args[:password_set] if args.key?(:password_set)
1024
+ @port = args[:port] if args.key?(:port)
1025
+ @ssl = args[:ssl] if args.key?(:ssl)
1026
+ @username = args[:username] if args.key?(:username)
1027
+ end
1028
+ end
1029
+
1030
+ # This resource represents a long-running operation that is the result of a
1031
+ # network API call.
1032
+ class Operation
1033
+ include Google::Apis::Core::Hashable
1034
+
1035
+ # If the value is `false`, it means the operation is still in progress. If `true`
1036
+ # , the operation is completed, and either `error` or `response` is available.
1037
+ # Corresponds to the JSON property `done`
1038
+ # @return [Boolean]
1039
+ attr_accessor :done
1040
+ alias_method :done?, :done
1041
+
1042
+ # The `Status` type defines a logical error model that is suitable for different
1043
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1044
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1045
+ # data: error code, error message, and error details. You can find out more
1046
+ # about this error model and how to work with it in the [API Design Guide](https:
1047
+ # //cloud.google.com/apis/design/errors).
1048
+ # Corresponds to the JSON property `error`
1049
+ # @return [Google::Apis::DatamigrationV1beta1::Status]
1050
+ attr_accessor :error
1051
+
1052
+ # Service-specific metadata associated with the operation. It typically contains
1053
+ # progress information and common metadata such as create time. Some services
1054
+ # might not provide such metadata. Any method that returns a long-running
1055
+ # operation should document the metadata type, if any.
1056
+ # Corresponds to the JSON property `metadata`
1057
+ # @return [Hash<String,Object>]
1058
+ attr_accessor :metadata
1059
+
1060
+ # The server-assigned name, which is only unique within the same service that
1061
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1062
+ # be a resource name ending with `operations/`unique_id``.
1063
+ # Corresponds to the JSON property `name`
1064
+ # @return [String]
1065
+ attr_accessor :name
1066
+
1067
+ # The normal response of the operation in case of success. If the original
1068
+ # method returns no data on success, such as `Delete`, the response is `google.
1069
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1070
+ # the response should be the resource. For other methods, the response should
1071
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1072
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1073
+ # response type is `TakeSnapshotResponse`.
1074
+ # Corresponds to the JSON property `response`
1075
+ # @return [Hash<String,Object>]
1076
+ attr_accessor :response
1077
+
1078
+ def initialize(**args)
1079
+ update!(**args)
1080
+ end
1081
+
1082
+ # Update properties of this object
1083
+ def update!(**args)
1084
+ @done = args[:done] if args.key?(:done)
1085
+ @error = args[:error] if args.key?(:error)
1086
+ @metadata = args[:metadata] if args.key?(:metadata)
1087
+ @name = args[:name] if args.key?(:name)
1088
+ @response = args[:response] if args.key?(:response)
1089
+ end
1090
+ end
1091
+
1092
+ # An Identity and Access Management (IAM) policy, which specifies access
1093
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1094
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1095
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1096
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1097
+ # role or a user-created custom role. For some types of Google Cloud resources,
1098
+ # a `binding` can also specify a `condition`, which is a logical expression that
1099
+ # allows access to a resource only if the expression evaluates to `true`. A
1100
+ # condition can add constraints based on attributes of the request, the resource,
1101
+ # or both. To learn which resources support conditions in their IAM policies,
1102
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1103
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1104
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1105
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1106
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1107
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1108
+ # title": "expirable access", "description": "Does not grant access after Sep
1109
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1110
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1111
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1112
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1113
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1114
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1115
+ # description: Does not grant access after Sep 2020 expression: request.time <
1116
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1117
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1118
+ # google.com/iam/docs/).
1119
+ class Policy
1120
+ include Google::Apis::Core::Hashable
1121
+
1122
+ # Specifies cloud audit logging configuration for this policy.
1123
+ # Corresponds to the JSON property `auditConfigs`
1124
+ # @return [Array<Google::Apis::DatamigrationV1beta1::AuditConfig>]
1125
+ attr_accessor :audit_configs
1126
+
1127
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
1128
+ # condition` that determines how and when the `bindings` are applied. Each of
1129
+ # the `bindings` must contain at least one member.
1130
+ # Corresponds to the JSON property `bindings`
1131
+ # @return [Array<Google::Apis::DatamigrationV1beta1::Binding>]
1132
+ attr_accessor :bindings
1133
+
1134
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1135
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1136
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1137
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1138
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1139
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1140
+ # applied to the same version of the policy. **Important:** If you use IAM
1141
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1142
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1143
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1144
+ # are lost.
1145
+ # Corresponds to the JSON property `etag`
1146
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1147
+ # @return [String]
1148
+ attr_accessor :etag
1149
+
1150
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1151
+ # Requests that specify an invalid value are rejected. Any operation that
1152
+ # affects conditional role bindings must specify version `3`. This requirement
1153
+ # applies to the following operations: * Getting a policy that includes a
1154
+ # conditional role binding * Adding a conditional role binding to a policy *
1155
+ # Changing a conditional role binding in a policy * Removing any role binding,
1156
+ # with or without a condition, from a policy that includes conditions **
1157
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1158
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1159
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1160
+ # conditions in the version `3` policy are lost. If a policy does not include
1161
+ # any conditions, operations on that policy may specify any valid version or
1162
+ # leave the field unset. To learn which resources support conditions in their
1163
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1164
+ # conditions/resource-policies).
1165
+ # Corresponds to the JSON property `version`
1166
+ # @return [Fixnum]
1167
+ attr_accessor :version
1168
+
1169
+ def initialize(**args)
1170
+ update!(**args)
1171
+ end
1172
+
1173
+ # Update properties of this object
1174
+ def update!(**args)
1175
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1176
+ @bindings = args[:bindings] if args.key?(:bindings)
1177
+ @etag = args[:etag] if args.key?(:etag)
1178
+ @version = args[:version] if args.key?(:version)
1179
+ end
1180
+ end
1181
+
1182
+ # Request message for 'PromoteMigrationJob' request.
1183
+ class PromoteMigrationJobRequest
1184
+ include Google::Apis::Core::Hashable
1185
+
1186
+ def initialize(**args)
1187
+ update!(**args)
1188
+ end
1189
+
1190
+ # Update properties of this object
1191
+ def update!(**args)
1192
+ end
1193
+ end
1194
+
1195
+ # Request message for 'RestartMigrationJob' request.
1196
+ class RestartMigrationJobRequest
1197
+ include Google::Apis::Core::Hashable
1198
+
1199
+ def initialize(**args)
1200
+ update!(**args)
1201
+ end
1202
+
1203
+ # Update properties of this object
1204
+ def update!(**args)
1205
+ end
1206
+ end
1207
+
1208
+ # Request message for 'ResumeMigrationJob' request.
1209
+ class ResumeMigrationJobRequest
1210
+ include Google::Apis::Core::Hashable
1211
+
1212
+ def initialize(**args)
1213
+ update!(**args)
1214
+ end
1215
+
1216
+ # Update properties of this object
1217
+ def update!(**args)
1218
+ end
1219
+ end
1220
+
1221
+ # The details needed to configure a reverse SSH tunnel between the source and
1222
+ # destination databases. These details will be used when calling the
1223
+ # generateSshScript method (see https://cloud.google.com/database-migration/docs/
1224
+ # reference/rest/v1beta1/projects.locations.migrationJobs/generateSshScript) to
1225
+ # produce the script that will help set up the reverse SSH tunnel, and to set up
1226
+ # the VPC peering between the Cloud SQL private network and the VPC.
1227
+ class ReverseSshConnectivity
1228
+ include Google::Apis::Core::Hashable
1229
+
1230
+ # The name of the virtual machine (Compute Engine) used as the bastion server
1231
+ # for the SSH tunnel.
1232
+ # Corresponds to the JSON property `vm`
1233
+ # @return [String]
1234
+ attr_accessor :vm
1235
+
1236
+ # Required. The IP of the virtual machine (Compute Engine) used as the bastion
1237
+ # server for the SSH tunnel.
1238
+ # Corresponds to the JSON property `vmIp`
1239
+ # @return [String]
1240
+ attr_accessor :vm_ip
1241
+
1242
+ # Required. The forwarding port of the virtual machine (Compute Engine) used as
1243
+ # the bastion server for the SSH tunnel.
1244
+ # Corresponds to the JSON property `vmPort`
1245
+ # @return [Fixnum]
1246
+ attr_accessor :vm_port
1247
+
1248
+ # The name of the VPC to peer with the Cloud SQL private network.
1249
+ # Corresponds to the JSON property `vpc`
1250
+ # @return [String]
1251
+ attr_accessor :vpc
1252
+
1253
+ def initialize(**args)
1254
+ update!(**args)
1255
+ end
1256
+
1257
+ # Update properties of this object
1258
+ def update!(**args)
1259
+ @vm = args[:vm] if args.key?(:vm)
1260
+ @vm_ip = args[:vm_ip] if args.key?(:vm_ip)
1261
+ @vm_port = args[:vm_port] if args.key?(:vm_port)
1262
+ @vpc = args[:vpc] if args.key?(:vpc)
1263
+ end
1264
+ end
1265
+
1266
+ # Request message for `SetIamPolicy` method.
1267
+ class SetIamPolicyRequest
1268
+ include Google::Apis::Core::Hashable
1269
+
1270
+ # An Identity and Access Management (IAM) policy, which specifies access
1271
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1272
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1273
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1274
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1275
+ # role or a user-created custom role. For some types of Google Cloud resources,
1276
+ # a `binding` can also specify a `condition`, which is a logical expression that
1277
+ # allows access to a resource only if the expression evaluates to `true`. A
1278
+ # condition can add constraints based on attributes of the request, the resource,
1279
+ # or both. To learn which resources support conditions in their IAM policies,
1280
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1281
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1282
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1283
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1284
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1285
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1286
+ # title": "expirable access", "description": "Does not grant access after Sep
1287
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1288
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1289
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1290
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1291
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1292
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1293
+ # description: Does not grant access after Sep 2020 expression: request.time <
1294
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1295
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1296
+ # google.com/iam/docs/).
1297
+ # Corresponds to the JSON property `policy`
1298
+ # @return [Google::Apis::DatamigrationV1beta1::Policy]
1299
+ attr_accessor :policy
1300
+
1301
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1302
+ # the fields in the mask will be modified. If no mask is provided, the following
1303
+ # default mask is used: `paths: "bindings, etag"`
1304
+ # Corresponds to the JSON property `updateMask`
1305
+ # @return [String]
1306
+ attr_accessor :update_mask
1307
+
1308
+ def initialize(**args)
1309
+ update!(**args)
1310
+ end
1311
+
1312
+ # Update properties of this object
1313
+ def update!(**args)
1314
+ @policy = args[:policy] if args.key?(:policy)
1315
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1316
+ end
1317
+ end
1318
+
1319
+ # An entry for an Access Control list.
1320
+ class SqlAclEntry
1321
+ include Google::Apis::Core::Hashable
1322
+
1323
+ # The time when this access control entry expires in [RFC 3339](https://tools.
1324
+ # ietf.org/html/rfc3339) format, for example: `2012-11-15T16:19:00.094Z`.
1325
+ # Corresponds to the JSON property `expireTime`
1326
+ # @return [String]
1327
+ attr_accessor :expire_time
1328
+
1329
+ # A label to identify this entry.
1330
+ # Corresponds to the JSON property `label`
1331
+ # @return [String]
1332
+ attr_accessor :label
1333
+
1334
+ # Input only. The time-to-leave of this access control entry.
1335
+ # Corresponds to the JSON property `ttl`
1336
+ # @return [String]
1337
+ attr_accessor :ttl
1338
+
1339
+ # The allowlisted value for the access control list.
1340
+ # Corresponds to the JSON property `value`
1341
+ # @return [String]
1342
+ attr_accessor :value
1343
+
1344
+ def initialize(**args)
1345
+ update!(**args)
1346
+ end
1347
+
1348
+ # Update properties of this object
1349
+ def update!(**args)
1350
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1351
+ @label = args[:label] if args.key?(:label)
1352
+ @ttl = args[:ttl] if args.key?(:ttl)
1353
+ @value = args[:value] if args.key?(:value)
1354
+ end
1355
+ end
1356
+
1357
+ # IP Management configuration.
1358
+ class SqlIpConfig
1359
+ include Google::Apis::Core::Hashable
1360
+
1361
+ # The list of external networks that are allowed to connect to the instance
1362
+ # using the IP. See https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation,
1363
+ # also known as 'slash' notation (e.g. `192.168.100.0/24`).
1364
+ # Corresponds to the JSON property `authorizedNetworks`
1365
+ # @return [Array<Google::Apis::DatamigrationV1beta1::SqlAclEntry>]
1366
+ attr_accessor :authorized_networks
1367
+
1368
+ # Whether the instance should be assigned an IPv4 address or not.
1369
+ # Corresponds to the JSON property `enableIpv4`
1370
+ # @return [Boolean]
1371
+ attr_accessor :enable_ipv4
1372
+ alias_method :enable_ipv4?, :enable_ipv4
1373
+
1374
+ # The resource link for the VPC network from which the Cloud SQL instance is
1375
+ # accessible for private IP. For example, `/projects/myProject/global/networks/
1376
+ # default`. This setting can be updated, but it cannot be removed after it is
1377
+ # set.
1378
+ # Corresponds to the JSON property `privateNetwork`
1379
+ # @return [String]
1380
+ attr_accessor :private_network
1381
+
1382
+ # Whether SSL connections over IP should be enforced or not.
1383
+ # Corresponds to the JSON property `requireSsl`
1384
+ # @return [Boolean]
1385
+ attr_accessor :require_ssl
1386
+ alias_method :require_ssl?, :require_ssl
1387
+
1388
+ def initialize(**args)
1389
+ update!(**args)
1390
+ end
1391
+
1392
+ # Update properties of this object
1393
+ def update!(**args)
1394
+ @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
1395
+ @enable_ipv4 = args[:enable_ipv4] if args.key?(:enable_ipv4)
1396
+ @private_network = args[:private_network] if args.key?(:private_network)
1397
+ @require_ssl = args[:require_ssl] if args.key?(:require_ssl)
1398
+ end
1399
+ end
1400
+
1401
+ # Response message for 'GenerateSshScript' request.
1402
+ class SshScript
1403
+ include Google::Apis::Core::Hashable
1404
+
1405
+ # The ssh configuration script.
1406
+ # Corresponds to the JSON property `script`
1407
+ # @return [String]
1408
+ attr_accessor :script
1409
+
1410
+ def initialize(**args)
1411
+ update!(**args)
1412
+ end
1413
+
1414
+ # Update properties of this object
1415
+ def update!(**args)
1416
+ @script = args[:script] if args.key?(:script)
1417
+ end
1418
+ end
1419
+
1420
+ # SSL configuration information.
1421
+ class SslConfig
1422
+ include Google::Apis::Core::Hashable
1423
+
1424
+ # Required. Input only. The x509 PEM-encoded certificate of the CA that signed
1425
+ # the source database server's certificate. The replica will use this
1426
+ # certificate to verify it's connecting to the right host.
1427
+ # Corresponds to the JSON property `caCertificate`
1428
+ # @return [String]
1429
+ attr_accessor :ca_certificate
1430
+
1431
+ # Input only. The x509 PEM-encoded certificate that will be used by the replica
1432
+ # to authenticate against the source database server.If this field is used then
1433
+ # the 'client_key' field is mandatory.
1434
+ # Corresponds to the JSON property `clientCertificate`
1435
+ # @return [String]
1436
+ attr_accessor :client_certificate
1437
+
1438
+ # Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key
1439
+ # associated with the Client Certificate. If this field is used then the '
1440
+ # client_certificate' field is mandatory.
1441
+ # Corresponds to the JSON property `clientKey`
1442
+ # @return [String]
1443
+ attr_accessor :client_key
1444
+
1445
+ # Output only. The ssl config type according to 'client_key', '
1446
+ # client_certificate' and 'ca_certificate'.
1447
+ # Corresponds to the JSON property `type`
1448
+ # @return [String]
1449
+ attr_accessor :type
1450
+
1451
+ def initialize(**args)
1452
+ update!(**args)
1453
+ end
1454
+
1455
+ # Update properties of this object
1456
+ def update!(**args)
1457
+ @ca_certificate = args[:ca_certificate] if args.key?(:ca_certificate)
1458
+ @client_certificate = args[:client_certificate] if args.key?(:client_certificate)
1459
+ @client_key = args[:client_key] if args.key?(:client_key)
1460
+ @type = args[:type] if args.key?(:type)
1461
+ end
1462
+ end
1463
+
1464
+ # Request message for 'StartMigrationJob' request.
1465
+ class StartMigrationJobRequest
1466
+ include Google::Apis::Core::Hashable
1467
+
1468
+ def initialize(**args)
1469
+ update!(**args)
1470
+ end
1471
+
1472
+ # Update properties of this object
1473
+ def update!(**args)
1474
+ end
1475
+ end
1476
+
1477
+ # The source database will allow incoming connections from the destination
1478
+ # database's public IP. You can retrieve the Cloud SQL instance's public IP from
1479
+ # the Cloud SQL console or using Cloud SQL APIs. No additional configuration is
1480
+ # required.
1481
+ class StaticIpConnectivity
1482
+ include Google::Apis::Core::Hashable
1483
+
1484
+ def initialize(**args)
1485
+ update!(**args)
1486
+ end
1487
+
1488
+ # Update properties of this object
1489
+ def update!(**args)
1490
+ end
1491
+ end
1492
+
1493
+ # The `Status` type defines a logical error model that is suitable for different
1494
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1495
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1496
+ # data: error code, error message, and error details. You can find out more
1497
+ # about this error model and how to work with it in the [API Design Guide](https:
1498
+ # //cloud.google.com/apis/design/errors).
1499
+ class Status
1500
+ include Google::Apis::Core::Hashable
1501
+
1502
+ # The status code, which should be an enum value of google.rpc.Code.
1503
+ # Corresponds to the JSON property `code`
1504
+ # @return [Fixnum]
1505
+ attr_accessor :code
1506
+
1507
+ # A list of messages that carry the error details. There is a common set of
1508
+ # message types for APIs to use.
1509
+ # Corresponds to the JSON property `details`
1510
+ # @return [Array<Hash<String,Object>>]
1511
+ attr_accessor :details
1512
+
1513
+ # A developer-facing error message, which should be in English. Any user-facing
1514
+ # error message should be localized and sent in the google.rpc.Status.details
1515
+ # field, or localized by the client.
1516
+ # Corresponds to the JSON property `message`
1517
+ # @return [String]
1518
+ attr_accessor :message
1519
+
1520
+ def initialize(**args)
1521
+ update!(**args)
1522
+ end
1523
+
1524
+ # Update properties of this object
1525
+ def update!(**args)
1526
+ @code = args[:code] if args.key?(:code)
1527
+ @details = args[:details] if args.key?(:details)
1528
+ @message = args[:message] if args.key?(:message)
1529
+ end
1530
+ end
1531
+
1532
+ # Request message for 'StopMigrationJob' request.
1533
+ class StopMigrationJobRequest
1534
+ include Google::Apis::Core::Hashable
1535
+
1536
+ def initialize(**args)
1537
+ update!(**args)
1538
+ end
1539
+
1540
+ # Update properties of this object
1541
+ def update!(**args)
1542
+ end
1543
+ end
1544
+
1545
+ # Request message for `TestIamPermissions` method.
1546
+ class TestIamPermissionsRequest
1547
+ include Google::Apis::Core::Hashable
1548
+
1549
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1550
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1551
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1552
+ # Corresponds to the JSON property `permissions`
1553
+ # @return [Array<String>]
1554
+ attr_accessor :permissions
1555
+
1556
+ def initialize(**args)
1557
+ update!(**args)
1558
+ end
1559
+
1560
+ # Update properties of this object
1561
+ def update!(**args)
1562
+ @permissions = args[:permissions] if args.key?(:permissions)
1563
+ end
1564
+ end
1565
+
1566
+ # Response message for `TestIamPermissions` method.
1567
+ class TestIamPermissionsResponse
1568
+ include Google::Apis::Core::Hashable
1569
+
1570
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1571
+ # Corresponds to the JSON property `permissions`
1572
+ # @return [Array<String>]
1573
+ attr_accessor :permissions
1574
+
1575
+ def initialize(**args)
1576
+ update!(**args)
1577
+ end
1578
+
1579
+ # Update properties of this object
1580
+ def update!(**args)
1581
+ @permissions = args[:permissions] if args.key?(:permissions)
1582
+ end
1583
+ end
1584
+
1585
+ # Request message for 'VerifyMigrationJob' request.
1586
+ class VerifyMigrationJobRequest
1587
+ include Google::Apis::Core::Hashable
1588
+
1589
+ def initialize(**args)
1590
+ update!(**args)
1591
+ end
1592
+
1593
+ # Update properties of this object
1594
+ def update!(**args)
1595
+ end
1596
+ end
1597
+
1598
+ # VM creation configuration message
1599
+ class VmCreationConfig
1600
+ include Google::Apis::Core::Hashable
1601
+
1602
+ # The subnet name the vm needs to be created in.
1603
+ # Corresponds to the JSON property `subnet`
1604
+ # @return [String]
1605
+ attr_accessor :subnet
1606
+
1607
+ # Required. VM instance machine type to create.
1608
+ # Corresponds to the JSON property `vmMachineType`
1609
+ # @return [String]
1610
+ attr_accessor :vm_machine_type
1611
+
1612
+ # The Google Cloud Platform zone to create the VM in.
1613
+ # Corresponds to the JSON property `vmZone`
1614
+ # @return [String]
1615
+ attr_accessor :vm_zone
1616
+
1617
+ def initialize(**args)
1618
+ update!(**args)
1619
+ end
1620
+
1621
+ # Update properties of this object
1622
+ def update!(**args)
1623
+ @subnet = args[:subnet] if args.key?(:subnet)
1624
+ @vm_machine_type = args[:vm_machine_type] if args.key?(:vm_machine_type)
1625
+ @vm_zone = args[:vm_zone] if args.key?(:vm_zone)
1626
+ end
1627
+ end
1628
+
1629
+ # VM selection configuration message
1630
+ class VmSelectionConfig
1631
+ include Google::Apis::Core::Hashable
1632
+
1633
+ # Required. The Google Cloud Platform zone the VM is located.
1634
+ # Corresponds to the JSON property `vmZone`
1635
+ # @return [String]
1636
+ attr_accessor :vm_zone
1637
+
1638
+ def initialize(**args)
1639
+ update!(**args)
1640
+ end
1641
+
1642
+ # Update properties of this object
1643
+ def update!(**args)
1644
+ @vm_zone = args[:vm_zone] if args.key?(:vm_zone)
1645
+ end
1646
+ end
1647
+
1648
+ # The details of the VPC where the source database is located in Google Cloud.
1649
+ # We will use this information to set up the VPC peering connection between
1650
+ # Cloud SQL and this VPC.
1651
+ class VpcPeeringConnectivity
1652
+ include Google::Apis::Core::Hashable
1653
+
1654
+ # The name of the VPC network to peer with the Cloud SQL private network.
1655
+ # Corresponds to the JSON property `vpc`
1656
+ # @return [String]
1657
+ attr_accessor :vpc
1658
+
1659
+ def initialize(**args)
1660
+ update!(**args)
1661
+ end
1662
+
1663
+ # Update properties of this object
1664
+ def update!(**args)
1665
+ @vpc = args[:vpc] if args.key?(:vpc)
1666
+ end
1667
+ end
1668
+ end
1669
+ end
1670
+ end