google-api-client 0.9.6 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/api_names.yaml +15 -0
  4. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  5. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +75 -12
  6. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +25 -5
  7. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +6 -2
  8. data/generated/google/apis/adexchangeseller_v2_0.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/classes.rb +1 -1
  10. data/generated/google/apis/admin_directory_v1/representations.rb +1 -2
  11. data/generated/google/apis/adsense_v1_4.rb +1 -1
  12. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  13. data/generated/google/apis/analytics_v3.rb +1 -1
  14. data/generated/google/apis/analyticsreporting_v4.rb +37 -0
  15. data/generated/google/apis/analyticsreporting_v4/classes.rb +1385 -0
  16. data/generated/google/apis/analyticsreporting_v4/representations.rb +597 -0
  17. data/generated/google/apis/analyticsreporting_v4/service.rb +88 -0
  18. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  19. data/generated/google/apis/androidenterprise_v1/classes.rb +98 -2
  20. data/generated/google/apis/androidenterprise_v1/representations.rb +48 -0
  21. data/generated/google/apis/androidenterprise_v1/service.rb +63 -1
  22. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  23. data/generated/google/apis/androidpublisher_v2/classes.rb +268 -0
  24. data/generated/google/apis/androidpublisher_v2/representations.rb +142 -0
  25. data/generated/google/apis/androidpublisher_v2/service.rb +121 -0
  26. data/generated/google/apis/appstate_v1.rb +1 -1
  27. data/generated/google/apis/autoscaler_v1beta2.rb +1 -1
  28. data/generated/google/apis/autoscaler_v1beta2/classes.rb +10 -47
  29. data/generated/google/apis/autoscaler_v1beta2/representations.rb +1 -18
  30. data/generated/google/apis/autoscaler_v1beta2/service.rb +4 -4
  31. data/generated/google/apis/bigquery_v2.rb +1 -1
  32. data/generated/google/apis/bigquery_v2/classes.rb +97 -61
  33. data/generated/google/apis/bigquery_v2/representations.rb +23 -18
  34. data/generated/google/apis/calendar_v3.rb +1 -1
  35. data/generated/google/apis/classroom_v1.rb +23 -2
  36. data/generated/google/apis/classroom_v1/classes.rb +920 -6
  37. data/generated/google/apis/classroom_v1/representations.rb +419 -0
  38. data/generated/google/apis/classroom_v1/service.rb +507 -1
  39. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  40. data/generated/google/apis/cloudbuild_v1/classes.rb +30 -23
  41. data/generated/google/apis/cloudbuild_v1/representations.rb +4 -3
  42. data/generated/google/apis/cloudbuild_v1/service.rb +25 -25
  43. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  44. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  45. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  46. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +55 -0
  47. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +40 -0
  48. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +35 -0
  49. data/generated/google/apis/cloudtrace_v1.rb +11 -3
  50. data/generated/google/apis/cloudtrace_v1/classes.rb +5 -5
  51. data/generated/google/apis/cloudtrace_v1/service.rb +8 -6
  52. data/generated/google/apis/compute_beta.rb +2 -2
  53. data/generated/google/apis/compute_beta/classes.rb +162 -32
  54. data/generated/google/apis/compute_beta/representations.rb +58 -0
  55. data/generated/google/apis/compute_beta/service.rb +392 -267
  56. data/generated/google/apis/compute_v1.rb +2 -2
  57. data/generated/google/apis/compute_v1/classes.rb +21 -9
  58. data/generated/google/apis/compute_v1/representations.rb +1 -0
  59. data/generated/google/apis/compute_v1/service.rb +291 -253
  60. data/generated/google/apis/container_v1.rb +1 -1
  61. data/generated/google/apis/container_v1/classes.rb +148 -0
  62. data/generated/google/apis/container_v1/representations.rb +55 -0
  63. data/generated/google/apis/container_v1/service.rb +161 -0
  64. data/generated/google/apis/content_v2.rb +1 -1
  65. data/generated/google/apis/content_v2/classes.rb +18 -6
  66. data/generated/google/apis/content_v2/representations.rb +1 -0
  67. data/generated/google/apis/customsearch_v1.rb +1 -1
  68. data/generated/google/apis/dataproc_v1.rb +2 -11
  69. data/generated/google/apis/dataproc_v1/classes.rb +0 -19
  70. data/generated/google/apis/dataproc_v1/representations.rb +0 -13
  71. data/generated/google/apis/dataproc_v1/service.rb +8 -87
  72. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  73. data/generated/google/apis/dfareporting_v2_3.rb +1 -1
  74. data/generated/google/apis/dfareporting_v2_3/classes.rb +41 -32
  75. data/generated/google/apis/discovery_v1.rb +2 -2
  76. data/generated/google/apis/discovery_v1/service.rb +2 -2
  77. data/generated/google/apis/dns_v1.rb +2 -3
  78. data/generated/google/apis/dns_v1/service.rb +1 -2
  79. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  80. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  81. data/generated/google/apis/drive_v2.rb +3 -2
  82. data/generated/google/apis/drive_v2/service.rb +2 -1
  83. data/generated/google/apis/drive_v3.rb +3 -2
  84. data/generated/google/apis/drive_v3/service.rb +2 -1
  85. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  86. data/generated/google/apis/games_management_v1management.rb +1 -1
  87. data/generated/google/apis/games_management_v1management/classes.rb +34 -0
  88. data/generated/google/apis/games_management_v1management/representations.rb +16 -0
  89. data/generated/google/apis/games_v1.rb +1 -1
  90. data/generated/google/apis/games_v1/classes.rb +34 -0
  91. data/generated/google/apis/games_v1/representations.rb +16 -0
  92. data/generated/google/apis/games_v1/service.rb +212 -53
  93. data/generated/google/apis/genomics_v1.rb +1 -1
  94. data/generated/google/apis/genomics_v1/classes.rb +18 -0
  95. data/generated/google/apis/genomics_v1/representations.rb +3 -0
  96. data/generated/google/apis/genomics_v1/service.rb +2 -2
  97. data/generated/google/apis/gmail_v1.rb +1 -1
  98. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  99. data/generated/google/apis/identitytoolkit_v3/classes.rb +19 -7
  100. data/generated/google/apis/identitytoolkit_v3/representations.rb +3 -1
  101. data/generated/google/apis/mybusiness_v3.rb +32 -0
  102. data/generated/google/apis/mybusiness_v3/classes.rb +1864 -0
  103. data/generated/google/apis/mybusiness_v3/representations.rb +741 -0
  104. data/generated/google/apis/mybusiness_v3/service.rb +960 -0
  105. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  106. data/generated/google/apis/plus_domains_v1.rb +2 -2
  107. data/generated/google/apis/plus_domains_v1/service.rb +1 -1
  108. data/generated/google/apis/plus_v1.rb +2 -2
  109. data/generated/google/apis/plus_v1/service.rb +1 -1
  110. data/generated/google/apis/prediction_v1_6.rb +4 -1
  111. data/generated/google/apis/proximitybeacon_v1beta1.rb +5 -2
  112. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +169 -22
  113. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +36 -1
  114. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +254 -39
  115. data/generated/google/apis/replicapool_v1beta2.rb +3 -3
  116. data/generated/google/apis/replicapool_v1beta2/service.rb +2 -2
  117. data/generated/google/apis/resourceviews_v1beta2.rb +1 -1
  118. data/generated/google/apis/script_v1.rb +6 -3
  119. data/generated/google/apis/script_v1/service.rb +2 -2
  120. data/generated/google/apis/sheets_v4.rb +43 -0
  121. data/generated/google/apis/sheets_v4/classes.rb +5425 -0
  122. data/generated/google/apis/sheets_v4/representations.rb +2070 -0
  123. data/generated/google/apis/sheets_v4/service.rb +402 -0
  124. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  125. data/generated/google/apis/sqladmin_v1beta4/classes.rb +19 -4
  126. data/generated/google/apis/sqladmin_v1beta4/representations.rb +3 -0
  127. data/generated/google/apis/storage_v1.rb +1 -1
  128. data/generated/google/apis/storage_v1/classes.rb +2 -1
  129. data/generated/google/apis/taskqueue_v1beta2.rb +2 -2
  130. data/generated/google/apis/taskqueue_v1beta2/service.rb +1 -1
  131. data/generated/google/apis/vision_v1.rb +4 -5
  132. data/generated/google/apis/vision_v1/classes.rb +69 -68
  133. data/generated/google/apis/vision_v1/representations.rb +13 -13
  134. data/generated/google/apis/vision_v1/service.rb +3 -4
  135. data/generated/google/apis/youtube_analytics_v1.rb +2 -2
  136. data/generated/google/apis/youtube_analytics_v1/service.rb +1 -1
  137. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  138. data/generated/google/apis/youtube_partner_v1/classes.rb +121 -0
  139. data/generated/google/apis/youtube_partner_v1/representations.rb +50 -0
  140. data/generated/google/apis/youtube_partner_v1/service.rb +40 -0
  141. data/generated/google/apis/youtube_v3.rb +1 -1
  142. data/generated/google/apis/youtube_v3/classes.rb +24 -0
  143. data/generated/google/apis/youtube_v3/representations.rb +4 -0
  144. data/generated/google/apis/youtubereporting_v1.rb +3 -3
  145. data/generated/google/apis/youtubereporting_v1/classes.rb +19 -0
  146. data/generated/google/apis/youtubereporting_v1/representations.rb +3 -0
  147. data/generated/google/apis/youtubereporting_v1/service.rb +3 -4
  148. data/lib/google/apis/version.rb +1 -1
  149. metadata +14 -2
@@ -27,7 +27,7 @@ module Google
27
27
  # @see https://cloud.google.com/genomics/
28
28
  module GenomicsV1
29
29
  VERSION = 'V1'
30
- REVISION = '20160411'
30
+ REVISION = '20160524'
31
31
 
32
32
  # View and manage your data in Google BigQuery
33
33
  AUTH_BIGQUERY = 'https://www.googleapis.com/auth/bigquery'
@@ -2526,6 +2526,16 @@ module Google
2526
2526
  # @return [Array<Google::Apis::GenomicsV1::VariantSetMetadata>]
2527
2527
  attr_accessor :metadata
2528
2528
 
2529
+ # User-specified, mutable name.
2530
+ # Corresponds to the JSON property `name`
2531
+ # @return [String]
2532
+ attr_accessor :name
2533
+
2534
+ # A textual description of this variant set.
2535
+ # Corresponds to the JSON property `description`
2536
+ # @return [String]
2537
+ attr_accessor :description
2538
+
2529
2539
  def initialize(**args)
2530
2540
  update!(**args)
2531
2541
  end
@@ -2537,6 +2547,8 @@ module Google
2537
2547
  @reference_set_id = args[:reference_set_id] if args.key?(:reference_set_id)
2538
2548
  @reference_bounds = args[:reference_bounds] if args.key?(:reference_bounds)
2539
2549
  @metadata = args[:metadata] if args.key?(:metadata)
2550
+ @name = args[:name] if args.key?(:name)
2551
+ @description = args[:description] if args.key?(:description)
2540
2552
  end
2541
2553
  end
2542
2554
 
@@ -3299,6 +3311,11 @@ module Google
3299
3311
  # @return [String]
3300
3312
  attr_accessor :create_time
3301
3313
 
3314
+ # The time at which the job stopped running.
3315
+ # Corresponds to the JSON property `endTime`
3316
+ # @return [String]
3317
+ attr_accessor :end_time
3318
+
3302
3319
  # The original request that started the operation. Note that this will be in
3303
3320
  # current version of the API. If the operation was started with v1beta2 API and
3304
3321
  # a GetOperation is performed on v1 API, a v1 request will be returned.
@@ -3320,6 +3337,7 @@ module Google
3320
3337
  def update!(**args)
3321
3338
  @project_id = args[:project_id] if args.key?(:project_id)
3322
3339
  @create_time = args[:create_time] if args.key?(:create_time)
3340
+ @end_time = args[:end_time] if args.key?(:end_time)
3323
3341
  @request = args[:request] if args.key?(:request)
3324
3342
  @events = args[:events] if args.key?(:events)
3325
3343
  end
@@ -1087,6 +1087,8 @@ module Google
1087
1087
 
1088
1088
  collection :metadata, as: 'metadata', class: Google::Apis::GenomicsV1::VariantSetMetadata, decorator: Google::Apis::GenomicsV1::VariantSetMetadata::Representation
1089
1089
 
1090
+ property :name, as: 'name'
1091
+ property :description, as: 'description'
1090
1092
  end
1091
1093
  end
1092
1094
 
@@ -1292,6 +1294,7 @@ module Google
1292
1294
  class Representation < Google::Apis::Core::JsonRepresentation
1293
1295
  property :project_id, as: 'projectId'
1294
1296
  property :create_time, as: 'createTime'
1297
+ property :end_time, as: 'endTime'
1295
1298
  hash :request, as: 'request'
1296
1299
  collection :events, as: 'events', class: Google::Apis::GenomicsV1::OperationEvent, decorator: Google::Apis::GenomicsV1::OperationEvent::Representation
1297
1300
 
@@ -1897,8 +1897,8 @@ module Google
1897
1897
  # @param [Google::Apis::GenomicsV1::VariantSet] variant_set_object
1898
1898
  # @param [String] update_mask
1899
1899
  # An optional mask specifying which fields to update. Supported fields: *
1900
- # metadata. Leaving `updateMask` unset is equivalent to specifying all mutable
1901
- # fields.
1900
+ # metadata. * name. * description. Leaving `updateMask` unset is equivalent to
1901
+ # specifying all mutable fields.
1902
1902
  # @param [String] fields
1903
1903
  # Selector specifying which fields to include in a partial response.
1904
1904
  # @param [String] quota_user
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/gmail/api/
26
26
  module GmailV1
27
27
  VERSION = 'V1'
28
- REVISION = '20160316'
28
+ REVISION = '20160522'
29
29
 
30
30
  # View and manage your mail
31
31
  AUTH_SCOPE = 'https://mail.google.com/'
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/identity-toolkit/v3/
26
26
  module IdentitytoolkitV3
27
27
  VERSION = 'V3'
28
- REVISION = '20160407'
28
+ REVISION = '20160510'
29
29
  end
30
30
  end
31
31
  end
@@ -890,12 +890,6 @@ module Google
890
890
  # @return [String]
891
891
  attr_accessor :password
892
892
 
893
- # Whether return sts id token and refresh token instead of gitkit token.
894
- # Corresponds to the JSON property `returnSecureToken`
895
- # @return [Boolean]
896
- attr_accessor :return_secure_token
897
- alias_method :return_secure_token?, :return_secure_token
898
-
899
893
  def initialize(**args)
900
894
  update!(**args)
901
895
  end
@@ -909,7 +903,6 @@ module Google
909
903
  @id_token = args[:id_token] if args.key?(:id_token)
910
904
  @instance_id = args[:instance_id] if args.key?(:instance_id)
911
905
  @password = args[:password] if args.key?(:password)
912
- @return_secure_token = args[:return_secure_token] if args.key?(:return_secure_token)
913
906
  end
914
907
  end
915
908
 
@@ -1044,6 +1037,12 @@ module Google
1044
1037
  class VerifyCustomTokenRequest
1045
1038
  include Google::Apis::Core::Hashable
1046
1039
 
1040
+ # GCP project number of the requesting delegated app. Currently only intended
1041
+ # for Firebase V1 migration.
1042
+ # Corresponds to the JSON property `delegatedProjectNumber`
1043
+ # @return [String]
1044
+ attr_accessor :delegated_project_number
1045
+
1047
1046
  # Instance id token of the app.
1048
1047
  # Corresponds to the JSON property `instanceId`
1049
1048
  # @return [String]
@@ -1066,6 +1065,7 @@ module Google
1066
1065
 
1067
1066
  # Update properties of this object
1068
1067
  def update!(**args)
1068
+ @delegated_project_number = args[:delegated_project_number] if args.key?(:delegated_project_number)
1069
1069
  @instance_id = args[:instance_id] if args.key?(:instance_id)
1070
1070
  @return_secure_token = args[:return_secure_token] if args.key?(:return_secure_token)
1071
1071
  @token = args[:token] if args.key?(:token)
@@ -1302,6 +1302,11 @@ module Google
1302
1302
  # @return [String]
1303
1303
  attr_accessor :kind
1304
1304
 
1305
+ # The local ID of the user.
1306
+ # Corresponds to the JSON property `localId`
1307
+ # @return [String]
1308
+ attr_accessor :local_id
1309
+
1305
1310
  # The new email the user attempts to change to.
1306
1311
  # Corresponds to the JSON property `newEmail`
1307
1312
  # @return [String]
@@ -1338,6 +1343,7 @@ module Google
1338
1343
  @expires_in = args[:expires_in] if args.key?(:expires_in)
1339
1344
  @id_token = args[:id_token] if args.key?(:id_token)
1340
1345
  @kind = args[:kind] if args.key?(:kind)
1346
+ @local_id = args[:local_id] if args.key?(:local_id)
1341
1347
  @new_email = args[:new_email] if args.key?(:new_email)
1342
1348
  @password_hash = args[:password_hash] if args.key?(:password_hash)
1343
1349
  @photo_url = args[:photo_url] if args.key?(:photo_url)
@@ -1354,6 +1360,11 @@ module Google
1354
1360
  # @return [String]
1355
1361
  attr_accessor :display_name
1356
1362
 
1363
+ # User's identifier at IDP.
1364
+ # Corresponds to the JSON property `federatedId`
1365
+ # @return [String]
1366
+ attr_accessor :federated_id
1367
+
1357
1368
  # The user's photo url at the IDP.
1358
1369
  # Corresponds to the JSON property `photoUrl`
1359
1370
  # @return [String]
@@ -1372,6 +1383,7 @@ module Google
1372
1383
  # Update properties of this object
1373
1384
  def update!(**args)
1374
1385
  @display_name = args[:display_name] if args.key?(:display_name)
1386
+ @federated_id = args[:federated_id] if args.key?(:federated_id)
1375
1387
  @photo_url = args[:photo_url] if args.key?(:photo_url)
1376
1388
  @provider_id = args[:provider_id] if args.key?(:provider_id)
1377
1389
  end
@@ -463,7 +463,6 @@ module Google
463
463
  property :id_token, as: 'idToken'
464
464
  property :instance_id, as: 'instanceId'
465
465
  property :password, as: 'password'
466
- property :return_secure_token, as: 'returnSecureToken'
467
466
  end
468
467
  end
469
468
 
@@ -499,6 +498,7 @@ module Google
499
498
  class VerifyCustomTokenRequest
500
499
  # @private
501
500
  class Representation < Google::Apis::Core::JsonRepresentation
501
+ property :delegated_project_number, as: 'delegatedProjectNumber'
502
502
  property :instance_id, as: 'instanceId'
503
503
  property :return_secure_token, as: 'returnSecureToken'
504
504
  property :token, as: 'token'
@@ -561,6 +561,7 @@ module Google
561
561
  property :expires_in, as: 'expiresIn'
562
562
  property :id_token, as: 'idToken'
563
563
  property :kind, as: 'kind'
564
+ property :local_id, as: 'localId'
564
565
  property :new_email, as: 'newEmail'
565
566
  property :password_hash, :base64 => true, as: 'passwordHash'
566
567
  property :photo_url, as: 'photoUrl'
@@ -573,6 +574,7 @@ module Google
573
574
  # @private
574
575
  class Representation < Google::Apis::Core::JsonRepresentation
575
576
  property :display_name, as: 'displayName'
577
+ property :federated_id, as: 'federatedId'
576
578
  property :photo_url, as: 'photoUrl'
577
579
  property :provider_id, as: 'providerId'
578
580
  end
@@ -0,0 +1,32 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/mybusiness_v3/service.rb'
16
+ require 'google/apis/mybusiness_v3/classes.rb'
17
+ require 'google/apis/mybusiness_v3/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google My Business API
22
+ #
23
+ # The Google My Business API provides an interface for managing business
24
+ # location information on Google.
25
+ #
26
+ # @see https://developers.google.com/my-business/
27
+ module MybusinessV3
28
+ VERSION = 'V3'
29
+ REVISION = '0'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,1864 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module MybusinessV3
24
+
25
+ #
26
+ class ListAccountsResponse
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # A collection of accounts to which the user has access.
30
+ # Corresponds to the JSON property `accounts`
31
+ # @return [Array<Google::Apis::MybusinessV3::Account>]
32
+ attr_accessor :accounts
33
+
34
+ # If the number of accounts exceeds the requested page size, this field is
35
+ # populated with a token to fetch the next page of accounts on a
36
+ # subsequent call to `accounts.list`. If there are no more accounts, this field
37
+ # is not present in the response.
38
+ # Corresponds to the JSON property `nextPageToken`
39
+ # @return [String]
40
+ attr_accessor :next_page_token
41
+
42
+ def initialize(**args)
43
+ update!(**args)
44
+ end
45
+
46
+ # Update properties of this object
47
+ def update!(**args)
48
+ @accounts = args[:accounts] if args.key?(:accounts)
49
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
50
+ end
51
+ end
52
+
53
+ # An account is a container for your business's locations. If you are the only
54
+ # user who manages locations for your business, you can use your personal
55
+ # Google Account. To share management of locations with multiple users,
56
+ # [create a business account]
57
+ # (https://support.google.com/business/answer/6085339?hl=en&ref_topic=6085325).
58
+ class Account
59
+ include Google::Apis::Core::Hashable
60
+
61
+ # The resource name, in the format `accounts/`account_id``.
62
+ # Corresponds to the JSON property `name`
63
+ # @return [String]
64
+ attr_accessor :name
65
+
66
+ # The name of the account. Note: For an account with AccountType `PERSONAL`,
67
+ # this is the first
68
+ # and last name of the user account.
69
+ # Corresponds to the JSON property `accountName`
70
+ # @return [String]
71
+ attr_accessor :account_name
72
+
73
+ # Specifies the AccountType
74
+ # of this account.
75
+ # @OutputOnly
76
+ # Corresponds to the JSON property `type`
77
+ # @return [String]
78
+ attr_accessor :type
79
+
80
+ # Specifies the AccountRole
81
+ # the caller has for this account.
82
+ # @OutputOnly
83
+ # Corresponds to the JSON property `role`
84
+ # @return [String]
85
+ attr_accessor :role
86
+
87
+ # Indicates status of the account, such as whether the account
88
+ # has been verified by Google.
89
+ # Corresponds to the JSON property `state`
90
+ # @return [Google::Apis::MybusinessV3::AccountState]
91
+ attr_accessor :state
92
+
93
+ def initialize(**args)
94
+ update!(**args)
95
+ end
96
+
97
+ # Update properties of this object
98
+ def update!(**args)
99
+ @name = args[:name] if args.key?(:name)
100
+ @account_name = args[:account_name] if args.key?(:account_name)
101
+ @type = args[:type] if args.key?(:type)
102
+ @role = args[:role] if args.key?(:role)
103
+ @state = args[:state] if args.key?(:state)
104
+ end
105
+ end
106
+
107
+ # Indicates status of the account, such as whether the account
108
+ # has been verified by Google.
109
+ class AccountState
110
+ include Google::Apis::Core::Hashable
111
+
112
+ # If verified, future locations that are created are automatically
113
+ # be connected to maps, and have Google+ pages created, without requiring
114
+ # moderation.
115
+ # Corresponds to the JSON property `status`
116
+ # @return [String]
117
+ attr_accessor :status
118
+
119
+ def initialize(**args)
120
+ update!(**args)
121
+ end
122
+
123
+ # Update properties of this object
124
+ def update!(**args)
125
+ @status = args[:status] if args.key?(:status)
126
+ end
127
+ end
128
+
129
+ #
130
+ class ListAccountAdminsResponse
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # A collection of Admin instances.
134
+ # Corresponds to the JSON property `admins`
135
+ # @return [Array<Google::Apis::MybusinessV3::Admin>]
136
+ attr_accessor :admins
137
+
138
+ def initialize(**args)
139
+ update!(**args)
140
+ end
141
+
142
+ # Update properties of this object
143
+ def update!(**args)
144
+ @admins = args[:admins] if args.key?(:admins)
145
+ end
146
+ end
147
+
148
+ # An administrator of an Account, or a
149
+ # Location.
150
+ class Admin
151
+ include Google::Apis::Core::Hashable
152
+
153
+ # The resource name. For account admins, this is in the form:
154
+ # `accounts/`account_id`/admins/`admin_id``
155
+ # For location admins, this is in the form:
156
+ # `accounts/`account_id`/locations/`location_id`/admins/`admin_id``
157
+ # Corresponds to the JSON property `name`
158
+ # @return [String]
159
+ attr_accessor :name
160
+
161
+ # The name of the admin. When making the initial invitation, this is the
162
+ # invitee's email address. On `GET` calls, the user's email address is
163
+ # returned if the invitation is still pending. Otherwise, it contains
164
+ # the user's first and last names.
165
+ # Corresponds to the JSON property `adminName`
166
+ # @return [String]
167
+ attr_accessor :admin_name
168
+
169
+ # Specifies the AdminRole that this
170
+ # admin uses with the specified Account
171
+ # or Location resource.
172
+ # Corresponds to the JSON property `role`
173
+ # @return [String]
174
+ attr_accessor :role
175
+
176
+ # Indicates whether this admin has a pending invitation for the specified
177
+ # resource.
178
+ # @OutputOnly
179
+ # Corresponds to the JSON property `pendingInvitation`
180
+ # @return [Boolean]
181
+ attr_accessor :pending_invitation
182
+ alias_method :pending_invitation?, :pending_invitation
183
+
184
+ def initialize(**args)
185
+ update!(**args)
186
+ end
187
+
188
+ # Update properties of this object
189
+ def update!(**args)
190
+ @name = args[:name] if args.key?(:name)
191
+ @admin_name = args[:admin_name] if args.key?(:admin_name)
192
+ @role = args[:role] if args.key?(:role)
193
+ @pending_invitation = args[:pending_invitation] if args.key?(:pending_invitation)
194
+ end
195
+ end
196
+
197
+ # A generic empty message that you can re-use to avoid defining duplicated
198
+ # empty messages in your APIs. A typical example is to use it as the request
199
+ # or the response type of an API method. For instance:
200
+ # service Foo `
201
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
202
+ # `
203
+ # The JSON representation for `Empty` is empty JSON object ````.
204
+ class Empty
205
+ include Google::Apis::Core::Hashable
206
+
207
+ def initialize(**args)
208
+ update!(**args)
209
+ end
210
+
211
+ # Update properties of this object
212
+ def update!(**args)
213
+ end
214
+ end
215
+
216
+ #
217
+ class ListLocationsResponse
218
+ include Google::Apis::Core::Hashable
219
+
220
+ # The locations
221
+ # Corresponds to the JSON property `locations`
222
+ # @return [Array<Google::Apis::MybusinessV3::Location>]
223
+ attr_accessor :locations
224
+
225
+ # If the number of locations exceeded the requested page size, this field
226
+ # is populated with a token to fetch the next page of locations on a
227
+ # subsequent call to ListLocations. If there are no more locations, this
228
+ # field is not be present in the response.
229
+ # Corresponds to the JSON property `nextPageToken`
230
+ # @return [String]
231
+ attr_accessor :next_page_token
232
+
233
+ def initialize(**args)
234
+ update!(**args)
235
+ end
236
+
237
+ # Update properties of this object
238
+ def update!(**args)
239
+ @locations = args[:locations] if args.key?(:locations)
240
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
241
+ end
242
+ end
243
+
244
+ # A location.
245
+ # See the [help center article]
246
+ # (https://support.google.com/business/answer/3038177) for a detailed
247
+ # description of these fields, or the [category
248
+ # list](/my-business/content/categories] for a list of valid business
249
+ # categories.
250
+ class Location
251
+ include Google::Apis::Core::Hashable
252
+
253
+ # Google identifier for this location in the form:
254
+ # `accounts/`account_id`/locations/`location_id``
255
+ # In the context of matches, this field will not be populated.
256
+ # Corresponds to the JSON property `name`
257
+ # @return [String]
258
+ attr_accessor :name
259
+
260
+ # External identifier for this location, which must be unique inside a given
261
+ # account. This is a means of associating the location with your own records.
262
+ # Corresponds to the JSON property `storeCode`
263
+ # @return [String]
264
+ attr_accessor :store_code
265
+
266
+ # Location name should reflect your business's real-world name, as used
267
+ # consistently on your storefront, website, and stationery, and as known to
268
+ # customers.
269
+ # Any additional information, when relevant, can be included in other
270
+ # fields of the resource (for example, `Address`, `Categories`).
271
+ # Do not add unnecessary information to your name (for example, prefer "Google"
272
+ # over
273
+ # "Google Inc. - Mountain View Corporate Headquarters").
274
+ # It is NOT permitted to include marketing taglines, store codes, special
275
+ # characters, hours or
276
+ # closed/open status, phone numbers, website URLs, service/product
277
+ # information, location/address or directions, or containment information
278
+ # (for example, "Chase ATM in Duane Reade").
279
+ # Corresponds to the JSON property `locationName`
280
+ # @return [String]
281
+ attr_accessor :location_name
282
+
283
+ # A phone number that connects to your individual business location
284
+ # as directly as possible. Use a local phone number instead of a central,
285
+ # call center helpline number whenever possible.
286
+ # Corresponds to the JSON property `primaryPhone`
287
+ # @return [String]
288
+ attr_accessor :primary_phone
289
+
290
+ # Up to two phone numbers (mobile or landline, no fax) at which your business
291
+ # can be called, in addition to your primary phone number.
292
+ # Corresponds to the JSON property `additionalPhones`
293
+ # @return [Array<String>]
294
+ attr_accessor :additional_phones
295
+
296
+ # Represents the physical location of the business.
297
+ # Example addresses:
298
+ # address_lines: "1600 Amphitheatre Parkway"
299
+ # locality: Mountain View
300
+ # administrative_area: CA
301
+ # country: US
302
+ # postal_code: 94043
303
+ # address_lines: "A-205, Natasha Apartments", "2, Inner Ring Road"
304
+ # sub_locality: Domlur
305
+ # locality: Bangalore
306
+ # administrative_area: Karnataka
307
+ # country: IN
308
+ # postal_code: 560071
309
+ # Corresponds to the JSON property `address`
310
+ # @return [Google::Apis::MybusinessV3::Address]
311
+ attr_accessor :address
312
+
313
+ # A category describing what this business is (not what it does). For a list of
314
+ # valid category IDs, and the mappings to their human readable names, see
315
+ # the [category list](/my-business/content/categories).
316
+ # Corresponds to the JSON property `primaryCategory`
317
+ # @return [Google::Apis::MybusinessV3::Category]
318
+ attr_accessor :primary_category
319
+
320
+ # Additional categories to describe your business.
321
+ # Categories help your customers find accurate, specific results for services
322
+ # they're interested in. In order to keep your business information accurate
323
+ # and live, make sure that you use as few categories as possible to describe
324
+ # your overall core business.
325
+ # Choose categories that are as specific as possible, but representative of
326
+ # your main business.
327
+ # Corresponds to the JSON property `additionalCategories`
328
+ # @return [Array<Google::Apis::MybusinessV3::Category>]
329
+ attr_accessor :additional_categories
330
+
331
+ # A URL for this business. If possible, use a URL that represents this
332
+ # individual business location instead of a generic website/URL that represents
333
+ # all locations, or the brand.
334
+ # Corresponds to the JSON property `websiteUrl`
335
+ # @return [String]
336
+ attr_accessor :website_url
337
+
338
+ # Represents the time periods that this location is open for business.
339
+ # Holds a collection of TimePeriod
340
+ # instances.
341
+ # Corresponds to the JSON property `regularHours`
342
+ # @return [Google::Apis::MybusinessV3::BusinessHours]
343
+ attr_accessor :regular_hours
344
+
345
+ # Represents a set of time periods when a location's operational hours differ
346
+ # from its normal business hours.
347
+ # Corresponds to the JSON property `specialHours`
348
+ # @return [Google::Apis::MybusinessV3::SpecialHours]
349
+ attr_accessor :special_hours
350
+
351
+ # Service area businesses provide their service at the customer's location (for
352
+ # example a locksmith or plumber).
353
+ # Corresponds to the JSON property `serviceArea`
354
+ # @return [Google::Apis::MybusinessV3::ServiceAreaBusiness]
355
+ attr_accessor :service_area
356
+
357
+ # Alternate / surrogate key references for a location.
358
+ # Corresponds to the JSON property `locationKey`
359
+ # @return [Google::Apis::MybusinessV3::LocationKey]
360
+ attr_accessor :location_key
361
+
362
+ # A collection of free-form strings to allow you to tag your business. These
363
+ # labels are NOT user facing, and are only be seen by you.
364
+ # Limited to 255 characters (per label).
365
+ # Corresponds to the JSON property `labels`
366
+ # @return [Array<String>]
367
+ attr_accessor :labels
368
+
369
+ # Additional information that is surfaced in AdWords.
370
+ # Corresponds to the JSON property `adWordsLocationExtensions`
371
+ # @return [Google::Apis::MybusinessV3::AdWordsLocationExtensions]
372
+ attr_accessor :ad_words_location_extensions
373
+
374
+ # A collection of photos representing the business, categorized by photo type.
375
+ # The URL for each photo should point to a publicly accessible image.
376
+ # Photos should be supplied in either JPG or PNG format unless specified
377
+ # otherwise. If the photo was added by using Google My Business Locations or
378
+ # this API, the user-provided URL is used. If the photo was uploaded via the
379
+ # Google My Business Photos App, the photo uses a generated URL hosted by
380
+ # Google. Exceptions: `profile_photo_url` and `cover_photo_url` are always
381
+ # under a Google domain.
382
+ # With the exception of profile_photo_url and cover_photo_url, all photos
383
+ # must measure a minimum of 250px on the short edge, with a file size of at
384
+ # least 10240 bytes.
385
+ # Corresponds to the JSON property `photos`
386
+ # @return [Google::Apis::MybusinessV3::Photos]
387
+ attr_accessor :photos
388
+
389
+ # An object representing a latitude/longitude pair. This is expressed as a pair
390
+ # of doubles representing degrees latitude and degrees longitude. Unless
391
+ # specified otherwise, this must conform to the
392
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
393
+ # standard</a>. Values must be within normalized ranges.
394
+ # Example of normalization code in Python:
395
+ # def NormalizeLongitude(longitude):
396
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
397
+ # q, r = divmod(longitude, 360.0)
398
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
399
+ # return r - 360.0
400
+ # return r
401
+ # def NormalizeLatLng(latitude, longitude):
402
+ # """Wraps decimal degrees latitude and longitude to
403
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
404
+ # r = latitude % 360.0
405
+ # if r <= 90.0:
406
+ # return r, NormalizeLongitude(longitude)
407
+ # elif r >= 270.0:
408
+ # return r - 360, NormalizeLongitude(longitude)
409
+ # else:
410
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
411
+ # assert 180.0 == NormalizeLongitude(180.0)
412
+ # assert -180.0 == NormalizeLongitude(-180.0)
413
+ # assert -179.0 == NormalizeLongitude(181.0)
414
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
415
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
416
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
417
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
418
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
419
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
420
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
421
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
422
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
423
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
424
+ # Corresponds to the JSON property `latlng`
425
+ # @return [Google::Apis::MybusinessV3::LatLng]
426
+ attr_accessor :latlng
427
+
428
+ # Indicates whether the location is currently open for business.
429
+ # All locations are open by default, unless updated to be closed.
430
+ # Corresponds to the JSON property `openInfo`
431
+ # @return [Google::Apis::MybusinessV3::OpenInfo]
432
+ attr_accessor :open_info
433
+
434
+ # Contains a set of booleans that reflect the state of a Location.
435
+ # Corresponds to the JSON property `locationState`
436
+ # @return [Google::Apis::MybusinessV3::LocationState]
437
+ attr_accessor :location_state
438
+
439
+ # Attributes for this location.
440
+ # Corresponds to the JSON property `attributes`
441
+ # @return [Array<Google::Apis::MybusinessV3::Attribute>]
442
+ attr_accessor :attributes
443
+
444
+ # Additional non-user-editable information about the location.
445
+ # Corresponds to the JSON property `metadata`
446
+ # @return [Google::Apis::MybusinessV3::Metadata]
447
+ attr_accessor :metadata
448
+
449
+ def initialize(**args)
450
+ update!(**args)
451
+ end
452
+
453
+ # Update properties of this object
454
+ def update!(**args)
455
+ @name = args[:name] if args.key?(:name)
456
+ @store_code = args[:store_code] if args.key?(:store_code)
457
+ @location_name = args[:location_name] if args.key?(:location_name)
458
+ @primary_phone = args[:primary_phone] if args.key?(:primary_phone)
459
+ @additional_phones = args[:additional_phones] if args.key?(:additional_phones)
460
+ @address = args[:address] if args.key?(:address)
461
+ @primary_category = args[:primary_category] if args.key?(:primary_category)
462
+ @additional_categories = args[:additional_categories] if args.key?(:additional_categories)
463
+ @website_url = args[:website_url] if args.key?(:website_url)
464
+ @regular_hours = args[:regular_hours] if args.key?(:regular_hours)
465
+ @special_hours = args[:special_hours] if args.key?(:special_hours)
466
+ @service_area = args[:service_area] if args.key?(:service_area)
467
+ @location_key = args[:location_key] if args.key?(:location_key)
468
+ @labels = args[:labels] if args.key?(:labels)
469
+ @ad_words_location_extensions = args[:ad_words_location_extensions] if args.key?(:ad_words_location_extensions)
470
+ @photos = args[:photos] if args.key?(:photos)
471
+ @latlng = args[:latlng] if args.key?(:latlng)
472
+ @open_info = args[:open_info] if args.key?(:open_info)
473
+ @location_state = args[:location_state] if args.key?(:location_state)
474
+ @attributes = args[:attributes] if args.key?(:attributes)
475
+ @metadata = args[:metadata] if args.key?(:metadata)
476
+ end
477
+ end
478
+
479
+ # Represents the physical location of the business.
480
+ # Example addresses:
481
+ # address_lines: "1600 Amphitheatre Parkway"
482
+ # locality: Mountain View
483
+ # administrative_area: CA
484
+ # country: US
485
+ # postal_code: 94043
486
+ # address_lines: "A-205, Natasha Apartments", "2, Inner Ring Road"
487
+ # sub_locality: Domlur
488
+ # locality: Bangalore
489
+ # administrative_area: Karnataka
490
+ # country: IN
491
+ # postal_code: 560071
492
+ class Address
493
+ include Google::Apis::Core::Hashable
494
+
495
+ # The precise address information for the business below the sub-locality
496
+ # level. For most countries, the first line should include a street number
497
+ # and street name. Suite numbers, floors, building numbers, etc., may also be
498
+ # included. Imprecise information like cross-streets and nearby landmarks
499
+ # should only be included in regions where the official street address does
500
+ # not accurately pinpoint the business's location. Maximum 80 characters.
501
+ # Corresponds to the JSON property `addressLines`
502
+ # @return [Array<String>]
503
+ attr_accessor :address_lines
504
+
505
+ # The suburb where the business is located. This is the division just smaller
506
+ # than a locality (city). Previously referred to in Google My Business
507
+ # Locations as "district". Maximum 80 characters.
508
+ # Also known as: "district" (South Korea), "neighborhood" (Brazil, Mexico),
509
+ # "village / township" (Malaysia).
510
+ # Examples:
511
+ # Manhattan (United States),
512
+ # Centro (Mexico),
513
+ # Songpa District (South Korea.)
514
+ # Corresponds to the JSON property `subLocality`
515
+ # @return [String]
516
+ attr_accessor :sub_locality
517
+
518
+ # The city or town where the business is located.
519
+ # Also known as:
520
+ # "district" (Hong Kong, Turkey), "post town" (United Kingdom).
521
+ # Examples:
522
+ # Chicago (United States), Berlin (Germany), London (United Kingdom).
523
+ # Maximum 80 characters.
524
+ # Corresponds to the JSON property `locality`
525
+ # @return [String]
526
+ attr_accessor :locality
527
+
528
+ # The state or province where the business is located. Using the common
529
+ # abbreviation is generally preferred, such as CA for California or NSW
530
+ # for New South Wales.
531
+ # Not all countries require this field. Use the address editor in the
532
+ # product to determine whether it is appropriate for an address in a
533
+ # particular country.
534
+ # Also known as:
535
+ # "area" (Hong Kong), "county" (Ireland, Taiwan, United Kingdom),
536
+ # "department" (Colombia, Nicaragua), "district" (Indonesia),
537
+ # "do/si" (South Korea), "emirate" (United Arab Emirates), "island,"
538
+ # "oblast" (Russia, Ukraine), "parish," "prefecture" (Japan).
539
+ # Examples:
540
+ # California (United States), Ontario (Canada), Uttar Pradesh (India).
541
+ # Maximum 80 characters.
542
+ # Corresponds to the JSON property `administrativeArea`
543
+ # @return [String]
544
+ attr_accessor :administrative_area
545
+
546
+ # The ISO 3166-1 alpha-2 country code where the business is located. Once
547
+ # a location is created, the country cannot be changed.
548
+ # Corresponds to the JSON property `country`
549
+ # @return [String]
550
+ attr_accessor :country
551
+
552
+ # The postal code of the business. If the postal code begins with zero, make
553
+ # sure that your formatting does not remove the zero as the first digit.
554
+ # Also known as: "zip code" (United States), "PIN code" (India).
555
+ # Corresponds to the JSON property `postalCode`
556
+ # @return [String]
557
+ attr_accessor :postal_code
558
+
559
+ def initialize(**args)
560
+ update!(**args)
561
+ end
562
+
563
+ # Update properties of this object
564
+ def update!(**args)
565
+ @address_lines = args[:address_lines] if args.key?(:address_lines)
566
+ @sub_locality = args[:sub_locality] if args.key?(:sub_locality)
567
+ @locality = args[:locality] if args.key?(:locality)
568
+ @administrative_area = args[:administrative_area] if args.key?(:administrative_area)
569
+ @country = args[:country] if args.key?(:country)
570
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
571
+ end
572
+ end
573
+
574
+ # A category describing what this business is (not what it does). For a list of
575
+ # valid category IDs, and the mappings to their human readable names, see
576
+ # the [category list](/my-business/content/categories).
577
+ class Category
578
+ include Google::Apis::Core::Hashable
579
+
580
+ # The human-readable name of the category.
581
+ # Corresponds to the JSON property `name`
582
+ # @return [String]
583
+ attr_accessor :name
584
+
585
+ # A stable ID (provided by Google) for this category. While it is possible
586
+ # to populate only the `name` field in a category, setting the `category_id`
587
+ # field is
588
+ # preferred.
589
+ # If both fields are populated, the `category_id` takes precedence, and
590
+ # the supplied `name` field is ignored, and populated based on the
591
+ # value of this field.
592
+ # Corresponds to the JSON property `categoryId`
593
+ # @return [String]
594
+ attr_accessor :category_id
595
+
596
+ def initialize(**args)
597
+ update!(**args)
598
+ end
599
+
600
+ # Update properties of this object
601
+ def update!(**args)
602
+ @name = args[:name] if args.key?(:name)
603
+ @category_id = args[:category_id] if args.key?(:category_id)
604
+ end
605
+ end
606
+
607
+ # Represents the time periods that this location is open for business.
608
+ # Holds a collection of TimePeriod
609
+ # instances.
610
+ class BusinessHours
611
+ include Google::Apis::Core::Hashable
612
+
613
+ # A collection of times that this location is open for business. Each period
614
+ # represents a range of hours when the location is open during the week.
615
+ # Corresponds to the JSON property `periods`
616
+ # @return [Array<Google::Apis::MybusinessV3::TimePeriod>]
617
+ attr_accessor :periods
618
+
619
+ def initialize(**args)
620
+ update!(**args)
621
+ end
622
+
623
+ # Update properties of this object
624
+ def update!(**args)
625
+ @periods = args[:periods] if args.key?(:periods)
626
+ end
627
+ end
628
+
629
+ # Represents a span of time that the business is open, starting on the
630
+ # specified open
631
+ # day/time and closing on the specified close day/time.
632
+ # The closing time must occur after the opening time, for example later in the
633
+ # same day, or on a subsequent day.
634
+ class TimePeriod
635
+ include Google::Apis::Core::Hashable
636
+
637
+ # Indicates the day of the week this period starts
638
+ # on.
639
+ # Corresponds to the JSON property `openDay`
640
+ # @return [String]
641
+ attr_accessor :open_day
642
+
643
+ # Time in 24hr ISO 8601 extended format (hh:mm). Valid values are 00:00-24:00,
644
+ # where 24:00 represents midnight at the end of the specified day field.
645
+ # Corresponds to the JSON property `openTime`
646
+ # @return [String]
647
+ attr_accessor :open_time
648
+
649
+ # Indicates the day of the week this period ends
650
+ # on.
651
+ # Corresponds to the JSON property `closeDay`
652
+ # @return [String]
653
+ attr_accessor :close_day
654
+
655
+ # Time in 24hr ISO 8601 extended format (hh:mm). Valid values are
656
+ # 00:00-24:00, where 24:00 represents midnight at the end of the specified day
657
+ # field.
658
+ # Corresponds to the JSON property `closeTime`
659
+ # @return [String]
660
+ attr_accessor :close_time
661
+
662
+ def initialize(**args)
663
+ update!(**args)
664
+ end
665
+
666
+ # Update properties of this object
667
+ def update!(**args)
668
+ @open_day = args[:open_day] if args.key?(:open_day)
669
+ @open_time = args[:open_time] if args.key?(:open_time)
670
+ @close_day = args[:close_day] if args.key?(:close_day)
671
+ @close_time = args[:close_time] if args.key?(:close_time)
672
+ end
673
+ end
674
+
675
+ # Represents a set of time periods when a location's operational hours differ
676
+ # from its normal business hours.
677
+ class SpecialHours
678
+ include Google::Apis::Core::Hashable
679
+
680
+ # A list of exceptions to the business's regular hours.
681
+ # Corresponds to the JSON property `specialHourPeriods`
682
+ # @return [Array<Google::Apis::MybusinessV3::SpecialHourPeriod>]
683
+ attr_accessor :special_hour_periods
684
+
685
+ def initialize(**args)
686
+ update!(**args)
687
+ end
688
+
689
+ # Update properties of this object
690
+ def update!(**args)
691
+ @special_hour_periods = args[:special_hour_periods] if args.key?(:special_hour_periods)
692
+ end
693
+ end
694
+
695
+ # Represents a single time period when a location's operational hours differ
696
+ # from its normal business hours.
697
+ # A special hour period must represent a range of less than 24 hours.
698
+ # The `open_time` and `start_date` must predate the `close_time` and `end_date`.
699
+ # The `close_time` and `end_date` can extend to 11:59 a.m. on the day after
700
+ # the specified `start_date`.
701
+ # For example, the following inputs are valid:
702
+ # start_date=2015-11-23, open_time=08:00, close_time=18:00
703
+ # start_date=2015-11-23, end_date=2015-11-23, open_time=08:00, close_time=18:
704
+ # 00
705
+ # start_date=2015-11-23, end_date=2015-11-24, open_time=13:00, close_time=11:
706
+ # 59
707
+ # The following inputs are NOT valid:
708
+ # start_date=2015-11-23, open_time=13:00, close_time=11:59
709
+ # start_date=2015-11-23, end_date=2015-11-24, open_time=13:00, close_time=12:
710
+ # 00
711
+ # start_date=2015-11-23, end_date=2015-11-25, open_time=08:00, close_time=18:
712
+ # 00
713
+ class SpecialHourPeriod
714
+ include Google::Apis::Core::Hashable
715
+
716
+ # Represents a whole calendar date, e.g. date of birth. The time of day and
717
+ # time zone are either specified elsewhere or are not significant. The date
718
+ # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
719
+ # represent a year and month where the day is not significant, e.g. credit card
720
+ # expiration date. The year may be 0 to represent a month and day independent
721
+ # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
722
+ # and `google.protobuf.Timestamp`.
723
+ # Corresponds to the JSON property `startDate`
724
+ # @return [Google::Apis::MybusinessV3::Date]
725
+ attr_accessor :start_date
726
+
727
+ # The wall time on `start_date` when a location opens, expressed in
728
+ # 24hr ISO 8601 extended format. (hh:mm) Valid values are 00:00-24:00,
729
+ # where 24:00 represents midnight at the end of the specified day field.
730
+ # Must be specified if `is_closed` is false.
731
+ # Corresponds to the JSON property `openTime`
732
+ # @return [String]
733
+ attr_accessor :open_time
734
+
735
+ # Represents a whole calendar date, e.g. date of birth. The time of day and
736
+ # time zone are either specified elsewhere or are not significant. The date
737
+ # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
738
+ # represent a year and month where the day is not significant, e.g. credit card
739
+ # expiration date. The year may be 0 to represent a month and day independent
740
+ # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
741
+ # and `google.protobuf.Timestamp`.
742
+ # Corresponds to the JSON property `endDate`
743
+ # @return [Google::Apis::MybusinessV3::Date]
744
+ attr_accessor :end_date
745
+
746
+ # The wall time on end_date when a location closes, expressed in
747
+ # 24hr ISO 8601 extended format. (hh:mm) Valid values are 00:00-24:00,
748
+ # where 24:00 represents midnight at the end of the specified day field.
749
+ # Must be specified if is_closed is false.
750
+ # Corresponds to the JSON property `closeTime`
751
+ # @return [String]
752
+ attr_accessor :close_time
753
+
754
+ # If true, end_date, open_time, and close_time are ignored,
755
+ # and the date specified in start_date is treated as the location being
756
+ # closed for the entire day.
757
+ # Corresponds to the JSON property `isClosed`
758
+ # @return [Boolean]
759
+ attr_accessor :is_closed
760
+ alias_method :is_closed?, :is_closed
761
+
762
+ def initialize(**args)
763
+ update!(**args)
764
+ end
765
+
766
+ # Update properties of this object
767
+ def update!(**args)
768
+ @start_date = args[:start_date] if args.key?(:start_date)
769
+ @open_time = args[:open_time] if args.key?(:open_time)
770
+ @end_date = args[:end_date] if args.key?(:end_date)
771
+ @close_time = args[:close_time] if args.key?(:close_time)
772
+ @is_closed = args[:is_closed] if args.key?(:is_closed)
773
+ end
774
+ end
775
+
776
+ # Represents a whole calendar date, e.g. date of birth. The time of day and
777
+ # time zone are either specified elsewhere or are not significant. The date
778
+ # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
779
+ # represent a year and month where the day is not significant, e.g. credit card
780
+ # expiration date. The year may be 0 to represent a month and day independent
781
+ # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
782
+ # and `google.protobuf.Timestamp`.
783
+ class Date
784
+ include Google::Apis::Core::Hashable
785
+
786
+ # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
787
+ # a year.
788
+ # Corresponds to the JSON property `year`
789
+ # @return [Fixnum]
790
+ attr_accessor :year
791
+
792
+ # Month of year. Must be from 1 to 12.
793
+ # Corresponds to the JSON property `month`
794
+ # @return [Fixnum]
795
+ attr_accessor :month
796
+
797
+ # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
798
+ # if specifying a year/month where the day is not significant.
799
+ # Corresponds to the JSON property `day`
800
+ # @return [Fixnum]
801
+ attr_accessor :day
802
+
803
+ def initialize(**args)
804
+ update!(**args)
805
+ end
806
+
807
+ # Update properties of this object
808
+ def update!(**args)
809
+ @year = args[:year] if args.key?(:year)
810
+ @month = args[:month] if args.key?(:month)
811
+ @day = args[:day] if args.key?(:day)
812
+ end
813
+ end
814
+
815
+ # Service area businesses provide their service at the customer's location (for
816
+ # example a locksmith or plumber).
817
+ class ServiceAreaBusiness
818
+ include Google::Apis::Core::Hashable
819
+
820
+ # Indicates the type of the service area
821
+ # business.
822
+ # Corresponds to the JSON property `businessType`
823
+ # @return [String]
824
+ attr_accessor :business_type
825
+
826
+ # A radius around a particular point (latitude/longitude).
827
+ # Corresponds to the JSON property `radius`
828
+ # @return [Google::Apis::MybusinessV3::PointRadius]
829
+ attr_accessor :radius
830
+
831
+ # Defines the union of areas represented by a set of places.
832
+ # Corresponds to the JSON property `places`
833
+ # @return [Google::Apis::MybusinessV3::Places]
834
+ attr_accessor :places
835
+
836
+ def initialize(**args)
837
+ update!(**args)
838
+ end
839
+
840
+ # Update properties of this object
841
+ def update!(**args)
842
+ @business_type = args[:business_type] if args.key?(:business_type)
843
+ @radius = args[:radius] if args.key?(:radius)
844
+ @places = args[:places] if args.key?(:places)
845
+ end
846
+ end
847
+
848
+ # A radius around a particular point (latitude/longitude).
849
+ class PointRadius
850
+ include Google::Apis::Core::Hashable
851
+
852
+ # An object representing a latitude/longitude pair. This is expressed as a pair
853
+ # of doubles representing degrees latitude and degrees longitude. Unless
854
+ # specified otherwise, this must conform to the
855
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
856
+ # standard</a>. Values must be within normalized ranges.
857
+ # Example of normalization code in Python:
858
+ # def NormalizeLongitude(longitude):
859
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
860
+ # q, r = divmod(longitude, 360.0)
861
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
862
+ # return r - 360.0
863
+ # return r
864
+ # def NormalizeLatLng(latitude, longitude):
865
+ # """Wraps decimal degrees latitude and longitude to
866
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
867
+ # r = latitude % 360.0
868
+ # if r <= 90.0:
869
+ # return r, NormalizeLongitude(longitude)
870
+ # elif r >= 270.0:
871
+ # return r - 360, NormalizeLongitude(longitude)
872
+ # else:
873
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
874
+ # assert 180.0 == NormalizeLongitude(180.0)
875
+ # assert -180.0 == NormalizeLongitude(-180.0)
876
+ # assert -179.0 == NormalizeLongitude(181.0)
877
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
878
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
879
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
880
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
881
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
882
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
883
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
884
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
885
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
886
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
887
+ # Corresponds to the JSON property `latlng`
888
+ # @return [Google::Apis::MybusinessV3::LatLng]
889
+ attr_accessor :latlng
890
+
891
+ # The distance in kilometers of the area around the point.
892
+ # Corresponds to the JSON property `radiusKm`
893
+ # @return [Float]
894
+ attr_accessor :radius_km
895
+
896
+ def initialize(**args)
897
+ update!(**args)
898
+ end
899
+
900
+ # Update properties of this object
901
+ def update!(**args)
902
+ @latlng = args[:latlng] if args.key?(:latlng)
903
+ @radius_km = args[:radius_km] if args.key?(:radius_km)
904
+ end
905
+ end
906
+
907
+ # An object representing a latitude/longitude pair. This is expressed as a pair
908
+ # of doubles representing degrees latitude and degrees longitude. Unless
909
+ # specified otherwise, this must conform to the
910
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
911
+ # standard</a>. Values must be within normalized ranges.
912
+ # Example of normalization code in Python:
913
+ # def NormalizeLongitude(longitude):
914
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
915
+ # q, r = divmod(longitude, 360.0)
916
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
917
+ # return r - 360.0
918
+ # return r
919
+ # def NormalizeLatLng(latitude, longitude):
920
+ # """Wraps decimal degrees latitude and longitude to
921
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
922
+ # r = latitude % 360.0
923
+ # if r <= 90.0:
924
+ # return r, NormalizeLongitude(longitude)
925
+ # elif r >= 270.0:
926
+ # return r - 360, NormalizeLongitude(longitude)
927
+ # else:
928
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
929
+ # assert 180.0 == NormalizeLongitude(180.0)
930
+ # assert -180.0 == NormalizeLongitude(-180.0)
931
+ # assert -179.0 == NormalizeLongitude(181.0)
932
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
933
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
934
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
935
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
936
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
937
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
938
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
939
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
940
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
941
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
942
+ class LatLng
943
+ include Google::Apis::Core::Hashable
944
+
945
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
946
+ # Corresponds to the JSON property `latitude`
947
+ # @return [Float]
948
+ attr_accessor :latitude
949
+
950
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
951
+ # Corresponds to the JSON property `longitude`
952
+ # @return [Float]
953
+ attr_accessor :longitude
954
+
955
+ def initialize(**args)
956
+ update!(**args)
957
+ end
958
+
959
+ # Update properties of this object
960
+ def update!(**args)
961
+ @latitude = args[:latitude] if args.key?(:latitude)
962
+ @longitude = args[:longitude] if args.key?(:longitude)
963
+ end
964
+ end
965
+
966
+ # Defines the union of areas represented by a set of places.
967
+ class Places
968
+ include Google::Apis::Core::Hashable
969
+
970
+ # The areas represented by place IDs.
971
+ # Corresponds to the JSON property `placeInfos`
972
+ # @return [Array<Google::Apis::MybusinessV3::PlaceInfo>]
973
+ attr_accessor :place_infos
974
+
975
+ def initialize(**args)
976
+ update!(**args)
977
+ end
978
+
979
+ # Update properties of this object
980
+ def update!(**args)
981
+ @place_infos = args[:place_infos] if args.key?(:place_infos)
982
+ end
983
+ end
984
+
985
+ # Defines an area that's represented by a place ID.
986
+ class PlaceInfo
987
+ include Google::Apis::Core::Hashable
988
+
989
+ # The localized name of the place. For example, `Scottsdale, AZ`.
990
+ # Corresponds to the JSON property `name`
991
+ # @return [String]
992
+ attr_accessor :name
993
+
994
+ # The ID of the place.
995
+ # Corresponds to the JSON property `placeId`
996
+ # @return [String]
997
+ attr_accessor :place_id
998
+
999
+ def initialize(**args)
1000
+ update!(**args)
1001
+ end
1002
+
1003
+ # Update properties of this object
1004
+ def update!(**args)
1005
+ @name = args[:name] if args.key?(:name)
1006
+ @place_id = args[:place_id] if args.key?(:place_id)
1007
+ end
1008
+ end
1009
+
1010
+ # Alternate / surrogate key references for a location.
1011
+ class LocationKey
1012
+ include Google::Apis::Core::Hashable
1013
+
1014
+ # If this location has a Google+ page associated with it, this is
1015
+ # populated with the Google+ page ID for this location.
1016
+ # @OutputOnly
1017
+ # Corresponds to the JSON property `plusPageId`
1018
+ # @return [String]
1019
+ attr_accessor :plus_page_id
1020
+
1021
+ # If this location has been verified and is connected to/appears on Google
1022
+ # Maps, this field is populated with the place ID for the location.
1023
+ # This ID can be used in various Places APIs.
1024
+ # If this location is unverified, this field may be populated if the location
1025
+ # has been associated with a place that appears on Google Maps.
1026
+ # This field can be set during Create calls, but not for Update.
1027
+ # The additional explicit_no_place_id bool qualifies whether an unset
1028
+ # place ID is deliberate or not.
1029
+ # Corresponds to the JSON property `placeId`
1030
+ # @return [String]
1031
+ attr_accessor :place_id
1032
+
1033
+ # A value of true indicates that an unset place ID is deliberate,
1034
+ # which is different from no association being made yet.
1035
+ # @OutputOnly
1036
+ # Corresponds to the JSON property `explicitNoPlaceId`
1037
+ # @return [Boolean]
1038
+ attr_accessor :explicit_no_place_id
1039
+ alias_method :explicit_no_place_id?, :explicit_no_place_id
1040
+
1041
+ def initialize(**args)
1042
+ update!(**args)
1043
+ end
1044
+
1045
+ # Update properties of this object
1046
+ def update!(**args)
1047
+ @plus_page_id = args[:plus_page_id] if args.key?(:plus_page_id)
1048
+ @place_id = args[:place_id] if args.key?(:place_id)
1049
+ @explicit_no_place_id = args[:explicit_no_place_id] if args.key?(:explicit_no_place_id)
1050
+ end
1051
+ end
1052
+
1053
+ # Additional information that is surfaced in AdWords.
1054
+ class AdWordsLocationExtensions
1055
+ include Google::Apis::Core::Hashable
1056
+
1057
+ # An alternate phone number to display on AdWords location extensions
1058
+ # instead of the location's primary phone number.
1059
+ # Corresponds to the JSON property `adPhone`
1060
+ # @return [String]
1061
+ attr_accessor :ad_phone
1062
+
1063
+ def initialize(**args)
1064
+ update!(**args)
1065
+ end
1066
+
1067
+ # Update properties of this object
1068
+ def update!(**args)
1069
+ @ad_phone = args[:ad_phone] if args.key?(:ad_phone)
1070
+ end
1071
+ end
1072
+
1073
+ # A collection of photos representing the business, categorized by photo type.
1074
+ # The URL for each photo should point to a publicly accessible image.
1075
+ # Photos should be supplied in either JPG or PNG format unless specified
1076
+ # otherwise. If the photo was added by using Google My Business Locations or
1077
+ # this API, the user-provided URL is used. If the photo was uploaded via the
1078
+ # Google My Business Photos App, the photo uses a generated URL hosted by
1079
+ # Google. Exceptions: `profile_photo_url` and `cover_photo_url` are always
1080
+ # under a Google domain.
1081
+ # With the exception of profile_photo_url and cover_photo_url, all photos
1082
+ # must measure a minimum of 250px on the short edge, with a file size of at
1083
+ # least 10240 bytes.
1084
+ class Photos
1085
+ include Google::Apis::Core::Hashable
1086
+
1087
+ # The profile photo helps people recognize your business across Google.
1088
+ # Profile photos must be square, with a minimum size of 250px and a maximum
1089
+ # size of 500px. Allowed formats are JPG, PNG, and GIF.
1090
+ # Corresponds to the JSON property `profilePhotoUrl`
1091
+ # @return [String]
1092
+ attr_accessor :profile_photo_url
1093
+
1094
+ # The cover photo showcases the personality of your business.
1095
+ # Cover photos must have a 16:9 aspect ratio, with a minimum size of 480px
1096
+ # x 270px, and a maximum size of 2120px x 1192px.
1097
+ # Corresponds to the JSON property `coverPhotoUrl`
1098
+ # @return [String]
1099
+ attr_accessor :cover_photo_url
1100
+
1101
+ # The logo photo helps customers to recognize your brand. Upon upload, logo
1102
+ # images are fitted into a square (transparent vertical or horizontal lines
1103
+ # are added on two sides of the image if the original image is not square).
1104
+ # Corresponds to the JSON property `logoPhotoUrl`
1105
+ # @return [String]
1106
+ attr_accessor :logo_photo_url
1107
+
1108
+ # Exterior photos help customers to recognize your business as they approach
1109
+ # from different directions.
1110
+ # Corresponds to the JSON property `exteriorPhotoUrls`
1111
+ # @return [Array<String>]
1112
+ attr_accessor :exterior_photo_urls
1113
+
1114
+ # Interior photos show customers what your business location looks like
1115
+ # inside.
1116
+ # Corresponds to the JSON property `interiorPhotoUrls`
1117
+ # @return [Array<String>]
1118
+ attr_accessor :interior_photo_urls
1119
+
1120
+ # Product photos showcase the products sold by your business.
1121
+ # Corresponds to the JSON property `productPhotoUrls`
1122
+ # @return [Array<String>]
1123
+ attr_accessor :product_photo_urls
1124
+
1125
+ # At work photos show you and your employees serving your customers.
1126
+ # Corresponds to the JSON property `photosAtWorkUrls`
1127
+ # @return [Array<String>]
1128
+ attr_accessor :photos_at_work_urls
1129
+
1130
+ # Food and drink photos display the food and drink items served by your
1131
+ # business.
1132
+ # Corresponds to the JSON property `foodAndDrinkPhotoUrls`
1133
+ # @return [Array<String>]
1134
+ attr_accessor :food_and_drink_photo_urls
1135
+
1136
+ # Menu photos show customers what your food menu looks like.
1137
+ # Corresponds to the JSON property `menuPhotoUrls`
1138
+ # @return [Array<String>]
1139
+ attr_accessor :menu_photo_urls
1140
+
1141
+ # Common area photos show customers the common areas of your business
1142
+ # location.
1143
+ # Corresponds to the JSON property `commonAreasPhotoUrls`
1144
+ # @return [Array<String>]
1145
+ attr_accessor :common_areas_photo_urls
1146
+
1147
+ # Room photos show customers the inside of your guest rooms.
1148
+ # Corresponds to the JSON property `roomsPhotoUrls`
1149
+ # @return [Array<String>]
1150
+ attr_accessor :rooms_photo_urls
1151
+
1152
+ # Team photos show your management team and your employees.
1153
+ # Corresponds to the JSON property `teamPhotoUrls`
1154
+ # @return [Array<String>]
1155
+ attr_accessor :team_photo_urls
1156
+
1157
+ # Use the additional photos category for images that don't fit in any of the
1158
+ # other categories.
1159
+ # Corresponds to the JSON property `additionalPhotoUrls`
1160
+ # @return [Array<String>]
1161
+ attr_accessor :additional_photo_urls
1162
+
1163
+ # Indicate which photo should be shown first in Google Maps and Search.
1164
+ # Corresponds to the JSON property `preferredPhoto`
1165
+ # @return [String]
1166
+ attr_accessor :preferred_photo
1167
+
1168
+ def initialize(**args)
1169
+ update!(**args)
1170
+ end
1171
+
1172
+ # Update properties of this object
1173
+ def update!(**args)
1174
+ @profile_photo_url = args[:profile_photo_url] if args.key?(:profile_photo_url)
1175
+ @cover_photo_url = args[:cover_photo_url] if args.key?(:cover_photo_url)
1176
+ @logo_photo_url = args[:logo_photo_url] if args.key?(:logo_photo_url)
1177
+ @exterior_photo_urls = args[:exterior_photo_urls] if args.key?(:exterior_photo_urls)
1178
+ @interior_photo_urls = args[:interior_photo_urls] if args.key?(:interior_photo_urls)
1179
+ @product_photo_urls = args[:product_photo_urls] if args.key?(:product_photo_urls)
1180
+ @photos_at_work_urls = args[:photos_at_work_urls] if args.key?(:photos_at_work_urls)
1181
+ @food_and_drink_photo_urls = args[:food_and_drink_photo_urls] if args.key?(:food_and_drink_photo_urls)
1182
+ @menu_photo_urls = args[:menu_photo_urls] if args.key?(:menu_photo_urls)
1183
+ @common_areas_photo_urls = args[:common_areas_photo_urls] if args.key?(:common_areas_photo_urls)
1184
+ @rooms_photo_urls = args[:rooms_photo_urls] if args.key?(:rooms_photo_urls)
1185
+ @team_photo_urls = args[:team_photo_urls] if args.key?(:team_photo_urls)
1186
+ @additional_photo_urls = args[:additional_photo_urls] if args.key?(:additional_photo_urls)
1187
+ @preferred_photo = args[:preferred_photo] if args.key?(:preferred_photo)
1188
+ end
1189
+ end
1190
+
1191
+ # Indicates whether the location is currently open for business.
1192
+ # All locations are open by default, unless updated to be closed.
1193
+ class OpenInfo
1194
+ include Google::Apis::Core::Hashable
1195
+
1196
+ # Indicates the Location OpenForBusiness status.
1197
+ # Corresponds to the JSON property `status`
1198
+ # @return [String]
1199
+ attr_accessor :status
1200
+
1201
+ def initialize(**args)
1202
+ update!(**args)
1203
+ end
1204
+
1205
+ # Update properties of this object
1206
+ def update!(**args)
1207
+ @status = args[:status] if args.key?(:status)
1208
+ end
1209
+ end
1210
+
1211
+ # Contains a set of booleans that reflect the state of a Location.
1212
+ class LocationState
1213
+ include Google::Apis::Core::Hashable
1214
+
1215
+ # Indicates whether the place ID associated with this location has updates.
1216
+ # @OutputOnly
1217
+ # Corresponds to the JSON property `isGoogleUpdated`
1218
+ # @return [Boolean]
1219
+ attr_accessor :is_google_updated
1220
+ alias_method :is_google_updated?, :is_google_updated
1221
+
1222
+ # Indicates whether the location is a duplicate of another location.
1223
+ # See metadata.duplicate for more information.
1224
+ # @OutputOnly
1225
+ # Corresponds to the JSON property `isDuplicate`
1226
+ # @return [Boolean]
1227
+ attr_accessor :is_duplicate
1228
+ alias_method :is_duplicate?, :is_duplicate
1229
+
1230
+ # Indicates whether the location is suspended.
1231
+ # Suspended locations are not visible to end users in Google products.
1232
+ # If you believe this was a mistake, see the [help center article]
1233
+ # (https://support.google.com/business/answer/4569145).
1234
+ # @OutputOnly
1235
+ # Corresponds to the JSON property `isSuspended`
1236
+ # @return [Boolean]
1237
+ attr_accessor :is_suspended
1238
+ alias_method :is_suspended?, :is_suspended
1239
+
1240
+ # Indicates whether the location can be updated.
1241
+ # @OutputOnly
1242
+ # Corresponds to the JSON property `canUpdate`
1243
+ # @return [Boolean]
1244
+ attr_accessor :can_update
1245
+ alias_method :can_update?, :can_update
1246
+
1247
+ # Indicates whether the location can be deleted using the Google My Business
1248
+ # UI.
1249
+ # @OutputOnly
1250
+ # Corresponds to the JSON property `canDelete`
1251
+ # @return [Boolean]
1252
+ attr_accessor :can_delete
1253
+ alias_method :can_delete?, :can_delete
1254
+
1255
+ # Indicates whether the location is verified.
1256
+ # @OutputOnly
1257
+ # Corresponds to the JSON property `isVerified`
1258
+ # @return [Boolean]
1259
+ attr_accessor :is_verified
1260
+ alias_method :is_verified?, :is_verified
1261
+
1262
+ # Indicates whether the location requires reverification.
1263
+ # @OutputOnly
1264
+ # Corresponds to the JSON property `needsReverification`
1265
+ # @return [Boolean]
1266
+ attr_accessor :needs_reverification
1267
+ alias_method :needs_reverification?, :needs_reverification
1268
+
1269
+ def initialize(**args)
1270
+ update!(**args)
1271
+ end
1272
+
1273
+ # Update properties of this object
1274
+ def update!(**args)
1275
+ @is_google_updated = args[:is_google_updated] if args.key?(:is_google_updated)
1276
+ @is_duplicate = args[:is_duplicate] if args.key?(:is_duplicate)
1277
+ @is_suspended = args[:is_suspended] if args.key?(:is_suspended)
1278
+ @can_update = args[:can_update] if args.key?(:can_update)
1279
+ @can_delete = args[:can_delete] if args.key?(:can_delete)
1280
+ @is_verified = args[:is_verified] if args.key?(:is_verified)
1281
+ @needs_reverification = args[:needs_reverification] if args.key?(:needs_reverification)
1282
+ end
1283
+ end
1284
+
1285
+ # A location attribute. Attributes provide additional, information about a
1286
+ # location. The attributes that can be set on a location may vary based on
1287
+ # the properties of that location (e.g. category). Available attributes are
1288
+ # determined by Google and may be added and removed without API changes.
1289
+ class Attribute
1290
+ include Google::Apis::Core::Hashable
1291
+
1292
+ # The id of the attribute. Attribute ids are provided by Google.
1293
+ # Corresponds to the JSON property `attributeId`
1294
+ # @return [String]
1295
+ attr_accessor :attribute_id
1296
+
1297
+ # The type of value that this attribute contains. This should be used to
1298
+ # determine how to interpret the value.
1299
+ # @OutputOnly
1300
+ # Corresponds to the JSON property `valueType`
1301
+ # @return [String]
1302
+ attr_accessor :value_type
1303
+
1304
+ # The values for this attribute. The type of the values supplied must match
1305
+ # that expected for that attribute, see AttributeValueType. This is a
1306
+ # repeated field where multiple attribute values may be provided. Current
1307
+ # attribute types only support one value, but future types may support
1308
+ # multiple values.
1309
+ # Corresponds to the JSON property `values`
1310
+ # @return [Array<Object>]
1311
+ attr_accessor :values
1312
+
1313
+ def initialize(**args)
1314
+ update!(**args)
1315
+ end
1316
+
1317
+ # Update properties of this object
1318
+ def update!(**args)
1319
+ @attribute_id = args[:attribute_id] if args.key?(:attribute_id)
1320
+ @value_type = args[:value_type] if args.key?(:value_type)
1321
+ @values = args[:values] if args.key?(:values)
1322
+ end
1323
+ end
1324
+
1325
+ # Additional non-user-editable information about the location.
1326
+ class Metadata
1327
+ include Google::Apis::Core::Hashable
1328
+
1329
+ # Information about the location that this location duplicates.
1330
+ # Corresponds to the JSON property `duplicate`
1331
+ # @return [Google::Apis::MybusinessV3::Duplicate]
1332
+ attr_accessor :duplicate
1333
+
1334
+ def initialize(**args)
1335
+ update!(**args)
1336
+ end
1337
+
1338
+ # Update properties of this object
1339
+ def update!(**args)
1340
+ @duplicate = args[:duplicate] if args.key?(:duplicate)
1341
+ end
1342
+ end
1343
+
1344
+ # Information about the location that this location duplicates.
1345
+ class Duplicate
1346
+ include Google::Apis::Core::Hashable
1347
+
1348
+ # The resource name of the location that this duplicates. Only populated
1349
+ # if the authenticated user has access rights to that location and that
1350
+ # location is not deleted.
1351
+ # Corresponds to the JSON property `locationName`
1352
+ # @return [String]
1353
+ attr_accessor :location_name
1354
+
1355
+ # Indicates the ownership status between this location and the location
1356
+ # that it duplicates.
1357
+ # Corresponds to the JSON property `ownership`
1358
+ # @return [String]
1359
+ attr_accessor :ownership
1360
+
1361
+ def initialize(**args)
1362
+ update!(**args)
1363
+ end
1364
+
1365
+ # Update properties of this object
1366
+ def update!(**args)
1367
+ @location_name = args[:location_name] if args.key?(:location_name)
1368
+ @ownership = args[:ownership] if args.key?(:ownership)
1369
+ end
1370
+ end
1371
+
1372
+ #
1373
+ class BatchGetLocationsRequest
1374
+ include Google::Apis::Core::Hashable
1375
+
1376
+ # A collection of locations to fetch, specified by their names.
1377
+ # Corresponds to the JSON property `locationNames`
1378
+ # @return [Array<String>]
1379
+ attr_accessor :location_names
1380
+
1381
+ def initialize(**args)
1382
+ update!(**args)
1383
+ end
1384
+
1385
+ # Update properties of this object
1386
+ def update!(**args)
1387
+ @location_names = args[:location_names] if args.key?(:location_names)
1388
+ end
1389
+ end
1390
+
1391
+ #
1392
+ class BatchGetLocationsResponse
1393
+ include Google::Apis::Core::Hashable
1394
+
1395
+ # A collection of locations.
1396
+ # Corresponds to the JSON property `locations`
1397
+ # @return [Array<Google::Apis::MybusinessV3::Location>]
1398
+ attr_accessor :locations
1399
+
1400
+ def initialize(**args)
1401
+ update!(**args)
1402
+ end
1403
+
1404
+ # Update properties of this object
1405
+ def update!(**args)
1406
+ @locations = args[:locations] if args.key?(:locations)
1407
+ end
1408
+ end
1409
+
1410
+ # Represents a location that was modified by Google.
1411
+ class GoogleUpdatedLocation
1412
+ include Google::Apis::Core::Hashable
1413
+
1414
+ # A location.
1415
+ # See the [help center article]
1416
+ # (https://support.google.com/business/answer/3038177) for a detailed
1417
+ # description of these fields, or the [category
1418
+ # list](/my-business/content/categories] for a list of valid business
1419
+ # categories.
1420
+ # Corresponds to the JSON property `location`
1421
+ # @return [Google::Apis::MybusinessV3::Location]
1422
+ attr_accessor :location
1423
+
1424
+ # The fields that Google updated.
1425
+ # Corresponds to the JSON property `diffMask`
1426
+ # @return [String]
1427
+ attr_accessor :diff_mask
1428
+
1429
+ def initialize(**args)
1430
+ update!(**args)
1431
+ end
1432
+
1433
+ # Update properties of this object
1434
+ def update!(**args)
1435
+ @location = args[:location] if args.key?(:location)
1436
+ @diff_mask = args[:diff_mask] if args.key?(:diff_mask)
1437
+ end
1438
+ end
1439
+
1440
+ #
1441
+ class ListLocationAdminsResponse
1442
+ include Google::Apis::Core::Hashable
1443
+
1444
+ # A collection of Admin instances.
1445
+ # Corresponds to the JSON property `admins`
1446
+ # @return [Array<Google::Apis::MybusinessV3::Admin>]
1447
+ attr_accessor :admins
1448
+
1449
+ def initialize(**args)
1450
+ update!(**args)
1451
+ end
1452
+
1453
+ # Update properties of this object
1454
+ def update!(**args)
1455
+ @admins = args[:admins] if args.key?(:admins)
1456
+ end
1457
+ end
1458
+
1459
+ # Request message for MyBusiness.FindMatchingLocations.
1460
+ class FindMatchingLocationsRequest
1461
+ include Google::Apis::Core::Hashable
1462
+
1463
+ # The preferred language for the matching location.
1464
+ # Corresponds to the JSON property `languageCode`
1465
+ # @return [String]
1466
+ attr_accessor :language_code
1467
+
1468
+ # The number of matches to return. The default value is 3, with a maximum
1469
+ # of 10. Note that latency may increase if more are requested. There is no
1470
+ # pagination. This field is only respected if the cache needs to be updated.
1471
+ # Corresponds to the JSON property `numResults`
1472
+ # @return [Fixnum]
1473
+ attr_accessor :num_results
1474
+
1475
+ # Indicates the duration of acceptable cache-age. If omitted, will always
1476
+ # return the cached data (if available). If the cache is older than the
1477
+ # provided duration, or if a cached value is not available, results will be
1478
+ # re-calculated and re-cached.
1479
+ # Corresponds to the JSON property `maxCacheDuration`
1480
+ # @return [String]
1481
+ attr_accessor :max_cache_duration
1482
+
1483
+ def initialize(**args)
1484
+ update!(**args)
1485
+ end
1486
+
1487
+ # Update properties of this object
1488
+ def update!(**args)
1489
+ @language_code = args[:language_code] if args.key?(:language_code)
1490
+ @num_results = args[:num_results] if args.key?(:num_results)
1491
+ @max_cache_duration = args[:max_cache_duration] if args.key?(:max_cache_duration)
1492
+ end
1493
+ end
1494
+
1495
+ # Response message for MyBusiness.FindMatchingLocations
1496
+ class FindMatchingLocationsResponse
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # A collection of locations that are potential matches to the specified
1500
+ # location, listed in order from best to least match. If there is an exact
1501
+ # match, it will be in the first position.
1502
+ # Corresponds to the JSON property `matchedLocations`
1503
+ # @return [Array<Google::Apis::MybusinessV3::MatchedLocation>]
1504
+ attr_accessor :matched_locations
1505
+
1506
+ # When the matching algorithm was last executed for this location.
1507
+ # Corresponds to the JSON property `matchTime`
1508
+ # @return [String]
1509
+ attr_accessor :match_time
1510
+
1511
+ def initialize(**args)
1512
+ update!(**args)
1513
+ end
1514
+
1515
+ # Update properties of this object
1516
+ def update!(**args)
1517
+ @matched_locations = args[:matched_locations] if args.key?(:matched_locations)
1518
+ @match_time = args[:match_time] if args.key?(:match_time)
1519
+ end
1520
+ end
1521
+
1522
+ # Represents a possible match to a location.
1523
+ class MatchedLocation
1524
+ include Google::Apis::Core::Hashable
1525
+
1526
+ # A location.
1527
+ # See the [help center article]
1528
+ # (https://support.google.com/business/answer/3038177) for a detailed
1529
+ # description of these fields, or the [category
1530
+ # list](/my-business/content/categories] for a list of valid business
1531
+ # categories.
1532
+ # Corresponds to the JSON property `location`
1533
+ # @return [Google::Apis::MybusinessV3::Location]
1534
+ attr_accessor :location
1535
+
1536
+ # Is this an exact match?
1537
+ # Corresponds to the JSON property `isExactMatch`
1538
+ # @return [Boolean]
1539
+ attr_accessor :is_exact_match
1540
+ alias_method :is_exact_match?, :is_exact_match
1541
+
1542
+ def initialize(**args)
1543
+ update!(**args)
1544
+ end
1545
+
1546
+ # Update properties of this object
1547
+ def update!(**args)
1548
+ @location = args[:location] if args.key?(:location)
1549
+ @is_exact_match = args[:is_exact_match] if args.key?(:is_exact_match)
1550
+ end
1551
+ end
1552
+
1553
+ # Request message for MyBusiness.AssociateLocationRequest to associate a
1554
+ # location to a place or indicate no match.
1555
+ class AssociateLocationRequest
1556
+ include Google::Apis::Core::Hashable
1557
+
1558
+ # The association to establish. If not set, it indicates no match.
1559
+ # Corresponds to the JSON property `placeId`
1560
+ # @return [String]
1561
+ attr_accessor :place_id
1562
+
1563
+ def initialize(**args)
1564
+ update!(**args)
1565
+ end
1566
+
1567
+ # Update properties of this object
1568
+ def update!(**args)
1569
+ @place_id = args[:place_id] if args.key?(:place_id)
1570
+ end
1571
+ end
1572
+
1573
+ # Request message for MyBusiness.ClearLocationAssociationRequest to clear
1574
+ # the association between a location to its place ID.
1575
+ class ClearLocationAssociationRequest
1576
+ include Google::Apis::Core::Hashable
1577
+
1578
+ def initialize(**args)
1579
+ update!(**args)
1580
+ end
1581
+
1582
+ # Update properties of this object
1583
+ def update!(**args)
1584
+ end
1585
+ end
1586
+
1587
+ # Request message for MyBusiness.TransferLocation to transfer a location from
1588
+ # its current account to another.
1589
+ class TransferLocationRequest
1590
+ include Google::Apis::Core::Hashable
1591
+
1592
+ # Name of the account resource to transfer the location to (e.g.
1593
+ # "accounts/8675309")
1594
+ # Corresponds to the JSON property `toAccount`
1595
+ # @return [String]
1596
+ attr_accessor :to_account
1597
+
1598
+ def initialize(**args)
1599
+ update!(**args)
1600
+ end
1601
+
1602
+ # Update properties of this object
1603
+ def update!(**args)
1604
+ @to_account = args[:to_account] if args.key?(:to_account)
1605
+ end
1606
+ end
1607
+
1608
+ # Response message for MyBusiness.ListReviews.
1609
+ class ListReviewsResponse
1610
+ include Google::Apis::Core::Hashable
1611
+
1612
+ # The reviews.
1613
+ # Corresponds to the JSON property `reviews`
1614
+ # @return [Array<Google::Apis::MybusinessV3::Review>]
1615
+ attr_accessor :reviews
1616
+
1617
+ # The average star rating of all reviews for this location
1618
+ # on a scale of 1 to 5.
1619
+ # Corresponds to the JSON property `averageRating`
1620
+ # @return [Float]
1621
+ attr_accessor :average_rating
1622
+
1623
+ # The total number of reviews for this location.
1624
+ # Corresponds to the JSON property `totalReviewCount`
1625
+ # @return [Fixnum]
1626
+ attr_accessor :total_review_count
1627
+
1628
+ # If the number of reviews exceeded the requested page size, this field
1629
+ # is populated with a token to fetch the next page of reviews on a
1630
+ # subsequent call to ListReviews. If there are no more reviews, this
1631
+ # field is not be present in the response.
1632
+ # Corresponds to the JSON property `nextPageToken`
1633
+ # @return [String]
1634
+ attr_accessor :next_page_token
1635
+
1636
+ def initialize(**args)
1637
+ update!(**args)
1638
+ end
1639
+
1640
+ # Update properties of this object
1641
+ def update!(**args)
1642
+ @reviews = args[:reviews] if args.key?(:reviews)
1643
+ @average_rating = args[:average_rating] if args.key?(:average_rating)
1644
+ @total_review_count = args[:total_review_count] if args.key?(:total_review_count)
1645
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1646
+ end
1647
+ end
1648
+
1649
+ # Represents a review for a location.
1650
+ # @OutputOnly
1651
+ class Review
1652
+ include Google::Apis::Core::Hashable
1653
+
1654
+ # The encrypted unique identifier.
1655
+ # Corresponds to the JSON property `reviewId`
1656
+ # @return [String]
1657
+ attr_accessor :review_id
1658
+
1659
+ # Represents the author of reviews.
1660
+ # Corresponds to the JSON property `reviewer`
1661
+ # @return [Google::Apis::MybusinessV3::Reviewer]
1662
+ attr_accessor :reviewer
1663
+
1664
+ # Star rating of the review.
1665
+ # Corresponds to the JSON property `starRating`
1666
+ # @return [String]
1667
+ attr_accessor :star_rating
1668
+
1669
+ # The body of the review as plain text with markups.
1670
+ # Corresponds to the JSON property `comment`
1671
+ # @return [String]
1672
+ attr_accessor :comment
1673
+
1674
+ # The timestamp for when the review was written.
1675
+ # Corresponds to the JSON property `createTime`
1676
+ # @return [String]
1677
+ attr_accessor :create_time
1678
+
1679
+ # The timestamp for when the review was last modified.
1680
+ # Corresponds to the JSON property `updateTime`
1681
+ # @return [String]
1682
+ attr_accessor :update_time
1683
+
1684
+ # Represents the location owner/manager's reply to a review
1685
+ # Corresponds to the JSON property `reviewReply`
1686
+ # @return [Google::Apis::MybusinessV3::ReviewReply]
1687
+ attr_accessor :review_reply
1688
+
1689
+ def initialize(**args)
1690
+ update!(**args)
1691
+ end
1692
+
1693
+ # Update properties of this object
1694
+ def update!(**args)
1695
+ @review_id = args[:review_id] if args.key?(:review_id)
1696
+ @reviewer = args[:reviewer] if args.key?(:reviewer)
1697
+ @star_rating = args[:star_rating] if args.key?(:star_rating)
1698
+ @comment = args[:comment] if args.key?(:comment)
1699
+ @create_time = args[:create_time] if args.key?(:create_time)
1700
+ @update_time = args[:update_time] if args.key?(:update_time)
1701
+ @review_reply = args[:review_reply] if args.key?(:review_reply)
1702
+ end
1703
+ end
1704
+
1705
+ # Represents the author of reviews.
1706
+ class Reviewer
1707
+ include Google::Apis::Core::Hashable
1708
+
1709
+ # The name of the reviewer.
1710
+ # Only populated with the reviewer's real name if is_anonymous is false.
1711
+ # Corresponds to the JSON property `displayName`
1712
+ # @return [String]
1713
+ attr_accessor :display_name
1714
+
1715
+ # Indicates whether the reviewer has opted to remain anonymous.
1716
+ # Corresponds to the JSON property `isAnonymous`
1717
+ # @return [Boolean]
1718
+ attr_accessor :is_anonymous
1719
+ alias_method :is_anonymous?, :is_anonymous
1720
+
1721
+ def initialize(**args)
1722
+ update!(**args)
1723
+ end
1724
+
1725
+ # Update properties of this object
1726
+ def update!(**args)
1727
+ @display_name = args[:display_name] if args.key?(:display_name)
1728
+ @is_anonymous = args[:is_anonymous] if args.key?(:is_anonymous)
1729
+ end
1730
+ end
1731
+
1732
+ # Represents the location owner/manager's reply to a review
1733
+ class ReviewReply
1734
+ include Google::Apis::Core::Hashable
1735
+
1736
+ # The body of the review as plain text with markups.
1737
+ # The maximum length is 4096 bytes.
1738
+ # Corresponds to the JSON property `comment`
1739
+ # @return [String]
1740
+ attr_accessor :comment
1741
+
1742
+ # The timestamp for when the review was last modified.
1743
+ # @OutputOnly
1744
+ # Corresponds to the JSON property `updateTime`
1745
+ # @return [String]
1746
+ attr_accessor :update_time
1747
+
1748
+ def initialize(**args)
1749
+ update!(**args)
1750
+ end
1751
+
1752
+ # Update properties of this object
1753
+ def update!(**args)
1754
+ @comment = args[:comment] if args.key?(:comment)
1755
+ @update_time = args[:update_time] if args.key?(:update_time)
1756
+ end
1757
+ end
1758
+
1759
+ #
1760
+ class ListLocationAttributeMetadataResponse
1761
+ include Google::Apis::Core::Hashable
1762
+
1763
+ # A collection of attribute metadata for the available attributes.
1764
+ # Corresponds to the JSON property `attributes`
1765
+ # @return [Array<Google::Apis::MybusinessV3::AttributeMetadata>]
1766
+ attr_accessor :attributes
1767
+
1768
+ def initialize(**args)
1769
+ update!(**args)
1770
+ end
1771
+
1772
+ # Update properties of this object
1773
+ def update!(**args)
1774
+ @attributes = args[:attributes] if args.key?(:attributes)
1775
+ end
1776
+ end
1777
+
1778
+ # Metadata for an attribute. Contains display information for the attribute,
1779
+ # including a localised name and a heading for grouping related attributes
1780
+ # together.
1781
+ class AttributeMetadata
1782
+ include Google::Apis::Core::Hashable
1783
+
1784
+ # The id of the attribute.
1785
+ # Corresponds to the JSON property `attributeId`
1786
+ # @return [String]
1787
+ attr_accessor :attribute_id
1788
+
1789
+ # The value type for the attribute. Values set and retrieved should be
1790
+ # expected to be of this type.
1791
+ # Corresponds to the JSON property `valueType`
1792
+ # @return [String]
1793
+ attr_accessor :value_type
1794
+
1795
+ # The localised display name for the attribute, if available, otherwise
1796
+ # the English display name.
1797
+ # Corresponds to the JSON property `displayName`
1798
+ # @return [String]
1799
+ attr_accessor :display_name
1800
+
1801
+ # The localised display name of the group that contains this attribute, if
1802
+ # available, otherwise the English group name. Related attributes are
1803
+ # collected into group and should be displayed together under the heading
1804
+ # given here.
1805
+ # Corresponds to the JSON property `groupDisplayName`
1806
+ # @return [String]
1807
+ attr_accessor :group_display_name
1808
+
1809
+ # If true, the attribute supports multiple values. If false only a single
1810
+ # value should be provided.
1811
+ # Corresponds to the JSON property `isRepeatable`
1812
+ # @return [Boolean]
1813
+ attr_accessor :is_repeatable
1814
+ alias_method :is_repeatable?, :is_repeatable
1815
+
1816
+ # For some types of attributes (e.g. enums) a list of supported values and
1817
+ # corresponding display names for those values is provided.
1818
+ # Corresponds to the JSON property `valueMetadata`
1819
+ # @return [Array<Google::Apis::MybusinessV3::AttributeValueMetadata>]
1820
+ attr_accessor :value_metadata
1821
+
1822
+ def initialize(**args)
1823
+ update!(**args)
1824
+ end
1825
+
1826
+ # Update properties of this object
1827
+ def update!(**args)
1828
+ @attribute_id = args[:attribute_id] if args.key?(:attribute_id)
1829
+ @value_type = args[:value_type] if args.key?(:value_type)
1830
+ @display_name = args[:display_name] if args.key?(:display_name)
1831
+ @group_display_name = args[:group_display_name] if args.key?(:group_display_name)
1832
+ @is_repeatable = args[:is_repeatable] if args.key?(:is_repeatable)
1833
+ @value_metadata = args[:value_metadata] if args.key?(:value_metadata)
1834
+ end
1835
+ end
1836
+
1837
+ # Metadata for supported attribute values
1838
+ class AttributeValueMetadata
1839
+ include Google::Apis::Core::Hashable
1840
+
1841
+ # The attribute value
1842
+ # Corresponds to the JSON property `value`
1843
+ # @return [Object]
1844
+ attr_accessor :value
1845
+
1846
+ # The display name for this value, localised where available otherwise in
1847
+ # English.
1848
+ # Corresponds to the JSON property `displayName`
1849
+ # @return [String]
1850
+ attr_accessor :display_name
1851
+
1852
+ def initialize(**args)
1853
+ update!(**args)
1854
+ end
1855
+
1856
+ # Update properties of this object
1857
+ def update!(**args)
1858
+ @value = args[:value] if args.key?(:value)
1859
+ @display_name = args[:display_name] if args.key?(:display_name)
1860
+ end
1861
+ end
1862
+ end
1863
+ end
1864
+ end