gcloud 0.12.2 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +5 -13
  2. data/lib/gcloud.rb +27 -456
  3. data/lib/gcloud/bigquery.rb +2 -382
  4. data/lib/gcloud/datastore.rb +2 -576
  5. data/lib/gcloud/dns.rb +2 -321
  6. data/lib/gcloud/logging.rb +1 -322
  7. data/lib/gcloud/pubsub.rb +2 -476
  8. data/lib/gcloud/resource_manager.rb +2 -273
  9. data/lib/gcloud/storage.rb +2 -440
  10. data/lib/gcloud/translate.rb +1 -250
  11. data/lib/gcloud/version.rb +2 -2
  12. data/lib/gcloud/vision.rb +1 -501
  13. metadata +36 -332
  14. data/AUTHENTICATION.md +0 -75
  15. data/CHANGELOG.md +0 -382
  16. data/OVERVIEW.md +0 -259
  17. data/lib/gcloud/backoff.rb +0 -150
  18. data/lib/gcloud/bigquery/copy_job.rb +0 -97
  19. data/lib/gcloud/bigquery/credentials.rb +0 -29
  20. data/lib/gcloud/bigquery/data.rb +0 -239
  21. data/lib/gcloud/bigquery/dataset.rb +0 -753
  22. data/lib/gcloud/bigquery/dataset/access.rb +0 -507
  23. data/lib/gcloud/bigquery/dataset/list.rb +0 -169
  24. data/lib/gcloud/bigquery/extract_job.rb +0 -117
  25. data/lib/gcloud/bigquery/insert_response.rb +0 -81
  26. data/lib/gcloud/bigquery/job.rb +0 -299
  27. data/lib/gcloud/bigquery/job/list.rb +0 -172
  28. data/lib/gcloud/bigquery/load_job.rb +0 -202
  29. data/lib/gcloud/bigquery/project.rb +0 -475
  30. data/lib/gcloud/bigquery/query_data.rb +0 -234
  31. data/lib/gcloud/bigquery/query_job.rb +0 -137
  32. data/lib/gcloud/bigquery/schema.rb +0 -359
  33. data/lib/gcloud/bigquery/service.rb +0 -506
  34. data/lib/gcloud/bigquery/table.rb +0 -1141
  35. data/lib/gcloud/bigquery/table/list.rb +0 -180
  36. data/lib/gcloud/bigquery/view.rb +0 -475
  37. data/lib/gcloud/credentials.rb +0 -129
  38. data/lib/gcloud/datastore/commit.rb +0 -148
  39. data/lib/gcloud/datastore/credentials.rb +0 -35
  40. data/lib/gcloud/datastore/cursor.rb +0 -76
  41. data/lib/gcloud/datastore/dataset.rb +0 -660
  42. data/lib/gcloud/datastore/dataset/lookup_results.rb +0 -219
  43. data/lib/gcloud/datastore/dataset/query_results.rb +0 -386
  44. data/lib/gcloud/datastore/entity.rb +0 -449
  45. data/lib/gcloud/datastore/errors.rb +0 -41
  46. data/lib/gcloud/datastore/gql_query.rb +0 -211
  47. data/lib/gcloud/datastore/grpc_utils.rb +0 -132
  48. data/lib/gcloud/datastore/key.rb +0 -281
  49. data/lib/gcloud/datastore/properties.rb +0 -128
  50. data/lib/gcloud/datastore/query.rb +0 -348
  51. data/lib/gcloud/datastore/service.rb +0 -167
  52. data/lib/gcloud/datastore/transaction.rb +0 -362
  53. data/lib/gcloud/dns/change.rb +0 -158
  54. data/lib/gcloud/dns/change/list.rb +0 -173
  55. data/lib/gcloud/dns/credentials.rb +0 -29
  56. data/lib/gcloud/dns/importer.rb +0 -183
  57. data/lib/gcloud/dns/project.rb +0 -247
  58. data/lib/gcloud/dns/record.rb +0 -170
  59. data/lib/gcloud/dns/record/list.rb +0 -174
  60. data/lib/gcloud/dns/service.rb +0 -167
  61. data/lib/gcloud/dns/zone.rb +0 -759
  62. data/lib/gcloud/dns/zone/list.rb +0 -168
  63. data/lib/gcloud/dns/zone/transaction.rb +0 -176
  64. data/lib/gcloud/errors.rb +0 -206
  65. data/lib/gcloud/gce.rb +0 -56
  66. data/lib/gcloud/grpc_utils.rb +0 -87
  67. data/lib/gcloud/logging/credentials.rb +0 -29
  68. data/lib/gcloud/logging/entry.rb +0 -465
  69. data/lib/gcloud/logging/entry/http_request.rb +0 -141
  70. data/lib/gcloud/logging/entry/list.rb +0 -177
  71. data/lib/gcloud/logging/entry/operation.rb +0 -90
  72. data/lib/gcloud/logging/logger.rb +0 -307
  73. data/lib/gcloud/logging/metric.rb +0 -169
  74. data/lib/gcloud/logging/metric/list.rb +0 -172
  75. data/lib/gcloud/logging/project.rb +0 -642
  76. data/lib/gcloud/logging/resource.rb +0 -84
  77. data/lib/gcloud/logging/resource_descriptor.rb +0 -137
  78. data/lib/gcloud/logging/resource_descriptor/list.rb +0 -174
  79. data/lib/gcloud/logging/service.rb +0 -267
  80. data/lib/gcloud/logging/sink.rb +0 -227
  81. data/lib/gcloud/logging/sink/list.rb +0 -171
  82. data/lib/gcloud/pubsub/credentials.rb +0 -29
  83. data/lib/gcloud/pubsub/message.rb +0 -94
  84. data/lib/gcloud/pubsub/policy.rb +0 -204
  85. data/lib/gcloud/pubsub/project.rb +0 -482
  86. data/lib/gcloud/pubsub/received_message.rb +0 -160
  87. data/lib/gcloud/pubsub/service.rb +0 -334
  88. data/lib/gcloud/pubsub/subscription.rb +0 -565
  89. data/lib/gcloud/pubsub/subscription/list.rb +0 -208
  90. data/lib/gcloud/pubsub/topic.rb +0 -511
  91. data/lib/gcloud/pubsub/topic/list.rb +0 -174
  92. data/lib/gcloud/pubsub/topic/publisher.rb +0 -85
  93. data/lib/gcloud/resource_manager/credentials.rb +0 -30
  94. data/lib/gcloud/resource_manager/manager.rb +0 -266
  95. data/lib/gcloud/resource_manager/policy.rb +0 -211
  96. data/lib/gcloud/resource_manager/project.rb +0 -484
  97. data/lib/gcloud/resource_manager/project/list.rb +0 -167
  98. data/lib/gcloud/resource_manager/project/updater.rb +0 -130
  99. data/lib/gcloud/resource_manager/service.rb +0 -127
  100. data/lib/gcloud/storage/bucket.rb +0 -775
  101. data/lib/gcloud/storage/bucket/acl.rb +0 -810
  102. data/lib/gcloud/storage/bucket/cors.rb +0 -153
  103. data/lib/gcloud/storage/bucket/list.rb +0 -172
  104. data/lib/gcloud/storage/credentials.rb +0 -29
  105. data/lib/gcloud/storage/errors.rb +0 -65
  106. data/lib/gcloud/storage/file.rb +0 -842
  107. data/lib/gcloud/storage/file/acl.rb +0 -425
  108. data/lib/gcloud/storage/file/list.rb +0 -191
  109. data/lib/gcloud/storage/file/verifier.rb +0 -67
  110. data/lib/gcloud/storage/project.rb +0 -316
  111. data/lib/gcloud/storage/service.rb +0 -347
  112. data/lib/gcloud/translate/api.rb +0 -241
  113. data/lib/gcloud/translate/detection.rb +0 -137
  114. data/lib/gcloud/translate/language.rb +0 -69
  115. data/lib/gcloud/translate/service.rb +0 -80
  116. data/lib/gcloud/translate/translation.rb +0 -112
  117. data/lib/gcloud/vision/annotate.rb +0 -224
  118. data/lib/gcloud/vision/annotation.rb +0 -455
  119. data/lib/gcloud/vision/annotation/entity.rb +0 -234
  120. data/lib/gcloud/vision/annotation/face.rb +0 -1750
  121. data/lib/gcloud/vision/annotation/properties.rb +0 -245
  122. data/lib/gcloud/vision/annotation/safe_search.rb +0 -161
  123. data/lib/gcloud/vision/annotation/text.rb +0 -236
  124. data/lib/gcloud/vision/annotation/vertex.rb +0 -108
  125. data/lib/gcloud/vision/credentials.rb +0 -29
  126. data/lib/gcloud/vision/image.rb +0 -590
  127. data/lib/gcloud/vision/location.rb +0 -115
  128. data/lib/gcloud/vision/project.rb +0 -278
  129. data/lib/gcloud/vision/service.rb +0 -66
  130. data/lib/google/api/annotations.rb +0 -14
  131. data/lib/google/api/http.rb +0 -30
  132. data/lib/google/api/label.rb +0 -24
  133. data/lib/google/api/monitored_resource.rb +0 -25
  134. data/lib/google/datastore/v1beta3/datastore.rb +0 -115
  135. data/lib/google/datastore/v1beta3/datastore_services.rb +0 -33
  136. data/lib/google/datastore/v1beta3/entity.rb +0 -63
  137. data/lib/google/datastore/v1beta3/query.rb +0 -128
  138. data/lib/google/devtools/cloudtrace/v1/trace.rb +0 -78
  139. data/lib/google/devtools/cloudtrace/v1/trace_services.rb +0 -32
  140. data/lib/google/example/library/v1/library.rb +0 -91
  141. data/lib/google/example/library/v1/library_services.rb +0 -40
  142. data/lib/google/iam/v1/iam_policy.rb +0 -33
  143. data/lib/google/iam/v1/iam_policy_services.rb +0 -30
  144. data/lib/google/iam/v1/policy.rb +0 -25
  145. data/lib/google/logging/type/http_request.rb +0 -28
  146. data/lib/google/logging/type/log_severity.rb +0 -27
  147. data/lib/google/logging/v2/log_entry.rb +0 -44
  148. data/lib/google/logging/v2/logging.rb +0 -56
  149. data/lib/google/logging/v2/logging_config.rb +0 -59
  150. data/lib/google/logging/v2/logging_config_services.rb +0 -32
  151. data/lib/google/logging/v2/logging_metrics.rb +0 -51
  152. data/lib/google/logging/v2/logging_metrics_services.rb +0 -32
  153. data/lib/google/logging/v2/logging_services.rb +0 -31
  154. data/lib/google/longrunning/operations.rb +0 -50
  155. data/lib/google/longrunning/operations_services.rb +0 -29
  156. data/lib/google/protobuf/descriptor.rb +0 -0
  157. data/lib/google/pubsub/v1/pubsub.rb +0 -129
  158. data/lib/google/pubsub/v1/pubsub_services.rb +0 -56
  159. data/lib/google/pubsub/v1beta2/pubsub.rb +0 -126
  160. data/lib/google/pubsub/v1beta2/pubsub_services.rb +0 -56
  161. data/lib/google/rpc/code.rb +0 -32
  162. data/lib/google/rpc/error_details.rb +0 -61
  163. data/lib/google/rpc/status.rb +0 -19
  164. data/lib/google/type/color.rb +0 -20
  165. data/lib/google/type/date.rb +0 -18
  166. data/lib/google/type/dayofweek.rb +0 -23
  167. data/lib/google/type/latlng.rb +0 -17
  168. data/lib/google/type/money.rb +0 -18
  169. data/lib/google/type/timeofday.rb +0 -19
@@ -1,160 +0,0 @@
1
- # Copyright 2015 Google Inc. All rights reserved.
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
-
16
- require "gcloud/errors"
17
- require "gcloud/pubsub/message"
18
-
19
- module Gcloud
20
- module Pubsub
21
- ##
22
- # # ReceivedMessage
23
- #
24
- # Represents a Pub/Sub {Message} that can be acknowledged or delayed.
25
- #
26
- # @example
27
- # require "gcloud"
28
- #
29
- # gcloud = Gcloud.new
30
- # pubsub = gcloud.pubsub
31
- #
32
- # sub = pubsub.subscription "my-topic-sub"
33
- # received_message = sub.pull.first
34
- # if received_message
35
- # puts received_message.message.data
36
- # received_message.acknowledge!
37
- # end
38
- #
39
- class ReceivedMessage
40
- ##
41
- # @private The {Subscription} object.
42
- attr_accessor :subscription
43
-
44
- ##
45
- # @private The gRPC Google::Pubsub::V1::ReceivedMessage object.
46
- attr_accessor :grpc
47
-
48
- ##
49
- # @private Create an empty {Subscription} object.
50
- def initialize
51
- @subscription = nil
52
- @grpc = Google::Pubsub::V1::ReceivedMessage.new
53
- end
54
-
55
- ##
56
- # The acknowledgment ID for the message.
57
- def ack_id
58
- @grpc.ack_id
59
- end
60
-
61
- ##
62
- # The received message.
63
- def message
64
- Message.from_grpc @grpc.message
65
- end
66
- alias_method :msg, :message
67
-
68
- ##
69
- # The received message's data.
70
- def data
71
- message.data
72
- end
73
-
74
- ##
75
- # The received message's attributes.
76
- def attributes
77
- message.attributes
78
- end
79
-
80
- ##
81
- # The ID of the received message, assigned by the server at publication
82
- # time. Guaranteed to be unique within the topic.
83
- def message_id
84
- message.message_id
85
- end
86
- alias_method :msg_id, :message_id
87
-
88
- ##
89
- # Acknowledges receipt of the message.
90
- #
91
- # @example
92
- # require "gcloud"
93
- #
94
- # gcloud = Gcloud.new
95
- # pubsub = gcloud.pubsub
96
- #
97
- # sub = pubsub.subscription "my-topic-sub"
98
- # received_message = sub.pull.first
99
- # if received_message
100
- # puts received_message.message.data
101
- # received_message.acknowledge!
102
- # end
103
- #
104
- def acknowledge!
105
- ensure_subscription!
106
- subscription.acknowledge ack_id
107
- end
108
- alias_method :ack!, :acknowledge!
109
-
110
- ##
111
- # Modifies the acknowledge deadline for the message.
112
- #
113
- # This indicates that more time is needed to process the message, or to
114
- # make the message available for redelivery.
115
- #
116
- # @param [Integer] new_deadline The new ack deadline in seconds from the
117
- # time this request is sent to the Pub/Sub system. Must be >= 0. For
118
- # example, if the value is `10`, the new ack deadline will expire 10
119
- # seconds after the call is made. Specifying `0` may immediately make
120
- # the message available for another pull request.
121
- #
122
- # @example
123
- # require "gcloud"
124
- #
125
- # gcloud = Gcloud.new
126
- # pubsub = gcloud.pubsub
127
- #
128
- # sub = pubsub.subscription "my-topic-sub"
129
- # received_message = sub.pull.first
130
- # if received_message
131
- # puts received_message.message.data
132
- # # Delay for 2 minutes
133
- # received_message.delay! 120
134
- # end
135
- #
136
- def delay! new_deadline
137
- ensure_subscription!
138
- subscription.delay new_deadline, ack_id
139
- end
140
-
141
- ##
142
- # @private New ReceivedMessage from a Google::Pubsub::V1::ReceivedMessage
143
- # object.
144
- def self.from_grpc grpc, subscription
145
- new.tap do |rm|
146
- rm.grpc = grpc
147
- rm.subscription = subscription
148
- end
149
- end
150
-
151
- protected
152
-
153
- ##
154
- # Raise an error unless an active subscription is available.
155
- def ensure_subscription!
156
- fail "Must have active subscription" unless subscription
157
- end
158
- end
159
- end
160
- end
@@ -1,334 +0,0 @@
1
- # Copyright 2016 Google Inc. All rights reserved.
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
-
16
- require "gcloud/backoff"
17
- require "gcloud/errors"
18
- require "google/pubsub/v1/pubsub_services"
19
- require "google/iam/v1/iam_policy_services"
20
- require "gcloud/grpc_utils"
21
- require "json"
22
-
23
- module Gcloud
24
- module Pubsub
25
- ##
26
- # @private Represents the gRPC Pub/Sub service, including all the API
27
- # methods.
28
- class Service
29
- attr_accessor :project, :credentials, :host, :retries, :timeout
30
-
31
- ##
32
- # Creates a new Service instance.
33
- def initialize project, credentials, host: nil, retries: nil, timeout: nil
34
- @project = project
35
- @credentials = credentials
36
- @host = host || "pubsub.googleapis.com"
37
- @retries = retries
38
- @timeout = timeout
39
- end
40
-
41
- def creds
42
- return credentials if insecure?
43
- GRPC::Core::ChannelCredentials.new.compose \
44
- GRPC::Core::CallCredentials.new credentials.client.updater_proc
45
- end
46
-
47
- def subscriber
48
- return mocked_subscriber if mocked_subscriber
49
- @subscriber ||= Google::Pubsub::V1::Subscriber::Stub.new(
50
- host, creds, timeout: timeout)
51
- end
52
- attr_accessor :mocked_subscriber
53
-
54
- def publisher
55
- return mocked_publisher if mocked_publisher
56
- @publisher ||= Google::Pubsub::V1::Publisher::Stub.new(
57
- host, creds, timeout: timeout)
58
- end
59
- attr_accessor :mocked_publisher
60
-
61
- def iam
62
- return mocked_iam if mocked_iam
63
- @iam ||= Google::Iam::V1::IAMPolicy::Stub.new(
64
- host, creds, timeout: timeout)
65
- end
66
- attr_accessor :mocked_iam
67
-
68
- def insecure?
69
- credentials == :this_channel_is_insecure
70
- end
71
-
72
- ##
73
- # Gets the configuration of a topic.
74
- # Since the topic only has the name attribute,
75
- # this method is only useful to check the existence of a topic.
76
- # If other attributes are added in the future,
77
- # they will be returned here.
78
- def get_topic topic_name, options = {}
79
- topic_req = Google::Pubsub::V1::GetTopicRequest.new.tap do |r|
80
- r.topic = topic_path(topic_name, options)
81
- end
82
-
83
- execute { publisher.get_topic topic_req }
84
- end
85
-
86
- ##
87
- # Lists matching topics.
88
- def list_topics options = {}
89
- topics_req = Google::Pubsub::V1::ListTopicsRequest.new.tap do |r|
90
- r.project = project_path(options)
91
- r.page_token = options[:token] if options[:token]
92
- r.page_size = options[:max] if options[:max]
93
- end
94
-
95
- execute { publisher.list_topics topics_req }
96
- end
97
-
98
- ##
99
- # Creates the given topic with the given name.
100
- def create_topic topic_name, options = {}
101
- topic_req = Google::Pubsub::V1::Topic.new.tap do |r|
102
- r.name = topic_path(topic_name, options)
103
- end
104
-
105
- execute { publisher.create_topic topic_req }
106
- end
107
-
108
- ##
109
- # Deletes the topic with the given name.
110
- # All subscriptions to this topic are also deleted.
111
- # Raises GRPC status code 5 if the topic does not exist.
112
- # After a topic is deleted, a new topic may be created with the same name.
113
- def delete_topic topic_name
114
- topic_req = Google::Pubsub::V1::DeleteTopicRequest.new.tap do |r|
115
- r.topic = topic_path(topic_name)
116
- end
117
-
118
- execute { publisher.delete_topic topic_req }
119
- end
120
-
121
- ##
122
- # Adds one or more messages to the topic.
123
- # Raises GRPC status code 5 if the topic does not exist.
124
- # The messages parameter is an array of arrays.
125
- # The first element is the data, second is attributes hash.
126
- def publish topic, messages
127
- publish_req = Google::Pubsub::V1::PublishRequest.new(
128
- topic: topic_path(topic),
129
- messages: messages.map do |data, attributes|
130
- Google::Pubsub::V1::PubsubMessage.new(
131
- data: data, attributes: attributes)
132
- end
133
- )
134
-
135
- execute { publisher.publish publish_req }
136
- end
137
-
138
- ##
139
- # Gets the details of a subscription.
140
- def get_subscription subscription_name, options = {}
141
- sub_req = Google::Pubsub::V1::GetSubscriptionRequest.new(
142
- subscription: subscription_path(subscription_name, options)
143
- )
144
-
145
- execute { subscriber.get_subscription sub_req }
146
- end
147
-
148
- ##
149
- # Lists matching subscriptions by project and topic.
150
- def list_topics_subscriptions topic, options = {}
151
- list_params = { topic: topic_path(topic, options),
152
- page_token: options[:token],
153
- page_size: options[:max] }.delete_if { |_, v| v.nil? }
154
- list_req = Google::Pubsub::V1::ListTopicSubscriptionsRequest.new \
155
- list_params
156
-
157
- execute { publisher.list_topic_subscriptions list_req }
158
- end
159
-
160
- ##
161
- # Lists matching subscriptions by project.
162
- def list_subscriptions options = {}
163
- list_params = { project: project_path(options),
164
- page_token: options[:token],
165
- page_size: options[:max] }.delete_if { |_, v| v.nil? }
166
- list_req = Google::Pubsub::V1::ListSubscriptionsRequest.new list_params
167
-
168
- execute { subscriber.list_subscriptions list_req }
169
- end
170
-
171
- ##
172
- # Creates a subscription on a given topic for a given subscriber.
173
- def create_subscription topic, subscription_name, options = {}
174
- sub_params = { name: subscription_path(subscription_name, options),
175
- topic: topic_path(topic),
176
- ack_deadline_seconds: options[:deadline]
177
- }.delete_if { |_, v| v.nil? }
178
- sub_req = Google::Pubsub::V1::Subscription.new sub_params
179
- if options[:endpoint]
180
- sub_req.push_config = Google::Pubsub::V1::PushConfig.new(
181
- push_endpoint: options[:endpoint],
182
- attributes: (options[:attributes] || {}).to_h)
183
- end
184
-
185
- execute { subscriber.create_subscription sub_req }
186
- end
187
-
188
- ##
189
- # Deletes an existing subscription.
190
- # All pending messages in the subscription are immediately dropped.
191
- def delete_subscription subscription
192
- del_req = Google::Pubsub::V1::DeleteSubscriptionRequest.new(
193
- subscription: subscription_path(subscription)
194
- )
195
-
196
- execute { subscriber.delete_subscription del_req }
197
- end
198
-
199
- ##
200
- # Pulls a single message from the server.
201
- def pull subscription, options = {}
202
- pull_req = Google::Pubsub::V1::PullRequest.new(
203
- subscription: subscription_path(subscription, options),
204
- return_immediately: !(!options.fetch(:immediate, true)),
205
- max_messages: options.fetch(:max, 100).to_i
206
- )
207
-
208
- execute { subscriber.pull pull_req }
209
- end
210
-
211
- ##
212
- # Acknowledges receipt of a message.
213
- def acknowledge subscription, *ack_ids
214
- ack_req = Google::Pubsub::V1::AcknowledgeRequest.new(
215
- subscription: subscription_path(subscription),
216
- ack_ids: ack_ids
217
- )
218
-
219
- execute { subscriber.acknowledge ack_req }
220
- end
221
-
222
- ##
223
- # Modifies the PushConfig for a specified subscription.
224
- def modify_push_config subscription, endpoint, attributes
225
- # Convert attributes to strings to match the protobuf definition
226
- attributes = Hash[attributes.map { |k, v| [String(k), String(v)] }]
227
-
228
- mpc_req = Google::Pubsub::V1::ModifyPushConfigRequest.new(
229
- subscription: subscription_path(subscription),
230
- push_config: Google::Pubsub::V1::PushConfig.new(
231
- push_endpoint: endpoint,
232
- attributes: attributes
233
- )
234
- )
235
-
236
- execute { subscriber.modify_push_config mpc_req }
237
- end
238
-
239
- ##
240
- # Modifies the ack deadline for a specific message.
241
- def modify_ack_deadline subscription, ids, deadline
242
- mad_req = Google::Pubsub::V1::ModifyAckDeadlineRequest.new(
243
- subscription: subscription_path(subscription),
244
- ack_ids: Array(ids),
245
- ack_deadline_seconds: deadline
246
- )
247
-
248
- execute { subscriber.modify_ack_deadline mad_req }
249
- end
250
-
251
- def get_topic_policy topic_name, options = {}
252
- get_req = Google::Iam::V1::GetIamPolicyRequest.new(
253
- resource: topic_path(topic_name, options)
254
- )
255
-
256
- execute { iam.get_iam_policy get_req }
257
- end
258
-
259
- def set_topic_policy topic_name, new_policy, options = {}
260
- set_req = Google::Iam::V1::SetIamPolicyRequest.new(
261
- resource: topic_path(topic_name, options),
262
- policy: new_policy
263
- )
264
-
265
- execute { iam.set_iam_policy set_req }
266
- end
267
-
268
- def test_topic_permissions topic_name, permissions, options = {}
269
- test_req = Google::Iam::V1::TestIamPermissionsRequest.new(
270
- resource: topic_path(topic_name, options),
271
- permissions: permissions
272
- )
273
-
274
- execute { iam.test_iam_permissions test_req }
275
- end
276
-
277
- def get_subscription_policy subscription_name, options = {}
278
- get_req = Google::Iam::V1::GetIamPolicyRequest.new(
279
- resource: subscription_path(subscription_name, options)
280
- )
281
-
282
- execute { iam.get_iam_policy get_req }
283
- end
284
-
285
- def set_subscription_policy subscription_name, new_policy, options = {}
286
- set_req = Google::Iam::V1::SetIamPolicyRequest.new(
287
- resource: subscription_path(subscription_name, options),
288
- policy: new_policy
289
- )
290
-
291
- execute { iam.set_iam_policy set_req }
292
- end
293
-
294
- def test_subscription_permissions subscription_name,
295
- permissions, options = {}
296
- test_req = Google::Iam::V1::TestIamPermissionsRequest.new(
297
- resource: subscription_path(subscription_name, options),
298
- permissions: permissions
299
- )
300
-
301
- execute { iam.test_iam_permissions test_req }
302
- end
303
-
304
- def project_path options = {}
305
- project_name = options[:project] || project
306
- "projects/#{project_name}"
307
- end
308
-
309
- def topic_path topic_name, options = {}
310
- return topic_name if topic_name.to_s.include? "/"
311
- "#{project_path(options)}/topics/#{topic_name}"
312
- end
313
-
314
- def subscription_path subscription_name, options = {}
315
- return subscription_name if subscription_name.to_s.include? "/"
316
- "#{project_path(options)}/subscriptions/#{subscription_name}"
317
- end
318
-
319
- def inspect
320
- "#{self.class}(#{@project})"
321
- end
322
-
323
- protected
324
-
325
- def execute
326
- Gcloud::Backoff.new(retries: retries).execute_grpc do
327
- yield
328
- end
329
- rescue GRPC::BadStatus => e
330
- raise Error.from_error(e)
331
- end
332
- end
333
- end
334
- end