google-api-client 0.48.0 → 0.49.0

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 (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