google-ads-ad_manager-v1 0.a → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/ads/ad_manager/v1/ad_unit_service/credentials.rb +44 -0
  6. data/lib/google/ads/ad_manager/v1/ad_unit_service/paths.rb +64 -0
  7. data/lib/google/ads/ad_manager/v1/ad_unit_service/rest/client.rb +644 -0
  8. data/lib/google/ads/ad_manager/v1/ad_unit_service/rest/service_stub.rb +264 -0
  9. data/lib/google/ads/ad_manager/v1/ad_unit_service/rest.rb +52 -0
  10. data/lib/google/ads/ad_manager/v1/ad_unit_service.rb +48 -0
  11. data/lib/google/ads/ad_manager/v1/company_service/credentials.rb +44 -0
  12. data/lib/google/ads/ad_manager/v1/company_service/paths.rb +64 -0
  13. data/lib/google/ads/ad_manager/v1/company_service/rest/client.rb +531 -0
  14. data/lib/google/ads/ad_manager/v1/company_service/rest/service_stub.rb +203 -0
  15. data/lib/google/ads/ad_manager/v1/company_service/rest.rb +52 -0
  16. data/lib/google/ads/ad_manager/v1/company_service.rb +48 -0
  17. data/lib/google/ads/ad_manager/v1/custom_field_service/credentials.rb +44 -0
  18. data/lib/google/ads/ad_manager/v1/custom_field_service/paths.rb +64 -0
  19. data/lib/google/ads/ad_manager/v1/custom_field_service/rest/client.rb +531 -0
  20. data/lib/google/ads/ad_manager/v1/custom_field_service/rest/service_stub.rb +203 -0
  21. data/lib/google/ads/ad_manager/v1/custom_field_service/rest.rb +52 -0
  22. data/lib/google/ads/ad_manager/v1/custom_field_service.rb +48 -0
  23. data/lib/google/ads/ad_manager/v1/custom_targeting_key_service/credentials.rb +44 -0
  24. data/lib/google/ads/ad_manager/v1/custom_targeting_key_service/paths.rb +64 -0
  25. data/lib/google/ads/ad_manager/v1/custom_targeting_key_service/rest/client.rb +532 -0
  26. data/lib/google/ads/ad_manager/v1/custom_targeting_key_service/rest/service_stub.rb +203 -0
  27. data/lib/google/ads/ad_manager/v1/custom_targeting_key_service/rest.rb +52 -0
  28. data/lib/google/ads/ad_manager/v1/custom_targeting_key_service.rb +48 -0
  29. data/lib/google/ads/ad_manager/v1/custom_targeting_value_service/credentials.rb +44 -0
  30. data/lib/google/ads/ad_manager/v1/custom_targeting_value_service/paths.rb +69 -0
  31. data/lib/google/ads/ad_manager/v1/custom_targeting_value_service/rest/client.rb +535 -0
  32. data/lib/google/ads/ad_manager/v1/custom_targeting_value_service/rest/service_stub.rb +203 -0
  33. data/lib/google/ads/ad_manager/v1/custom_targeting_value_service/rest.rb +52 -0
  34. data/lib/google/ads/ad_manager/v1/custom_targeting_value_service.rb +48 -0
  35. data/lib/google/ads/ad_manager/v1/entity_signals_mapping_service/credentials.rb +44 -0
  36. data/lib/google/ads/ad_manager/v1/entity_signals_mapping_service/paths.rb +64 -0
  37. data/lib/google/ads/ad_manager/v1/entity_signals_mapping_service/rest/client.rb +894 -0
  38. data/lib/google/ads/ad_manager/v1/entity_signals_mapping_service/rest/service_stub.rb +451 -0
  39. data/lib/google/ads/ad_manager/v1/entity_signals_mapping_service/rest.rb +52 -0
  40. data/lib/google/ads/ad_manager/v1/entity_signals_mapping_service.rb +48 -0
  41. data/lib/google/ads/ad_manager/v1/network_service/credentials.rb +44 -0
  42. data/lib/google/ads/ad_manager/v1/network_service/paths.rb +47 -0
  43. data/lib/google/ads/ad_manager/v1/network_service/rest/client.rb +495 -0
  44. data/lib/google/ads/ad_manager/v1/network_service/rest/service_stub.rb +201 -0
  45. data/lib/google/ads/ad_manager/v1/network_service/rest.rb +52 -0
  46. data/lib/google/ads/ad_manager/v1/network_service.rb +48 -0
  47. data/lib/google/ads/ad_manager/v1/order_service/credentials.rb +44 -0
  48. data/lib/google/ads/ad_manager/v1/order_service/paths.rb +64 -0
  49. data/lib/google/ads/ad_manager/v1/order_service/rest/client.rb +541 -0
  50. data/lib/google/ads/ad_manager/v1/order_service/rest/service_stub.rb +203 -0
  51. data/lib/google/ads/ad_manager/v1/order_service/rest.rb +52 -0
  52. data/lib/google/ads/ad_manager/v1/order_service.rb +48 -0
  53. data/lib/google/ads/ad_manager/v1/placement_service/credentials.rb +44 -0
  54. data/lib/google/ads/ad_manager/v1/placement_service/paths.rb +64 -0
  55. data/lib/google/ads/ad_manager/v1/placement_service/rest/client.rb +531 -0
  56. data/lib/google/ads/ad_manager/v1/placement_service/rest/service_stub.rb +203 -0
  57. data/lib/google/ads/ad_manager/v1/placement_service/rest.rb +52 -0
  58. data/lib/google/ads/ad_manager/v1/placement_service.rb +48 -0
  59. data/lib/google/ads/ad_manager/v1/report_service/credentials.rb +44 -0
  60. data/lib/google/ads/ad_manager/v1/report_service/paths.rb +64 -0
  61. data/lib/google/ads/ad_manager/v1/report_service/rest/client.rb +923 -0
  62. data/lib/google/ads/ad_manager/v1/report_service/rest/operations.rb +914 -0
  63. data/lib/google/ads/ad_manager/v1/report_service/rest/service_stub.rb +450 -0
  64. data/lib/google/ads/ad_manager/v1/report_service/rest.rb +53 -0
  65. data/lib/google/ads/ad_manager/v1/report_service.rb +48 -0
  66. data/lib/google/ads/ad_manager/v1/rest.rb +49 -0
  67. data/lib/google/ads/ad_manager/v1/role_service/credentials.rb +44 -0
  68. data/lib/google/ads/ad_manager/v1/role_service/paths.rb +64 -0
  69. data/lib/google/ads/ad_manager/v1/role_service/rest/client.rb +530 -0
  70. data/lib/google/ads/ad_manager/v1/role_service/rest/service_stub.rb +203 -0
  71. data/lib/google/ads/ad_manager/v1/role_service/rest.rb +52 -0
  72. data/lib/google/ads/ad_manager/v1/role_service.rb +48 -0
  73. data/lib/google/ads/ad_manager/v1/taxonomy_category_service/credentials.rb +44 -0
  74. data/lib/google/ads/ad_manager/v1/taxonomy_category_service/paths.rb +64 -0
  75. data/lib/google/ads/ad_manager/v1/taxonomy_category_service/rest/client.rb +531 -0
  76. data/lib/google/ads/ad_manager/v1/taxonomy_category_service/rest/service_stub.rb +203 -0
  77. data/lib/google/ads/ad_manager/v1/taxonomy_category_service/rest.rb +52 -0
  78. data/lib/google/ads/ad_manager/v1/taxonomy_category_service.rb +48 -0
  79. data/lib/google/ads/ad_manager/v1/user_service/credentials.rb +44 -0
  80. data/lib/google/ads/ad_manager/v1/user_service/paths.rb +50 -0
  81. data/lib/google/ads/ad_manager/v1/user_service/rest/client.rb +421 -0
  82. data/lib/google/ads/ad_manager/v1/user_service/rest/service_stub.rb +142 -0
  83. data/lib/google/ads/ad_manager/v1/user_service/rest.rb +52 -0
  84. data/lib/google/ads/ad_manager/v1/user_service.rb +48 -0
  85. data/lib/google/ads/ad_manager/v1/version.rb +7 -2
  86. data/lib/google/ads/ad_manager/v1.rb +52 -0
  87. data/lib/google/ads/admanager/v1/ad_unit_enums_pb.rb +47 -0
  88. data/lib/google/ads/admanager/v1/ad_unit_messages_pb.rb +60 -0
  89. data/lib/google/ads/admanager/v1/ad_unit_service_pb.rb +53 -0
  90. data/lib/google/ads/admanager/v1/ad_unit_service_services_pb.rb +49 -0
  91. data/lib/google/ads/admanager/v1/admanager_error_pb.rb +45 -0
  92. data/lib/google/ads/admanager/v1/applied_label_pb.rb +45 -0
  93. data/lib/google/ads/admanager/v1/company_credit_status_enum_pb.rb +43 -0
  94. data/lib/google/ads/admanager/v1/company_messages_pb.rb +51 -0
  95. data/lib/google/ads/admanager/v1/company_service_pb.rb +51 -0
  96. data/lib/google/ads/admanager/v1/company_service_services_pb.rb +47 -0
  97. data/lib/google/ads/admanager/v1/company_type_enum_pb.rb +43 -0
  98. data/lib/google/ads/admanager/v1/contact_messages_pb.rb +45 -0
  99. data/lib/google/ads/admanager/v1/custom_field_enums_pb.rb +49 -0
  100. data/lib/google/ads/admanager/v1/custom_field_messages_pb.rb +47 -0
  101. data/lib/google/ads/admanager/v1/custom_field_service_pb.rb +51 -0
  102. data/lib/google/ads/admanager/v1/custom_field_service_services_pb.rb +47 -0
  103. data/lib/google/ads/admanager/v1/custom_field_value_pb.rb +46 -0
  104. data/lib/google/ads/admanager/v1/custom_targeting_key_enums_pb.rb +47 -0
  105. data/lib/google/ads/admanager/v1/custom_targeting_key_messages_pb.rb +46 -0
  106. data/lib/google/ads/admanager/v1/custom_targeting_key_service_pb.rb +51 -0
  107. data/lib/google/ads/admanager/v1/custom_targeting_key_service_services_pb.rb +47 -0
  108. data/lib/google/ads/admanager/v1/custom_targeting_value_enums_pb.rb +45 -0
  109. data/lib/google/ads/admanager/v1/custom_targeting_value_messages_pb.rb +46 -0
  110. data/lib/google/ads/admanager/v1/custom_targeting_value_service_pb.rb +51 -0
  111. data/lib/google/ads/admanager/v1/custom_targeting_value_service_services_pb.rb +47 -0
  112. data/lib/google/ads/admanager/v1/entity_signals_mapping_messages_pb.rb +45 -0
  113. data/lib/google/ads/admanager/v1/entity_signals_mapping_service_pb.rb +59 -0
  114. data/lib/google/ads/admanager/v1/entity_signals_mapping_service_services_pb.rb +55 -0
  115. data/lib/google/ads/admanager/v1/environment_type_enum_pb.rb +43 -0
  116. data/lib/google/ads/admanager/v1/frequency_cap_pb.rb +44 -0
  117. data/lib/google/ads/admanager/v1/label_messages_pb.rb +45 -0
  118. data/lib/google/ads/admanager/v1/network_messages_pb.rb +45 -0
  119. data/lib/google/ads/admanager/v1/network_service_pb.rb +51 -0
  120. data/lib/google/ads/admanager/v1/network_service_services_pb.rb +47 -0
  121. data/lib/google/ads/admanager/v1/order_enums_pb.rb +43 -0
  122. data/lib/google/ads/admanager/v1/order_messages_pb.rb +52 -0
  123. data/lib/google/ads/admanager/v1/order_service_pb.rb +51 -0
  124. data/lib/google/ads/admanager/v1/order_service_services_pb.rb +52 -0
  125. data/lib/google/ads/admanager/v1/placement_enums_pb.rb +43 -0
  126. data/lib/google/ads/admanager/v1/placement_messages_pb.rb +48 -0
  127. data/lib/google/ads/admanager/v1/placement_service_pb.rb +51 -0
  128. data/lib/google/ads/admanager/v1/placement_service_services_pb.rb +47 -0
  129. data/lib/google/ads/admanager/v1/report_service_pb.rb +97 -0
  130. data/lib/google/ads/admanager/v1/report_service_services_pb.rb +65 -0
  131. data/lib/google/ads/admanager/v1/role_enums_pb.rb +43 -0
  132. data/lib/google/ads/admanager/v1/role_messages_pb.rb +46 -0
  133. data/lib/google/ads/admanager/v1/role_service_pb.rb +51 -0
  134. data/lib/google/ads/admanager/v1/role_service_services_pb.rb +47 -0
  135. data/lib/google/ads/admanager/v1/size_pb.rb +45 -0
  136. data/lib/google/ads/admanager/v1/size_type_enum_pb.rb +43 -0
  137. data/lib/google/ads/admanager/v1/taxonomy_category_messages_pb.rb +46 -0
  138. data/lib/google/ads/admanager/v1/taxonomy_category_service_pb.rb +51 -0
  139. data/lib/google/ads/admanager/v1/taxonomy_category_service_services_pb.rb +47 -0
  140. data/lib/google/ads/admanager/v1/taxonomy_type_enum_pb.rb +43 -0
  141. data/lib/google/ads/admanager/v1/team_messages_pb.rb +45 -0
  142. data/lib/google/ads/admanager/v1/time_unit_enum_pb.rb +43 -0
  143. data/lib/google/ads/admanager/v1/user_messages_pb.rb +45 -0
  144. data/lib/google/ads/admanager/v1/user_service_pb.rb +48 -0
  145. data/lib/google/ads/admanager/v1/user_service_services_pb.rb +48 -0
  146. data/lib/google-ads-ad_manager-v1.rb +21 -0
  147. data/proto_docs/README.md +4 -0
  148. data/proto_docs/google/ads/admanager/v1/ad_unit_enums.rb +91 -0
  149. data/proto_docs/google/ads/admanager/v1/ad_unit_messages.rb +188 -0
  150. data/proto_docs/google/ads/admanager/v1/ad_unit_service.rb +160 -0
  151. data/proto_docs/google/ads/admanager/v1/admanager_error.rb +54 -0
  152. data/proto_docs/google/ads/admanager/v1/applied_label.rb +39 -0
  153. data/proto_docs/google/ads/admanager/v1/company_credit_status_enum.rb +101 -0
  154. data/proto_docs/google/ads/admanager/v1/company_messages.rb +101 -0
  155. data/proto_docs/google/ads/admanager/v1/company_service.rb +99 -0
  156. data/proto_docs/google/ads/admanager/v1/company_type_enum.rb +55 -0
  157. data/proto_docs/google/ads/admanager/v1/contact_messages.rb +43 -0
  158. data/proto_docs/google/ads/admanager/v1/custom_field_enums.rb +123 -0
  159. data/proto_docs/google/ads/admanager/v1/custom_field_messages.rb +78 -0
  160. data/proto_docs/google/ads/admanager/v1/custom_field_service.rb +99 -0
  161. data/proto_docs/google/ads/admanager/v1/custom_field_value.rb +58 -0
  162. data/proto_docs/google/ads/admanager/v1/custom_targeting_key_enums.rb +86 -0
  163. data/proto_docs/google/ads/admanager/v1/custom_targeting_key_messages.rb +59 -0
  164. data/proto_docs/google/ads/admanager/v1/custom_targeting_key_service.rb +100 -0
  165. data/proto_docs/google/ads/admanager/v1/custom_targeting_value_enums.rb +97 -0
  166. data/proto_docs/google/ads/admanager/v1/custom_targeting_value_messages.rb +54 -0
  167. data/proto_docs/google/ads/admanager/v1/custom_targeting_value_service.rb +103 -0
  168. data/proto_docs/google/ads/admanager/v1/entity_signals_mapping_messages.rb +53 -0
  169. data/proto_docs/google/ads/admanager/v1/entity_signals_mapping_service.rb +180 -0
  170. data/proto_docs/google/ads/admanager/v1/environment_type_enum.rb +45 -0
  171. data/proto_docs/google/ads/admanager/v1/frequency_cap.rb +41 -0
  172. data/proto_docs/google/ads/admanager/v1/label_messages.rb +36 -0
  173. data/proto_docs/google/ads/admanager/v1/network_messages.rb +67 -0
  174. data/proto_docs/google/ads/admanager/v1/network_service.rb +51 -0
  175. data/proto_docs/google/ads/admanager/v1/order_enums.rb +63 -0
  176. data/proto_docs/google/ads/admanager/v1/order_messages.rb +149 -0
  177. data/proto_docs/google/ads/admanager/v1/order_service.rb +99 -0
  178. data/proto_docs/google/ads/admanager/v1/placement_enums.rb +48 -0
  179. data/proto_docs/google/ads/admanager/v1/placement_messages.rb +62 -0
  180. data/proto_docs/google/ads/admanager/v1/placement_service.rb +99 -0
  181. data/proto_docs/google/ads/admanager/v1/report_service.rb +3476 -0
  182. data/proto_docs/google/ads/admanager/v1/role_enums.rb +45 -0
  183. data/proto_docs/google/ads/admanager/v1/role_messages.rb +51 -0
  184. data/proto_docs/google/ads/admanager/v1/role_service.rb +97 -0
  185. data/proto_docs/google/ads/admanager/v1/size.rb +48 -0
  186. data/proto_docs/google/ads/admanager/v1/size_type_enum.rb +66 -0
  187. data/proto_docs/google/ads/admanager/v1/taxonomy_category_messages.rb +59 -0
  188. data/proto_docs/google/ads/admanager/v1/taxonomy_category_service.rb +99 -0
  189. data/proto_docs/google/ads/admanager/v1/taxonomy_type_enum.rb +55 -0
  190. data/proto_docs/google/ads/admanager/v1/team_messages.rb +40 -0
  191. data/proto_docs/google/ads/admanager/v1/time_unit_enum.rb +63 -0
  192. data/proto_docs/google/ads/admanager/v1/user_messages.rb +69 -0
  193. data/proto_docs/google/ads/admanager/v1/user_service.rb +36 -0
  194. data/proto_docs/google/api/client.rb +459 -0
  195. data/proto_docs/google/api/field_behavior.rb +85 -0
  196. data/proto_docs/google/api/launch_stage.rb +71 -0
  197. data/proto_docs/google/api/resource.rb +227 -0
  198. data/proto_docs/google/longrunning/operations.rb +169 -0
  199. data/proto_docs/google/protobuf/any.rb +145 -0
  200. data/proto_docs/google/protobuf/duration.rb +98 -0
  201. data/proto_docs/google/protobuf/empty.rb +34 -0
  202. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  203. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  204. data/proto_docs/google/rpc/status.rb +48 -0
  205. data/proto_docs/google/type/date.rb +53 -0
  206. data/proto_docs/google/type/dayofweek.rb +49 -0
  207. data/proto_docs/google/type/timeofday.rb +45 -0
  208. metadata +248 -11
@@ -0,0 +1,644 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/ads/admanager/v1/ad_unit_service_pb"
21
+ require "google/ads/ad_manager/v1/ad_unit_service/rest/service_stub"
22
+
23
+ module Google
24
+ module Ads
25
+ module AdManager
26
+ module V1
27
+ module AdUnitService
28
+ module Rest
29
+ ##
30
+ # REST client for the AdUnitService service.
31
+ #
32
+ # Provides methods for handling AdUnit objects.
33
+ #
34
+ class Client
35
+ # @private
36
+ API_VERSION = ""
37
+
38
+ # @private
39
+ DEFAULT_ENDPOINT_TEMPLATE = "admanager.$UNIVERSE_DOMAIN$"
40
+
41
+ include Paths
42
+
43
+ # @private
44
+ attr_reader :ad_unit_service_stub
45
+
46
+ ##
47
+ # Configure the AdUnitService Client class.
48
+ #
49
+ # See {::Google::Ads::AdManager::V1::AdUnitService::Rest::Client::Configuration}
50
+ # for a description of the configuration fields.
51
+ #
52
+ # @example
53
+ #
54
+ # # Modify the configuration for all AdUnitService clients
55
+ # ::Google::Ads::AdManager::V1::AdUnitService::Rest::Client.configure do |config|
56
+ # config.timeout = 10.0
57
+ # end
58
+ #
59
+ # @yield [config] Configure the Client client.
60
+ # @yieldparam config [Client::Configuration]
61
+ #
62
+ # @return [Client::Configuration]
63
+ #
64
+ def self.configure
65
+ @configure ||= begin
66
+ namespace = ["Google", "Ads", "AdManager", "V1"]
67
+ parent_config = while namespace.any?
68
+ parent_name = namespace.join "::"
69
+ parent_const = const_get parent_name
70
+ break parent_const.configure if parent_const.respond_to? :configure
71
+ namespace.pop
72
+ end
73
+ default_config = Client::Configuration.new parent_config
74
+
75
+ default_config
76
+ end
77
+ yield @configure if block_given?
78
+ @configure
79
+ end
80
+
81
+ ##
82
+ # Configure the AdUnitService Client instance.
83
+ #
84
+ # The configuration is set to the derived mode, meaning that values can be changed,
85
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
86
+ # should be made on {Client.configure}.
87
+ #
88
+ # See {::Google::Ads::AdManager::V1::AdUnitService::Rest::Client::Configuration}
89
+ # for a description of the configuration fields.
90
+ #
91
+ # @yield [config] Configure the Client client.
92
+ # @yieldparam config [Client::Configuration]
93
+ #
94
+ # @return [Client::Configuration]
95
+ #
96
+ def configure
97
+ yield @config if block_given?
98
+ @config
99
+ end
100
+
101
+ ##
102
+ # The effective universe domain
103
+ #
104
+ # @return [String]
105
+ #
106
+ def universe_domain
107
+ @ad_unit_service_stub.universe_domain
108
+ end
109
+
110
+ ##
111
+ # Create a new AdUnitService REST client object.
112
+ #
113
+ # @example
114
+ #
115
+ # # Create a client using the default configuration
116
+ # client = ::Google::Ads::AdManager::V1::AdUnitService::Rest::Client.new
117
+ #
118
+ # # Create a client using a custom configuration
119
+ # client = ::Google::Ads::AdManager::V1::AdUnitService::Rest::Client.new do |config|
120
+ # config.timeout = 10.0
121
+ # end
122
+ #
123
+ # @yield [config] Configure the AdUnitService client.
124
+ # @yieldparam config [Client::Configuration]
125
+ #
126
+ def initialize
127
+ # Create the configuration object
128
+ @config = Configuration.new Client.configure
129
+
130
+ # Yield the configuration if needed
131
+ yield @config if block_given?
132
+
133
+ # Create credentials
134
+ credentials = @config.credentials
135
+ # Use self-signed JWT if the endpoint is unchanged from default,
136
+ # but only if the default endpoint does not have a region prefix.
137
+ enable_self_signed_jwt = @config.endpoint.nil? ||
138
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
139
+ !@config.endpoint.split(".").first.include?("-"))
140
+ credentials ||= Credentials.default scope: @config.scope,
141
+ enable_self_signed_jwt: enable_self_signed_jwt
142
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
143
+ credentials = Credentials.new credentials, scope: @config.scope
144
+ end
145
+
146
+ @quota_project_id = @config.quota_project
147
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
148
+
149
+ @ad_unit_service_stub = ::Google::Ads::AdManager::V1::AdUnitService::Rest::ServiceStub.new(
150
+ endpoint: @config.endpoint,
151
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
152
+ universe_domain: @config.universe_domain,
153
+ credentials: credentials,
154
+ logger: @config.logger
155
+ )
156
+
157
+ @ad_unit_service_stub.logger(stub: true)&.info do |entry|
158
+ entry.set_system_name
159
+ entry.set_service
160
+ entry.message = "Created client for #{entry.service}"
161
+ entry.set_credentials_fields credentials
162
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
163
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
164
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
165
+ end
166
+ end
167
+
168
+ ##
169
+ # The logger used for request/response debug logging.
170
+ #
171
+ # @return [Logger]
172
+ #
173
+ def logger
174
+ @ad_unit_service_stub.logger
175
+ end
176
+
177
+ # Service calls
178
+
179
+ ##
180
+ # API to retrieve an AdUnit object.
181
+ #
182
+ # @overload get_ad_unit(request, options = nil)
183
+ # Pass arguments to `get_ad_unit` via a request object, either of type
184
+ # {::Google::Ads::AdManager::V1::GetAdUnitRequest} or an equivalent Hash.
185
+ #
186
+ # @param request [::Google::Ads::AdManager::V1::GetAdUnitRequest, ::Hash]
187
+ # A request object representing the call parameters. Required. To specify no
188
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
189
+ # @param options [::Gapic::CallOptions, ::Hash]
190
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
191
+ #
192
+ # @overload get_ad_unit(name: nil)
193
+ # Pass arguments to `get_ad_unit` via keyword arguments. Note that at
194
+ # least one keyword argument is required. To specify no parameters, or to keep all
195
+ # the default parameter values, pass an empty Hash as a request object (see above).
196
+ #
197
+ # @param name [::String]
198
+ # Required. The resource name of the AdUnit.
199
+ # Format: `networks/{network_code}/adUnits/{ad_unit_id}`
200
+ # @yield [result, operation] Access the result along with the TransportOperation object
201
+ # @yieldparam result [::Google::Ads::AdManager::V1::AdUnit]
202
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
203
+ #
204
+ # @return [::Google::Ads::AdManager::V1::AdUnit]
205
+ #
206
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
207
+ #
208
+ # @example Basic example
209
+ # require "google/ads/ad_manager/v1"
210
+ #
211
+ # # Create a client object. The client can be reused for multiple calls.
212
+ # client = Google::Ads::AdManager::V1::AdUnitService::Rest::Client.new
213
+ #
214
+ # # Create a request. To set request fields, pass in keyword arguments.
215
+ # request = Google::Ads::AdManager::V1::GetAdUnitRequest.new
216
+ #
217
+ # # Call the get_ad_unit method.
218
+ # result = client.get_ad_unit request
219
+ #
220
+ # # The returned object is of type Google::Ads::AdManager::V1::AdUnit.
221
+ # p result
222
+ #
223
+ def get_ad_unit request, options = nil
224
+ raise ::ArgumentError, "request must be provided" if request.nil?
225
+
226
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::AdManager::V1::GetAdUnitRequest
227
+
228
+ # Converts hash and nil to an options object
229
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
230
+
231
+ # Customize the options with defaults
232
+ call_metadata = @config.rpcs.get_ad_unit.metadata.to_h
233
+
234
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
235
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
236
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
237
+ gapic_version: ::Google::Ads::AdManager::V1::VERSION,
238
+ transports_version_send: [:rest]
239
+
240
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
241
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
242
+
243
+ options.apply_defaults timeout: @config.rpcs.get_ad_unit.timeout,
244
+ metadata: call_metadata,
245
+ retry_policy: @config.rpcs.get_ad_unit.retry_policy
246
+
247
+ options.apply_defaults timeout: @config.timeout,
248
+ metadata: @config.metadata,
249
+ retry_policy: @config.retry_policy
250
+
251
+ @ad_unit_service_stub.get_ad_unit request, options do |result, operation|
252
+ yield result, operation if block_given?
253
+ end
254
+ rescue ::Gapic::Rest::Error => e
255
+ raise ::Google::Cloud::Error.from_error(e)
256
+ end
257
+
258
+ ##
259
+ # API to retrieve a list of AdUnit objects.
260
+ #
261
+ # @overload list_ad_units(request, options = nil)
262
+ # Pass arguments to `list_ad_units` via a request object, either of type
263
+ # {::Google::Ads::AdManager::V1::ListAdUnitsRequest} or an equivalent Hash.
264
+ #
265
+ # @param request [::Google::Ads::AdManager::V1::ListAdUnitsRequest, ::Hash]
266
+ # A request object representing the call parameters. Required. To specify no
267
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
268
+ # @param options [::Gapic::CallOptions, ::Hash]
269
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
270
+ #
271
+ # @overload list_ad_units(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, skip: nil)
272
+ # Pass arguments to `list_ad_units` via keyword arguments. Note that at
273
+ # least one keyword argument is required. To specify no parameters, or to keep all
274
+ # the default parameter values, pass an empty Hash as a request object (see above).
275
+ #
276
+ # @param parent [::String]
277
+ # Required. The parent, which owns this collection of AdUnits.
278
+ # Format: `networks/{network_code}`
279
+ # @param page_size [::Integer]
280
+ # Optional. The maximum number of AdUnits to return. The service may return
281
+ # fewer than this value. If unspecified, at most 50 ad units will be
282
+ # returned. The maximum value is 1000; values above 1000 will be coerced to
283
+ # 1000.
284
+ # @param page_token [::String]
285
+ # Optional. A page token, received from a previous `ListAdUnits` call.
286
+ # Provide this to retrieve the subsequent page.
287
+ #
288
+ # When paginating, all other parameters provided to `ListAdUnits` must match
289
+ # the call that provided the page token.
290
+ # @param filter [::String]
291
+ # Optional. Expression to filter the response.
292
+ # See syntax details at
293
+ # https://developers.google.com/ad-manager/api/beta/filters
294
+ # @param order_by [::String]
295
+ # Optional. Expression to specify sorting order.
296
+ # See syntax details at
297
+ # https://developers.google.com/ad-manager/api/beta/filters#order
298
+ # @param skip [::Integer]
299
+ # Optional. Number of individual resources to skip while paginating.
300
+ # @yield [result, operation] Access the result along with the TransportOperation object
301
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::AdManager::V1::AdUnit>]
302
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
303
+ #
304
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::AdManager::V1::AdUnit>]
305
+ #
306
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
307
+ #
308
+ # @example Basic example
309
+ # require "google/ads/ad_manager/v1"
310
+ #
311
+ # # Create a client object. The client can be reused for multiple calls.
312
+ # client = Google::Ads::AdManager::V1::AdUnitService::Rest::Client.new
313
+ #
314
+ # # Create a request. To set request fields, pass in keyword arguments.
315
+ # request = Google::Ads::AdManager::V1::ListAdUnitsRequest.new
316
+ #
317
+ # # Call the list_ad_units method.
318
+ # result = client.list_ad_units request
319
+ #
320
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
321
+ # # over elements, and API calls will be issued to fetch pages as needed.
322
+ # result.each do |item|
323
+ # # Each element is of type ::Google::Ads::AdManager::V1::AdUnit.
324
+ # p item
325
+ # end
326
+ #
327
+ def list_ad_units request, options = nil
328
+ raise ::ArgumentError, "request must be provided" if request.nil?
329
+
330
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::AdManager::V1::ListAdUnitsRequest
331
+
332
+ # Converts hash and nil to an options object
333
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
334
+
335
+ # Customize the options with defaults
336
+ call_metadata = @config.rpcs.list_ad_units.metadata.to_h
337
+
338
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
339
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
340
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
341
+ gapic_version: ::Google::Ads::AdManager::V1::VERSION,
342
+ transports_version_send: [:rest]
343
+
344
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
345
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
346
+
347
+ options.apply_defaults timeout: @config.rpcs.list_ad_units.timeout,
348
+ metadata: call_metadata,
349
+ retry_policy: @config.rpcs.list_ad_units.retry_policy
350
+
351
+ options.apply_defaults timeout: @config.timeout,
352
+ metadata: @config.metadata,
353
+ retry_policy: @config.retry_policy
354
+
355
+ @ad_unit_service_stub.list_ad_units request, options do |result, operation|
356
+ result = ::Gapic::Rest::PagedEnumerable.new @ad_unit_service_stub, :list_ad_units, "ad_units", request, result, options
357
+ yield result, operation if block_given?
358
+ throw :response, result
359
+ end
360
+ rescue ::Gapic::Rest::Error => e
361
+ raise ::Google::Cloud::Error.from_error(e)
362
+ end
363
+
364
+ ##
365
+ # API to retrieve a list of AdUnitSize objects.
366
+ #
367
+ # @overload list_ad_unit_sizes(request, options = nil)
368
+ # Pass arguments to `list_ad_unit_sizes` via a request object, either of type
369
+ # {::Google::Ads::AdManager::V1::ListAdUnitSizesRequest} or an equivalent Hash.
370
+ #
371
+ # @param request [::Google::Ads::AdManager::V1::ListAdUnitSizesRequest, ::Hash]
372
+ # A request object representing the call parameters. Required. To specify no
373
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
374
+ # @param options [::Gapic::CallOptions, ::Hash]
375
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
376
+ #
377
+ # @overload list_ad_unit_sizes(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, skip: nil)
378
+ # Pass arguments to `list_ad_unit_sizes` via keyword arguments. Note that at
379
+ # least one keyword argument is required. To specify no parameters, or to keep all
380
+ # the default parameter values, pass an empty Hash as a request object (see above).
381
+ #
382
+ # @param parent [::String]
383
+ # Required. The parent, which owns this collection of AdUnitSizes.
384
+ # Format: `networks/{network_code}`
385
+ # @param page_size [::Integer]
386
+ # Optional. The maximum number of AdUnitSizes to return. The service may
387
+ # return fewer than this value. If unspecified, at most 50 ad unit sizes will
388
+ # be returned. The maximum value is 1000; values above 1000 will be coerced
389
+ # to 1000.
390
+ # @param page_token [::String]
391
+ # Optional. A page token, received from a previous `ListAdUnitSizes` call.
392
+ # Provide this to retrieve the subsequent page.
393
+ #
394
+ # When paginating, all other parameters provided to `ListAdUnitSizes` must
395
+ # match the call that provided the page token.
396
+ # @param filter [::String]
397
+ # Optional. Expression to filter the response.
398
+ # See syntax details at
399
+ # https://developers.google.com/ad-manager/api/beta/filters
400
+ # @param order_by [::String]
401
+ # Optional. Expression to specify sorting order.
402
+ # See syntax details at
403
+ # https://developers.google.com/ad-manager/api/beta/filters#order
404
+ # @param skip [::Integer]
405
+ # Optional. Number of individual resources to skip while paginating.
406
+ # @yield [result, operation] Access the result along with the TransportOperation object
407
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::AdManager::V1::AdUnitSize>]
408
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
409
+ #
410
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::AdManager::V1::AdUnitSize>]
411
+ #
412
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
413
+ #
414
+ # @example Basic example
415
+ # require "google/ads/ad_manager/v1"
416
+ #
417
+ # # Create a client object. The client can be reused for multiple calls.
418
+ # client = Google::Ads::AdManager::V1::AdUnitService::Rest::Client.new
419
+ #
420
+ # # Create a request. To set request fields, pass in keyword arguments.
421
+ # request = Google::Ads::AdManager::V1::ListAdUnitSizesRequest.new
422
+ #
423
+ # # Call the list_ad_unit_sizes method.
424
+ # result = client.list_ad_unit_sizes request
425
+ #
426
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
427
+ # # over elements, and API calls will be issued to fetch pages as needed.
428
+ # result.each do |item|
429
+ # # Each element is of type ::Google::Ads::AdManager::V1::AdUnitSize.
430
+ # p item
431
+ # end
432
+ #
433
+ def list_ad_unit_sizes request, options = nil
434
+ raise ::ArgumentError, "request must be provided" if request.nil?
435
+
436
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::AdManager::V1::ListAdUnitSizesRequest
437
+
438
+ # Converts hash and nil to an options object
439
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
440
+
441
+ # Customize the options with defaults
442
+ call_metadata = @config.rpcs.list_ad_unit_sizes.metadata.to_h
443
+
444
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
445
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
446
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
447
+ gapic_version: ::Google::Ads::AdManager::V1::VERSION,
448
+ transports_version_send: [:rest]
449
+
450
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
451
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
452
+
453
+ options.apply_defaults timeout: @config.rpcs.list_ad_unit_sizes.timeout,
454
+ metadata: call_metadata,
455
+ retry_policy: @config.rpcs.list_ad_unit_sizes.retry_policy
456
+
457
+ options.apply_defaults timeout: @config.timeout,
458
+ metadata: @config.metadata,
459
+ retry_policy: @config.retry_policy
460
+
461
+ @ad_unit_service_stub.list_ad_unit_sizes request, options do |result, operation|
462
+ result = ::Gapic::Rest::PagedEnumerable.new @ad_unit_service_stub, :list_ad_unit_sizes, "ad_unit_sizes", request, result, options
463
+ yield result, operation if block_given?
464
+ throw :response, result
465
+ end
466
+ rescue ::Gapic::Rest::Error => e
467
+ raise ::Google::Cloud::Error.from_error(e)
468
+ end
469
+
470
+ ##
471
+ # Configuration class for the AdUnitService REST API.
472
+ #
473
+ # This class represents the configuration for AdUnitService REST,
474
+ # providing control over timeouts, retry behavior, logging, transport
475
+ # parameters, and other low-level controls. Certain parameters can also be
476
+ # applied individually to specific RPCs. See
477
+ # {::Google::Ads::AdManager::V1::AdUnitService::Rest::Client::Configuration::Rpcs}
478
+ # for a list of RPCs that can be configured independently.
479
+ #
480
+ # Configuration can be applied globally to all clients, or to a single client
481
+ # on construction.
482
+ #
483
+ # @example
484
+ #
485
+ # # Modify the global config, setting the timeout for
486
+ # # get_ad_unit to 20 seconds,
487
+ # # and all remaining timeouts to 10 seconds.
488
+ # ::Google::Ads::AdManager::V1::AdUnitService::Rest::Client.configure do |config|
489
+ # config.timeout = 10.0
490
+ # config.rpcs.get_ad_unit.timeout = 20.0
491
+ # end
492
+ #
493
+ # # Apply the above configuration only to a new client.
494
+ # client = ::Google::Ads::AdManager::V1::AdUnitService::Rest::Client.new do |config|
495
+ # config.timeout = 10.0
496
+ # config.rpcs.get_ad_unit.timeout = 20.0
497
+ # end
498
+ #
499
+ # @!attribute [rw] endpoint
500
+ # A custom service endpoint, as a hostname or hostname:port. The default is
501
+ # nil, indicating to use the default endpoint in the current universe domain.
502
+ # @return [::String,nil]
503
+ # @!attribute [rw] credentials
504
+ # Credentials to send with calls. You may provide any of the following types:
505
+ # * (`String`) The path to a service account key file in JSON format
506
+ # * (`Hash`) A service account key as a Hash
507
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
508
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
509
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
510
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
511
+ # * (`nil`) indicating no credentials
512
+ # @return [::Object]
513
+ # @!attribute [rw] scope
514
+ # The OAuth scopes
515
+ # @return [::Array<::String>]
516
+ # @!attribute [rw] lib_name
517
+ # The library name as recorded in instrumentation and logging
518
+ # @return [::String]
519
+ # @!attribute [rw] lib_version
520
+ # The library version as recorded in instrumentation and logging
521
+ # @return [::String]
522
+ # @!attribute [rw] timeout
523
+ # The call timeout in seconds.
524
+ # @return [::Numeric]
525
+ # @!attribute [rw] metadata
526
+ # Additional headers to be sent with the call.
527
+ # @return [::Hash{::Symbol=>::String}]
528
+ # @!attribute [rw] retry_policy
529
+ # The retry policy. The value is a hash with the following keys:
530
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
531
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
532
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
533
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
534
+ # trigger a retry.
535
+ # @return [::Hash]
536
+ # @!attribute [rw] quota_project
537
+ # A separate project against which to charge quota.
538
+ # @return [::String]
539
+ # @!attribute [rw] universe_domain
540
+ # The universe domain within which to make requests. This determines the
541
+ # default endpoint URL. The default value of nil uses the environment
542
+ # universe (usually the default "googleapis.com" universe).
543
+ # @return [::String,nil]
544
+ # @!attribute [rw] logger
545
+ # A custom logger to use for request/response debug logging, or the value
546
+ # `:default` (the default) to construct a default logger, or `nil` to
547
+ # explicitly disable logging.
548
+ # @return [::Logger,:default,nil]
549
+ #
550
+ class Configuration
551
+ extend ::Gapic::Config
552
+
553
+ # @private
554
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
555
+ DEFAULT_ENDPOINT = "admanager.googleapis.com"
556
+
557
+ config_attr :endpoint, nil, ::String, nil
558
+ config_attr :credentials, nil do |value|
559
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
560
+ allowed.any? { |klass| klass === value }
561
+ end
562
+ config_attr :scope, nil, ::String, ::Array, nil
563
+ config_attr :lib_name, nil, ::String, nil
564
+ config_attr :lib_version, nil, ::String, nil
565
+ config_attr :timeout, nil, ::Numeric, nil
566
+ config_attr :metadata, nil, ::Hash, nil
567
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
568
+ config_attr :quota_project, nil, ::String, nil
569
+ config_attr :universe_domain, nil, ::String, nil
570
+ config_attr :logger, :default, ::Logger, nil, :default
571
+
572
+ # @private
573
+ def initialize parent_config = nil
574
+ @parent_config = parent_config unless parent_config.nil?
575
+
576
+ yield self if block_given?
577
+ end
578
+
579
+ ##
580
+ # Configurations for individual RPCs
581
+ # @return [Rpcs]
582
+ #
583
+ def rpcs
584
+ @rpcs ||= begin
585
+ parent_rpcs = nil
586
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
587
+ Rpcs.new parent_rpcs
588
+ end
589
+ end
590
+
591
+ ##
592
+ # Configuration RPC class for the AdUnitService API.
593
+ #
594
+ # Includes fields providing the configuration for each RPC in this service.
595
+ # Each configuration object is of type `Gapic::Config::Method` and includes
596
+ # the following configuration fields:
597
+ #
598
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
599
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
600
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
601
+ # include the following keys:
602
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
603
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
604
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
605
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
606
+ # trigger a retry.
607
+ #
608
+ class Rpcs
609
+ ##
610
+ # RPC-specific configuration for `get_ad_unit`
611
+ # @return [::Gapic::Config::Method]
612
+ #
613
+ attr_reader :get_ad_unit
614
+ ##
615
+ # RPC-specific configuration for `list_ad_units`
616
+ # @return [::Gapic::Config::Method]
617
+ #
618
+ attr_reader :list_ad_units
619
+ ##
620
+ # RPC-specific configuration for `list_ad_unit_sizes`
621
+ # @return [::Gapic::Config::Method]
622
+ #
623
+ attr_reader :list_ad_unit_sizes
624
+
625
+ # @private
626
+ def initialize parent_rpcs = nil
627
+ get_ad_unit_config = parent_rpcs.get_ad_unit if parent_rpcs.respond_to? :get_ad_unit
628
+ @get_ad_unit = ::Gapic::Config::Method.new get_ad_unit_config
629
+ list_ad_units_config = parent_rpcs.list_ad_units if parent_rpcs.respond_to? :list_ad_units
630
+ @list_ad_units = ::Gapic::Config::Method.new list_ad_units_config
631
+ list_ad_unit_sizes_config = parent_rpcs.list_ad_unit_sizes if parent_rpcs.respond_to? :list_ad_unit_sizes
632
+ @list_ad_unit_sizes = ::Gapic::Config::Method.new list_ad_unit_sizes_config
633
+
634
+ yield self if block_given?
635
+ end
636
+ end
637
+ end
638
+ end
639
+ end
640
+ end
641
+ end
642
+ end
643
+ end
644
+ end