google-api-client 0.9.6 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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