google-apis-sqladmin_v1beta4 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 17ccae49f4713e013e5807913cca29f3e8f277ef988ea3fad31da24c8596a063
4
+ data.tar.gz: 640f037076b6a8fe737d7f33bd1a73303d79e9bd4eb67cdf3024f75b398964cc
5
+ SHA512:
6
+ metadata.gz: dd01b08799451f9aaf6d2a3cdacb233e69f67cfcad4d9437d1f768d26d3669eabf82837f83c57631accce7d52a21c2ea477d5b74bf77f2d21452fe209bf88bd9
7
+ data.tar.gz: d1afa38e938d093ca5b396e82b09d3952b84196d4c1ff5aa70e1c7accd57c26a22abb1b1ea946128338da3a69a0a1a3e6989a60bb91738a56ae82d6958f94350
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-sqladmin_v1beta4
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/sqladmin_v1beta4/*.rb
9
+ lib/google/apis/sqladmin_v1beta4.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-sqladmin_v1beta4
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201205
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1beta4 of the Cloud SQL Admin API
2
+
3
+ This is a simple client library for version V1beta4 of the Cloud SQL Admin API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/sqladmin.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-sqladmin_v1beta4', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-sqladmin_v1beta4
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/sqladmin_v1beta4"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::SqladminV1beta4::SQLAdminService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Sqladmin service in particular.)
67
+
68
+ For reference information on specific calls in the Cloud SQL Admin API, see the {Google::Apis::SqladminV1beta4::SQLAdminService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-sqladmin_v1beta4`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://developers.google.com/cloud-sql/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/apis/sqladmin_v1beta4"
@@ -0,0 +1,39 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/sqladmin_v1beta4/service.rb'
16
+ require 'google/apis/sqladmin_v1beta4/classes.rb'
17
+ require 'google/apis/sqladmin_v1beta4/representations.rb'
18
+ require 'google/apis/sqladmin_v1beta4/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Cloud SQL Admin API
23
+ #
24
+ # API for Cloud SQL database instance management
25
+ #
26
+ # @see https://developers.google.com/cloud-sql/
27
+ module SqladminV1beta4
28
+ # Version of the Cloud SQL Admin API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1beta4'
31
+
32
+ # View and manage your data across Google Cloud Platform services
33
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
+
35
+ # Manage your Google SQL Service instances
36
+ AUTH_SQLSERVICE_ADMIN = 'https://www.googleapis.com/auth/sqlservice.admin'
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,3133 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module SqladminV1beta4
24
+
25
+ # An entry for an Access Control list.
26
+ class AclEntry
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The time when this access control entry expires in RFC 3339 format, for
30
+ # example *2012-11-15T16:19:00.094Z*.
31
+ # Corresponds to the JSON property `expirationTime`
32
+ # @return [String]
33
+ attr_accessor :expiration_time
34
+
35
+ # This is always *sql#aclEntry*.
36
+ # Corresponds to the JSON property `kind`
37
+ # @return [String]
38
+ attr_accessor :kind
39
+
40
+ # Optional. A label to identify this entry.
41
+ # Corresponds to the JSON property `name`
42
+ # @return [String]
43
+ attr_accessor :name
44
+
45
+ # The allowlisted value for the access control list.
46
+ # Corresponds to the JSON property `value`
47
+ # @return [String]
48
+ attr_accessor :value
49
+
50
+ def initialize(**args)
51
+ update!(**args)
52
+ end
53
+
54
+ # Update properties of this object
55
+ def update!(**args)
56
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
57
+ @kind = args[:kind] if args.key?(:kind)
58
+ @name = args[:name] if args.key?(:name)
59
+ @value = args[:value] if args.key?(:value)
60
+ end
61
+ end
62
+
63
+ # An Admin API warning message.
64
+ class ApiWarning
65
+ include Google::Apis::Core::Hashable
66
+
67
+ # Code to uniquely identify the warning type.
68
+ # Corresponds to the JSON property `code`
69
+ # @return [String]
70
+ attr_accessor :code
71
+
72
+ # The warning message.
73
+ # Corresponds to the JSON property `message`
74
+ # @return [String]
75
+ attr_accessor :message
76
+
77
+ def initialize(**args)
78
+ update!(**args)
79
+ end
80
+
81
+ # Update properties of this object
82
+ def update!(**args)
83
+ @code = args[:code] if args.key?(:code)
84
+ @message = args[:message] if args.key?(:message)
85
+ end
86
+ end
87
+
88
+ # Database instance backup configuration.
89
+ class BackupConfiguration
90
+ include Google::Apis::Core::Hashable
91
+
92
+ # We currently only support backup retention by specifying the number of backups
93
+ # we will retain.
94
+ # Corresponds to the JSON property `backupRetentionSettings`
95
+ # @return [Google::Apis::SqladminV1beta4::BackupRetentionSettings]
96
+ attr_accessor :backup_retention_settings
97
+
98
+ # (MySQL only) Whether binary log is enabled. If backup configuration is
99
+ # disabled, binarylog must be disabled as well.
100
+ # Corresponds to the JSON property `binaryLogEnabled`
101
+ # @return [Boolean]
102
+ attr_accessor :binary_log_enabled
103
+ alias_method :binary_log_enabled?, :binary_log_enabled
104
+
105
+ # Whether this configuration is enabled.
106
+ # Corresponds to the JSON property `enabled`
107
+ # @return [Boolean]
108
+ attr_accessor :enabled
109
+ alias_method :enabled?, :enabled
110
+
111
+ # This is always *sql#backupConfiguration*.
112
+ # Corresponds to the JSON property `kind`
113
+ # @return [String]
114
+ attr_accessor :kind
115
+
116
+ # Location of the backup
117
+ # Corresponds to the JSON property `location`
118
+ # @return [String]
119
+ attr_accessor :location
120
+
121
+ # Reserved for future use.
122
+ # Corresponds to the JSON property `pointInTimeRecoveryEnabled`
123
+ # @return [Boolean]
124
+ attr_accessor :point_in_time_recovery_enabled
125
+ alias_method :point_in_time_recovery_enabled?, :point_in_time_recovery_enabled
126
+
127
+ # Reserved for future use.
128
+ # Corresponds to the JSON property `replicationLogArchivingEnabled`
129
+ # @return [Boolean]
130
+ attr_accessor :replication_log_archiving_enabled
131
+ alias_method :replication_log_archiving_enabled?, :replication_log_archiving_enabled
132
+
133
+ # Start time for the daily backup configuration in UTC timezone in the 24 hour
134
+ # format - *HH:MM*.
135
+ # Corresponds to the JSON property `startTime`
136
+ # @return [String]
137
+ attr_accessor :start_time
138
+
139
+ # The number of days of transaction logs we retain for point in time restore,
140
+ # from 1-7.
141
+ # Corresponds to the JSON property `transactionLogRetentionDays`
142
+ # @return [Fixnum]
143
+ attr_accessor :transaction_log_retention_days
144
+
145
+ def initialize(**args)
146
+ update!(**args)
147
+ end
148
+
149
+ # Update properties of this object
150
+ def update!(**args)
151
+ @backup_retention_settings = args[:backup_retention_settings] if args.key?(:backup_retention_settings)
152
+ @binary_log_enabled = args[:binary_log_enabled] if args.key?(:binary_log_enabled)
153
+ @enabled = args[:enabled] if args.key?(:enabled)
154
+ @kind = args[:kind] if args.key?(:kind)
155
+ @location = args[:location] if args.key?(:location)
156
+ @point_in_time_recovery_enabled = args[:point_in_time_recovery_enabled] if args.key?(:point_in_time_recovery_enabled)
157
+ @replication_log_archiving_enabled = args[:replication_log_archiving_enabled] if args.key?(:replication_log_archiving_enabled)
158
+ @start_time = args[:start_time] if args.key?(:start_time)
159
+ @transaction_log_retention_days = args[:transaction_log_retention_days] if args.key?(:transaction_log_retention_days)
160
+ end
161
+ end
162
+
163
+ # Backup context.
164
+ class BackupContext
165
+ include Google::Apis::Core::Hashable
166
+
167
+ # The identifier of the backup.
168
+ # Corresponds to the JSON property `backupId`
169
+ # @return [Fixnum]
170
+ attr_accessor :backup_id
171
+
172
+ # This is always *sql#backupContext*.
173
+ # Corresponds to the JSON property `kind`
174
+ # @return [String]
175
+ attr_accessor :kind
176
+
177
+ def initialize(**args)
178
+ update!(**args)
179
+ end
180
+
181
+ # Update properties of this object
182
+ def update!(**args)
183
+ @backup_id = args[:backup_id] if args.key?(:backup_id)
184
+ @kind = args[:kind] if args.key?(:kind)
185
+ end
186
+ end
187
+
188
+ # We currently only support backup retention by specifying the number of backups
189
+ # we will retain.
190
+ class BackupRetentionSettings
191
+ include Google::Apis::Core::Hashable
192
+
193
+ # Depending on the value of retention_unit, this is used to determine if a
194
+ # backup needs to be deleted. If retention_unit is 'COUNT', we will retain this
195
+ # many backups.
196
+ # Corresponds to the JSON property `retainedBackups`
197
+ # @return [Fixnum]
198
+ attr_accessor :retained_backups
199
+
200
+ # The unit that 'retained_backups' represents.
201
+ # Corresponds to the JSON property `retentionUnit`
202
+ # @return [String]
203
+ attr_accessor :retention_unit
204
+
205
+ def initialize(**args)
206
+ update!(**args)
207
+ end
208
+
209
+ # Update properties of this object
210
+ def update!(**args)
211
+ @retained_backups = args[:retained_backups] if args.key?(:retained_backups)
212
+ @retention_unit = args[:retention_unit] if args.key?(:retention_unit)
213
+ end
214
+ end
215
+
216
+ # A BackupRun resource.
217
+ class BackupRun
218
+ include Google::Apis::Core::Hashable
219
+
220
+ # Specifies the kind of backup, PHYSICAL or DEFAULT_SNAPSHOT.
221
+ # Corresponds to the JSON property `backupKind`
222
+ # @return [String]
223
+ attr_accessor :backup_kind
224
+
225
+ # The description of this run, only applicable to on-demand backups.
226
+ # Corresponds to the JSON property `description`
227
+ # @return [String]
228
+ attr_accessor :description
229
+
230
+ # Disk encryption configuration for an instance.
231
+ # Corresponds to the JSON property `diskEncryptionConfiguration`
232
+ # @return [Google::Apis::SqladminV1beta4::DiskEncryptionConfiguration]
233
+ attr_accessor :disk_encryption_configuration
234
+
235
+ # Disk encryption status for an instance.
236
+ # Corresponds to the JSON property `diskEncryptionStatus`
237
+ # @return [Google::Apis::SqladminV1beta4::DiskEncryptionStatus]
238
+ attr_accessor :disk_encryption_status
239
+
240
+ # The time the backup operation completed in UTC timezone in RFC 3339 format,
241
+ # for example *2012-11-15T16:19:00.094Z*.
242
+ # Corresponds to the JSON property `endTime`
243
+ # @return [String]
244
+ attr_accessor :end_time
245
+
246
+ # The time the run was enqueued in UTC timezone in RFC 3339 format, for example *
247
+ # 2012-11-15T16:19:00.094Z*.
248
+ # Corresponds to the JSON property `enqueuedTime`
249
+ # @return [String]
250
+ attr_accessor :enqueued_time
251
+
252
+ # Database instance operation error.
253
+ # Corresponds to the JSON property `error`
254
+ # @return [Google::Apis::SqladminV1beta4::OperationError]
255
+ attr_accessor :error
256
+
257
+ # The identifier for this backup run. Unique only for a specific Cloud SQL
258
+ # instance.
259
+ # Corresponds to the JSON property `id`
260
+ # @return [Fixnum]
261
+ attr_accessor :id
262
+
263
+ # Name of the database instance.
264
+ # Corresponds to the JSON property `instance`
265
+ # @return [String]
266
+ attr_accessor :instance
267
+
268
+ # This is always *sql#backupRun*.
269
+ # Corresponds to the JSON property `kind`
270
+ # @return [String]
271
+ attr_accessor :kind
272
+
273
+ # Location of the backups.
274
+ # Corresponds to the JSON property `location`
275
+ # @return [String]
276
+ attr_accessor :location
277
+
278
+ # The URI of this resource.
279
+ # Corresponds to the JSON property `selfLink`
280
+ # @return [String]
281
+ attr_accessor :self_link
282
+
283
+ # The time the backup operation actually started in UTC timezone in RFC 3339
284
+ # format, for example *2012-11-15T16:19:00.094Z*.
285
+ # Corresponds to the JSON property `startTime`
286
+ # @return [String]
287
+ attr_accessor :start_time
288
+
289
+ # The status of this run.
290
+ # Corresponds to the JSON property `status`
291
+ # @return [String]
292
+ attr_accessor :status
293
+
294
+ # The type of this run; can be either "AUTOMATED" or "ON_DEMAND".
295
+ # Corresponds to the JSON property `type`
296
+ # @return [String]
297
+ attr_accessor :type
298
+
299
+ # The start time of the backup window during which this the backup was attempted
300
+ # in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
301
+ # Corresponds to the JSON property `windowStartTime`
302
+ # @return [String]
303
+ attr_accessor :window_start_time
304
+
305
+ def initialize(**args)
306
+ update!(**args)
307
+ end
308
+
309
+ # Update properties of this object
310
+ def update!(**args)
311
+ @backup_kind = args[:backup_kind] if args.key?(:backup_kind)
312
+ @description = args[:description] if args.key?(:description)
313
+ @disk_encryption_configuration = args[:disk_encryption_configuration] if args.key?(:disk_encryption_configuration)
314
+ @disk_encryption_status = args[:disk_encryption_status] if args.key?(:disk_encryption_status)
315
+ @end_time = args[:end_time] if args.key?(:end_time)
316
+ @enqueued_time = args[:enqueued_time] if args.key?(:enqueued_time)
317
+ @error = args[:error] if args.key?(:error)
318
+ @id = args[:id] if args.key?(:id)
319
+ @instance = args[:instance] if args.key?(:instance)
320
+ @kind = args[:kind] if args.key?(:kind)
321
+ @location = args[:location] if args.key?(:location)
322
+ @self_link = args[:self_link] if args.key?(:self_link)
323
+ @start_time = args[:start_time] if args.key?(:start_time)
324
+ @status = args[:status] if args.key?(:status)
325
+ @type = args[:type] if args.key?(:type)
326
+ @window_start_time = args[:window_start_time] if args.key?(:window_start_time)
327
+ end
328
+ end
329
+
330
+ # Backup run list results.
331
+ class ListBackupRunsResponse
332
+ include Google::Apis::Core::Hashable
333
+
334
+ # A list of backup runs in reverse chronological order of the enqueued time.
335
+ # Corresponds to the JSON property `items`
336
+ # @return [Array<Google::Apis::SqladminV1beta4::BackupRun>]
337
+ attr_accessor :items
338
+
339
+ # This is always *sql#backupRunsList*.
340
+ # Corresponds to the JSON property `kind`
341
+ # @return [String]
342
+ attr_accessor :kind
343
+
344
+ # The continuation token, used to page through large result sets. Provide this
345
+ # value in a subsequent request to return the next page of results.
346
+ # Corresponds to the JSON property `nextPageToken`
347
+ # @return [String]
348
+ attr_accessor :next_page_token
349
+
350
+ def initialize(**args)
351
+ update!(**args)
352
+ end
353
+
354
+ # Update properties of this object
355
+ def update!(**args)
356
+ @items = args[:items] if args.key?(:items)
357
+ @kind = args[:kind] if args.key?(:kind)
358
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
359
+ end
360
+ end
361
+
362
+ # Binary log coordinates.
363
+ class BinLogCoordinates
364
+ include Google::Apis::Core::Hashable
365
+
366
+ # Name of the binary log file for a Cloud SQL instance.
367
+ # Corresponds to the JSON property `binLogFileName`
368
+ # @return [String]
369
+ attr_accessor :bin_log_file_name
370
+
371
+ # Position (offset) within the binary log file.
372
+ # Corresponds to the JSON property `binLogPosition`
373
+ # @return [Fixnum]
374
+ attr_accessor :bin_log_position
375
+
376
+ # This is always *sql#binLogCoordinates*.
377
+ # Corresponds to the JSON property `kind`
378
+ # @return [String]
379
+ attr_accessor :kind
380
+
381
+ def initialize(**args)
382
+ update!(**args)
383
+ end
384
+
385
+ # Update properties of this object
386
+ def update!(**args)
387
+ @bin_log_file_name = args[:bin_log_file_name] if args.key?(:bin_log_file_name)
388
+ @bin_log_position = args[:bin_log_position] if args.key?(:bin_log_position)
389
+ @kind = args[:kind] if args.key?(:kind)
390
+ end
391
+ end
392
+
393
+ # Database instance clone context.
394
+ class CloneContext
395
+ include Google::Apis::Core::Hashable
396
+
397
+ # Binary log coordinates.
398
+ # Corresponds to the JSON property `binLogCoordinates`
399
+ # @return [Google::Apis::SqladminV1beta4::BinLogCoordinates]
400
+ attr_accessor :bin_log_coordinates
401
+
402
+ # Name of the Cloud SQL instance to be created as a clone.
403
+ # Corresponds to the JSON property `destinationInstanceName`
404
+ # @return [String]
405
+ attr_accessor :destination_instance_name
406
+
407
+ # This is always *sql#cloneContext*.
408
+ # Corresponds to the JSON property `kind`
409
+ # @return [String]
410
+ attr_accessor :kind
411
+
412
+ # Reserved for future use.
413
+ # Corresponds to the JSON property `pitrTimestampMs`
414
+ # @return [Fixnum]
415
+ attr_accessor :pitr_timestamp_ms
416
+
417
+ # Reserved for future use.
418
+ # Corresponds to the JSON property `pointInTime`
419
+ # @return [String]
420
+ attr_accessor :point_in_time
421
+
422
+ def initialize(**args)
423
+ update!(**args)
424
+ end
425
+
426
+ # Update properties of this object
427
+ def update!(**args)
428
+ @bin_log_coordinates = args[:bin_log_coordinates] if args.key?(:bin_log_coordinates)
429
+ @destination_instance_name = args[:destination_instance_name] if args.key?(:destination_instance_name)
430
+ @kind = args[:kind] if args.key?(:kind)
431
+ @pitr_timestamp_ms = args[:pitr_timestamp_ms] if args.key?(:pitr_timestamp_ms)
432
+ @point_in_time = args[:point_in_time] if args.key?(:point_in_time)
433
+ end
434
+ end
435
+
436
+ # Represents a SQL database on the Cloud SQL instance.
437
+ class Database
438
+ include Google::Apis::Core::Hashable
439
+
440
+ # The Cloud SQL charset value.
441
+ # Corresponds to the JSON property `charset`
442
+ # @return [String]
443
+ attr_accessor :charset
444
+
445
+ # The Cloud SQL collation value.
446
+ # Corresponds to the JSON property `collation`
447
+ # @return [String]
448
+ attr_accessor :collation
449
+
450
+ # This field is deprecated and will be removed from a future version of the API.
451
+ # Corresponds to the JSON property `etag`
452
+ # @return [String]
453
+ attr_accessor :etag
454
+
455
+ # The name of the Cloud SQL instance. This does not include the project ID.
456
+ # Corresponds to the JSON property `instance`
457
+ # @return [String]
458
+ attr_accessor :instance
459
+
460
+ # This is always *sql#database*.
461
+ # Corresponds to the JSON property `kind`
462
+ # @return [String]
463
+ attr_accessor :kind
464
+
465
+ # The name of the database in the Cloud SQL instance. This does not include the
466
+ # project ID or instance name.
467
+ # Corresponds to the JSON property `name`
468
+ # @return [String]
469
+ attr_accessor :name
470
+
471
+ # The project ID of the project containing the Cloud SQL database. The Google
472
+ # apps domain is prefixed if applicable.
473
+ # Corresponds to the JSON property `project`
474
+ # @return [String]
475
+ attr_accessor :project
476
+
477
+ # The URI of this resource.
478
+ # Corresponds to the JSON property `selfLink`
479
+ # @return [String]
480
+ attr_accessor :self_link
481
+
482
+ # Represents a Sql Server database on the Cloud SQL instance.
483
+ # Corresponds to the JSON property `sqlserverDatabaseDetails`
484
+ # @return [Google::Apis::SqladminV1beta4::SqlServerDatabaseDetails]
485
+ attr_accessor :sqlserver_database_details
486
+
487
+ def initialize(**args)
488
+ update!(**args)
489
+ end
490
+
491
+ # Update properties of this object
492
+ def update!(**args)
493
+ @charset = args[:charset] if args.key?(:charset)
494
+ @collation = args[:collation] if args.key?(:collation)
495
+ @etag = args[:etag] if args.key?(:etag)
496
+ @instance = args[:instance] if args.key?(:instance)
497
+ @kind = args[:kind] if args.key?(:kind)
498
+ @name = args[:name] if args.key?(:name)
499
+ @project = args[:project] if args.key?(:project)
500
+ @self_link = args[:self_link] if args.key?(:self_link)
501
+ @sqlserver_database_details = args[:sqlserver_database_details] if args.key?(:sqlserver_database_details)
502
+ end
503
+ end
504
+
505
+ # Database flags for Cloud SQL instances.
506
+ class DatabaseFlags
507
+ include Google::Apis::Core::Hashable
508
+
509
+ # The name of the flag. These flags are passed at instance startup, so include
510
+ # both server options and system variables for MySQL. Flags are specified with
511
+ # underscores, not hyphens. For more information, see Configuring Database Flags
512
+ # in the Cloud SQL documentation.
513
+ # Corresponds to the JSON property `name`
514
+ # @return [String]
515
+ attr_accessor :name
516
+
517
+ # The value of the flag. Booleans are set to *on* for true and *off* for false.
518
+ # This field must be omitted if the flag doesn't take a value.
519
+ # Corresponds to the JSON property `value`
520
+ # @return [String]
521
+ attr_accessor :value
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ @name = args[:name] if args.key?(:name)
530
+ @value = args[:value] if args.key?(:value)
531
+ end
532
+ end
533
+
534
+ # A Cloud SQL instance resource. Next field: 36
535
+ class DatabaseInstance
536
+ include Google::Apis::Core::Hashable
537
+
538
+ # *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that
539
+ # is not managed by Google. This property is read-only; use the *tier* property
540
+ # in the *settings* object to determine the database type.
541
+ # Corresponds to the JSON property `backendType`
542
+ # @return [String]
543
+ attr_accessor :backend_type
544
+
545
+ # Connection name of the Cloud SQL instance used in connection strings.
546
+ # Corresponds to the JSON property `connectionName`
547
+ # @return [String]
548
+ attr_accessor :connection_name
549
+
550
+ # The current disk usage of the instance in bytes. This property has been
551
+ # deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric
552
+ # in Cloud Monitoring API instead. Please see this announcement for details.
553
+ # Corresponds to the JSON property `currentDiskSize`
554
+ # @return [Fixnum]
555
+ attr_accessor :current_disk_size
556
+
557
+ # The database engine type and version. The *databaseVersion* field cannot be
558
+ # changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (
559
+ # default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*,
560
+ # *POSTGRES_11* or *POSTGRES_12* (default). SQL Server instances: *
561
+ # SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *
562
+ # SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
563
+ # Corresponds to the JSON property `databaseVersion`
564
+ # @return [String]
565
+ attr_accessor :database_version
566
+
567
+ # Disk encryption configuration for an instance.
568
+ # Corresponds to the JSON property `diskEncryptionConfiguration`
569
+ # @return [Google::Apis::SqladminV1beta4::DiskEncryptionConfiguration]
570
+ attr_accessor :disk_encryption_configuration
571
+
572
+ # Disk encryption status for an instance.
573
+ # Corresponds to the JSON property `diskEncryptionStatus`
574
+ # @return [Google::Apis::SqladminV1beta4::DiskEncryptionStatus]
575
+ attr_accessor :disk_encryption_status
576
+
577
+ # This field is deprecated and will be removed from a future version of the API.
578
+ # Use the *settings.settingsVersion* field instead.
579
+ # Corresponds to the JSON property `etag`
580
+ # @return [String]
581
+ attr_accessor :etag
582
+
583
+ # The name and status of the failover replica. This property is applicable only
584
+ # to Second Generation instances.
585
+ # Corresponds to the JSON property `failoverReplica`
586
+ # @return [Google::Apis::SqladminV1beta4::DatabaseInstance::FailoverReplica]
587
+ attr_accessor :failover_replica
588
+
589
+ # The Compute Engine zone that the instance is currently serving from. This
590
+ # value could be different from the zone that was specified when the instance
591
+ # was created if the instance has failed over to its secondary zone.
592
+ # Corresponds to the JSON property `gceZone`
593
+ # @return [String]
594
+ attr_accessor :gce_zone
595
+
596
+ # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A
597
+ # Cloud SQL instance that is not replicating from a primary instance. *
598
+ # ON_PREMISES_INSTANCE*: An instance running on the customer's premises. *
599
+ # READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
600
+ # Corresponds to the JSON property `instanceType`
601
+ # @return [String]
602
+ attr_accessor :instance_type
603
+
604
+ # The assigned IP addresses for the instance.
605
+ # Corresponds to the JSON property `ipAddresses`
606
+ # @return [Array<Google::Apis::SqladminV1beta4::IpMapping>]
607
+ attr_accessor :ip_addresses
608
+
609
+ # The IPv6 address assigned to the instance. (Deprecated) This property was
610
+ # applicable only to First Generation instances.
611
+ # Corresponds to the JSON property `ipv6Address`
612
+ # @return [String]
613
+ attr_accessor :ipv6_address
614
+
615
+ # This is always *sql#instance*.
616
+ # Corresponds to the JSON property `kind`
617
+ # @return [String]
618
+ attr_accessor :kind
619
+
620
+ # The name of the instance which will act as primary in the replication setup.
621
+ # Corresponds to the JSON property `masterInstanceName`
622
+ # @return [String]
623
+ attr_accessor :master_instance_name
624
+
625
+ # The maximum disk size of the instance in bytes.
626
+ # Corresponds to the JSON property `maxDiskSize`
627
+ # @return [Fixnum]
628
+ attr_accessor :max_disk_size
629
+
630
+ # Name of the Cloud SQL instance. This does not include the project ID.
631
+ # Corresponds to the JSON property `name`
632
+ # @return [String]
633
+ attr_accessor :name
634
+
635
+ # On-premises instance configuration.
636
+ # Corresponds to the JSON property `onPremisesConfiguration`
637
+ # @return [Google::Apis::SqladminV1beta4::OnPremisesConfiguration]
638
+ attr_accessor :on_premises_configuration
639
+
640
+ # The project ID of the project containing the Cloud SQL instance. The Google
641
+ # apps domain is prefixed if applicable.
642
+ # Corresponds to the JSON property `project`
643
+ # @return [String]
644
+ attr_accessor :project
645
+
646
+ # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-
647
+ # central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*.
648
+ # Defaults to *us-central* or *us-central1* depending on the instance type. The
649
+ # region cannot be changed after instance creation.
650
+ # Corresponds to the JSON property `region`
651
+ # @return [String]
652
+ attr_accessor :region
653
+
654
+ # Read-replica configuration for connecting to the primary instance.
655
+ # Corresponds to the JSON property `replicaConfiguration`
656
+ # @return [Google::Apis::SqladminV1beta4::ReplicaConfiguration]
657
+ attr_accessor :replica_configuration
658
+
659
+ # The replicas of the instance.
660
+ # Corresponds to the JSON property `replicaNames`
661
+ # @return [Array<String>]
662
+ attr_accessor :replica_names
663
+
664
+ # Initial root password. Use only on creation.
665
+ # Corresponds to the JSON property `rootPassword`
666
+ # @return [String]
667
+ attr_accessor :root_password
668
+
669
+ # The status indicating if instance satisfies physical zone separation. Reserved
670
+ # for future use.
671
+ # Corresponds to the JSON property `satisfiesPzs`
672
+ # @return [Boolean]
673
+ attr_accessor :satisfies_pzs
674
+ alias_method :satisfies_pzs?, :satisfies_pzs
675
+
676
+ # Any scheduled maintenancce for this instance.
677
+ # Corresponds to the JSON property `scheduledMaintenance`
678
+ # @return [Google::Apis::SqladminV1beta4::SqlScheduledMaintenance]
679
+ attr_accessor :scheduled_maintenance
680
+
681
+ # The Compute Engine zone that the failover instance is currently serving from
682
+ # for a regional instance. This value could be different from the zone that was
683
+ # specified when the instance was created if the instance has failed over to its
684
+ # secondary/failover zone. Reserved for future use.
685
+ # Corresponds to the JSON property `secondaryGceZone`
686
+ # @return [String]
687
+ attr_accessor :secondary_gce_zone
688
+
689
+ # The URI of this resource.
690
+ # Corresponds to the JSON property `selfLink`
691
+ # @return [String]
692
+ attr_accessor :self_link
693
+
694
+ # SslCerts Resource
695
+ # Corresponds to the JSON property `serverCaCert`
696
+ # @return [Google::Apis::SqladminV1beta4::SslCert]
697
+ attr_accessor :server_ca_cert
698
+
699
+ # The service account email address assigned to the instance. This property is
700
+ # applicable only to Second Generation instances.
701
+ # Corresponds to the JSON property `serviceAccountEmailAddress`
702
+ # @return [String]
703
+ attr_accessor :service_account_email_address
704
+
705
+ # Database instance settings.
706
+ # Corresponds to the JSON property `settings`
707
+ # @return [Google::Apis::SqladminV1beta4::Settings]
708
+ attr_accessor :settings
709
+
710
+ # The current serving state of the Cloud SQL instance. This can be one of the
711
+ # following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is
712
+ # unknown. *RUNNABLE*: The instance has been stopped by owner. It is not
713
+ # currently running, but it's ready to be restarted. *SUSPENDED*: The instance
714
+ # is not available, for example due to problems with billing. for example due to
715
+ # problems with billing. *PENDING_DELETE*: The instance is being deleted. *
716
+ # PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is
717
+ # down for maintenance. *FAILED*: The instance creation failed.
718
+ # Corresponds to the JSON property `state`
719
+ # @return [String]
720
+ attr_accessor :state
721
+
722
+ # If the instance state is SUSPENDED, the reason for the suspension.
723
+ # Corresponds to the JSON property `suspensionReason`
724
+ # @return [Array<String>]
725
+ attr_accessor :suspension_reason
726
+
727
+ def initialize(**args)
728
+ update!(**args)
729
+ end
730
+
731
+ # Update properties of this object
732
+ def update!(**args)
733
+ @backend_type = args[:backend_type] if args.key?(:backend_type)
734
+ @connection_name = args[:connection_name] if args.key?(:connection_name)
735
+ @current_disk_size = args[:current_disk_size] if args.key?(:current_disk_size)
736
+ @database_version = args[:database_version] if args.key?(:database_version)
737
+ @disk_encryption_configuration = args[:disk_encryption_configuration] if args.key?(:disk_encryption_configuration)
738
+ @disk_encryption_status = args[:disk_encryption_status] if args.key?(:disk_encryption_status)
739
+ @etag = args[:etag] if args.key?(:etag)
740
+ @failover_replica = args[:failover_replica] if args.key?(:failover_replica)
741
+ @gce_zone = args[:gce_zone] if args.key?(:gce_zone)
742
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
743
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
744
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
745
+ @kind = args[:kind] if args.key?(:kind)
746
+ @master_instance_name = args[:master_instance_name] if args.key?(:master_instance_name)
747
+ @max_disk_size = args[:max_disk_size] if args.key?(:max_disk_size)
748
+ @name = args[:name] if args.key?(:name)
749
+ @on_premises_configuration = args[:on_premises_configuration] if args.key?(:on_premises_configuration)
750
+ @project = args[:project] if args.key?(:project)
751
+ @region = args[:region] if args.key?(:region)
752
+ @replica_configuration = args[:replica_configuration] if args.key?(:replica_configuration)
753
+ @replica_names = args[:replica_names] if args.key?(:replica_names)
754
+ @root_password = args[:root_password] if args.key?(:root_password)
755
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
756
+ @scheduled_maintenance = args[:scheduled_maintenance] if args.key?(:scheduled_maintenance)
757
+ @secondary_gce_zone = args[:secondary_gce_zone] if args.key?(:secondary_gce_zone)
758
+ @self_link = args[:self_link] if args.key?(:self_link)
759
+ @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
760
+ @service_account_email_address = args[:service_account_email_address] if args.key?(:service_account_email_address)
761
+ @settings = args[:settings] if args.key?(:settings)
762
+ @state = args[:state] if args.key?(:state)
763
+ @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
764
+ end
765
+
766
+ # The name and status of the failover replica. This property is applicable only
767
+ # to Second Generation instances.
768
+ class FailoverReplica
769
+ include Google::Apis::Core::Hashable
770
+
771
+ # The availability status of the failover replica. A false status indicates that
772
+ # the failover replica is out of sync. The primary instance can only failover to
773
+ # the failover replica when the status is true.
774
+ # Corresponds to the JSON property `available`
775
+ # @return [Boolean]
776
+ attr_accessor :available
777
+ alias_method :available?, :available
778
+
779
+ # The name of the failover replica. If specified at instance creation, a
780
+ # failover replica is created for the instance. The name doesn't include the
781
+ # project ID. This property is applicable only to Second Generation instances.
782
+ # Corresponds to the JSON property `name`
783
+ # @return [String]
784
+ attr_accessor :name
785
+
786
+ def initialize(**args)
787
+ update!(**args)
788
+ end
789
+
790
+ # Update properties of this object
791
+ def update!(**args)
792
+ @available = args[:available] if args.key?(:available)
793
+ @name = args[:name] if args.key?(:name)
794
+ end
795
+ end
796
+ end
797
+
798
+ # Database list response.
799
+ class ListDatabasesResponse
800
+ include Google::Apis::Core::Hashable
801
+
802
+ # List of database resources in the instance.
803
+ # Corresponds to the JSON property `items`
804
+ # @return [Array<Google::Apis::SqladminV1beta4::Database>]
805
+ attr_accessor :items
806
+
807
+ # This is always *sql#databasesList*.
808
+ # Corresponds to the JSON property `kind`
809
+ # @return [String]
810
+ attr_accessor :kind
811
+
812
+ def initialize(**args)
813
+ update!(**args)
814
+ end
815
+
816
+ # Update properties of this object
817
+ def update!(**args)
818
+ @items = args[:items] if args.key?(:items)
819
+ @kind = args[:kind] if args.key?(:kind)
820
+ end
821
+ end
822
+
823
+ # Read-replica configuration for connecting to the on-premises primary instance.
824
+ class DemoteMasterConfiguration
825
+ include Google::Apis::Core::Hashable
826
+
827
+ # This is always *sql#demoteMasterConfiguration*.
828
+ # Corresponds to the JSON property `kind`
829
+ # @return [String]
830
+ attr_accessor :kind
831
+
832
+ # Read-replica configuration specific to MySQL databases.
833
+ # Corresponds to the JSON property `mysqlReplicaConfiguration`
834
+ # @return [Google::Apis::SqladminV1beta4::DemoteMasterMySqlReplicaConfiguration]
835
+ attr_accessor :mysql_replica_configuration
836
+
837
+ def initialize(**args)
838
+ update!(**args)
839
+ end
840
+
841
+ # Update properties of this object
842
+ def update!(**args)
843
+ @kind = args[:kind] if args.key?(:kind)
844
+ @mysql_replica_configuration = args[:mysql_replica_configuration] if args.key?(:mysql_replica_configuration)
845
+ end
846
+ end
847
+
848
+ # Database instance demote primary instance context.
849
+ class DemoteMasterContext
850
+ include Google::Apis::Core::Hashable
851
+
852
+ # This is always *sql#demoteMasterContext*.
853
+ # Corresponds to the JSON property `kind`
854
+ # @return [String]
855
+ attr_accessor :kind
856
+
857
+ # The name of the instance which will act as on-premises primary instance in the
858
+ # replication setup.
859
+ # Corresponds to the JSON property `masterInstanceName`
860
+ # @return [String]
861
+ attr_accessor :master_instance_name
862
+
863
+ # Read-replica configuration for connecting to the on-premises primary instance.
864
+ # Corresponds to the JSON property `replicaConfiguration`
865
+ # @return [Google::Apis::SqladminV1beta4::DemoteMasterConfiguration]
866
+ attr_accessor :replica_configuration
867
+
868
+ # Verify GTID consistency for demote operation. Default value: *True*. Second
869
+ # Generation instances only. Setting this flag to false enables you to bypass
870
+ # GTID consistency check between on-premises primary instance and Cloud SQL
871
+ # instance during the demotion operation but also exposes you to the risk of
872
+ # future replication failures. Change the value only if you know the reason for
873
+ # the GTID divergence and are confident that doing so will not cause any
874
+ # replication issues.
875
+ # Corresponds to the JSON property `verifyGtidConsistency`
876
+ # @return [Boolean]
877
+ attr_accessor :verify_gtid_consistency
878
+ alias_method :verify_gtid_consistency?, :verify_gtid_consistency
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @kind = args[:kind] if args.key?(:kind)
887
+ @master_instance_name = args[:master_instance_name] if args.key?(:master_instance_name)
888
+ @replica_configuration = args[:replica_configuration] if args.key?(:replica_configuration)
889
+ @verify_gtid_consistency = args[:verify_gtid_consistency] if args.key?(:verify_gtid_consistency)
890
+ end
891
+ end
892
+
893
+ # Read-replica configuration specific to MySQL databases.
894
+ class DemoteMasterMySqlReplicaConfiguration
895
+ include Google::Apis::Core::Hashable
896
+
897
+ # PEM representation of the trusted CA's x509 certificate.
898
+ # Corresponds to the JSON property `caCertificate`
899
+ # @return [String]
900
+ attr_accessor :ca_certificate
901
+
902
+ # PEM representation of the replica's x509 certificate.
903
+ # Corresponds to the JSON property `clientCertificate`
904
+ # @return [String]
905
+ attr_accessor :client_certificate
906
+
907
+ # PEM representation of the replica's private key. The corresponsing public key
908
+ # is encoded in the client's certificate. The format of the replica's private
909
+ # key can be either PKCS #1 or PKCS #8.
910
+ # Corresponds to the JSON property `clientKey`
911
+ # @return [String]
912
+ attr_accessor :client_key
913
+
914
+ # This is always *sql#demoteMasterMysqlReplicaConfiguration*.
915
+ # Corresponds to the JSON property `kind`
916
+ # @return [String]
917
+ attr_accessor :kind
918
+
919
+ # The password for the replication connection.
920
+ # Corresponds to the JSON property `password`
921
+ # @return [String]
922
+ attr_accessor :password
923
+
924
+ # The username for the replication connection.
925
+ # Corresponds to the JSON property `username`
926
+ # @return [String]
927
+ attr_accessor :username
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @ca_certificate = args[:ca_certificate] if args.key?(:ca_certificate)
936
+ @client_certificate = args[:client_certificate] if args.key?(:client_certificate)
937
+ @client_key = args[:client_key] if args.key?(:client_key)
938
+ @kind = args[:kind] if args.key?(:kind)
939
+ @password = args[:password] if args.key?(:password)
940
+ @username = args[:username] if args.key?(:username)
941
+ end
942
+ end
943
+
944
+ # Deny Maintenance Periods. This specifies a date range during when all CSA
945
+ # rollout will be denied.
946
+ class DenyMaintenancePeriod
947
+ include Google::Apis::Core::Hashable
948
+
949
+ # "deny maintenance period" end date. If the year of the end date is empty, the
950
+ # year of the start date also must be empty. In this case, it means the deny
951
+ # maintenance period recurs every year. The date is in format yyyy-mm-dd i.e.,
952
+ # 2020-11-01, or mm-dd, i.e., 11-01
953
+ # Corresponds to the JSON property `endDate`
954
+ # @return [String]
955
+ attr_accessor :end_date
956
+
957
+ # "deny maintenance period" start date. If the year of the start date is empty,
958
+ # the year of the end date also must be empty. In this case, it means the deny
959
+ # maintenance period recurs every year. The date is in format yyyy-mm-dd i.e.,
960
+ # 2020-11-01, or mm-dd, i.e., 11-01
961
+ # Corresponds to the JSON property `startDate`
962
+ # @return [String]
963
+ attr_accessor :start_date
964
+
965
+ # Time in UTC when the "deny maintenance period" starts on start_date and ends
966
+ # on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
967
+ # Corresponds to the JSON property `time`
968
+ # @return [String]
969
+ attr_accessor :time
970
+
971
+ def initialize(**args)
972
+ update!(**args)
973
+ end
974
+
975
+ # Update properties of this object
976
+ def update!(**args)
977
+ @end_date = args[:end_date] if args.key?(:end_date)
978
+ @start_date = args[:start_date] if args.key?(:start_date)
979
+ @time = args[:time] if args.key?(:time)
980
+ end
981
+ end
982
+
983
+ # Disk encryption configuration for an instance.
984
+ class DiskEncryptionConfiguration
985
+ include Google::Apis::Core::Hashable
986
+
987
+ # This is always *sql#diskEncryptionConfiguration*.
988
+ # Corresponds to the JSON property `kind`
989
+ # @return [String]
990
+ attr_accessor :kind
991
+
992
+ # Resource name of KMS key for disk encryption
993
+ # Corresponds to the JSON property `kmsKeyName`
994
+ # @return [String]
995
+ attr_accessor :kms_key_name
996
+
997
+ def initialize(**args)
998
+ update!(**args)
999
+ end
1000
+
1001
+ # Update properties of this object
1002
+ def update!(**args)
1003
+ @kind = args[:kind] if args.key?(:kind)
1004
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1005
+ end
1006
+ end
1007
+
1008
+ # Disk encryption status for an instance.
1009
+ class DiskEncryptionStatus
1010
+ include Google::Apis::Core::Hashable
1011
+
1012
+ # This is always *sql#diskEncryptionStatus*.
1013
+ # Corresponds to the JSON property `kind`
1014
+ # @return [String]
1015
+ attr_accessor :kind
1016
+
1017
+ # KMS key version used to encrypt the Cloud SQL instance resource
1018
+ # Corresponds to the JSON property `kmsKeyVersionName`
1019
+ # @return [String]
1020
+ attr_accessor :kms_key_version_name
1021
+
1022
+ def initialize(**args)
1023
+ update!(**args)
1024
+ end
1025
+
1026
+ # Update properties of this object
1027
+ def update!(**args)
1028
+ @kind = args[:kind] if args.key?(:kind)
1029
+ @kms_key_version_name = args[:kms_key_version_name] if args.key?(:kms_key_version_name)
1030
+ end
1031
+ end
1032
+
1033
+ # Database instance export context.
1034
+ class ExportContext
1035
+ include Google::Apis::Core::Hashable
1036
+
1037
+ # Options for exporting data as CSV. *MySQL* and *PostgreSQL* instances only.
1038
+ # Corresponds to the JSON property `csvExportOptions`
1039
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::CsvExportOptions]
1040
+ attr_accessor :csv_export_options
1041
+
1042
+ # Databases to be exported. *MySQL instances:* If *fileType* is *SQL* and no
1043
+ # database is specified, all databases are exported, except for the *mysql*
1044
+ # system database. If *fileType* is *CSV*, you can specify one database, either
1045
+ # by using this property or by using the *csvExportOptions.selectQuery* property,
1046
+ # which takes precedence over this property. *PostgreSQL instances:* You must
1047
+ # specify one database to be exported. If *fileType* is *CSV*, this database
1048
+ # must match the one specified in the *csvExportOptions.selectQuery* property.
1049
+ # Corresponds to the JSON property `databases`
1050
+ # @return [Array<String>]
1051
+ attr_accessor :databases
1052
+
1053
+ # The file type for the specified uri. *SQL*: The file contains SQL statements. *
1054
+ # CSV*: The file contains CSV data. *BAK*: The file contains backup data for a
1055
+ # SQL Server instance.
1056
+ # Corresponds to the JSON property `fileType`
1057
+ # @return [String]
1058
+ attr_accessor :file_type
1059
+
1060
+ # This is always *sql#exportContext*.
1061
+ # Corresponds to the JSON property `kind`
1062
+ # @return [String]
1063
+ attr_accessor :kind
1064
+
1065
+ # Option for export offload.
1066
+ # Corresponds to the JSON property `offload`
1067
+ # @return [Boolean]
1068
+ attr_accessor :offload
1069
+ alias_method :offload?, :offload
1070
+
1071
+ # Options for exporting data as SQL statements.
1072
+ # Corresponds to the JSON property `sqlExportOptions`
1073
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions]
1074
+ attr_accessor :sql_export_options
1075
+
1076
+ # The path to the file in Google Cloud Storage where the export will be stored.
1077
+ # The URI is in the form *gs://bucketName/fileName*. If the file already exists,
1078
+ # the request succeeds, but the operation fails. If *fileType* is *SQL* and the
1079
+ # filename ends with .gz, the contents are compressed.
1080
+ # Corresponds to the JSON property `uri`
1081
+ # @return [String]
1082
+ attr_accessor :uri
1083
+
1084
+ def initialize(**args)
1085
+ update!(**args)
1086
+ end
1087
+
1088
+ # Update properties of this object
1089
+ def update!(**args)
1090
+ @csv_export_options = args[:csv_export_options] if args.key?(:csv_export_options)
1091
+ @databases = args[:databases] if args.key?(:databases)
1092
+ @file_type = args[:file_type] if args.key?(:file_type)
1093
+ @kind = args[:kind] if args.key?(:kind)
1094
+ @offload = args[:offload] if args.key?(:offload)
1095
+ @sql_export_options = args[:sql_export_options] if args.key?(:sql_export_options)
1096
+ @uri = args[:uri] if args.key?(:uri)
1097
+ end
1098
+
1099
+ # Options for exporting data as CSV. *MySQL* and *PostgreSQL* instances only.
1100
+ class CsvExportOptions
1101
+ include Google::Apis::Core::Hashable
1102
+
1103
+ # The select query used to extract the data.
1104
+ # Corresponds to the JSON property `selectQuery`
1105
+ # @return [String]
1106
+ attr_accessor :select_query
1107
+
1108
+ def initialize(**args)
1109
+ update!(**args)
1110
+ end
1111
+
1112
+ # Update properties of this object
1113
+ def update!(**args)
1114
+ @select_query = args[:select_query] if args.key?(:select_query)
1115
+ end
1116
+ end
1117
+
1118
+ # Options for exporting data as SQL statements.
1119
+ class SqlExportOptions
1120
+ include Google::Apis::Core::Hashable
1121
+
1122
+ # Options for exporting from MySQL.
1123
+ # Corresponds to the JSON property `mysqlExportOptions`
1124
+ # @return [Google::Apis::SqladminV1beta4::ExportContext::SqlExportOptions::MysqlExportOptions]
1125
+ attr_accessor :mysql_export_options
1126
+
1127
+ # Export only schemas.
1128
+ # Corresponds to the JSON property `schemaOnly`
1129
+ # @return [Boolean]
1130
+ attr_accessor :schema_only
1131
+ alias_method :schema_only?, :schema_only
1132
+
1133
+ # Tables to export, or that were exported, from the specified database. If you
1134
+ # specify tables, specify one and only one database. For PostgreSQL instances,
1135
+ # you can specify only one table.
1136
+ # Corresponds to the JSON property `tables`
1137
+ # @return [Array<String>]
1138
+ attr_accessor :tables
1139
+
1140
+ def initialize(**args)
1141
+ update!(**args)
1142
+ end
1143
+
1144
+ # Update properties of this object
1145
+ def update!(**args)
1146
+ @mysql_export_options = args[:mysql_export_options] if args.key?(:mysql_export_options)
1147
+ @schema_only = args[:schema_only] if args.key?(:schema_only)
1148
+ @tables = args[:tables] if args.key?(:tables)
1149
+ end
1150
+
1151
+ # Options for exporting from MySQL.
1152
+ class MysqlExportOptions
1153
+ include Google::Apis::Core::Hashable
1154
+
1155
+ # Option to include SQL statement required to set up replication. If set to *1*,
1156
+ # the dump file includes a CHANGE MASTER TO statement with the binary log
1157
+ # coordinates, and --set-gtid-purged is set to ON. If set to *2*, the CHANGE
1158
+ # MASTER TO statement is written as a SQL comment and has no effect. If set to
1159
+ # any value other than *1*, --set-gtid-purged is set to OFF.
1160
+ # Corresponds to the JSON property `masterData`
1161
+ # @return [Fixnum]
1162
+ attr_accessor :master_data
1163
+
1164
+ def initialize(**args)
1165
+ update!(**args)
1166
+ end
1167
+
1168
+ # Update properties of this object
1169
+ def update!(**args)
1170
+ @master_data = args[:master_data] if args.key?(:master_data)
1171
+ end
1172
+ end
1173
+ end
1174
+ end
1175
+
1176
+ # Database instance failover context.
1177
+ class FailoverContext
1178
+ include Google::Apis::Core::Hashable
1179
+
1180
+ # This is always *sql#failoverContext*.
1181
+ # Corresponds to the JSON property `kind`
1182
+ # @return [String]
1183
+ attr_accessor :kind
1184
+
1185
+ # The current settings version of this instance. Request will be rejected if
1186
+ # this version doesn't match the current settings version.
1187
+ # Corresponds to the JSON property `settingsVersion`
1188
+ # @return [Fixnum]
1189
+ attr_accessor :settings_version
1190
+
1191
+ def initialize(**args)
1192
+ update!(**args)
1193
+ end
1194
+
1195
+ # Update properties of this object
1196
+ def update!(**args)
1197
+ @kind = args[:kind] if args.key?(:kind)
1198
+ @settings_version = args[:settings_version] if args.key?(:settings_version)
1199
+ end
1200
+ end
1201
+
1202
+ # A flag resource.
1203
+ class Flag
1204
+ include Google::Apis::Core::Hashable
1205
+
1206
+ # Use this field if only certain integers are accepted. Can be combined with
1207
+ # min_value and max_value to add additional values.
1208
+ # Corresponds to the JSON property `allowedIntValues`
1209
+ # @return [Array<Fixnum>]
1210
+ attr_accessor :allowed_int_values
1211
+
1212
+ # For *STRING* flags, a list of strings that the value can be set to.
1213
+ # Corresponds to the JSON property `allowedStringValues`
1214
+ # @return [Array<String>]
1215
+ attr_accessor :allowed_string_values
1216
+
1217
+ # The database version this flag applies to. Can be *MYSQL_8_0*, *MYSQL_5_6*, or
1218
+ # *MYSQL_5_7*.
1219
+ # Corresponds to the JSON property `appliesTo`
1220
+ # @return [Array<String>]
1221
+ attr_accessor :applies_to
1222
+
1223
+ # Whether or not the flag is considered in beta.
1224
+ # Corresponds to the JSON property `inBeta`
1225
+ # @return [Boolean]
1226
+ attr_accessor :in_beta
1227
+ alias_method :in_beta?, :in_beta
1228
+
1229
+ # This is always *sql#flag*.
1230
+ # Corresponds to the JSON property `kind`
1231
+ # @return [String]
1232
+ attr_accessor :kind
1233
+
1234
+ # For *INTEGER* flags, the maximum allowed value.
1235
+ # Corresponds to the JSON property `maxValue`
1236
+ # @return [Fixnum]
1237
+ attr_accessor :max_value
1238
+
1239
+ # For *INTEGER* flags, the minimum allowed value.
1240
+ # Corresponds to the JSON property `minValue`
1241
+ # @return [Fixnum]
1242
+ attr_accessor :min_value
1243
+
1244
+ # This is the name of the flag. Flag names always use underscores, not hyphens,
1245
+ # for example: *max_allowed_packet*
1246
+ # Corresponds to the JSON property `name`
1247
+ # @return [String]
1248
+ attr_accessor :name
1249
+
1250
+ # Indicates whether changing this flag will trigger a database restart. Only
1251
+ # applicable to Second Generation instances.
1252
+ # Corresponds to the JSON property `requiresRestart`
1253
+ # @return [Boolean]
1254
+ attr_accessor :requires_restart
1255
+ alias_method :requires_restart?, :requires_restart
1256
+
1257
+ # The type of the flag. Flags are typed to being *BOOLEAN*, *STRING*, *INTEGER*
1258
+ # or *NONE*. *NONE* is used for flags which do not take a value, such as *
1259
+ # skip_grant_tables*.
1260
+ # Corresponds to the JSON property `type`
1261
+ # @return [String]
1262
+ attr_accessor :type
1263
+
1264
+ def initialize(**args)
1265
+ update!(**args)
1266
+ end
1267
+
1268
+ # Update properties of this object
1269
+ def update!(**args)
1270
+ @allowed_int_values = args[:allowed_int_values] if args.key?(:allowed_int_values)
1271
+ @allowed_string_values = args[:allowed_string_values] if args.key?(:allowed_string_values)
1272
+ @applies_to = args[:applies_to] if args.key?(:applies_to)
1273
+ @in_beta = args[:in_beta] if args.key?(:in_beta)
1274
+ @kind = args[:kind] if args.key?(:kind)
1275
+ @max_value = args[:max_value] if args.key?(:max_value)
1276
+ @min_value = args[:min_value] if args.key?(:min_value)
1277
+ @name = args[:name] if args.key?(:name)
1278
+ @requires_restart = args[:requires_restart] if args.key?(:requires_restart)
1279
+ @type = args[:type] if args.key?(:type)
1280
+ end
1281
+ end
1282
+
1283
+ # Flags list response.
1284
+ class ListFlagsResponse
1285
+ include Google::Apis::Core::Hashable
1286
+
1287
+ # List of flags.
1288
+ # Corresponds to the JSON property `items`
1289
+ # @return [Array<Google::Apis::SqladminV1beta4::Flag>]
1290
+ attr_accessor :items
1291
+
1292
+ # This is always *sql#flagsList*.
1293
+ # Corresponds to the JSON property `kind`
1294
+ # @return [String]
1295
+ attr_accessor :kind
1296
+
1297
+ def initialize(**args)
1298
+ update!(**args)
1299
+ end
1300
+
1301
+ # Update properties of this object
1302
+ def update!(**args)
1303
+ @items = args[:items] if args.key?(:items)
1304
+ @kind = args[:kind] if args.key?(:kind)
1305
+ end
1306
+ end
1307
+
1308
+ # Database instance import context.
1309
+ class ImportContext
1310
+ include Google::Apis::Core::Hashable
1311
+
1312
+ # Import parameters specific to SQL Server .BAK files
1313
+ # Corresponds to the JSON property `bakImportOptions`
1314
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::BakImportOptions]
1315
+ attr_accessor :bak_import_options
1316
+
1317
+ # Options for importing data as CSV.
1318
+ # Corresponds to the JSON property `csvImportOptions`
1319
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::CsvImportOptions]
1320
+ attr_accessor :csv_import_options
1321
+
1322
+ # The target database for the import. If *fileType* is *SQL*, this field is
1323
+ # required only if the import file does not specify a database, and is
1324
+ # overridden by any database specification in the import file. If *fileType* is *
1325
+ # CSV*, one database must be specified.
1326
+ # Corresponds to the JSON property `database`
1327
+ # @return [String]
1328
+ attr_accessor :database
1329
+
1330
+ # The file type for the specified uri. *SQL*: The file contains SQL statements. *
1331
+ # CSV*: The file contains CSV data.
1332
+ # Corresponds to the JSON property `fileType`
1333
+ # @return [String]
1334
+ attr_accessor :file_type
1335
+
1336
+ # The PostgreSQL user for this import operation. PostgreSQL instances only.
1337
+ # Corresponds to the JSON property `importUser`
1338
+ # @return [String]
1339
+ attr_accessor :import_user
1340
+
1341
+ # This is always *sql#importContext*.
1342
+ # Corresponds to the JSON property `kind`
1343
+ # @return [String]
1344
+ attr_accessor :kind
1345
+
1346
+ # Path to the import file in Cloud Storage, in the form *gs://bucketName/
1347
+ # fileName*. Compressed gzip files (.gz) are supported when *fileType* is *SQL*.
1348
+ # The instance must have write permissions to the bucket and read access to the
1349
+ # file.
1350
+ # Corresponds to the JSON property `uri`
1351
+ # @return [String]
1352
+ attr_accessor :uri
1353
+
1354
+ def initialize(**args)
1355
+ update!(**args)
1356
+ end
1357
+
1358
+ # Update properties of this object
1359
+ def update!(**args)
1360
+ @bak_import_options = args[:bak_import_options] if args.key?(:bak_import_options)
1361
+ @csv_import_options = args[:csv_import_options] if args.key?(:csv_import_options)
1362
+ @database = args[:database] if args.key?(:database)
1363
+ @file_type = args[:file_type] if args.key?(:file_type)
1364
+ @import_user = args[:import_user] if args.key?(:import_user)
1365
+ @kind = args[:kind] if args.key?(:kind)
1366
+ @uri = args[:uri] if args.key?(:uri)
1367
+ end
1368
+
1369
+ # Import parameters specific to SQL Server .BAK files
1370
+ class BakImportOptions
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ #
1374
+ # Corresponds to the JSON property `encryptionOptions`
1375
+ # @return [Google::Apis::SqladminV1beta4::ImportContext::BakImportOptions::EncryptionOptions]
1376
+ attr_accessor :encryption_options
1377
+
1378
+ def initialize(**args)
1379
+ update!(**args)
1380
+ end
1381
+
1382
+ # Update properties of this object
1383
+ def update!(**args)
1384
+ @encryption_options = args[:encryption_options] if args.key?(:encryption_options)
1385
+ end
1386
+
1387
+ #
1388
+ class EncryptionOptions
1389
+ include Google::Apis::Core::Hashable
1390
+
1391
+ # Path to the Certificate (.cer) in Cloud Storage, in the form *gs://bucketName/
1392
+ # fileName*. The instance must have write permissions to the bucket and read
1393
+ # access to the file.
1394
+ # Corresponds to the JSON property `certPath`
1395
+ # @return [String]
1396
+ attr_accessor :cert_path
1397
+
1398
+ # Password that encrypts the private key
1399
+ # Corresponds to the JSON property `pvkPassword`
1400
+ # @return [String]
1401
+ attr_accessor :pvk_password
1402
+
1403
+ # Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form *gs://
1404
+ # bucketName/fileName*. The instance must have write permissions to the bucket
1405
+ # and read access to the file.
1406
+ # Corresponds to the JSON property `pvkPath`
1407
+ # @return [String]
1408
+ attr_accessor :pvk_path
1409
+
1410
+ def initialize(**args)
1411
+ update!(**args)
1412
+ end
1413
+
1414
+ # Update properties of this object
1415
+ def update!(**args)
1416
+ @cert_path = args[:cert_path] if args.key?(:cert_path)
1417
+ @pvk_password = args[:pvk_password] if args.key?(:pvk_password)
1418
+ @pvk_path = args[:pvk_path] if args.key?(:pvk_path)
1419
+ end
1420
+ end
1421
+ end
1422
+
1423
+ # Options for importing data as CSV.
1424
+ class CsvImportOptions
1425
+ include Google::Apis::Core::Hashable
1426
+
1427
+ # The columns to which CSV data is imported. If not specified, all columns of
1428
+ # the database table are loaded with CSV data.
1429
+ # Corresponds to the JSON property `columns`
1430
+ # @return [Array<String>]
1431
+ attr_accessor :columns
1432
+
1433
+ # The table to which CSV data is imported.
1434
+ # Corresponds to the JSON property `table`
1435
+ # @return [String]
1436
+ attr_accessor :table
1437
+
1438
+ def initialize(**args)
1439
+ update!(**args)
1440
+ end
1441
+
1442
+ # Update properties of this object
1443
+ def update!(**args)
1444
+ @columns = args[:columns] if args.key?(:columns)
1445
+ @table = args[:table] if args.key?(:table)
1446
+ end
1447
+ end
1448
+ end
1449
+
1450
+ # Insights configuration. This specifies when Cloud SQL Insights feature is
1451
+ # enabled and optional configuration.
1452
+ class InsightsConfig
1453
+ include Google::Apis::Core::Hashable
1454
+
1455
+ # Whether Query Insights feature is enabled.
1456
+ # Corresponds to the JSON property `queryInsightsEnabled`
1457
+ # @return [Boolean]
1458
+ attr_accessor :query_insights_enabled
1459
+ alias_method :query_insights_enabled?, :query_insights_enabled
1460
+
1461
+ # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-
1462
+ # 4500 bytes. Query length more than this field value will be truncated to this
1463
+ # value. When unset, query length will be the default value.
1464
+ # Corresponds to the JSON property `queryStringLength`
1465
+ # @return [Fixnum]
1466
+ attr_accessor :query_string_length
1467
+
1468
+ # Whether Query Insights will record application tags from query when enabled.
1469
+ # Corresponds to the JSON property `recordApplicationTags`
1470
+ # @return [Boolean]
1471
+ attr_accessor :record_application_tags
1472
+ alias_method :record_application_tags?, :record_application_tags
1473
+
1474
+ # Whether Query Insights will record client address when enabled.
1475
+ # Corresponds to the JSON property `recordClientAddress`
1476
+ # @return [Boolean]
1477
+ attr_accessor :record_client_address
1478
+ alias_method :record_client_address?, :record_client_address
1479
+
1480
+ def initialize(**args)
1481
+ update!(**args)
1482
+ end
1483
+
1484
+ # Update properties of this object
1485
+ def update!(**args)
1486
+ @query_insights_enabled = args[:query_insights_enabled] if args.key?(:query_insights_enabled)
1487
+ @query_string_length = args[:query_string_length] if args.key?(:query_string_length)
1488
+ @record_application_tags = args[:record_application_tags] if args.key?(:record_application_tags)
1489
+ @record_client_address = args[:record_client_address] if args.key?(:record_client_address)
1490
+ end
1491
+ end
1492
+
1493
+ # Database instance clone request.
1494
+ class CloneInstancesRequest
1495
+ include Google::Apis::Core::Hashable
1496
+
1497
+ # Database instance clone context.
1498
+ # Corresponds to the JSON property `cloneContext`
1499
+ # @return [Google::Apis::SqladminV1beta4::CloneContext]
1500
+ attr_accessor :clone_context
1501
+
1502
+ def initialize(**args)
1503
+ update!(**args)
1504
+ end
1505
+
1506
+ # Update properties of this object
1507
+ def update!(**args)
1508
+ @clone_context = args[:clone_context] if args.key?(:clone_context)
1509
+ end
1510
+ end
1511
+
1512
+ # Database demote primary instance request.
1513
+ class InstancesDemoteMasterRequest
1514
+ include Google::Apis::Core::Hashable
1515
+
1516
+ # Database instance demote primary instance context.
1517
+ # Corresponds to the JSON property `demoteMasterContext`
1518
+ # @return [Google::Apis::SqladminV1beta4::DemoteMasterContext]
1519
+ attr_accessor :demote_master_context
1520
+
1521
+ def initialize(**args)
1522
+ update!(**args)
1523
+ end
1524
+
1525
+ # Update properties of this object
1526
+ def update!(**args)
1527
+ @demote_master_context = args[:demote_master_context] if args.key?(:demote_master_context)
1528
+ end
1529
+ end
1530
+
1531
+ # Database instance export request.
1532
+ class ExportInstancesRequest
1533
+ include Google::Apis::Core::Hashable
1534
+
1535
+ # Database instance export context.
1536
+ # Corresponds to the JSON property `exportContext`
1537
+ # @return [Google::Apis::SqladminV1beta4::ExportContext]
1538
+ attr_accessor :export_context
1539
+
1540
+ def initialize(**args)
1541
+ update!(**args)
1542
+ end
1543
+
1544
+ # Update properties of this object
1545
+ def update!(**args)
1546
+ @export_context = args[:export_context] if args.key?(:export_context)
1547
+ end
1548
+ end
1549
+
1550
+ # Instance failover request.
1551
+ class InstancesFailoverRequest
1552
+ include Google::Apis::Core::Hashable
1553
+
1554
+ # Database instance failover context.
1555
+ # Corresponds to the JSON property `failoverContext`
1556
+ # @return [Google::Apis::SqladminV1beta4::FailoverContext]
1557
+ attr_accessor :failover_context
1558
+
1559
+ def initialize(**args)
1560
+ update!(**args)
1561
+ end
1562
+
1563
+ # Update properties of this object
1564
+ def update!(**args)
1565
+ @failover_context = args[:failover_context] if args.key?(:failover_context)
1566
+ end
1567
+ end
1568
+
1569
+ # Database instance import request.
1570
+ class ImportInstancesRequest
1571
+ include Google::Apis::Core::Hashable
1572
+
1573
+ # Database instance import context.
1574
+ # Corresponds to the JSON property `importContext`
1575
+ # @return [Google::Apis::SqladminV1beta4::ImportContext]
1576
+ attr_accessor :import_context
1577
+
1578
+ def initialize(**args)
1579
+ update!(**args)
1580
+ end
1581
+
1582
+ # Update properties of this object
1583
+ def update!(**args)
1584
+ @import_context = args[:import_context] if args.key?(:import_context)
1585
+ end
1586
+ end
1587
+
1588
+ # Database instances list response.
1589
+ class ListInstancesResponse
1590
+ include Google::Apis::Core::Hashable
1591
+
1592
+ # List of database instance resources.
1593
+ # Corresponds to the JSON property `items`
1594
+ # @return [Array<Google::Apis::SqladminV1beta4::DatabaseInstance>]
1595
+ attr_accessor :items
1596
+
1597
+ # This is always *sql#instancesList*.
1598
+ # Corresponds to the JSON property `kind`
1599
+ # @return [String]
1600
+ attr_accessor :kind
1601
+
1602
+ # The continuation token, used to page through large result sets. Provide this
1603
+ # value in a subsequent request to return the next page of results.
1604
+ # Corresponds to the JSON property `nextPageToken`
1605
+ # @return [String]
1606
+ attr_accessor :next_page_token
1607
+
1608
+ # List of warnings that occurred while handling the request.
1609
+ # Corresponds to the JSON property `warnings`
1610
+ # @return [Array<Google::Apis::SqladminV1beta4::ApiWarning>]
1611
+ attr_accessor :warnings
1612
+
1613
+ def initialize(**args)
1614
+ update!(**args)
1615
+ end
1616
+
1617
+ # Update properties of this object
1618
+ def update!(**args)
1619
+ @items = args[:items] if args.key?(:items)
1620
+ @kind = args[:kind] if args.key?(:kind)
1621
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1622
+ @warnings = args[:warnings] if args.key?(:warnings)
1623
+ end
1624
+ end
1625
+
1626
+ # Instances ListServerCas response.
1627
+ class InstancesListServerCasResponse
1628
+ include Google::Apis::Core::Hashable
1629
+
1630
+ #
1631
+ # Corresponds to the JSON property `activeVersion`
1632
+ # @return [String]
1633
+ attr_accessor :active_version
1634
+
1635
+ # List of server CA certificates for the instance.
1636
+ # Corresponds to the JSON property `certs`
1637
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
1638
+ attr_accessor :certs
1639
+
1640
+ # This is always *sql#instancesListServerCas*.
1641
+ # Corresponds to the JSON property `kind`
1642
+ # @return [String]
1643
+ attr_accessor :kind
1644
+
1645
+ def initialize(**args)
1646
+ update!(**args)
1647
+ end
1648
+
1649
+ # Update properties of this object
1650
+ def update!(**args)
1651
+ @active_version = args[:active_version] if args.key?(:active_version)
1652
+ @certs = args[:certs] if args.key?(:certs)
1653
+ @kind = args[:kind] if args.key?(:kind)
1654
+ end
1655
+ end
1656
+
1657
+ # Database instance restore backup request.
1658
+ class RestoreInstancesBackupRequest
1659
+ include Google::Apis::Core::Hashable
1660
+
1661
+ # Database instance restore from backup context. Backup context contains source
1662
+ # instance id and project id.
1663
+ # Corresponds to the JSON property `restoreBackupContext`
1664
+ # @return [Google::Apis::SqladminV1beta4::RestoreBackupContext]
1665
+ attr_accessor :restore_backup_context
1666
+
1667
+ def initialize(**args)
1668
+ update!(**args)
1669
+ end
1670
+
1671
+ # Update properties of this object
1672
+ def update!(**args)
1673
+ @restore_backup_context = args[:restore_backup_context] if args.key?(:restore_backup_context)
1674
+ end
1675
+ end
1676
+
1677
+ # Rotate Server CA request.
1678
+ class InstancesRotateServerCaRequest
1679
+ include Google::Apis::Core::Hashable
1680
+
1681
+ # Instance rotate server CA context.
1682
+ # Corresponds to the JSON property `rotateServerCaContext`
1683
+ # @return [Google::Apis::SqladminV1beta4::RotateServerCaContext]
1684
+ attr_accessor :rotate_server_ca_context
1685
+
1686
+ def initialize(**args)
1687
+ update!(**args)
1688
+ end
1689
+
1690
+ # Update properties of this object
1691
+ def update!(**args)
1692
+ @rotate_server_ca_context = args[:rotate_server_ca_context] if args.key?(:rotate_server_ca_context)
1693
+ end
1694
+ end
1695
+
1696
+ # Instance truncate log request.
1697
+ class InstancesTruncateLogRequest
1698
+ include Google::Apis::Core::Hashable
1699
+
1700
+ # Database Instance truncate log context.
1701
+ # Corresponds to the JSON property `truncateLogContext`
1702
+ # @return [Google::Apis::SqladminV1beta4::TruncateLogContext]
1703
+ attr_accessor :truncate_log_context
1704
+
1705
+ def initialize(**args)
1706
+ update!(**args)
1707
+ end
1708
+
1709
+ # Update properties of this object
1710
+ def update!(**args)
1711
+ @truncate_log_context = args[:truncate_log_context] if args.key?(:truncate_log_context)
1712
+ end
1713
+ end
1714
+
1715
+ # IP Management configuration.
1716
+ class IpConfiguration
1717
+ include Google::Apis::Core::Hashable
1718
+
1719
+ # The list of external networks that are allowed to connect to the instance
1720
+ # using the IP. In 'CIDR' notation, also known as 'slash' notation (for example:
1721
+ # *192.168.100.0/24*).
1722
+ # Corresponds to the JSON property `authorizedNetworks`
1723
+ # @return [Array<Google::Apis::SqladminV1beta4::AclEntry>]
1724
+ attr_accessor :authorized_networks
1725
+
1726
+ # Whether the instance is assigned a public IP address or not.
1727
+ # Corresponds to the JSON property `ipv4Enabled`
1728
+ # @return [Boolean]
1729
+ attr_accessor :ipv4_enabled
1730
+ alias_method :ipv4_enabled?, :ipv4_enabled
1731
+
1732
+ # The resource link for the VPC network from which the Cloud SQL instance is
1733
+ # accessible for private IP. For example, */projects/myProject/global/networks/
1734
+ # default*. This setting can be updated, but it cannot be removed after it is
1735
+ # set.
1736
+ # Corresponds to the JSON property `privateNetwork`
1737
+ # @return [String]
1738
+ attr_accessor :private_network
1739
+
1740
+ # Whether SSL connections over IP are enforced or not.
1741
+ # Corresponds to the JSON property `requireSsl`
1742
+ # @return [Boolean]
1743
+ attr_accessor :require_ssl
1744
+ alias_method :require_ssl?, :require_ssl
1745
+
1746
+ def initialize(**args)
1747
+ update!(**args)
1748
+ end
1749
+
1750
+ # Update properties of this object
1751
+ def update!(**args)
1752
+ @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
1753
+ @ipv4_enabled = args[:ipv4_enabled] if args.key?(:ipv4_enabled)
1754
+ @private_network = args[:private_network] if args.key?(:private_network)
1755
+ @require_ssl = args[:require_ssl] if args.key?(:require_ssl)
1756
+ end
1757
+ end
1758
+
1759
+ # Database instance IP Mapping.
1760
+ class IpMapping
1761
+ include Google::Apis::Core::Hashable
1762
+
1763
+ # The IP address assigned.
1764
+ # Corresponds to the JSON property `ipAddress`
1765
+ # @return [String]
1766
+ attr_accessor :ip_address
1767
+
1768
+ # The due time for this IP to be retired in RFC 3339 format, for example *2012-
1769
+ # 11-15T16:19:00.094Z*. This field is only available when the IP is scheduled to
1770
+ # be retired.
1771
+ # Corresponds to the JSON property `timeToRetire`
1772
+ # @return [String]
1773
+ attr_accessor :time_to_retire
1774
+
1775
+ # The type of this IP address. A *PRIMARY* address is a public address that can
1776
+ # accept incoming connections. A *PRIVATE* address is a private address that can
1777
+ # accept incoming connections. An *OUTGOING* address is the source address of
1778
+ # connections originating from the instance, if supported.
1779
+ # Corresponds to the JSON property `type`
1780
+ # @return [String]
1781
+ attr_accessor :type
1782
+
1783
+ def initialize(**args)
1784
+ update!(**args)
1785
+ end
1786
+
1787
+ # Update properties of this object
1788
+ def update!(**args)
1789
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
1790
+ @time_to_retire = args[:time_to_retire] if args.key?(:time_to_retire)
1791
+ @type = args[:type] if args.key?(:type)
1792
+ end
1793
+ end
1794
+
1795
+ # Preferred location. This specifies where a Cloud SQL instance is located,
1796
+ # either in a specific Compute Engine zone, or co-located with an App Engine
1797
+ # application. Note that if the preferred location is not available, the
1798
+ # instance will be located as close as possible within the region. Only one
1799
+ # location may be specified.
1800
+ class LocationPreference
1801
+ include Google::Apis::Core::Hashable
1802
+
1803
+ # The App Engine application to follow, it must be in the same region as the
1804
+ # Cloud SQL instance.
1805
+ # Corresponds to the JSON property `followGaeApplication`
1806
+ # @return [String]
1807
+ attr_accessor :follow_gae_application
1808
+
1809
+ # This is always *sql#locationPreference*.
1810
+ # Corresponds to the JSON property `kind`
1811
+ # @return [String]
1812
+ attr_accessor :kind
1813
+
1814
+ # The preferred Compute Engine zone for the secondary/failover (for example: us-
1815
+ # central1-a, us-central1-b, etc.). Reserved for future use.
1816
+ # Corresponds to the JSON property `secondaryZone`
1817
+ # @return [String]
1818
+ attr_accessor :secondary_zone
1819
+
1820
+ # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b,
1821
+ # etc.).
1822
+ # Corresponds to the JSON property `zone`
1823
+ # @return [String]
1824
+ attr_accessor :zone
1825
+
1826
+ def initialize(**args)
1827
+ update!(**args)
1828
+ end
1829
+
1830
+ # Update properties of this object
1831
+ def update!(**args)
1832
+ @follow_gae_application = args[:follow_gae_application] if args.key?(:follow_gae_application)
1833
+ @kind = args[:kind] if args.key?(:kind)
1834
+ @secondary_zone = args[:secondary_zone] if args.key?(:secondary_zone)
1835
+ @zone = args[:zone] if args.key?(:zone)
1836
+ end
1837
+ end
1838
+
1839
+ # Maintenance window. This specifies when a Cloud SQL instance is restarted for
1840
+ # system maintenance purposes.
1841
+ class MaintenanceWindow
1842
+ include Google::Apis::Core::Hashable
1843
+
1844
+ # day of week (1-7), starting on Monday.
1845
+ # Corresponds to the JSON property `day`
1846
+ # @return [Fixnum]
1847
+ attr_accessor :day
1848
+
1849
+ # hour of day - 0 to 23.
1850
+ # Corresponds to the JSON property `hour`
1851
+ # @return [Fixnum]
1852
+ attr_accessor :hour
1853
+
1854
+ # This is always *sql#maintenanceWindow*.
1855
+ # Corresponds to the JSON property `kind`
1856
+ # @return [String]
1857
+ attr_accessor :kind
1858
+
1859
+ # Maintenance timing setting: *canary* (Earlier) or *stable* (Later). Learn more.
1860
+ # Corresponds to the JSON property `updateTrack`
1861
+ # @return [String]
1862
+ attr_accessor :update_track
1863
+
1864
+ def initialize(**args)
1865
+ update!(**args)
1866
+ end
1867
+
1868
+ # Update properties of this object
1869
+ def update!(**args)
1870
+ @day = args[:day] if args.key?(:day)
1871
+ @hour = args[:hour] if args.key?(:hour)
1872
+ @kind = args[:kind] if args.key?(:kind)
1873
+ @update_track = args[:update_track] if args.key?(:update_track)
1874
+ end
1875
+ end
1876
+
1877
+ # Read-replica configuration specific to MySQL databases.
1878
+ class MySqlReplicaConfiguration
1879
+ include Google::Apis::Core::Hashable
1880
+
1881
+ # PEM representation of the trusted CA's x509 certificate.
1882
+ # Corresponds to the JSON property `caCertificate`
1883
+ # @return [String]
1884
+ attr_accessor :ca_certificate
1885
+
1886
+ # PEM representation of the replica's x509 certificate.
1887
+ # Corresponds to the JSON property `clientCertificate`
1888
+ # @return [String]
1889
+ attr_accessor :client_certificate
1890
+
1891
+ # PEM representation of the replica's private key. The corresponsing public key
1892
+ # is encoded in the client's certificate.
1893
+ # Corresponds to the JSON property `clientKey`
1894
+ # @return [String]
1895
+ attr_accessor :client_key
1896
+
1897
+ # Seconds to wait between connect retries. MySQL's default is 60 seconds.
1898
+ # Corresponds to the JSON property `connectRetryInterval`
1899
+ # @return [Fixnum]
1900
+ attr_accessor :connect_retry_interval
1901
+
1902
+ # Path to a SQL dump file in Google Cloud Storage from which the replica
1903
+ # instance is to be created. The URI is in the form gs://bucketName/fileName.
1904
+ # Compressed gzip files (.gz) are also supported. Dumps have the binlog co-
1905
+ # ordinates from which replication begins. This can be accomplished by setting --
1906
+ # master-data to 1 when using mysqldump.
1907
+ # Corresponds to the JSON property `dumpFilePath`
1908
+ # @return [String]
1909
+ attr_accessor :dump_file_path
1910
+
1911
+ # This is always *sql#mysqlReplicaConfiguration*.
1912
+ # Corresponds to the JSON property `kind`
1913
+ # @return [String]
1914
+ attr_accessor :kind
1915
+
1916
+ # Interval in milliseconds between replication heartbeats.
1917
+ # Corresponds to the JSON property `masterHeartbeatPeriod`
1918
+ # @return [Fixnum]
1919
+ attr_accessor :master_heartbeat_period
1920
+
1921
+ # The password for the replication connection.
1922
+ # Corresponds to the JSON property `password`
1923
+ # @return [String]
1924
+ attr_accessor :password
1925
+
1926
+ # A list of permissible ciphers to use for SSL encryption.
1927
+ # Corresponds to the JSON property `sslCipher`
1928
+ # @return [String]
1929
+ attr_accessor :ssl_cipher
1930
+
1931
+ # The username for the replication connection.
1932
+ # Corresponds to the JSON property `username`
1933
+ # @return [String]
1934
+ attr_accessor :username
1935
+
1936
+ # Whether or not to check the primary instance's Common Name value in the
1937
+ # certificate that it sends during the SSL handshake.
1938
+ # Corresponds to the JSON property `verifyServerCertificate`
1939
+ # @return [Boolean]
1940
+ attr_accessor :verify_server_certificate
1941
+ alias_method :verify_server_certificate?, :verify_server_certificate
1942
+
1943
+ def initialize(**args)
1944
+ update!(**args)
1945
+ end
1946
+
1947
+ # Update properties of this object
1948
+ def update!(**args)
1949
+ @ca_certificate = args[:ca_certificate] if args.key?(:ca_certificate)
1950
+ @client_certificate = args[:client_certificate] if args.key?(:client_certificate)
1951
+ @client_key = args[:client_key] if args.key?(:client_key)
1952
+ @connect_retry_interval = args[:connect_retry_interval] if args.key?(:connect_retry_interval)
1953
+ @dump_file_path = args[:dump_file_path] if args.key?(:dump_file_path)
1954
+ @kind = args[:kind] if args.key?(:kind)
1955
+ @master_heartbeat_period = args[:master_heartbeat_period] if args.key?(:master_heartbeat_period)
1956
+ @password = args[:password] if args.key?(:password)
1957
+ @ssl_cipher = args[:ssl_cipher] if args.key?(:ssl_cipher)
1958
+ @username = args[:username] if args.key?(:username)
1959
+ @verify_server_certificate = args[:verify_server_certificate] if args.key?(:verify_server_certificate)
1960
+ end
1961
+ end
1962
+
1963
+ # On-premises instance configuration.
1964
+ class OnPremisesConfiguration
1965
+ include Google::Apis::Core::Hashable
1966
+
1967
+ # PEM representation of the trusted CA's x509 certificate.
1968
+ # Corresponds to the JSON property `caCertificate`
1969
+ # @return [String]
1970
+ attr_accessor :ca_certificate
1971
+
1972
+ # PEM representation of the replica's x509 certificate.
1973
+ # Corresponds to the JSON property `clientCertificate`
1974
+ # @return [String]
1975
+ attr_accessor :client_certificate
1976
+
1977
+ # PEM representation of the replica's private key. The corresponsing public key
1978
+ # is encoded in the client's certificate.
1979
+ # Corresponds to the JSON property `clientKey`
1980
+ # @return [String]
1981
+ attr_accessor :client_key
1982
+
1983
+ # The dump file to create the Cloud SQL replica.
1984
+ # Corresponds to the JSON property `dumpFilePath`
1985
+ # @return [String]
1986
+ attr_accessor :dump_file_path
1987
+
1988
+ # The host and port of the on-premises instance in host:port format
1989
+ # Corresponds to the JSON property `hostPort`
1990
+ # @return [String]
1991
+ attr_accessor :host_port
1992
+
1993
+ # This is always *sql#onPremisesConfiguration*.
1994
+ # Corresponds to the JSON property `kind`
1995
+ # @return [String]
1996
+ attr_accessor :kind
1997
+
1998
+ # The password for connecting to on-premises instance.
1999
+ # Corresponds to the JSON property `password`
2000
+ # @return [String]
2001
+ attr_accessor :password
2002
+
2003
+ # The username for connecting to on-premises instance.
2004
+ # Corresponds to the JSON property `username`
2005
+ # @return [String]
2006
+ attr_accessor :username
2007
+
2008
+ def initialize(**args)
2009
+ update!(**args)
2010
+ end
2011
+
2012
+ # Update properties of this object
2013
+ def update!(**args)
2014
+ @ca_certificate = args[:ca_certificate] if args.key?(:ca_certificate)
2015
+ @client_certificate = args[:client_certificate] if args.key?(:client_certificate)
2016
+ @client_key = args[:client_key] if args.key?(:client_key)
2017
+ @dump_file_path = args[:dump_file_path] if args.key?(:dump_file_path)
2018
+ @host_port = args[:host_port] if args.key?(:host_port)
2019
+ @kind = args[:kind] if args.key?(:kind)
2020
+ @password = args[:password] if args.key?(:password)
2021
+ @username = args[:username] if args.key?(:username)
2022
+ end
2023
+ end
2024
+
2025
+ # An Operation resource. For successful operations that return an Operation
2026
+ # resource, only the fields relevant to the operation are populated in the
2027
+ # resource. Next field: 18
2028
+ class Operation
2029
+ include Google::Apis::Core::Hashable
2030
+
2031
+ # Backup context.
2032
+ # Corresponds to the JSON property `backupContext`
2033
+ # @return [Google::Apis::SqladminV1beta4::BackupContext]
2034
+ attr_accessor :backup_context
2035
+
2036
+ # The time this operation finished in UTC timezone in RFC 3339 format, for
2037
+ # example *2012-11-15T16:19:00.094Z*.
2038
+ # Corresponds to the JSON property `endTime`
2039
+ # @return [String]
2040
+ attr_accessor :end_time
2041
+
2042
+ # Database instance operation errors list wrapper.
2043
+ # Corresponds to the JSON property `error`
2044
+ # @return [Google::Apis::SqladminV1beta4::OperationErrors]
2045
+ attr_accessor :error
2046
+
2047
+ # Database instance export context.
2048
+ # Corresponds to the JSON property `exportContext`
2049
+ # @return [Google::Apis::SqladminV1beta4::ExportContext]
2050
+ attr_accessor :export_context
2051
+
2052
+ # Database instance import context.
2053
+ # Corresponds to the JSON property `importContext`
2054
+ # @return [Google::Apis::SqladminV1beta4::ImportContext]
2055
+ attr_accessor :import_context
2056
+
2057
+ # The time this operation was enqueued in UTC timezone in RFC 3339 format, for
2058
+ # example *2012-11-15T16:19:00.094Z*.
2059
+ # Corresponds to the JSON property `insertTime`
2060
+ # @return [String]
2061
+ attr_accessor :insert_time
2062
+
2063
+ # This is always *sql#operation*.
2064
+ # Corresponds to the JSON property `kind`
2065
+ # @return [String]
2066
+ attr_accessor :kind
2067
+
2068
+ # An identifier that uniquely identifies the operation. You can use this
2069
+ # identifier to retrieve the Operations resource that has information about the
2070
+ # operation.
2071
+ # Corresponds to the JSON property `name`
2072
+ # @return [String]
2073
+ attr_accessor :name
2074
+
2075
+ # The type of the operation. Valid values are: *CREATE* *DELETE* *UPDATE* *
2076
+ # RESTART* *IMPORT* *EXPORT* *BACKUP_VOLUME* *RESTORE_VOLUME* *CREATE_USER* *
2077
+ # DELETE_USER* *CREATE_DATABASE* *DELETE_DATABASE*
2078
+ # Corresponds to the JSON property `operationType`
2079
+ # @return [String]
2080
+ attr_accessor :operation_type
2081
+
2082
+ # The URI of this resource.
2083
+ # Corresponds to the JSON property `selfLink`
2084
+ # @return [String]
2085
+ attr_accessor :self_link
2086
+
2087
+ # The time this operation actually started in UTC timezone in RFC 3339 format,
2088
+ # for example *2012-11-15T16:19:00.094Z*.
2089
+ # Corresponds to the JSON property `startTime`
2090
+ # @return [String]
2091
+ attr_accessor :start_time
2092
+
2093
+ # The status of an operation. Valid values are: *PENDING* *RUNNING* *DONE* *
2094
+ # SQL_OPERATION_STATUS_UNSPECIFIED*
2095
+ # Corresponds to the JSON property `status`
2096
+ # @return [String]
2097
+ attr_accessor :status
2098
+
2099
+ # Name of the database instance related to this operation.
2100
+ # Corresponds to the JSON property `targetId`
2101
+ # @return [String]
2102
+ attr_accessor :target_id
2103
+
2104
+ #
2105
+ # Corresponds to the JSON property `targetLink`
2106
+ # @return [String]
2107
+ attr_accessor :target_link
2108
+
2109
+ # The project ID of the target instance related to this operation.
2110
+ # Corresponds to the JSON property `targetProject`
2111
+ # @return [String]
2112
+ attr_accessor :target_project
2113
+
2114
+ # The email address of the user who initiated this operation.
2115
+ # Corresponds to the JSON property `user`
2116
+ # @return [String]
2117
+ attr_accessor :user
2118
+
2119
+ def initialize(**args)
2120
+ update!(**args)
2121
+ end
2122
+
2123
+ # Update properties of this object
2124
+ def update!(**args)
2125
+ @backup_context = args[:backup_context] if args.key?(:backup_context)
2126
+ @end_time = args[:end_time] if args.key?(:end_time)
2127
+ @error = args[:error] if args.key?(:error)
2128
+ @export_context = args[:export_context] if args.key?(:export_context)
2129
+ @import_context = args[:import_context] if args.key?(:import_context)
2130
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
2131
+ @kind = args[:kind] if args.key?(:kind)
2132
+ @name = args[:name] if args.key?(:name)
2133
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
2134
+ @self_link = args[:self_link] if args.key?(:self_link)
2135
+ @start_time = args[:start_time] if args.key?(:start_time)
2136
+ @status = args[:status] if args.key?(:status)
2137
+ @target_id = args[:target_id] if args.key?(:target_id)
2138
+ @target_link = args[:target_link] if args.key?(:target_link)
2139
+ @target_project = args[:target_project] if args.key?(:target_project)
2140
+ @user = args[:user] if args.key?(:user)
2141
+ end
2142
+ end
2143
+
2144
+ # Database instance operation error.
2145
+ class OperationError
2146
+ include Google::Apis::Core::Hashable
2147
+
2148
+ # Identifies the specific error that occurred.
2149
+ # Corresponds to the JSON property `code`
2150
+ # @return [String]
2151
+ attr_accessor :code
2152
+
2153
+ # This is always *sql#operationError*.
2154
+ # Corresponds to the JSON property `kind`
2155
+ # @return [String]
2156
+ attr_accessor :kind
2157
+
2158
+ # Additional information about the error encountered.
2159
+ # Corresponds to the JSON property `message`
2160
+ # @return [String]
2161
+ attr_accessor :message
2162
+
2163
+ def initialize(**args)
2164
+ update!(**args)
2165
+ end
2166
+
2167
+ # Update properties of this object
2168
+ def update!(**args)
2169
+ @code = args[:code] if args.key?(:code)
2170
+ @kind = args[:kind] if args.key?(:kind)
2171
+ @message = args[:message] if args.key?(:message)
2172
+ end
2173
+ end
2174
+
2175
+ # Database instance operation errors list wrapper.
2176
+ class OperationErrors
2177
+ include Google::Apis::Core::Hashable
2178
+
2179
+ # The list of errors encountered while processing this operation.
2180
+ # Corresponds to the JSON property `errors`
2181
+ # @return [Array<Google::Apis::SqladminV1beta4::OperationError>]
2182
+ attr_accessor :errors
2183
+
2184
+ # This is always *sql#operationErrors*.
2185
+ # Corresponds to the JSON property `kind`
2186
+ # @return [String]
2187
+ attr_accessor :kind
2188
+
2189
+ def initialize(**args)
2190
+ update!(**args)
2191
+ end
2192
+
2193
+ # Update properties of this object
2194
+ def update!(**args)
2195
+ @errors = args[:errors] if args.key?(:errors)
2196
+ @kind = args[:kind] if args.key?(:kind)
2197
+ end
2198
+ end
2199
+
2200
+ # Database instance list operations response.
2201
+ class ListOperationsResponse
2202
+ include Google::Apis::Core::Hashable
2203
+
2204
+ # List of operation resources.
2205
+ # Corresponds to the JSON property `items`
2206
+ # @return [Array<Google::Apis::SqladminV1beta4::Operation>]
2207
+ attr_accessor :items
2208
+
2209
+ # This is always *sql#operationsList*.
2210
+ # Corresponds to the JSON property `kind`
2211
+ # @return [String]
2212
+ attr_accessor :kind
2213
+
2214
+ # The continuation token, used to page through large result sets. Provide this
2215
+ # value in a subsequent request to return the next page of results.
2216
+ # Corresponds to the JSON property `nextPageToken`
2217
+ # @return [String]
2218
+ attr_accessor :next_page_token
2219
+
2220
+ def initialize(**args)
2221
+ update!(**args)
2222
+ end
2223
+
2224
+ # Update properties of this object
2225
+ def update!(**args)
2226
+ @items = args[:items] if args.key?(:items)
2227
+ @kind = args[:kind] if args.key?(:kind)
2228
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2229
+ end
2230
+ end
2231
+
2232
+ # Read-replica configuration for connecting to the primary instance.
2233
+ class ReplicaConfiguration
2234
+ include Google::Apis::Core::Hashable
2235
+
2236
+ # Specifies if the replica is the failover target. If the field is set to *true*
2237
+ # the replica will be designated as a failover replica. In case the primary
2238
+ # instance fails, the replica instance will be promoted as the new primary
2239
+ # instance. Only one replica can be specified as failover target, and the
2240
+ # replica has to be in different zone with the primary instance.
2241
+ # Corresponds to the JSON property `failoverTarget`
2242
+ # @return [Boolean]
2243
+ attr_accessor :failover_target
2244
+ alias_method :failover_target?, :failover_target
2245
+
2246
+ # This is always *sql#replicaConfiguration*.
2247
+ # Corresponds to the JSON property `kind`
2248
+ # @return [String]
2249
+ attr_accessor :kind
2250
+
2251
+ # Read-replica configuration specific to MySQL databases.
2252
+ # Corresponds to the JSON property `mysqlReplicaConfiguration`
2253
+ # @return [Google::Apis::SqladminV1beta4::MySqlReplicaConfiguration]
2254
+ attr_accessor :mysql_replica_configuration
2255
+
2256
+ def initialize(**args)
2257
+ update!(**args)
2258
+ end
2259
+
2260
+ # Update properties of this object
2261
+ def update!(**args)
2262
+ @failover_target = args[:failover_target] if args.key?(:failover_target)
2263
+ @kind = args[:kind] if args.key?(:kind)
2264
+ @mysql_replica_configuration = args[:mysql_replica_configuration] if args.key?(:mysql_replica_configuration)
2265
+ end
2266
+ end
2267
+
2268
+ #
2269
+ class Reschedule
2270
+ include Google::Apis::Core::Hashable
2271
+
2272
+ # Required. The type of the reschedule.
2273
+ # Corresponds to the JSON property `rescheduleType`
2274
+ # @return [String]
2275
+ attr_accessor :reschedule_type
2276
+
2277
+ # Optional. Timestamp when the maintenance shall be rescheduled to if
2278
+ # reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example *2012-11-15T16:
2279
+ # 19:00.094Z*.
2280
+ # Corresponds to the JSON property `scheduleTime`
2281
+ # @return [String]
2282
+ attr_accessor :schedule_time
2283
+
2284
+ def initialize(**args)
2285
+ update!(**args)
2286
+ end
2287
+
2288
+ # Update properties of this object
2289
+ def update!(**args)
2290
+ @reschedule_type = args[:reschedule_type] if args.key?(:reschedule_type)
2291
+ @schedule_time = args[:schedule_time] if args.key?(:schedule_time)
2292
+ end
2293
+ end
2294
+
2295
+ # Database instance restore from backup context. Backup context contains source
2296
+ # instance id and project id.
2297
+ class RestoreBackupContext
2298
+ include Google::Apis::Core::Hashable
2299
+
2300
+ # The ID of the backup run to restore from.
2301
+ # Corresponds to the JSON property `backupRunId`
2302
+ # @return [Fixnum]
2303
+ attr_accessor :backup_run_id
2304
+
2305
+ # The ID of the instance that the backup was taken from.
2306
+ # Corresponds to the JSON property `instanceId`
2307
+ # @return [String]
2308
+ attr_accessor :instance_id
2309
+
2310
+ # This is always *sql#restoreBackupContext*.
2311
+ # Corresponds to the JSON property `kind`
2312
+ # @return [String]
2313
+ attr_accessor :kind
2314
+
2315
+ # The full project ID of the source instance.
2316
+ # Corresponds to the JSON property `project`
2317
+ # @return [String]
2318
+ attr_accessor :project
2319
+
2320
+ def initialize(**args)
2321
+ update!(**args)
2322
+ end
2323
+
2324
+ # Update properties of this object
2325
+ def update!(**args)
2326
+ @backup_run_id = args[:backup_run_id] if args.key?(:backup_run_id)
2327
+ @instance_id = args[:instance_id] if args.key?(:instance_id)
2328
+ @kind = args[:kind] if args.key?(:kind)
2329
+ @project = args[:project] if args.key?(:project)
2330
+ end
2331
+ end
2332
+
2333
+ # Instance rotate server CA context.
2334
+ class RotateServerCaContext
2335
+ include Google::Apis::Core::Hashable
2336
+
2337
+ # This is always *sql#rotateServerCaContext*.
2338
+ # Corresponds to the JSON property `kind`
2339
+ # @return [String]
2340
+ attr_accessor :kind
2341
+
2342
+ # The fingerprint of the next version to be rotated to. If left unspecified,
2343
+ # will be rotated to the most recently added server CA version.
2344
+ # Corresponds to the JSON property `nextVersion`
2345
+ # @return [String]
2346
+ attr_accessor :next_version
2347
+
2348
+ def initialize(**args)
2349
+ update!(**args)
2350
+ end
2351
+
2352
+ # Update properties of this object
2353
+ def update!(**args)
2354
+ @kind = args[:kind] if args.key?(:kind)
2355
+ @next_version = args[:next_version] if args.key?(:next_version)
2356
+ end
2357
+ end
2358
+
2359
+ # Database instance settings.
2360
+ class Settings
2361
+ include Google::Apis::Core::Hashable
2362
+
2363
+ # The activation policy specifies when the instance is activated; it is
2364
+ # applicable only when the instance state is RUNNABLE. Valid values: *ALWAYS*:
2365
+ # The instance is on, and remains so even in the absence of connection requests.
2366
+ # *NEVER*: The instance is off; it is not activated, even if a connection
2367
+ # request arrives.
2368
+ # Corresponds to the JSON property `activationPolicy`
2369
+ # @return [String]
2370
+ attr_accessor :activation_policy
2371
+
2372
+ # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
2373
+ # Corresponds to the JSON property `activeDirectoryConfig`
2374
+ # @return [Google::Apis::SqladminV1beta4::SqlActiveDirectoryConfig]
2375
+ attr_accessor :active_directory_config
2376
+
2377
+ # The App Engine app IDs that can access this instance. (Deprecated) Applied to
2378
+ # First Generation instances only.
2379
+ # Corresponds to the JSON property `authorizedGaeApplications`
2380
+ # @return [Array<String>]
2381
+ attr_accessor :authorized_gae_applications
2382
+
2383
+ # Availability type. Potential values: *ZONAL*: The instance serves data from
2384
+ # only one zone. Outages in that zone affect data accessibility. *REGIONAL*: The
2385
+ # instance can serve data from more than one zone in a region (it is highly
2386
+ # available). For more information, see Overview of the High Availability
2387
+ # Configuration.
2388
+ # Corresponds to the JSON property `availabilityType`
2389
+ # @return [String]
2390
+ attr_accessor :availability_type
2391
+
2392
+ # Database instance backup configuration.
2393
+ # Corresponds to the JSON property `backupConfiguration`
2394
+ # @return [Google::Apis::SqladminV1beta4::BackupConfiguration]
2395
+ attr_accessor :backup_configuration
2396
+
2397
+ # The name of server Instance collation.
2398
+ # Corresponds to the JSON property `collation`
2399
+ # @return [String]
2400
+ attr_accessor :collation
2401
+
2402
+ # Configuration specific to read replica instances. Indicates whether database
2403
+ # flags for crash-safe replication are enabled. This property was only
2404
+ # applicable to First Generation instances.
2405
+ # Corresponds to the JSON property `crashSafeReplicationEnabled`
2406
+ # @return [Boolean]
2407
+ attr_accessor :crash_safe_replication_enabled
2408
+ alias_method :crash_safe_replication_enabled?, :crash_safe_replication_enabled
2409
+
2410
+ # The size of data disk, in GB. The data disk size minimum is 10GB.
2411
+ # Corresponds to the JSON property `dataDiskSizeGb`
2412
+ # @return [Fixnum]
2413
+ attr_accessor :data_disk_size_gb
2414
+
2415
+ # The type of data disk: PD_SSD (default) or PD_HDD. Not used for First
2416
+ # Generation instances.
2417
+ # Corresponds to the JSON property `dataDiskType`
2418
+ # @return [String]
2419
+ attr_accessor :data_disk_type
2420
+
2421
+ # The database flags passed to the instance at startup.
2422
+ # Corresponds to the JSON property `databaseFlags`
2423
+ # @return [Array<Google::Apis::SqladminV1beta4::DatabaseFlags>]
2424
+ attr_accessor :database_flags
2425
+
2426
+ # Configuration specific to read replica instances. Indicates whether
2427
+ # replication is enabled or not.
2428
+ # Corresponds to the JSON property `databaseReplicationEnabled`
2429
+ # @return [Boolean]
2430
+ attr_accessor :database_replication_enabled
2431
+ alias_method :database_replication_enabled?, :database_replication_enabled
2432
+
2433
+ # Deny maintenance periods
2434
+ # Corresponds to the JSON property `denyMaintenancePeriods`
2435
+ # @return [Array<Google::Apis::SqladminV1beta4::DenyMaintenancePeriod>]
2436
+ attr_accessor :deny_maintenance_periods
2437
+
2438
+ # Insights configuration. This specifies when Cloud SQL Insights feature is
2439
+ # enabled and optional configuration.
2440
+ # Corresponds to the JSON property `insightsConfig`
2441
+ # @return [Google::Apis::SqladminV1beta4::InsightsConfig]
2442
+ attr_accessor :insights_config
2443
+
2444
+ # IP Management configuration.
2445
+ # Corresponds to the JSON property `ipConfiguration`
2446
+ # @return [Google::Apis::SqladminV1beta4::IpConfiguration]
2447
+ attr_accessor :ip_configuration
2448
+
2449
+ # This is always *sql#settings*.
2450
+ # Corresponds to the JSON property `kind`
2451
+ # @return [String]
2452
+ attr_accessor :kind
2453
+
2454
+ # Preferred location. This specifies where a Cloud SQL instance is located,
2455
+ # either in a specific Compute Engine zone, or co-located with an App Engine
2456
+ # application. Note that if the preferred location is not available, the
2457
+ # instance will be located as close as possible within the region. Only one
2458
+ # location may be specified.
2459
+ # Corresponds to the JSON property `locationPreference`
2460
+ # @return [Google::Apis::SqladminV1beta4::LocationPreference]
2461
+ attr_accessor :location_preference
2462
+
2463
+ # Maintenance window. This specifies when a Cloud SQL instance is restarted for
2464
+ # system maintenance purposes.
2465
+ # Corresponds to the JSON property `maintenanceWindow`
2466
+ # @return [Google::Apis::SqladminV1beta4::MaintenanceWindow]
2467
+ attr_accessor :maintenance_window
2468
+
2469
+ # The pricing plan for this instance. This can be either *PER_USE* or *PACKAGE*.
2470
+ # Only *PER_USE* is supported for Second Generation instances.
2471
+ # Corresponds to the JSON property `pricingPlan`
2472
+ # @return [String]
2473
+ attr_accessor :pricing_plan
2474
+
2475
+ # The type of replication this instance uses. This can be either *ASYNCHRONOUS*
2476
+ # or *SYNCHRONOUS*. (Deprecated_ This property was only applicable to First
2477
+ # Generation instances.
2478
+ # Corresponds to the JSON property `replicationType`
2479
+ # @return [String]
2480
+ attr_accessor :replication_type
2481
+
2482
+ # The version of instance settings. This is a required field for update method
2483
+ # to make sure concurrent updates are handled properly. During update, use the
2484
+ # most recent settingsVersion value for this instance and do not try to update
2485
+ # this value.
2486
+ # Corresponds to the JSON property `settingsVersion`
2487
+ # @return [Fixnum]
2488
+ attr_accessor :settings_version
2489
+
2490
+ # Configuration to increase storage size automatically. The default value is
2491
+ # true.
2492
+ # Corresponds to the JSON property `storageAutoResize`
2493
+ # @return [Boolean]
2494
+ attr_accessor :storage_auto_resize
2495
+ alias_method :storage_auto_resize?, :storage_auto_resize
2496
+
2497
+ # The maximum size to which storage capacity can be automatically increased. The
2498
+ # default value is 0, which specifies that there is no limit.
2499
+ # Corresponds to the JSON property `storageAutoResizeLimit`
2500
+ # @return [Fixnum]
2501
+ attr_accessor :storage_auto_resize_limit
2502
+
2503
+ # The tier (or machine type) for this instance, for example *db-n1-standard-1* (
2504
+ # MySQL instances) or *db-custom-1-3840* (PostgreSQL instances).
2505
+ # Corresponds to the JSON property `tier`
2506
+ # @return [String]
2507
+ attr_accessor :tier
2508
+
2509
+ # User-provided labels, represented as a dictionary where each label is a single
2510
+ # key value pair.
2511
+ # Corresponds to the JSON property `userLabels`
2512
+ # @return [Hash<String,String>]
2513
+ attr_accessor :user_labels
2514
+
2515
+ def initialize(**args)
2516
+ update!(**args)
2517
+ end
2518
+
2519
+ # Update properties of this object
2520
+ def update!(**args)
2521
+ @activation_policy = args[:activation_policy] if args.key?(:activation_policy)
2522
+ @active_directory_config = args[:active_directory_config] if args.key?(:active_directory_config)
2523
+ @authorized_gae_applications = args[:authorized_gae_applications] if args.key?(:authorized_gae_applications)
2524
+ @availability_type = args[:availability_type] if args.key?(:availability_type)
2525
+ @backup_configuration = args[:backup_configuration] if args.key?(:backup_configuration)
2526
+ @collation = args[:collation] if args.key?(:collation)
2527
+ @crash_safe_replication_enabled = args[:crash_safe_replication_enabled] if args.key?(:crash_safe_replication_enabled)
2528
+ @data_disk_size_gb = args[:data_disk_size_gb] if args.key?(:data_disk_size_gb)
2529
+ @data_disk_type = args[:data_disk_type] if args.key?(:data_disk_type)
2530
+ @database_flags = args[:database_flags] if args.key?(:database_flags)
2531
+ @database_replication_enabled = args[:database_replication_enabled] if args.key?(:database_replication_enabled)
2532
+ @deny_maintenance_periods = args[:deny_maintenance_periods] if args.key?(:deny_maintenance_periods)
2533
+ @insights_config = args[:insights_config] if args.key?(:insights_config)
2534
+ @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
2535
+ @kind = args[:kind] if args.key?(:kind)
2536
+ @location_preference = args[:location_preference] if args.key?(:location_preference)
2537
+ @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
2538
+ @pricing_plan = args[:pricing_plan] if args.key?(:pricing_plan)
2539
+ @replication_type = args[:replication_type] if args.key?(:replication_type)
2540
+ @settings_version = args[:settings_version] if args.key?(:settings_version)
2541
+ @storage_auto_resize = args[:storage_auto_resize] if args.key?(:storage_auto_resize)
2542
+ @storage_auto_resize_limit = args[:storage_auto_resize_limit] if args.key?(:storage_auto_resize_limit)
2543
+ @tier = args[:tier] if args.key?(:tier)
2544
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
2545
+ end
2546
+ end
2547
+
2548
+ # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
2549
+ class SqlActiveDirectoryConfig
2550
+ include Google::Apis::Core::Hashable
2551
+
2552
+ # The name of the domain (e.g., mydomain.com).
2553
+ # Corresponds to the JSON property `domain`
2554
+ # @return [String]
2555
+ attr_accessor :domain
2556
+
2557
+ # This is always sql#activeDirectoryConfig.
2558
+ # Corresponds to the JSON property `kind`
2559
+ # @return [String]
2560
+ attr_accessor :kind
2561
+
2562
+ def initialize(**args)
2563
+ update!(**args)
2564
+ end
2565
+
2566
+ # Update properties of this object
2567
+ def update!(**args)
2568
+ @domain = args[:domain] if args.key?(:domain)
2569
+ @kind = args[:kind] if args.key?(:kind)
2570
+ end
2571
+ end
2572
+
2573
+ # External primary instance migration setting error.
2574
+ class SqlExternalSyncSettingError
2575
+ include Google::Apis::Core::Hashable
2576
+
2577
+ # Additional information about the error encountered.
2578
+ # Corresponds to the JSON property `detail`
2579
+ # @return [String]
2580
+ attr_accessor :detail
2581
+
2582
+ # This is always *sql#migrationSettingError*.
2583
+ # Corresponds to the JSON property `kind`
2584
+ # @return [String]
2585
+ attr_accessor :kind
2586
+
2587
+ # Identifies the specific error that occurred.
2588
+ # Corresponds to the JSON property `type`
2589
+ # @return [String]
2590
+ attr_accessor :type
2591
+
2592
+ def initialize(**args)
2593
+ update!(**args)
2594
+ end
2595
+
2596
+ # Update properties of this object
2597
+ def update!(**args)
2598
+ @detail = args[:detail] if args.key?(:detail)
2599
+ @kind = args[:kind] if args.key?(:kind)
2600
+ @type = args[:type] if args.key?(:type)
2601
+ end
2602
+ end
2603
+
2604
+ # Reschedule options for maintenance windows.
2605
+ class SqlInstancesRescheduleMaintenanceRequestBody
2606
+ include Google::Apis::Core::Hashable
2607
+
2608
+ # Required. The type of the reschedule the user wants.
2609
+ # Corresponds to the JSON property `reschedule`
2610
+ # @return [Google::Apis::SqladminV1beta4::Reschedule]
2611
+ attr_accessor :reschedule
2612
+
2613
+ def initialize(**args)
2614
+ update!(**args)
2615
+ end
2616
+
2617
+ # Update properties of this object
2618
+ def update!(**args)
2619
+ @reschedule = args[:reschedule] if args.key?(:reschedule)
2620
+ end
2621
+ end
2622
+
2623
+ # Instance verify external sync settings response.
2624
+ class SqlInstancesVerifyExternalSyncSettingsResponse
2625
+ include Google::Apis::Core::Hashable
2626
+
2627
+ # List of migration violations.
2628
+ # Corresponds to the JSON property `errors`
2629
+ # @return [Array<Google::Apis::SqladminV1beta4::SqlExternalSyncSettingError>]
2630
+ attr_accessor :errors
2631
+
2632
+ # This is always *sql#migrationSettingErrorList*.
2633
+ # Corresponds to the JSON property `kind`
2634
+ # @return [String]
2635
+ attr_accessor :kind
2636
+
2637
+ def initialize(**args)
2638
+ update!(**args)
2639
+ end
2640
+
2641
+ # Update properties of this object
2642
+ def update!(**args)
2643
+ @errors = args[:errors] if args.key?(:errors)
2644
+ @kind = args[:kind] if args.key?(:kind)
2645
+ end
2646
+ end
2647
+
2648
+ # Any scheduled maintenancce for this instance.
2649
+ class SqlScheduledMaintenance
2650
+ include Google::Apis::Core::Hashable
2651
+
2652
+ #
2653
+ # Corresponds to the JSON property `canDefer`
2654
+ # @return [Boolean]
2655
+ attr_accessor :can_defer
2656
+ alias_method :can_defer?, :can_defer
2657
+
2658
+ # If the scheduled maintenance can be rescheduled.
2659
+ # Corresponds to the JSON property `canReschedule`
2660
+ # @return [Boolean]
2661
+ attr_accessor :can_reschedule
2662
+ alias_method :can_reschedule?, :can_reschedule
2663
+
2664
+ # The start time of any upcoming scheduled maintenance for this instance.
2665
+ # Corresponds to the JSON property `startTime`
2666
+ # @return [String]
2667
+ attr_accessor :start_time
2668
+
2669
+ def initialize(**args)
2670
+ update!(**args)
2671
+ end
2672
+
2673
+ # Update properties of this object
2674
+ def update!(**args)
2675
+ @can_defer = args[:can_defer] if args.key?(:can_defer)
2676
+ @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule)
2677
+ @start_time = args[:start_time] if args.key?(:start_time)
2678
+ end
2679
+ end
2680
+
2681
+ # Represents a Sql Server database on the Cloud SQL instance.
2682
+ class SqlServerDatabaseDetails
2683
+ include Google::Apis::Core::Hashable
2684
+
2685
+ # The version of SQL Server with which the database is to be made compatible
2686
+ # Corresponds to the JSON property `compatibilityLevel`
2687
+ # @return [Fixnum]
2688
+ attr_accessor :compatibility_level
2689
+
2690
+ # The recovery model of a SQL Server database
2691
+ # Corresponds to the JSON property `recoveryModel`
2692
+ # @return [String]
2693
+ attr_accessor :recovery_model
2694
+
2695
+ def initialize(**args)
2696
+ update!(**args)
2697
+ end
2698
+
2699
+ # Update properties of this object
2700
+ def update!(**args)
2701
+ @compatibility_level = args[:compatibility_level] if args.key?(:compatibility_level)
2702
+ @recovery_model = args[:recovery_model] if args.key?(:recovery_model)
2703
+ end
2704
+ end
2705
+
2706
+ # Represents a Sql Server user on the Cloud SQL instance.
2707
+ class SqlServerUserDetails
2708
+ include Google::Apis::Core::Hashable
2709
+
2710
+ # If the user has been disabled
2711
+ # Corresponds to the JSON property `disabled`
2712
+ # @return [Boolean]
2713
+ attr_accessor :disabled
2714
+ alias_method :disabled?, :disabled
2715
+
2716
+ # The server roles for this user
2717
+ # Corresponds to the JSON property `serverRoles`
2718
+ # @return [Array<String>]
2719
+ attr_accessor :server_roles
2720
+
2721
+ def initialize(**args)
2722
+ update!(**args)
2723
+ end
2724
+
2725
+ # Update properties of this object
2726
+ def update!(**args)
2727
+ @disabled = args[:disabled] if args.key?(:disabled)
2728
+ @server_roles = args[:server_roles] if args.key?(:server_roles)
2729
+ end
2730
+ end
2731
+
2732
+ # SslCerts Resource
2733
+ class SslCert
2734
+ include Google::Apis::Core::Hashable
2735
+
2736
+ # PEM representation.
2737
+ # Corresponds to the JSON property `cert`
2738
+ # @return [String]
2739
+ attr_accessor :cert
2740
+
2741
+ # Serial number, as extracted from the certificate.
2742
+ # Corresponds to the JSON property `certSerialNumber`
2743
+ # @return [String]
2744
+ attr_accessor :cert_serial_number
2745
+
2746
+ # User supplied name. Constrained to [a-zA-Z.-_ ]+.
2747
+ # Corresponds to the JSON property `commonName`
2748
+ # @return [String]
2749
+ attr_accessor :common_name
2750
+
2751
+ # The time when the certificate was created in RFC 3339 format, for example *
2752
+ # 2012-11-15T16:19:00.094Z*
2753
+ # Corresponds to the JSON property `createTime`
2754
+ # @return [String]
2755
+ attr_accessor :create_time
2756
+
2757
+ # The time when the certificate expires in RFC 3339 format, for example *2012-11-
2758
+ # 15T16:19:00.094Z*.
2759
+ # Corresponds to the JSON property `expirationTime`
2760
+ # @return [String]
2761
+ attr_accessor :expiration_time
2762
+
2763
+ # Name of the database instance.
2764
+ # Corresponds to the JSON property `instance`
2765
+ # @return [String]
2766
+ attr_accessor :instance
2767
+
2768
+ # This is always *sql#sslCert*.
2769
+ # Corresponds to the JSON property `kind`
2770
+ # @return [String]
2771
+ attr_accessor :kind
2772
+
2773
+ # The URI of this resource.
2774
+ # Corresponds to the JSON property `selfLink`
2775
+ # @return [String]
2776
+ attr_accessor :self_link
2777
+
2778
+ # Sha1 Fingerprint.
2779
+ # Corresponds to the JSON property `sha1Fingerprint`
2780
+ # @return [String]
2781
+ attr_accessor :sha1_fingerprint
2782
+
2783
+ def initialize(**args)
2784
+ update!(**args)
2785
+ end
2786
+
2787
+ # Update properties of this object
2788
+ def update!(**args)
2789
+ @cert = args[:cert] if args.key?(:cert)
2790
+ @cert_serial_number = args[:cert_serial_number] if args.key?(:cert_serial_number)
2791
+ @common_name = args[:common_name] if args.key?(:common_name)
2792
+ @create_time = args[:create_time] if args.key?(:create_time)
2793
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
2794
+ @instance = args[:instance] if args.key?(:instance)
2795
+ @kind = args[:kind] if args.key?(:kind)
2796
+ @self_link = args[:self_link] if args.key?(:self_link)
2797
+ @sha1_fingerprint = args[:sha1_fingerprint] if args.key?(:sha1_fingerprint)
2798
+ end
2799
+ end
2800
+
2801
+ # SslCertDetail.
2802
+ class SslCertDetail
2803
+ include Google::Apis::Core::Hashable
2804
+
2805
+ # SslCerts Resource
2806
+ # Corresponds to the JSON property `certInfo`
2807
+ # @return [Google::Apis::SqladminV1beta4::SslCert]
2808
+ attr_accessor :cert_info
2809
+
2810
+ # The private key for the client cert, in pem format. Keep private in order to
2811
+ # protect your security.
2812
+ # Corresponds to the JSON property `certPrivateKey`
2813
+ # @return [String]
2814
+ attr_accessor :cert_private_key
2815
+
2816
+ def initialize(**args)
2817
+ update!(**args)
2818
+ end
2819
+
2820
+ # Update properties of this object
2821
+ def update!(**args)
2822
+ @cert_info = args[:cert_info] if args.key?(:cert_info)
2823
+ @cert_private_key = args[:cert_private_key] if args.key?(:cert_private_key)
2824
+ end
2825
+ end
2826
+
2827
+ # SslCerts create ephemeral certificate request.
2828
+ class SslCertsCreateEphemeralRequest
2829
+ include Google::Apis::Core::Hashable
2830
+
2831
+ # PEM encoded public key to include in the signed certificate.
2832
+ # Corresponds to the JSON property `public_key`
2833
+ # @return [String]
2834
+ attr_accessor :public_key
2835
+
2836
+ def initialize(**args)
2837
+ update!(**args)
2838
+ end
2839
+
2840
+ # Update properties of this object
2841
+ def update!(**args)
2842
+ @public_key = args[:public_key] if args.key?(:public_key)
2843
+ end
2844
+ end
2845
+
2846
+ # SslCerts insert request.
2847
+ class InsertSslCertsRequest
2848
+ include Google::Apis::Core::Hashable
2849
+
2850
+ # User supplied name. Must be a distinct name from the other certificates for
2851
+ # this instance.
2852
+ # Corresponds to the JSON property `commonName`
2853
+ # @return [String]
2854
+ attr_accessor :common_name
2855
+
2856
+ def initialize(**args)
2857
+ update!(**args)
2858
+ end
2859
+
2860
+ # Update properties of this object
2861
+ def update!(**args)
2862
+ @common_name = args[:common_name] if args.key?(:common_name)
2863
+ end
2864
+ end
2865
+
2866
+ # SslCert insert response.
2867
+ class InsertSslCertsResponse
2868
+ include Google::Apis::Core::Hashable
2869
+
2870
+ # SslCertDetail.
2871
+ # Corresponds to the JSON property `clientCert`
2872
+ # @return [Google::Apis::SqladminV1beta4::SslCertDetail]
2873
+ attr_accessor :client_cert
2874
+
2875
+ # This is always *sql#sslCertsInsert*.
2876
+ # Corresponds to the JSON property `kind`
2877
+ # @return [String]
2878
+ attr_accessor :kind
2879
+
2880
+ # An Operation resource. For successful operations that return an Operation
2881
+ # resource, only the fields relevant to the operation are populated in the
2882
+ # resource. Next field: 18
2883
+ # Corresponds to the JSON property `operation`
2884
+ # @return [Google::Apis::SqladminV1beta4::Operation]
2885
+ attr_accessor :operation
2886
+
2887
+ # SslCerts Resource
2888
+ # Corresponds to the JSON property `serverCaCert`
2889
+ # @return [Google::Apis::SqladminV1beta4::SslCert]
2890
+ attr_accessor :server_ca_cert
2891
+
2892
+ def initialize(**args)
2893
+ update!(**args)
2894
+ end
2895
+
2896
+ # Update properties of this object
2897
+ def update!(**args)
2898
+ @client_cert = args[:client_cert] if args.key?(:client_cert)
2899
+ @kind = args[:kind] if args.key?(:kind)
2900
+ @operation = args[:operation] if args.key?(:operation)
2901
+ @server_ca_cert = args[:server_ca_cert] if args.key?(:server_ca_cert)
2902
+ end
2903
+ end
2904
+
2905
+ # SslCerts list response.
2906
+ class ListSslCertsResponse
2907
+ include Google::Apis::Core::Hashable
2908
+
2909
+ # List of client certificates for the instance.
2910
+ # Corresponds to the JSON property `items`
2911
+ # @return [Array<Google::Apis::SqladminV1beta4::SslCert>]
2912
+ attr_accessor :items
2913
+
2914
+ # This is always *sql#sslCertsList*.
2915
+ # Corresponds to the JSON property `kind`
2916
+ # @return [String]
2917
+ attr_accessor :kind
2918
+
2919
+ def initialize(**args)
2920
+ update!(**args)
2921
+ end
2922
+
2923
+ # Update properties of this object
2924
+ def update!(**args)
2925
+ @items = args[:items] if args.key?(:items)
2926
+ @kind = args[:kind] if args.key?(:kind)
2927
+ end
2928
+ end
2929
+
2930
+ # A Google Cloud SQL service tier resource.
2931
+ class Tier
2932
+ include Google::Apis::Core::Hashable
2933
+
2934
+ # The maximum disk size of this tier in bytes.
2935
+ # Corresponds to the JSON property `DiskQuota`
2936
+ # @return [Fixnum]
2937
+ attr_accessor :disk_quota
2938
+
2939
+ # The maximum RAM usage of this tier in bytes.
2940
+ # Corresponds to the JSON property `RAM`
2941
+ # @return [Fixnum]
2942
+ attr_accessor :ram
2943
+
2944
+ # This is always *sql#tier*.
2945
+ # Corresponds to the JSON property `kind`
2946
+ # @return [String]
2947
+ attr_accessor :kind
2948
+
2949
+ # The applicable regions for this tier.
2950
+ # Corresponds to the JSON property `region`
2951
+ # @return [Array<String>]
2952
+ attr_accessor :region
2953
+
2954
+ # An identifier for the machine type, for example, db-n1-standard-1. For related
2955
+ # information, see Pricing.
2956
+ # Corresponds to the JSON property `tier`
2957
+ # @return [String]
2958
+ attr_accessor :tier
2959
+
2960
+ def initialize(**args)
2961
+ update!(**args)
2962
+ end
2963
+
2964
+ # Update properties of this object
2965
+ def update!(**args)
2966
+ @disk_quota = args[:disk_quota] if args.key?(:disk_quota)
2967
+ @ram = args[:ram] if args.key?(:ram)
2968
+ @kind = args[:kind] if args.key?(:kind)
2969
+ @region = args[:region] if args.key?(:region)
2970
+ @tier = args[:tier] if args.key?(:tier)
2971
+ end
2972
+ end
2973
+
2974
+ # Tiers list response.
2975
+ class ListTiersResponse
2976
+ include Google::Apis::Core::Hashable
2977
+
2978
+ # List of tiers.
2979
+ # Corresponds to the JSON property `items`
2980
+ # @return [Array<Google::Apis::SqladminV1beta4::Tier>]
2981
+ attr_accessor :items
2982
+
2983
+ # This is always *sql#tiersList*.
2984
+ # Corresponds to the JSON property `kind`
2985
+ # @return [String]
2986
+ attr_accessor :kind
2987
+
2988
+ def initialize(**args)
2989
+ update!(**args)
2990
+ end
2991
+
2992
+ # Update properties of this object
2993
+ def update!(**args)
2994
+ @items = args[:items] if args.key?(:items)
2995
+ @kind = args[:kind] if args.key?(:kind)
2996
+ end
2997
+ end
2998
+
2999
+ # Database Instance truncate log context.
3000
+ class TruncateLogContext
3001
+ include Google::Apis::Core::Hashable
3002
+
3003
+ # This is always *sql#truncateLogContext*.
3004
+ # Corresponds to the JSON property `kind`
3005
+ # @return [String]
3006
+ attr_accessor :kind
3007
+
3008
+ # The type of log to truncate. Valid values are *MYSQL_GENERAL_TABLE* and *
3009
+ # MYSQL_SLOW_TABLE*.
3010
+ # Corresponds to the JSON property `logType`
3011
+ # @return [String]
3012
+ attr_accessor :log_type
3013
+
3014
+ def initialize(**args)
3015
+ update!(**args)
3016
+ end
3017
+
3018
+ # Update properties of this object
3019
+ def update!(**args)
3020
+ @kind = args[:kind] if args.key?(:kind)
3021
+ @log_type = args[:log_type] if args.key?(:log_type)
3022
+ end
3023
+ end
3024
+
3025
+ # A Cloud SQL user resource.
3026
+ class User
3027
+ include Google::Apis::Core::Hashable
3028
+
3029
+ # This field is deprecated and will be removed from a future version of the API.
3030
+ # Corresponds to the JSON property `etag`
3031
+ # @return [String]
3032
+ attr_accessor :etag
3033
+
3034
+ # The host name from which the user can connect. For *insert* operations, host
3035
+ # defaults to an empty string. For *update* operations, host is specified as
3036
+ # part of the request URL. The host name cannot be updated after insertion.
3037
+ # Corresponds to the JSON property `host`
3038
+ # @return [String]
3039
+ attr_accessor :host
3040
+
3041
+ # The name of the Cloud SQL instance. This does not include the project ID. Can
3042
+ # be omitted for *update* since it is already specified on the URL.
3043
+ # Corresponds to the JSON property `instance`
3044
+ # @return [String]
3045
+ attr_accessor :instance
3046
+
3047
+ # This is always *sql#user*.
3048
+ # Corresponds to the JSON property `kind`
3049
+ # @return [String]
3050
+ attr_accessor :kind
3051
+
3052
+ # The name of the user in the Cloud SQL instance. Can be omitted for *update*
3053
+ # since it is already specified in the URL.
3054
+ # Corresponds to the JSON property `name`
3055
+ # @return [String]
3056
+ attr_accessor :name
3057
+
3058
+ # The password for the user.
3059
+ # Corresponds to the JSON property `password`
3060
+ # @return [String]
3061
+ attr_accessor :password
3062
+
3063
+ # The project ID of the project containing the Cloud SQL database. The Google
3064
+ # apps domain is prefixed if applicable. Can be omitted for *update* since it is
3065
+ # already specified on the URL.
3066
+ # Corresponds to the JSON property `project`
3067
+ # @return [String]
3068
+ attr_accessor :project
3069
+
3070
+ # Represents a Sql Server user on the Cloud SQL instance.
3071
+ # Corresponds to the JSON property `sqlserverUserDetails`
3072
+ # @return [Google::Apis::SqladminV1beta4::SqlServerUserDetails]
3073
+ attr_accessor :sqlserver_user_details
3074
+
3075
+ # The user type. It determines the method to authenticate the user during login.
3076
+ # The default is the database's built-in user type.
3077
+ # Corresponds to the JSON property `type`
3078
+ # @return [String]
3079
+ attr_accessor :type
3080
+
3081
+ def initialize(**args)
3082
+ update!(**args)
3083
+ end
3084
+
3085
+ # Update properties of this object
3086
+ def update!(**args)
3087
+ @etag = args[:etag] if args.key?(:etag)
3088
+ @host = args[:host] if args.key?(:host)
3089
+ @instance = args[:instance] if args.key?(:instance)
3090
+ @kind = args[:kind] if args.key?(:kind)
3091
+ @name = args[:name] if args.key?(:name)
3092
+ @password = args[:password] if args.key?(:password)
3093
+ @project = args[:project] if args.key?(:project)
3094
+ @sqlserver_user_details = args[:sqlserver_user_details] if args.key?(:sqlserver_user_details)
3095
+ @type = args[:type] if args.key?(:type)
3096
+ end
3097
+ end
3098
+
3099
+ # User list response.
3100
+ class ListUsersResponse
3101
+ include Google::Apis::Core::Hashable
3102
+
3103
+ # List of user resources in the instance.
3104
+ # Corresponds to the JSON property `items`
3105
+ # @return [Array<Google::Apis::SqladminV1beta4::User>]
3106
+ attr_accessor :items
3107
+
3108
+ # This is always *sql#usersList*.
3109
+ # Corresponds to the JSON property `kind`
3110
+ # @return [String]
3111
+ attr_accessor :kind
3112
+
3113
+ # An identifier that uniquely identifies the operation. You can use this
3114
+ # identifier to retrieve the Operations resource that has information about the
3115
+ # operation.
3116
+ # Corresponds to the JSON property `nextPageToken`
3117
+ # @return [String]
3118
+ attr_accessor :next_page_token
3119
+
3120
+ def initialize(**args)
3121
+ update!(**args)
3122
+ end
3123
+
3124
+ # Update properties of this object
3125
+ def update!(**args)
3126
+ @items = args[:items] if args.key?(:items)
3127
+ @kind = args[:kind] if args.key?(:kind)
3128
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3129
+ end
3130
+ end
3131
+ end
3132
+ end
3133
+ end