google-apis-domains_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1677 @@
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 DomainsV1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::DomainsV1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # Defines an authorization code.
97
+ class AuthorizationCode
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # The Authorization Code in ASCII. It can be used to transfer the domain to or
101
+ # from another registrar.
102
+ # Corresponds to the JSON property `code`
103
+ # @return [String]
104
+ attr_accessor :code
105
+
106
+ def initialize(**args)
107
+ update!(**args)
108
+ end
109
+
110
+ # Update properties of this object
111
+ def update!(**args)
112
+ @code = args[:code] if args.key?(:code)
113
+ end
114
+ end
115
+
116
+ # Associates `members`, or principals, with a `role`.
117
+ class Binding
118
+ include Google::Apis::Core::Hashable
119
+
120
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
121
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
122
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
123
+ # "Summary size limit" description: "Determines if a summary is less than 100
124
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
125
+ # Requestor is owner" description: "Determines if requestor is the document
126
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
127
+ # Logic): title: "Public documents" description: "Determine whether the document
128
+ # should be publicly visible" expression: "document.type != 'private' &&
129
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
130
+ # string" description: "Create a notification string with a timestamp."
131
+ # expression: "'New message received at ' + string(document.create_time)" The
132
+ # exact variables and functions that may be referenced within an expression are
133
+ # determined by the service that evaluates it. See the service documentation for
134
+ # additional information.
135
+ # Corresponds to the JSON property `condition`
136
+ # @return [Google::Apis::DomainsV1::Expr]
137
+ attr_accessor :condition
138
+
139
+ # Specifies the principals requesting access for a Cloud Platform resource. `
140
+ # members` can have the following values: * `allUsers`: A special identifier
141
+ # that represents anyone who is on the internet; with or without a Google
142
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
143
+ # anyone who is authenticated with a Google account or a service account. * `
144
+ # user:`emailid``: An email address that represents a specific Google account.
145
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
146
+ # address that represents a service account. For example, `my-other-app@appspot.
147
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
148
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
149
+ # `uniqueid``: An email address (plus unique identifier) representing a user
150
+ # that has been recently deleted. For example, `alice@example.com?uid=
151
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
152
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
153
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
154
+ # identifier) representing a service account that has been recently deleted. For
155
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
156
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
157
+ # emailid`` and the undeleted service account retains the role in the binding. *
158
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
159
+ # identifier) representing a Google group that has been recently deleted. For
160
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
161
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
162
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
163
+ # primary) that represents all the users of that domain. For example, `google.
164
+ # com` or `example.com`.
165
+ # Corresponds to the JSON property `members`
166
+ # @return [Array<String>]
167
+ attr_accessor :members
168
+
169
+ # Role that is assigned to the list of `members`, or principals. For example, `
170
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
171
+ # Corresponds to the JSON property `role`
172
+ # @return [String]
173
+ attr_accessor :role
174
+
175
+ def initialize(**args)
176
+ update!(**args)
177
+ end
178
+
179
+ # Update properties of this object
180
+ def update!(**args)
181
+ @condition = args[:condition] if args.key?(:condition)
182
+ @members = args[:members] if args.key?(:members)
183
+ @role = args[:role] if args.key?(:role)
184
+ end
185
+ end
186
+
187
+ # Request for the `ConfigureContactSettings` method.
188
+ class ConfigureContactSettingsRequest
189
+ include Google::Apis::Core::Hashable
190
+
191
+ # The list of contact notices that the caller acknowledges. The notices needed
192
+ # here depend on the values specified in `contact_settings`.
193
+ # Corresponds to the JSON property `contactNotices`
194
+ # @return [Array<String>]
195
+ attr_accessor :contact_notices
196
+
197
+ # Defines the contact information associated with a `Registration`. [ICANN](
198
+ # https://icann.org/) requires all domain names to have associated contact
199
+ # information. The `registrant_contact` is considered the domain's legal owner,
200
+ # and often the other contacts are identical.
201
+ # Corresponds to the JSON property `contactSettings`
202
+ # @return [Google::Apis::DomainsV1::ContactSettings]
203
+ attr_accessor :contact_settings
204
+
205
+ # Required. The field mask describing which fields to update as a comma-
206
+ # separated list. For example, if only the registrant contact is being updated,
207
+ # the `update_mask` would be `"registrant_contact"`.
208
+ # Corresponds to the JSON property `updateMask`
209
+ # @return [String]
210
+ attr_accessor :update_mask
211
+
212
+ # Validate the request without actually updating the contact settings.
213
+ # Corresponds to the JSON property `validateOnly`
214
+ # @return [Boolean]
215
+ attr_accessor :validate_only
216
+ alias_method :validate_only?, :validate_only
217
+
218
+ def initialize(**args)
219
+ update!(**args)
220
+ end
221
+
222
+ # Update properties of this object
223
+ def update!(**args)
224
+ @contact_notices = args[:contact_notices] if args.key?(:contact_notices)
225
+ @contact_settings = args[:contact_settings] if args.key?(:contact_settings)
226
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
227
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
228
+ end
229
+ end
230
+
231
+ # Request for the `ConfigureDnsSettings` method.
232
+ class ConfigureDnsSettingsRequest
233
+ include Google::Apis::Core::Hashable
234
+
235
+ # Defines the DNS configuration of a `Registration`, including name servers,
236
+ # DNSSEC, and glue records.
237
+ # Corresponds to the JSON property `dnsSettings`
238
+ # @return [Google::Apis::DomainsV1::DnsSettings]
239
+ attr_accessor :dns_settings
240
+
241
+ # Required. The field mask describing which fields to update as a comma-
242
+ # separated list. For example, if only the name servers are being updated for an
243
+ # existing Custom DNS configuration, the `update_mask` would be `"custom_dns.
244
+ # name_servers"`. When changing the DNS provider from one type to another, pass
245
+ # the new provider's field name as part of the field mask. For example, when
246
+ # changing from a Google Domains DNS configuration to a Custom DNS configuration,
247
+ # the `update_mask` would be `"custom_dns"`. //
248
+ # Corresponds to the JSON property `updateMask`
249
+ # @return [String]
250
+ attr_accessor :update_mask
251
+
252
+ # Validate the request without actually updating the DNS settings.
253
+ # Corresponds to the JSON property `validateOnly`
254
+ # @return [Boolean]
255
+ attr_accessor :validate_only
256
+ alias_method :validate_only?, :validate_only
257
+
258
+ def initialize(**args)
259
+ update!(**args)
260
+ end
261
+
262
+ # Update properties of this object
263
+ def update!(**args)
264
+ @dns_settings = args[:dns_settings] if args.key?(:dns_settings)
265
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
266
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
267
+ end
268
+ end
269
+
270
+ # Request for the `ConfigureManagementSettings` method.
271
+ class ConfigureManagementSettingsRequest
272
+ include Google::Apis::Core::Hashable
273
+
274
+ # Defines renewal, billing, and transfer settings for a `Registration`.
275
+ # Corresponds to the JSON property `managementSettings`
276
+ # @return [Google::Apis::DomainsV1::ManagementSettings]
277
+ attr_accessor :management_settings
278
+
279
+ # Required. The field mask describing which fields to update as a comma-
280
+ # separated list. For example, if only the transfer lock is being updated, the `
281
+ # update_mask` would be `"transfer_lock_state"`.
282
+ # Corresponds to the JSON property `updateMask`
283
+ # @return [String]
284
+ attr_accessor :update_mask
285
+
286
+ def initialize(**args)
287
+ update!(**args)
288
+ end
289
+
290
+ # Update properties of this object
291
+ def update!(**args)
292
+ @management_settings = args[:management_settings] if args.key?(:management_settings)
293
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
294
+ end
295
+ end
296
+
297
+ # Details required for a contact associated with a `Registration`.
298
+ class Contact
299
+ include Google::Apis::Core::Hashable
300
+
301
+ # Required. Email address of the contact.
302
+ # Corresponds to the JSON property `email`
303
+ # @return [String]
304
+ attr_accessor :email
305
+
306
+ # Fax number of the contact in international format. For example, `"+1-800-555-
307
+ # 0123"`.
308
+ # Corresponds to the JSON property `faxNumber`
309
+ # @return [String]
310
+ attr_accessor :fax_number
311
+
312
+ # Required. Phone number of the contact in international format. For example, `"+
313
+ # 1-800-555-0123"`.
314
+ # Corresponds to the JSON property `phoneNumber`
315
+ # @return [String]
316
+ attr_accessor :phone_number
317
+
318
+ # Represents a postal address, e.g. for postal delivery or payments addresses.
319
+ # Given a postal address, a postal service can deliver items to a premise, P.O.
320
+ # Box or similar. It is not intended to model geographical locations (roads,
321
+ # towns, mountains). In typical usage an address would be created via user input
322
+ # or from importing existing data, depending on the type of process. Advice on
323
+ # address input / editing: - Use an i18n-ready address widget such as https://
324
+ # github.com/google/libaddressinput) - Users should not be presented with UI
325
+ # elements for input or editing of fields outside countries where that field is
326
+ # used. For more guidance on how to use this schema, please see: https://support.
327
+ # google.com/business/answer/6397478
328
+ # Corresponds to the JSON property `postalAddress`
329
+ # @return [Google::Apis::DomainsV1::PostalAddress]
330
+ attr_accessor :postal_address
331
+
332
+ def initialize(**args)
333
+ update!(**args)
334
+ end
335
+
336
+ # Update properties of this object
337
+ def update!(**args)
338
+ @email = args[:email] if args.key?(:email)
339
+ @fax_number = args[:fax_number] if args.key?(:fax_number)
340
+ @phone_number = args[:phone_number] if args.key?(:phone_number)
341
+ @postal_address = args[:postal_address] if args.key?(:postal_address)
342
+ end
343
+ end
344
+
345
+ # Defines the contact information associated with a `Registration`. [ICANN](
346
+ # https://icann.org/) requires all domain names to have associated contact
347
+ # information. The `registrant_contact` is considered the domain's legal owner,
348
+ # and often the other contacts are identical.
349
+ class ContactSettings
350
+ include Google::Apis::Core::Hashable
351
+
352
+ # Details required for a contact associated with a `Registration`.
353
+ # Corresponds to the JSON property `adminContact`
354
+ # @return [Google::Apis::DomainsV1::Contact]
355
+ attr_accessor :admin_contact
356
+
357
+ # Required. Privacy setting for the contacts associated with the `Registration`.
358
+ # Corresponds to the JSON property `privacy`
359
+ # @return [String]
360
+ attr_accessor :privacy
361
+
362
+ # Details required for a contact associated with a `Registration`.
363
+ # Corresponds to the JSON property `registrantContact`
364
+ # @return [Google::Apis::DomainsV1::Contact]
365
+ attr_accessor :registrant_contact
366
+
367
+ # Details required for a contact associated with a `Registration`.
368
+ # Corresponds to the JSON property `technicalContact`
369
+ # @return [Google::Apis::DomainsV1::Contact]
370
+ attr_accessor :technical_contact
371
+
372
+ def initialize(**args)
373
+ update!(**args)
374
+ end
375
+
376
+ # Update properties of this object
377
+ def update!(**args)
378
+ @admin_contact = args[:admin_contact] if args.key?(:admin_contact)
379
+ @privacy = args[:privacy] if args.key?(:privacy)
380
+ @registrant_contact = args[:registrant_contact] if args.key?(:registrant_contact)
381
+ @technical_contact = args[:technical_contact] if args.key?(:technical_contact)
382
+ end
383
+ end
384
+
385
+ # Configuration for an arbitrary DNS provider.
386
+ class CustomDns
387
+ include Google::Apis::Core::Hashable
388
+
389
+ # The list of DS records for this domain, which are used to enable DNSSEC. The
390
+ # domain's DNS provider can provide the values to set here. If this field is
391
+ # empty, DNSSEC is disabled.
392
+ # Corresponds to the JSON property `dsRecords`
393
+ # @return [Array<Google::Apis::DomainsV1::DsRecord>]
394
+ attr_accessor :ds_records
395
+
396
+ # Required. A list of name servers that store the DNS zone for this domain. Each
397
+ # name server is a domain name, with Unicode domain names expressed in Punycode
398
+ # format.
399
+ # Corresponds to the JSON property `nameServers`
400
+ # @return [Array<String>]
401
+ attr_accessor :name_servers
402
+
403
+ def initialize(**args)
404
+ update!(**args)
405
+ end
406
+
407
+ # Update properties of this object
408
+ def update!(**args)
409
+ @ds_records = args[:ds_records] if args.key?(:ds_records)
410
+ @name_servers = args[:name_servers] if args.key?(:name_servers)
411
+ end
412
+ end
413
+
414
+ # Defines the DNS configuration of a `Registration`, including name servers,
415
+ # DNSSEC, and glue records.
416
+ class DnsSettings
417
+ include Google::Apis::Core::Hashable
418
+
419
+ # Configuration for an arbitrary DNS provider.
420
+ # Corresponds to the JSON property `customDns`
421
+ # @return [Google::Apis::DomainsV1::CustomDns]
422
+ attr_accessor :custom_dns
423
+
424
+ # The list of glue records for this `Registration`. Commonly empty.
425
+ # Corresponds to the JSON property `glueRecords`
426
+ # @return [Array<Google::Apis::DomainsV1::GlueRecord>]
427
+ attr_accessor :glue_records
428
+
429
+ # Configuration for using the free DNS zone provided by Google Domains as a `
430
+ # Registration`'s `dns_provider`. You cannot configure the DNS zone itself using
431
+ # the API. To configure the DNS zone, go to [Google Domains](https://domains.
432
+ # google/).
433
+ # Corresponds to the JSON property `googleDomainsDns`
434
+ # @return [Google::Apis::DomainsV1::GoogleDomainsDns]
435
+ attr_accessor :google_domains_dns
436
+
437
+ def initialize(**args)
438
+ update!(**args)
439
+ end
440
+
441
+ # Update properties of this object
442
+ def update!(**args)
443
+ @custom_dns = args[:custom_dns] if args.key?(:custom_dns)
444
+ @glue_records = args[:glue_records] if args.key?(:glue_records)
445
+ @google_domains_dns = args[:google_domains_dns] if args.key?(:google_domains_dns)
446
+ end
447
+ end
448
+
449
+ # Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for
450
+ # a domain. It contains a digest (hash) of a DNSKEY record that must be present
451
+ # in the domain's DNS zone.
452
+ class DsRecord
453
+ include Google::Apis::Core::Hashable
454
+
455
+ # The algorithm used to generate the referenced DNSKEY.
456
+ # Corresponds to the JSON property `algorithm`
457
+ # @return [String]
458
+ attr_accessor :algorithm
459
+
460
+ # The digest generated from the referenced DNSKEY.
461
+ # Corresponds to the JSON property `digest`
462
+ # @return [String]
463
+ attr_accessor :digest
464
+
465
+ # The hash function used to generate the digest of the referenced DNSKEY.
466
+ # Corresponds to the JSON property `digestType`
467
+ # @return [String]
468
+ attr_accessor :digest_type
469
+
470
+ # The key tag of the record. Must be set in range 0 -- 65535.
471
+ # Corresponds to the JSON property `keyTag`
472
+ # @return [Fixnum]
473
+ attr_accessor :key_tag
474
+
475
+ def initialize(**args)
476
+ update!(**args)
477
+ end
478
+
479
+ # Update properties of this object
480
+ def update!(**args)
481
+ @algorithm = args[:algorithm] if args.key?(:algorithm)
482
+ @digest = args[:digest] if args.key?(:digest)
483
+ @digest_type = args[:digest_type] if args.key?(:digest_type)
484
+ @key_tag = args[:key_tag] if args.key?(:key_tag)
485
+ end
486
+ end
487
+
488
+ # Request for the `ExportRegistration` method.
489
+ class ExportRegistrationRequest
490
+ include Google::Apis::Core::Hashable
491
+
492
+ def initialize(**args)
493
+ update!(**args)
494
+ end
495
+
496
+ # Update properties of this object
497
+ def update!(**args)
498
+ end
499
+ end
500
+
501
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
502
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
503
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
504
+ # "Summary size limit" description: "Determines if a summary is less than 100
505
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
506
+ # Requestor is owner" description: "Determines if requestor is the document
507
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
508
+ # Logic): title: "Public documents" description: "Determine whether the document
509
+ # should be publicly visible" expression: "document.type != 'private' &&
510
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
511
+ # string" description: "Create a notification string with a timestamp."
512
+ # expression: "'New message received at ' + string(document.create_time)" The
513
+ # exact variables and functions that may be referenced within an expression are
514
+ # determined by the service that evaluates it. See the service documentation for
515
+ # additional information.
516
+ class Expr
517
+ include Google::Apis::Core::Hashable
518
+
519
+ # Optional. Description of the expression. This is a longer text which describes
520
+ # the expression, e.g. when hovered over it in a UI.
521
+ # Corresponds to the JSON property `description`
522
+ # @return [String]
523
+ attr_accessor :description
524
+
525
+ # Textual representation of an expression in Common Expression Language syntax.
526
+ # Corresponds to the JSON property `expression`
527
+ # @return [String]
528
+ attr_accessor :expression
529
+
530
+ # Optional. String indicating the location of the expression for error reporting,
531
+ # e.g. a file name and a position in the file.
532
+ # Corresponds to the JSON property `location`
533
+ # @return [String]
534
+ attr_accessor :location
535
+
536
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
537
+ # This can be used e.g. in UIs which allow to enter the expression.
538
+ # Corresponds to the JSON property `title`
539
+ # @return [String]
540
+ attr_accessor :title
541
+
542
+ def initialize(**args)
543
+ update!(**args)
544
+ end
545
+
546
+ # Update properties of this object
547
+ def update!(**args)
548
+ @description = args[:description] if args.key?(:description)
549
+ @expression = args[:expression] if args.key?(:expression)
550
+ @location = args[:location] if args.key?(:location)
551
+ @title = args[:title] if args.key?(:title)
552
+ end
553
+ end
554
+
555
+ # Defines a host on your domain that is a DNS name server for your domain and/or
556
+ # other domains. Glue records are a way of making the IP address of a name
557
+ # server known, even when it serves DNS queries for its parent domain. For
558
+ # example, when `ns.example.com` is a name server for `example.com`, the host `
559
+ # ns.example.com` must have a glue record to break the circular DNS reference.
560
+ class GlueRecord
561
+ include Google::Apis::Core::Hashable
562
+
563
+ # Required. Domain name of the host in Punycode format.
564
+ # Corresponds to the JSON property `hostName`
565
+ # @return [String]
566
+ attr_accessor :host_name
567
+
568
+ # List of IPv4 addresses corresponding to this host in the standard decimal
569
+ # format (e.g. `198.51.100.1`). At least one of `ipv4_address` and `ipv6_address`
570
+ # must be set.
571
+ # Corresponds to the JSON property `ipv4Addresses`
572
+ # @return [Array<String>]
573
+ attr_accessor :ipv4_addresses
574
+
575
+ # List of IPv6 addresses corresponding to this host in the standard hexadecimal
576
+ # format (e.g. `2001:db8::`). At least one of `ipv4_address` and `ipv6_address`
577
+ # must be set.
578
+ # Corresponds to the JSON property `ipv6Addresses`
579
+ # @return [Array<String>]
580
+ attr_accessor :ipv6_addresses
581
+
582
+ def initialize(**args)
583
+ update!(**args)
584
+ end
585
+
586
+ # Update properties of this object
587
+ def update!(**args)
588
+ @host_name = args[:host_name] if args.key?(:host_name)
589
+ @ipv4_addresses = args[:ipv4_addresses] if args.key?(:ipv4_addresses)
590
+ @ipv6_addresses = args[:ipv6_addresses] if args.key?(:ipv6_addresses)
591
+ end
592
+ end
593
+
594
+ # Configuration for using the free DNS zone provided by Google Domains as a `
595
+ # Registration`'s `dns_provider`. You cannot configure the DNS zone itself using
596
+ # the API. To configure the DNS zone, go to [Google Domains](https://domains.
597
+ # google/).
598
+ class GoogleDomainsDns
599
+ include Google::Apis::Core::Hashable
600
+
601
+ # Output only. The list of DS records published for this domain. The list is
602
+ # automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`, otherwise
603
+ # it remains empty.
604
+ # Corresponds to the JSON property `dsRecords`
605
+ # @return [Array<Google::Apis::DomainsV1::DsRecord>]
606
+ attr_accessor :ds_records
607
+
608
+ # Required. The state of DS records for this domain. Used to enable or disable
609
+ # automatic DNSSEC.
610
+ # Corresponds to the JSON property `dsState`
611
+ # @return [String]
612
+ attr_accessor :ds_state
613
+
614
+ # Output only. A list of name servers that store the DNS zone for this domain.
615
+ # Each name server is a domain name, with Unicode domain names expressed in
616
+ # Punycode format. This field is automatically populated with the name servers
617
+ # assigned to the Google Domains DNS zone.
618
+ # Corresponds to the JSON property `nameServers`
619
+ # @return [Array<String>]
620
+ attr_accessor :name_servers
621
+
622
+ def initialize(**args)
623
+ update!(**args)
624
+ end
625
+
626
+ # Update properties of this object
627
+ def update!(**args)
628
+ @ds_records = args[:ds_records] if args.key?(:ds_records)
629
+ @ds_state = args[:ds_state] if args.key?(:ds_state)
630
+ @name_servers = args[:name_servers] if args.key?(:name_servers)
631
+ end
632
+ end
633
+
634
+ # The response message for Locations.ListLocations.
635
+ class ListLocationsResponse
636
+ include Google::Apis::Core::Hashable
637
+
638
+ # A list of locations that matches the specified filter in the request.
639
+ # Corresponds to the JSON property `locations`
640
+ # @return [Array<Google::Apis::DomainsV1::Location>]
641
+ attr_accessor :locations
642
+
643
+ # The standard List next-page token.
644
+ # Corresponds to the JSON property `nextPageToken`
645
+ # @return [String]
646
+ attr_accessor :next_page_token
647
+
648
+ def initialize(**args)
649
+ update!(**args)
650
+ end
651
+
652
+ # Update properties of this object
653
+ def update!(**args)
654
+ @locations = args[:locations] if args.key?(:locations)
655
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
656
+ end
657
+ end
658
+
659
+ # The response message for Operations.ListOperations.
660
+ class ListOperationsResponse
661
+ include Google::Apis::Core::Hashable
662
+
663
+ # The standard List next-page token.
664
+ # Corresponds to the JSON property `nextPageToken`
665
+ # @return [String]
666
+ attr_accessor :next_page_token
667
+
668
+ # A list of operations that matches the specified filter in the request.
669
+ # Corresponds to the JSON property `operations`
670
+ # @return [Array<Google::Apis::DomainsV1::Operation>]
671
+ attr_accessor :operations
672
+
673
+ def initialize(**args)
674
+ update!(**args)
675
+ end
676
+
677
+ # Update properties of this object
678
+ def update!(**args)
679
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
680
+ @operations = args[:operations] if args.key?(:operations)
681
+ end
682
+ end
683
+
684
+ # Response for the `ListRegistrations` method.
685
+ class ListRegistrationsResponse
686
+ include Google::Apis::Core::Hashable
687
+
688
+ # When present, there are more results to retrieve. Set `page_token` to this
689
+ # value on a subsequent call to get the next page of results.
690
+ # Corresponds to the JSON property `nextPageToken`
691
+ # @return [String]
692
+ attr_accessor :next_page_token
693
+
694
+ # A list of `Registration`s.
695
+ # Corresponds to the JSON property `registrations`
696
+ # @return [Array<Google::Apis::DomainsV1::Registration>]
697
+ attr_accessor :registrations
698
+
699
+ def initialize(**args)
700
+ update!(**args)
701
+ end
702
+
703
+ # Update properties of this object
704
+ def update!(**args)
705
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
706
+ @registrations = args[:registrations] if args.key?(:registrations)
707
+ end
708
+ end
709
+
710
+ # A resource that represents Google Cloud Platform location.
711
+ class Location
712
+ include Google::Apis::Core::Hashable
713
+
714
+ # The friendly name for this location, typically a nearby city name. For example,
715
+ # "Tokyo".
716
+ # Corresponds to the JSON property `displayName`
717
+ # @return [String]
718
+ attr_accessor :display_name
719
+
720
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
721
+ # region": "us-east1"`
722
+ # Corresponds to the JSON property `labels`
723
+ # @return [Hash<String,String>]
724
+ attr_accessor :labels
725
+
726
+ # The canonical id for this location. For example: `"us-east1"`.
727
+ # Corresponds to the JSON property `locationId`
728
+ # @return [String]
729
+ attr_accessor :location_id
730
+
731
+ # Service-specific metadata. For example the available capacity at the given
732
+ # location.
733
+ # Corresponds to the JSON property `metadata`
734
+ # @return [Hash<String,Object>]
735
+ attr_accessor :metadata
736
+
737
+ # Resource name for the location, which may vary between implementations. For
738
+ # example: `"projects/example-project/locations/us-east1"`
739
+ # Corresponds to the JSON property `name`
740
+ # @return [String]
741
+ attr_accessor :name
742
+
743
+ def initialize(**args)
744
+ update!(**args)
745
+ end
746
+
747
+ # Update properties of this object
748
+ def update!(**args)
749
+ @display_name = args[:display_name] if args.key?(:display_name)
750
+ @labels = args[:labels] if args.key?(:labels)
751
+ @location_id = args[:location_id] if args.key?(:location_id)
752
+ @metadata = args[:metadata] if args.key?(:metadata)
753
+ @name = args[:name] if args.key?(:name)
754
+ end
755
+ end
756
+
757
+ # Defines renewal, billing, and transfer settings for a `Registration`.
758
+ class ManagementSettings
759
+ include Google::Apis::Core::Hashable
760
+
761
+ # Output only. The renewal method for this `Registration`.
762
+ # Corresponds to the JSON property `renewalMethod`
763
+ # @return [String]
764
+ attr_accessor :renewal_method
765
+
766
+ # Controls whether the domain can be transferred to another registrar.
767
+ # Corresponds to the JSON property `transferLockState`
768
+ # @return [String]
769
+ attr_accessor :transfer_lock_state
770
+
771
+ def initialize(**args)
772
+ update!(**args)
773
+ end
774
+
775
+ # Update properties of this object
776
+ def update!(**args)
777
+ @renewal_method = args[:renewal_method] if args.key?(:renewal_method)
778
+ @transfer_lock_state = args[:transfer_lock_state] if args.key?(:transfer_lock_state)
779
+ end
780
+ end
781
+
782
+ # Represents an amount of money with its currency type.
783
+ class Money
784
+ include Google::Apis::Core::Hashable
785
+
786
+ # The three-letter currency code defined in ISO 4217.
787
+ # Corresponds to the JSON property `currencyCode`
788
+ # @return [String]
789
+ attr_accessor :currency_code
790
+
791
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
792
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
793
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
794
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
795
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
796
+ # Corresponds to the JSON property `nanos`
797
+ # @return [Fixnum]
798
+ attr_accessor :nanos
799
+
800
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
801
+ # 1 unit is one US dollar.
802
+ # Corresponds to the JSON property `units`
803
+ # @return [Fixnum]
804
+ attr_accessor :units
805
+
806
+ def initialize(**args)
807
+ update!(**args)
808
+ end
809
+
810
+ # Update properties of this object
811
+ def update!(**args)
812
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
813
+ @nanos = args[:nanos] if args.key?(:nanos)
814
+ @units = args[:units] if args.key?(:units)
815
+ end
816
+ end
817
+
818
+ # This resource represents a long-running operation that is the result of a
819
+ # network API call.
820
+ class Operation
821
+ include Google::Apis::Core::Hashable
822
+
823
+ # If the value is `false`, it means the operation is still in progress. If `true`
824
+ # , the operation is completed, and either `error` or `response` is available.
825
+ # Corresponds to the JSON property `done`
826
+ # @return [Boolean]
827
+ attr_accessor :done
828
+ alias_method :done?, :done
829
+
830
+ # The `Status` type defines a logical error model that is suitable for different
831
+ # programming environments, including REST APIs and RPC APIs. It is used by [
832
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
833
+ # data: error code, error message, and error details. You can find out more
834
+ # about this error model and how to work with it in the [API Design Guide](https:
835
+ # //cloud.google.com/apis/design/errors).
836
+ # Corresponds to the JSON property `error`
837
+ # @return [Google::Apis::DomainsV1::Status]
838
+ attr_accessor :error
839
+
840
+ # Service-specific metadata associated with the operation. It typically contains
841
+ # progress information and common metadata such as create time. Some services
842
+ # might not provide such metadata. Any method that returns a long-running
843
+ # operation should document the metadata type, if any.
844
+ # Corresponds to the JSON property `metadata`
845
+ # @return [Hash<String,Object>]
846
+ attr_accessor :metadata
847
+
848
+ # The server-assigned name, which is only unique within the same service that
849
+ # originally returns it. If you use the default HTTP mapping, the `name` should
850
+ # be a resource name ending with `operations/`unique_id``.
851
+ # Corresponds to the JSON property `name`
852
+ # @return [String]
853
+ attr_accessor :name
854
+
855
+ # The normal response of the operation in case of success. If the original
856
+ # method returns no data on success, such as `Delete`, the response is `google.
857
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
858
+ # the response should be the resource. For other methods, the response should
859
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
860
+ # example, if the original method name is `TakeSnapshot()`, the inferred
861
+ # response type is `TakeSnapshotResponse`.
862
+ # Corresponds to the JSON property `response`
863
+ # @return [Hash<String,Object>]
864
+ attr_accessor :response
865
+
866
+ def initialize(**args)
867
+ update!(**args)
868
+ end
869
+
870
+ # Update properties of this object
871
+ def update!(**args)
872
+ @done = args[:done] if args.key?(:done)
873
+ @error = args[:error] if args.key?(:error)
874
+ @metadata = args[:metadata] if args.key?(:metadata)
875
+ @name = args[:name] if args.key?(:name)
876
+ @response = args[:response] if args.key?(:response)
877
+ end
878
+ end
879
+
880
+ # Represents the metadata of the long-running operation. Output only.
881
+ class OperationMetadata
882
+ include Google::Apis::Core::Hashable
883
+
884
+ # API version used to start the operation.
885
+ # Corresponds to the JSON property `apiVersion`
886
+ # @return [String]
887
+ attr_accessor :api_version
888
+
889
+ # The time the operation was created.
890
+ # Corresponds to the JSON property `createTime`
891
+ # @return [String]
892
+ attr_accessor :create_time
893
+
894
+ # The time the operation finished running.
895
+ # Corresponds to the JSON property `endTime`
896
+ # @return [String]
897
+ attr_accessor :end_time
898
+
899
+ # Human-readable status of the operation, if any.
900
+ # Corresponds to the JSON property `statusDetail`
901
+ # @return [String]
902
+ attr_accessor :status_detail
903
+
904
+ # Server-defined resource path for the target of the operation.
905
+ # Corresponds to the JSON property `target`
906
+ # @return [String]
907
+ attr_accessor :target
908
+
909
+ # Name of the verb executed by the operation.
910
+ # Corresponds to the JSON property `verb`
911
+ # @return [String]
912
+ attr_accessor :verb
913
+
914
+ def initialize(**args)
915
+ update!(**args)
916
+ end
917
+
918
+ # Update properties of this object
919
+ def update!(**args)
920
+ @api_version = args[:api_version] if args.key?(:api_version)
921
+ @create_time = args[:create_time] if args.key?(:create_time)
922
+ @end_time = args[:end_time] if args.key?(:end_time)
923
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
924
+ @target = args[:target] if args.key?(:target)
925
+ @verb = args[:verb] if args.key?(:verb)
926
+ end
927
+ end
928
+
929
+ # An Identity and Access Management (IAM) policy, which specifies access
930
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
931
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
932
+ # Principals can be user accounts, service accounts, Google groups, and domains (
933
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
934
+ # an IAM predefined role or a user-created custom role. For some types of Google
935
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
936
+ # logical expression that allows access to a resource only if the expression
937
+ # evaluates to `true`. A condition can add constraints based on attributes of
938
+ # the request, the resource, or both. To learn which resources support
939
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
940
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
941
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
942
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
943
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
944
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
945
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
946
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
947
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
948
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
949
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
950
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
951
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
952
+ # access description: Does not grant access after Sep 2020 expression: request.
953
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
954
+ # a description of IAM and its features, see the [IAM documentation](https://
955
+ # cloud.google.com/iam/docs/).
956
+ class Policy
957
+ include Google::Apis::Core::Hashable
958
+
959
+ # Specifies cloud audit logging configuration for this policy.
960
+ # Corresponds to the JSON property `auditConfigs`
961
+ # @return [Array<Google::Apis::DomainsV1::AuditConfig>]
962
+ attr_accessor :audit_configs
963
+
964
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
965
+ # specify a `condition` that determines how and when the `bindings` are applied.
966
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
967
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
968
+ # can be Google groups. Each occurrence of a principal counts towards these
969
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
970
+ # example.com`, and not to any other principal, then you can add another 1,450
971
+ # principals to the `bindings` in the `Policy`.
972
+ # Corresponds to the JSON property `bindings`
973
+ # @return [Array<Google::Apis::DomainsV1::Binding>]
974
+ attr_accessor :bindings
975
+
976
+ # `etag` is used for optimistic concurrency control as a way to help prevent
977
+ # simultaneous updates of a policy from overwriting each other. It is strongly
978
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
979
+ # to perform policy updates in order to avoid race conditions: An `etag` is
980
+ # returned in the response to `getIamPolicy`, and systems are expected to put
981
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
982
+ # applied to the same version of the policy. **Important:** If you use IAM
983
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
984
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
985
+ # with a version `1` policy, and all of the conditions in the version `3` policy
986
+ # are lost.
987
+ # Corresponds to the JSON property `etag`
988
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
989
+ # @return [String]
990
+ attr_accessor :etag
991
+
992
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
993
+ # Requests that specify an invalid value are rejected. Any operation that
994
+ # affects conditional role bindings must specify version `3`. This requirement
995
+ # applies to the following operations: * Getting a policy that includes a
996
+ # conditional role binding * Adding a conditional role binding to a policy *
997
+ # Changing a conditional role binding in a policy * Removing any role binding,
998
+ # with or without a condition, from a policy that includes conditions **
999
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1000
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1001
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1002
+ # conditions in the version `3` policy are lost. If a policy does not include
1003
+ # any conditions, operations on that policy may specify any valid version or
1004
+ # leave the field unset. To learn which resources support conditions in their
1005
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1006
+ # conditions/resource-policies).
1007
+ # Corresponds to the JSON property `version`
1008
+ # @return [Fixnum]
1009
+ attr_accessor :version
1010
+
1011
+ def initialize(**args)
1012
+ update!(**args)
1013
+ end
1014
+
1015
+ # Update properties of this object
1016
+ def update!(**args)
1017
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1018
+ @bindings = args[:bindings] if args.key?(:bindings)
1019
+ @etag = args[:etag] if args.key?(:etag)
1020
+ @version = args[:version] if args.key?(:version)
1021
+ end
1022
+ end
1023
+
1024
+ # Represents a postal address, e.g. for postal delivery or payments addresses.
1025
+ # Given a postal address, a postal service can deliver items to a premise, P.O.
1026
+ # Box or similar. It is not intended to model geographical locations (roads,
1027
+ # towns, mountains). In typical usage an address would be created via user input
1028
+ # or from importing existing data, depending on the type of process. Advice on
1029
+ # address input / editing: - Use an i18n-ready address widget such as https://
1030
+ # github.com/google/libaddressinput) - Users should not be presented with UI
1031
+ # elements for input or editing of fields outside countries where that field is
1032
+ # used. For more guidance on how to use this schema, please see: https://support.
1033
+ # google.com/business/answer/6397478
1034
+ class PostalAddress
1035
+ include Google::Apis::Core::Hashable
1036
+
1037
+ # Unstructured address lines describing the lower levels of an address. Because
1038
+ # values in address_lines do not have type information and may sometimes contain
1039
+ # multiple values in a single field (e.g. "Austin, TX"), it is important that
1040
+ # the line order is clear. The order of address lines should be "envelope order"
1041
+ # for the country/region of the address. In places where this can vary (e.g.
1042
+ # Japan), address_language is used to make it explicit (e.g. "ja" for large-to-
1043
+ # small ordering and "ja-Latn" or "en" for small-to-large). This way, the most
1044
+ # specific line of an address can be selected based on the language. The minimum
1045
+ # permitted structural representation of an address consists of a region_code
1046
+ # with all remaining information placed in the address_lines. It would be
1047
+ # possible to format such an address very approximately without geocoding, but
1048
+ # no semantic reasoning could be made about any of the address components until
1049
+ # it was at least partially resolved. Creating an address only containing a
1050
+ # region_code and address_lines, and then geocoding is the recommended way to
1051
+ # handle completely unstructured addresses (as opposed to guessing which parts
1052
+ # of the address should be localities or administrative areas).
1053
+ # Corresponds to the JSON property `addressLines`
1054
+ # @return [Array<String>]
1055
+ attr_accessor :address_lines
1056
+
1057
+ # Optional. Highest administrative subdivision which is used for postal
1058
+ # addresses of a country or region. For example, this can be a state, a province,
1059
+ # an oblast, or a prefecture. Specifically, for Spain this is the province and
1060
+ # not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many
1061
+ # countries don't use an administrative area in postal addresses. E.g. in
1062
+ # Switzerland this should be left unpopulated.
1063
+ # Corresponds to the JSON property `administrativeArea`
1064
+ # @return [String]
1065
+ attr_accessor :administrative_area
1066
+
1067
+ # Optional. BCP-47 language code of the contents of this address (if known).
1068
+ # This is often the UI language of the input form or is expected to match one of
1069
+ # the languages used in the address' country/region, or their transliterated
1070
+ # equivalents. This can affect formatting in certain countries, but is not
1071
+ # critical to the correctness of the data and will never affect any validation
1072
+ # or other non-formatting related operations. If this value is not known, it
1073
+ # should be omitted (rather than specifying a possibly incorrect default).
1074
+ # Examples: "zh-Hant", "ja", "ja-Latn", "en".
1075
+ # Corresponds to the JSON property `languageCode`
1076
+ # @return [String]
1077
+ attr_accessor :language_code
1078
+
1079
+ # Optional. Generally refers to the city/town portion of the address. Examples:
1080
+ # US city, IT comune, UK post town. In regions of the world where localities are
1081
+ # not well defined or do not fit into this structure well, leave locality empty
1082
+ # and use address_lines.
1083
+ # Corresponds to the JSON property `locality`
1084
+ # @return [String]
1085
+ attr_accessor :locality
1086
+
1087
+ # Optional. The name of the organization at the address.
1088
+ # Corresponds to the JSON property `organization`
1089
+ # @return [String]
1090
+ attr_accessor :organization
1091
+
1092
+ # Optional. Postal code of the address. Not all countries use or require postal
1093
+ # codes to be present, but where they are used, they may trigger additional
1094
+ # validation with other parts of the address (e.g. state/zip validation in the U.
1095
+ # S.A.).
1096
+ # Corresponds to the JSON property `postalCode`
1097
+ # @return [String]
1098
+ attr_accessor :postal_code
1099
+
1100
+ # Optional. The recipient at the address. This field may, under certain
1101
+ # circumstances, contain multiline information. For example, it might contain "
1102
+ # care of" information.
1103
+ # Corresponds to the JSON property `recipients`
1104
+ # @return [Array<String>]
1105
+ attr_accessor :recipients
1106
+
1107
+ # Required. CLDR region code of the country/region of the address. This is never
1108
+ # inferred and it is up to the user to ensure the value is correct. See http://
1109
+ # cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/
1110
+ # territory_information.html for details. Example: "CH" for Switzerland.
1111
+ # Corresponds to the JSON property `regionCode`
1112
+ # @return [String]
1113
+ attr_accessor :region_code
1114
+
1115
+ # The schema revision of the `PostalAddress`. This must be set to 0, which is
1116
+ # the latest revision. All new revisions **must** be backward compatible with
1117
+ # old revisions.
1118
+ # Corresponds to the JSON property `revision`
1119
+ # @return [Fixnum]
1120
+ attr_accessor :revision
1121
+
1122
+ # Optional. Additional, country-specific, sorting code. This is not used in most
1123
+ # regions. Where it is used, the value is either a string like "CEDEX",
1124
+ # optionally followed by a number (e.g. "CEDEX 7"), or just a number alone,
1125
+ # representing the "sector code" (Jamaica), "delivery area indicator" (Malawi)
1126
+ # or "post office indicator" (e.g. Côte d'Ivoire).
1127
+ # Corresponds to the JSON property `sortingCode`
1128
+ # @return [String]
1129
+ attr_accessor :sorting_code
1130
+
1131
+ # Optional. Sublocality of the address. For example, this can be neighborhoods,
1132
+ # boroughs, districts.
1133
+ # Corresponds to the JSON property `sublocality`
1134
+ # @return [String]
1135
+ attr_accessor :sublocality
1136
+
1137
+ def initialize(**args)
1138
+ update!(**args)
1139
+ end
1140
+
1141
+ # Update properties of this object
1142
+ def update!(**args)
1143
+ @address_lines = args[:address_lines] if args.key?(:address_lines)
1144
+ @administrative_area = args[:administrative_area] if args.key?(:administrative_area)
1145
+ @language_code = args[:language_code] if args.key?(:language_code)
1146
+ @locality = args[:locality] if args.key?(:locality)
1147
+ @organization = args[:organization] if args.key?(:organization)
1148
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
1149
+ @recipients = args[:recipients] if args.key?(:recipients)
1150
+ @region_code = args[:region_code] if args.key?(:region_code)
1151
+ @revision = args[:revision] if args.key?(:revision)
1152
+ @sorting_code = args[:sorting_code] if args.key?(:sorting_code)
1153
+ @sublocality = args[:sublocality] if args.key?(:sublocality)
1154
+ end
1155
+ end
1156
+
1157
+ # Request for the `RegisterDomain` method.
1158
+ class RegisterDomainRequest
1159
+ include Google::Apis::Core::Hashable
1160
+
1161
+ # The list of contact notices that the caller acknowledges. The notices needed
1162
+ # here depend on the values specified in `registration.contact_settings`.
1163
+ # Corresponds to the JSON property `contactNotices`
1164
+ # @return [Array<String>]
1165
+ attr_accessor :contact_notices
1166
+
1167
+ # The list of domain notices that you acknowledge. Call `
1168
+ # RetrieveRegisterParameters` to see the notices that need acknowledgement.
1169
+ # Corresponds to the JSON property `domainNotices`
1170
+ # @return [Array<String>]
1171
+ attr_accessor :domain_notices
1172
+
1173
+ # The `Registration` resource facilitates managing and configuring domain name
1174
+ # registrations. There are several ways to create a new `Registration` resource:
1175
+ # To create a new `Registration` resource, find a suitable domain name by
1176
+ # calling the `SearchDomains` method with a query to see available domain name
1177
+ # options. After choosing a name, call `RetrieveRegisterParameters` to ensure
1178
+ # availability and obtain information like pricing, which is needed to build a
1179
+ # call to `RegisterDomain`. Another way to create a new `Registration` is to
1180
+ # transfer an existing domain from another registrar. First, go to the current
1181
+ # registrar to unlock the domain for transfer and retrieve the domain's transfer
1182
+ # authorization code. Then call `RetrieveTransferParameters` to confirm that the
1183
+ # domain is unlocked and to get values needed to build a call to `TransferDomain`
1184
+ # .
1185
+ # Corresponds to the JSON property `registration`
1186
+ # @return [Google::Apis::DomainsV1::Registration]
1187
+ attr_accessor :registration
1188
+
1189
+ # When true, only validation will be performed, without actually registering the
1190
+ # domain. Follows: https://cloud.google.com/apis/design/design_patterns#
1191
+ # request_validation
1192
+ # Corresponds to the JSON property `validateOnly`
1193
+ # @return [Boolean]
1194
+ attr_accessor :validate_only
1195
+ alias_method :validate_only?, :validate_only
1196
+
1197
+ # Represents an amount of money with its currency type.
1198
+ # Corresponds to the JSON property `yearlyPrice`
1199
+ # @return [Google::Apis::DomainsV1::Money]
1200
+ attr_accessor :yearly_price
1201
+
1202
+ def initialize(**args)
1203
+ update!(**args)
1204
+ end
1205
+
1206
+ # Update properties of this object
1207
+ def update!(**args)
1208
+ @contact_notices = args[:contact_notices] if args.key?(:contact_notices)
1209
+ @domain_notices = args[:domain_notices] if args.key?(:domain_notices)
1210
+ @registration = args[:registration] if args.key?(:registration)
1211
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1212
+ @yearly_price = args[:yearly_price] if args.key?(:yearly_price)
1213
+ end
1214
+ end
1215
+
1216
+ # Parameters required to register a new domain.
1217
+ class RegisterParameters
1218
+ include Google::Apis::Core::Hashable
1219
+
1220
+ # Indicates whether the domain is available for registration. This value is
1221
+ # accurate when obtained by calling `RetrieveRegisterParameters`, but is
1222
+ # approximate when obtained by calling `SearchDomains`.
1223
+ # Corresponds to the JSON property `availability`
1224
+ # @return [String]
1225
+ attr_accessor :availability
1226
+
1227
+ # The domain name. Unicode domain names are expressed in Punycode format.
1228
+ # Corresponds to the JSON property `domainName`
1229
+ # @return [String]
1230
+ attr_accessor :domain_name
1231
+
1232
+ # Notices about special properties of the domain.
1233
+ # Corresponds to the JSON property `domainNotices`
1234
+ # @return [Array<String>]
1235
+ attr_accessor :domain_notices
1236
+
1237
+ # Contact privacy options that the domain supports.
1238
+ # Corresponds to the JSON property `supportedPrivacy`
1239
+ # @return [Array<String>]
1240
+ attr_accessor :supported_privacy
1241
+
1242
+ # Represents an amount of money with its currency type.
1243
+ # Corresponds to the JSON property `yearlyPrice`
1244
+ # @return [Google::Apis::DomainsV1::Money]
1245
+ attr_accessor :yearly_price
1246
+
1247
+ def initialize(**args)
1248
+ update!(**args)
1249
+ end
1250
+
1251
+ # Update properties of this object
1252
+ def update!(**args)
1253
+ @availability = args[:availability] if args.key?(:availability)
1254
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
1255
+ @domain_notices = args[:domain_notices] if args.key?(:domain_notices)
1256
+ @supported_privacy = args[:supported_privacy] if args.key?(:supported_privacy)
1257
+ @yearly_price = args[:yearly_price] if args.key?(:yearly_price)
1258
+ end
1259
+ end
1260
+
1261
+ # The `Registration` resource facilitates managing and configuring domain name
1262
+ # registrations. There are several ways to create a new `Registration` resource:
1263
+ # To create a new `Registration` resource, find a suitable domain name by
1264
+ # calling the `SearchDomains` method with a query to see available domain name
1265
+ # options. After choosing a name, call `RetrieveRegisterParameters` to ensure
1266
+ # availability and obtain information like pricing, which is needed to build a
1267
+ # call to `RegisterDomain`. Another way to create a new `Registration` is to
1268
+ # transfer an existing domain from another registrar. First, go to the current
1269
+ # registrar to unlock the domain for transfer and retrieve the domain's transfer
1270
+ # authorization code. Then call `RetrieveTransferParameters` to confirm that the
1271
+ # domain is unlocked and to get values needed to build a call to `TransferDomain`
1272
+ # .
1273
+ class Registration
1274
+ include Google::Apis::Core::Hashable
1275
+
1276
+ # Defines the contact information associated with a `Registration`. [ICANN](
1277
+ # https://icann.org/) requires all domain names to have associated contact
1278
+ # information. The `registrant_contact` is considered the domain's legal owner,
1279
+ # and often the other contacts are identical.
1280
+ # Corresponds to the JSON property `contactSettings`
1281
+ # @return [Google::Apis::DomainsV1::ContactSettings]
1282
+ attr_accessor :contact_settings
1283
+
1284
+ # Output only. The creation timestamp of the `Registration` resource.
1285
+ # Corresponds to the JSON property `createTime`
1286
+ # @return [String]
1287
+ attr_accessor :create_time
1288
+
1289
+ # Defines the DNS configuration of a `Registration`, including name servers,
1290
+ # DNSSEC, and glue records.
1291
+ # Corresponds to the JSON property `dnsSettings`
1292
+ # @return [Google::Apis::DomainsV1::DnsSettings]
1293
+ attr_accessor :dns_settings
1294
+
1295
+ # Required. Immutable. The domain name. Unicode domain names must be expressed
1296
+ # in Punycode format.
1297
+ # Corresponds to the JSON property `domainName`
1298
+ # @return [String]
1299
+ attr_accessor :domain_name
1300
+
1301
+ # Output only. The expiration timestamp of the `Registration`.
1302
+ # Corresponds to the JSON property `expireTime`
1303
+ # @return [String]
1304
+ attr_accessor :expire_time
1305
+
1306
+ # Output only. The set of issues with the `Registration` that require attention.
1307
+ # Corresponds to the JSON property `issues`
1308
+ # @return [Array<String>]
1309
+ attr_accessor :issues
1310
+
1311
+ # Set of labels associated with the `Registration`.
1312
+ # Corresponds to the JSON property `labels`
1313
+ # @return [Hash<String,String>]
1314
+ attr_accessor :labels
1315
+
1316
+ # Defines renewal, billing, and transfer settings for a `Registration`.
1317
+ # Corresponds to the JSON property `managementSettings`
1318
+ # @return [Google::Apis::DomainsV1::ManagementSettings]
1319
+ attr_accessor :management_settings
1320
+
1321
+ # Output only. Name of the `Registration` resource, in the format `projects/*/
1322
+ # locations/*/registrations/`.
1323
+ # Corresponds to the JSON property `name`
1324
+ # @return [String]
1325
+ attr_accessor :name
1326
+
1327
+ # Defines the contact information associated with a `Registration`. [ICANN](
1328
+ # https://icann.org/) requires all domain names to have associated contact
1329
+ # information. The `registrant_contact` is considered the domain's legal owner,
1330
+ # and often the other contacts are identical.
1331
+ # Corresponds to the JSON property `pendingContactSettings`
1332
+ # @return [Google::Apis::DomainsV1::ContactSettings]
1333
+ attr_accessor :pending_contact_settings
1334
+
1335
+ # Output only. The state of the `Registration`
1336
+ # Corresponds to the JSON property `state`
1337
+ # @return [String]
1338
+ attr_accessor :state
1339
+
1340
+ # Output only. Set of options for the `contact_settings.privacy` field that this
1341
+ # `Registration` supports.
1342
+ # Corresponds to the JSON property `supportedPrivacy`
1343
+ # @return [Array<String>]
1344
+ attr_accessor :supported_privacy
1345
+
1346
+ def initialize(**args)
1347
+ update!(**args)
1348
+ end
1349
+
1350
+ # Update properties of this object
1351
+ def update!(**args)
1352
+ @contact_settings = args[:contact_settings] if args.key?(:contact_settings)
1353
+ @create_time = args[:create_time] if args.key?(:create_time)
1354
+ @dns_settings = args[:dns_settings] if args.key?(:dns_settings)
1355
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
1356
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1357
+ @issues = args[:issues] if args.key?(:issues)
1358
+ @labels = args[:labels] if args.key?(:labels)
1359
+ @management_settings = args[:management_settings] if args.key?(:management_settings)
1360
+ @name = args[:name] if args.key?(:name)
1361
+ @pending_contact_settings = args[:pending_contact_settings] if args.key?(:pending_contact_settings)
1362
+ @state = args[:state] if args.key?(:state)
1363
+ @supported_privacy = args[:supported_privacy] if args.key?(:supported_privacy)
1364
+ end
1365
+ end
1366
+
1367
+ # Request for the `ResetAuthorizationCode` method.
1368
+ class ResetAuthorizationCodeRequest
1369
+ include Google::Apis::Core::Hashable
1370
+
1371
+ def initialize(**args)
1372
+ update!(**args)
1373
+ end
1374
+
1375
+ # Update properties of this object
1376
+ def update!(**args)
1377
+ end
1378
+ end
1379
+
1380
+ # Response for the `RetrieveRegisterParameters` method.
1381
+ class RetrieveRegisterParametersResponse
1382
+ include Google::Apis::Core::Hashable
1383
+
1384
+ # Parameters required to register a new domain.
1385
+ # Corresponds to the JSON property `registerParameters`
1386
+ # @return [Google::Apis::DomainsV1::RegisterParameters]
1387
+ attr_accessor :register_parameters
1388
+
1389
+ def initialize(**args)
1390
+ update!(**args)
1391
+ end
1392
+
1393
+ # Update properties of this object
1394
+ def update!(**args)
1395
+ @register_parameters = args[:register_parameters] if args.key?(:register_parameters)
1396
+ end
1397
+ end
1398
+
1399
+ # Response for the `RetrieveTransferParameters` method.
1400
+ class RetrieveTransferParametersResponse
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ # Parameters required to transfer a domain from another registrar.
1404
+ # Corresponds to the JSON property `transferParameters`
1405
+ # @return [Google::Apis::DomainsV1::TransferParameters]
1406
+ attr_accessor :transfer_parameters
1407
+
1408
+ def initialize(**args)
1409
+ update!(**args)
1410
+ end
1411
+
1412
+ # Update properties of this object
1413
+ def update!(**args)
1414
+ @transfer_parameters = args[:transfer_parameters] if args.key?(:transfer_parameters)
1415
+ end
1416
+ end
1417
+
1418
+ # Response for the `SearchDomains` method.
1419
+ class SearchDomainsResponse
1420
+ include Google::Apis::Core::Hashable
1421
+
1422
+ # Results of the domain name search.
1423
+ # Corresponds to the JSON property `registerParameters`
1424
+ # @return [Array<Google::Apis::DomainsV1::RegisterParameters>]
1425
+ attr_accessor :register_parameters
1426
+
1427
+ def initialize(**args)
1428
+ update!(**args)
1429
+ end
1430
+
1431
+ # Update properties of this object
1432
+ def update!(**args)
1433
+ @register_parameters = args[:register_parameters] if args.key?(:register_parameters)
1434
+ end
1435
+ end
1436
+
1437
+ # Request message for `SetIamPolicy` method.
1438
+ class SetIamPolicyRequest
1439
+ include Google::Apis::Core::Hashable
1440
+
1441
+ # An Identity and Access Management (IAM) policy, which specifies access
1442
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1443
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1444
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1445
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1446
+ # an IAM predefined role or a user-created custom role. For some types of Google
1447
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1448
+ # logical expression that allows access to a resource only if the expression
1449
+ # evaluates to `true`. A condition can add constraints based on attributes of
1450
+ # the request, the resource, or both. To learn which resources support
1451
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1452
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1453
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1454
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1455
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1456
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1457
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1458
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1459
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1460
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1461
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1462
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1463
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1464
+ # access description: Does not grant access after Sep 2020 expression: request.
1465
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1466
+ # a description of IAM and its features, see the [IAM documentation](https://
1467
+ # cloud.google.com/iam/docs/).
1468
+ # Corresponds to the JSON property `policy`
1469
+ # @return [Google::Apis::DomainsV1::Policy]
1470
+ attr_accessor :policy
1471
+
1472
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1473
+ # the fields in the mask will be modified. If no mask is provided, the following
1474
+ # default mask is used: `paths: "bindings, etag"`
1475
+ # Corresponds to the JSON property `updateMask`
1476
+ # @return [String]
1477
+ attr_accessor :update_mask
1478
+
1479
+ def initialize(**args)
1480
+ update!(**args)
1481
+ end
1482
+
1483
+ # Update properties of this object
1484
+ def update!(**args)
1485
+ @policy = args[:policy] if args.key?(:policy)
1486
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1487
+ end
1488
+ end
1489
+
1490
+ # The `Status` type defines a logical error model that is suitable for different
1491
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1492
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1493
+ # data: error code, error message, and error details. You can find out more
1494
+ # about this error model and how to work with it in the [API Design Guide](https:
1495
+ # //cloud.google.com/apis/design/errors).
1496
+ class Status
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # The status code, which should be an enum value of google.rpc.Code.
1500
+ # Corresponds to the JSON property `code`
1501
+ # @return [Fixnum]
1502
+ attr_accessor :code
1503
+
1504
+ # A list of messages that carry the error details. There is a common set of
1505
+ # message types for APIs to use.
1506
+ # Corresponds to the JSON property `details`
1507
+ # @return [Array<Hash<String,Object>>]
1508
+ attr_accessor :details
1509
+
1510
+ # A developer-facing error message, which should be in English. Any user-facing
1511
+ # error message should be localized and sent in the google.rpc.Status.details
1512
+ # field, or localized by the client.
1513
+ # Corresponds to the JSON property `message`
1514
+ # @return [String]
1515
+ attr_accessor :message
1516
+
1517
+ def initialize(**args)
1518
+ update!(**args)
1519
+ end
1520
+
1521
+ # Update properties of this object
1522
+ def update!(**args)
1523
+ @code = args[:code] if args.key?(:code)
1524
+ @details = args[:details] if args.key?(:details)
1525
+ @message = args[:message] if args.key?(:message)
1526
+ end
1527
+ end
1528
+
1529
+ # Request message for `TestIamPermissions` method.
1530
+ class TestIamPermissionsRequest
1531
+ include Google::Apis::Core::Hashable
1532
+
1533
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1534
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1535
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1536
+ # Corresponds to the JSON property `permissions`
1537
+ # @return [Array<String>]
1538
+ attr_accessor :permissions
1539
+
1540
+ def initialize(**args)
1541
+ update!(**args)
1542
+ end
1543
+
1544
+ # Update properties of this object
1545
+ def update!(**args)
1546
+ @permissions = args[:permissions] if args.key?(:permissions)
1547
+ end
1548
+ end
1549
+
1550
+ # Response message for `TestIamPermissions` method.
1551
+ class TestIamPermissionsResponse
1552
+ include Google::Apis::Core::Hashable
1553
+
1554
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1555
+ # Corresponds to the JSON property `permissions`
1556
+ # @return [Array<String>]
1557
+ attr_accessor :permissions
1558
+
1559
+ def initialize(**args)
1560
+ update!(**args)
1561
+ end
1562
+
1563
+ # Update properties of this object
1564
+ def update!(**args)
1565
+ @permissions = args[:permissions] if args.key?(:permissions)
1566
+ end
1567
+ end
1568
+
1569
+ # Request for the `TransferDomain` method.
1570
+ class TransferDomainRequest
1571
+ include Google::Apis::Core::Hashable
1572
+
1573
+ # Defines an authorization code.
1574
+ # Corresponds to the JSON property `authorizationCode`
1575
+ # @return [Google::Apis::DomainsV1::AuthorizationCode]
1576
+ attr_accessor :authorization_code
1577
+
1578
+ # The list of contact notices that you acknowledge. The notices needed here
1579
+ # depend on the values specified in `registration.contact_settings`.
1580
+ # Corresponds to the JSON property `contactNotices`
1581
+ # @return [Array<String>]
1582
+ attr_accessor :contact_notices
1583
+
1584
+ # The `Registration` resource facilitates managing and configuring domain name
1585
+ # registrations. There are several ways to create a new `Registration` resource:
1586
+ # To create a new `Registration` resource, find a suitable domain name by
1587
+ # calling the `SearchDomains` method with a query to see available domain name
1588
+ # options. After choosing a name, call `RetrieveRegisterParameters` to ensure
1589
+ # availability and obtain information like pricing, which is needed to build a
1590
+ # call to `RegisterDomain`. Another way to create a new `Registration` is to
1591
+ # transfer an existing domain from another registrar. First, go to the current
1592
+ # registrar to unlock the domain for transfer and retrieve the domain's transfer
1593
+ # authorization code. Then call `RetrieveTransferParameters` to confirm that the
1594
+ # domain is unlocked and to get values needed to build a call to `TransferDomain`
1595
+ # .
1596
+ # Corresponds to the JSON property `registration`
1597
+ # @return [Google::Apis::DomainsV1::Registration]
1598
+ attr_accessor :registration
1599
+
1600
+ # Validate the request without actually transferring the domain.
1601
+ # Corresponds to the JSON property `validateOnly`
1602
+ # @return [Boolean]
1603
+ attr_accessor :validate_only
1604
+ alias_method :validate_only?, :validate_only
1605
+
1606
+ # Represents an amount of money with its currency type.
1607
+ # Corresponds to the JSON property `yearlyPrice`
1608
+ # @return [Google::Apis::DomainsV1::Money]
1609
+ attr_accessor :yearly_price
1610
+
1611
+ def initialize(**args)
1612
+ update!(**args)
1613
+ end
1614
+
1615
+ # Update properties of this object
1616
+ def update!(**args)
1617
+ @authorization_code = args[:authorization_code] if args.key?(:authorization_code)
1618
+ @contact_notices = args[:contact_notices] if args.key?(:contact_notices)
1619
+ @registration = args[:registration] if args.key?(:registration)
1620
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1621
+ @yearly_price = args[:yearly_price] if args.key?(:yearly_price)
1622
+ end
1623
+ end
1624
+
1625
+ # Parameters required to transfer a domain from another registrar.
1626
+ class TransferParameters
1627
+ include Google::Apis::Core::Hashable
1628
+
1629
+ # The registrar that currently manages the domain.
1630
+ # Corresponds to the JSON property `currentRegistrar`
1631
+ # @return [String]
1632
+ attr_accessor :current_registrar
1633
+
1634
+ # The domain name. Unicode domain names are expressed in Punycode format.
1635
+ # Corresponds to the JSON property `domainName`
1636
+ # @return [String]
1637
+ attr_accessor :domain_name
1638
+
1639
+ # The name servers that currently store the configuration of the domain.
1640
+ # Corresponds to the JSON property `nameServers`
1641
+ # @return [Array<String>]
1642
+ attr_accessor :name_servers
1643
+
1644
+ # Contact privacy options that the domain supports.
1645
+ # Corresponds to the JSON property `supportedPrivacy`
1646
+ # @return [Array<String>]
1647
+ attr_accessor :supported_privacy
1648
+
1649
+ # Indicates whether the domain is protected by a transfer lock. For a transfer
1650
+ # to succeed, this must show `UNLOCKED`. To unlock a domain, go to its current
1651
+ # registrar.
1652
+ # Corresponds to the JSON property `transferLockState`
1653
+ # @return [String]
1654
+ attr_accessor :transfer_lock_state
1655
+
1656
+ # Represents an amount of money with its currency type.
1657
+ # Corresponds to the JSON property `yearlyPrice`
1658
+ # @return [Google::Apis::DomainsV1::Money]
1659
+ attr_accessor :yearly_price
1660
+
1661
+ def initialize(**args)
1662
+ update!(**args)
1663
+ end
1664
+
1665
+ # Update properties of this object
1666
+ def update!(**args)
1667
+ @current_registrar = args[:current_registrar] if args.key?(:current_registrar)
1668
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
1669
+ @name_servers = args[:name_servers] if args.key?(:name_servers)
1670
+ @supported_privacy = args[:supported_privacy] if args.key?(:supported_privacy)
1671
+ @transfer_lock_state = args[:transfer_lock_state] if args.key?(:transfer_lock_state)
1672
+ @yearly_price = args[:yearly_price] if args.key?(:yearly_price)
1673
+ end
1674
+ end
1675
+ end
1676
+ end
1677
+ end