gcloud 0.6.3 → 0.7.0

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 (175) hide show
  1. checksums.yaml +8 -8
  2. data/AUTHENTICATION.md +13 -9
  3. data/CHANGELOG.md +8 -3
  4. data/OVERVIEW.md +46 -8
  5. data/lib/gcloud.rb +123 -117
  6. data/lib/gcloud/backoff.rb +43 -15
  7. data/lib/gcloud/bigquery.rb +211 -195
  8. data/lib/gcloud/bigquery/connection.rb +9 -9
  9. data/lib/gcloud/bigquery/copy_job.rb +15 -16
  10. data/lib/gcloud/bigquery/credentials.rb +3 -3
  11. data/lib/gcloud/bigquery/data.rb +12 -11
  12. data/lib/gcloud/bigquery/dataset.rb +162 -216
  13. data/lib/gcloud/bigquery/dataset/access.rb +59 -43
  14. data/lib/gcloud/bigquery/dataset/list.rb +3 -3
  15. data/lib/gcloud/bigquery/errors.rb +9 -5
  16. data/lib/gcloud/bigquery/extract_job.rb +18 -18
  17. data/lib/gcloud/bigquery/insert_response.rb +7 -4
  18. data/lib/gcloud/bigquery/job.rb +48 -44
  19. data/lib/gcloud/bigquery/job/list.rb +3 -3
  20. data/lib/gcloud/bigquery/load_job.rb +24 -25
  21. data/lib/gcloud/bigquery/project.rb +145 -204
  22. data/lib/gcloud/bigquery/query_data.rb +10 -9
  23. data/lib/gcloud/bigquery/query_job.rb +23 -32
  24. data/lib/gcloud/bigquery/table.rb +238 -280
  25. data/lib/gcloud/bigquery/table/list.rb +3 -3
  26. data/lib/gcloud/bigquery/table/schema.rb +79 -87
  27. data/lib/gcloud/bigquery/view.rb +69 -82
  28. data/lib/gcloud/credentials.rb +3 -9
  29. data/lib/gcloud/datastore.rb +194 -170
  30. data/lib/gcloud/datastore/connection.rb +12 -8
  31. data/lib/gcloud/datastore/credentials.rb +6 -4
  32. data/lib/gcloud/datastore/dataset.rb +74 -141
  33. data/lib/gcloud/datastore/dataset/lookup_results.rb +6 -4
  34. data/lib/gcloud/datastore/dataset/query_results.rb +6 -4
  35. data/lib/gcloud/datastore/entity.rb +81 -76
  36. data/lib/gcloud/datastore/errors.rb +10 -8
  37. data/lib/gcloud/datastore/key.rb +41 -77
  38. data/lib/gcloud/datastore/properties.rb +3 -3
  39. data/lib/gcloud/datastore/proto.rb +7 -4
  40. data/lib/gcloud/datastore/query.rb +26 -3
  41. data/lib/gcloud/datastore/transaction.rb +12 -8
  42. data/lib/gcloud/dns.rb +180 -152
  43. data/lib/gcloud/dns/change.rb +16 -16
  44. data/lib/gcloud/dns/change/list.rb +3 -3
  45. data/lib/gcloud/dns/connection.rb +9 -10
  46. data/lib/gcloud/dns/credentials.rb +3 -3
  47. data/lib/gcloud/dns/errors.rb +9 -5
  48. data/lib/gcloud/dns/importer.rb +17 -23
  49. data/lib/gcloud/dns/project.rb +42 -64
  50. data/lib/gcloud/dns/record.rb +58 -46
  51. data/lib/gcloud/dns/record/list.rb +6 -7
  52. data/lib/gcloud/dns/zone.rb +198 -289
  53. data/lib/gcloud/dns/zone/list.rb +3 -3
  54. data/lib/gcloud/dns/zone/transaction.rb +56 -72
  55. data/lib/gcloud/errors.rb +174 -3
  56. data/lib/gcloud/gce.rb +3 -4
  57. data/lib/gcloud/grpc_utils.rb +76 -0
  58. data/lib/gcloud/logging.rb +308 -0
  59. data/lib/gcloud/logging/credentials.rb +29 -0
  60. data/lib/gcloud/logging/entry.rb +303 -0
  61. data/lib/gcloud/logging/entry/http_request.rb +141 -0
  62. data/lib/gcloud/logging/entry/list.rb +111 -0
  63. data/lib/gcloud/logging/entry/operation.rb +90 -0
  64. data/lib/gcloud/logging/logger.rb +307 -0
  65. data/lib/gcloud/logging/metric.rb +175 -0
  66. data/lib/gcloud/logging/metric/list.rb +98 -0
  67. data/lib/gcloud/logging/project.rb +650 -0
  68. data/lib/gcloud/logging/resource.rb +95 -0
  69. data/lib/gcloud/logging/resource_descriptor.rb +140 -0
  70. data/lib/gcloud/logging/resource_descriptor/list.rb +78 -0
  71. data/lib/gcloud/logging/service.rb +258 -0
  72. data/lib/gcloud/logging/sink.rb +233 -0
  73. data/lib/gcloud/logging/sink/list.rb +97 -0
  74. data/lib/gcloud/pubsub.rb +241 -199
  75. data/lib/gcloud/pubsub/credentials.rb +3 -3
  76. data/lib/gcloud/pubsub/message.rb +26 -20
  77. data/lib/gcloud/pubsub/project.rb +166 -233
  78. data/lib/gcloud/pubsub/received_message.rb +28 -38
  79. data/lib/gcloud/pubsub/service.rb +323 -0
  80. data/lib/gcloud/pubsub/subscription.rb +172 -242
  81. data/lib/gcloud/pubsub/subscription/list.rb +11 -9
  82. data/lib/gcloud/pubsub/topic.rb +152 -271
  83. data/lib/gcloud/pubsub/topic/batch.rb +66 -0
  84. data/lib/gcloud/pubsub/topic/list.rb +9 -7
  85. data/lib/gcloud/resource_manager.rb +158 -138
  86. data/lib/gcloud/resource_manager/connection.rb +6 -5
  87. data/lib/gcloud/resource_manager/credentials.rb +3 -3
  88. data/lib/gcloud/resource_manager/errors.rb +9 -5
  89. data/lib/gcloud/resource_manager/manager.rb +54 -86
  90. data/lib/gcloud/resource_manager/project.rb +69 -88
  91. data/lib/gcloud/resource_manager/project/list.rb +4 -5
  92. data/lib/gcloud/resource_manager/project/updater.rb +12 -14
  93. data/lib/gcloud/search.rb +158 -135
  94. data/lib/gcloud/search/api_client.rb +7 -7
  95. data/lib/gcloud/search/connection.rb +8 -8
  96. data/lib/gcloud/search/credentials.rb +3 -3
  97. data/lib/gcloud/search/document.rb +64 -87
  98. data/lib/gcloud/search/document/list.rb +5 -5
  99. data/lib/gcloud/search/errors.rb +9 -5
  100. data/lib/gcloud/search/field_value.rb +32 -38
  101. data/lib/gcloud/search/field_values.rb +50 -80
  102. data/lib/gcloud/search/fields.rb +44 -65
  103. data/lib/gcloud/search/index.rb +163 -204
  104. data/lib/gcloud/search/index/list.rb +5 -5
  105. data/lib/gcloud/search/project.rb +31 -47
  106. data/lib/gcloud/search/result.rb +27 -31
  107. data/lib/gcloud/search/result/list.rb +6 -6
  108. data/lib/gcloud/storage.rb +224 -190
  109. data/lib/gcloud/storage/bucket.rb +202 -227
  110. data/lib/gcloud/storage/bucket/acl.rb +83 -170
  111. data/lib/gcloud/storage/bucket/cors.rb +31 -34
  112. data/lib/gcloud/storage/bucket/list.rb +3 -3
  113. data/lib/gcloud/storage/connection.rb +11 -7
  114. data/lib/gcloud/storage/credentials.rb +3 -3
  115. data/lib/gcloud/storage/errors.rb +11 -8
  116. data/lib/gcloud/storage/file.rb +129 -171
  117. data/lib/gcloud/storage/file/acl.rb +51 -99
  118. data/lib/gcloud/storage/file/list.rb +3 -3
  119. data/lib/gcloud/storage/file/verifier.rb +3 -2
  120. data/lib/gcloud/storage/project.rb +111 -132
  121. data/lib/gcloud/upload.rb +4 -7
  122. data/lib/gcloud/version.rb +2 -4
  123. data/lib/google/api/annotations.rb +14 -0
  124. data/lib/google/api/http.rb +30 -0
  125. data/lib/google/api/label.rb +24 -0
  126. data/lib/google/api/monitored_resource.rb +25 -0
  127. data/lib/google/datastore/v1beta3/datastore.rb +115 -0
  128. data/lib/google/datastore/v1beta3/datastore_services.rb +33 -0
  129. data/lib/google/datastore/v1beta3/entity.rb +63 -0
  130. data/lib/google/datastore/v1beta3/query.rb +128 -0
  131. data/lib/google/devtools/cloudtrace/v1/trace.rb +78 -0
  132. data/lib/google/devtools/cloudtrace/v1/trace_services.rb +32 -0
  133. data/lib/google/example/library/v1/library.rb +91 -0
  134. data/lib/google/example/library/v1/library_services.rb +40 -0
  135. data/lib/google/iam/v1/iam_policy.rb +33 -0
  136. data/lib/google/iam/v1/iam_policy_services.rb +30 -0
  137. data/lib/google/iam/v1/policy.rb +25 -0
  138. data/lib/google/logging/type/http_request.rb +28 -0
  139. data/lib/google/logging/type/log_severity.rb +27 -0
  140. data/lib/google/logging/v2/log_entry.rb +44 -0
  141. data/lib/google/logging/v2/logging.rb +56 -0
  142. data/lib/google/logging/v2/logging_config.rb +59 -0
  143. data/lib/google/logging/v2/logging_config_services.rb +32 -0
  144. data/lib/google/logging/v2/logging_metrics.rb +51 -0
  145. data/lib/google/logging/v2/logging_metrics_services.rb +32 -0
  146. data/lib/google/logging/v2/logging_services.rb +31 -0
  147. data/lib/google/longrunning/operations.rb +50 -0
  148. data/lib/google/longrunning/operations_services.rb +29 -0
  149. data/lib/google/protobuf/any.rb +17 -0
  150. data/lib/google/protobuf/api.rb +31 -0
  151. data/lib/google/protobuf/descriptor.rb +0 -0
  152. data/lib/google/protobuf/duration.rb +17 -0
  153. data/lib/google/protobuf/empty.rb +15 -0
  154. data/lib/google/protobuf/field_mask.rb +16 -0
  155. data/lib/google/protobuf/source_context.rb +16 -0
  156. data/lib/google/protobuf/struct.rb +35 -0
  157. data/lib/google/protobuf/timestamp.rb +17 -0
  158. data/lib/google/protobuf/type.rb +79 -0
  159. data/lib/google/protobuf/wrappers.rb +48 -0
  160. data/lib/google/pubsub/v1/pubsub.rb +129 -0
  161. data/lib/google/pubsub/v1/pubsub_services.rb +56 -0
  162. data/lib/google/pubsub/v1beta2/pubsub.rb +126 -0
  163. data/lib/google/pubsub/v1beta2/pubsub_services.rb +56 -0
  164. data/lib/google/rpc/code.rb +32 -0
  165. data/lib/google/rpc/error_details.rb +61 -0
  166. data/lib/google/rpc/status.rb +19 -0
  167. data/lib/google/type/color.rb +20 -0
  168. data/lib/google/type/date.rb +18 -0
  169. data/lib/google/type/dayofweek.rb +23 -0
  170. data/lib/google/type/latlng.rb +17 -0
  171. data/lib/google/type/money.rb +18 -0
  172. data/lib/google/type/timeofday.rb +19 -0
  173. metadata +101 -4
  174. data/lib/gcloud/pubsub/connection.rb +0 -295
  175. data/lib/gcloud/pubsub/errors.rb +0 -93
@@ -1,4 +1,3 @@
1
- #--
2
1
  # Copyright 2014 Google Inc. All rights reserved.
3
2
  #
4
3
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,6 +12,7 @@
13
12
  # See the License for the specific language governing permissions and
14
13
  # limitations under the License.
15
14
 
15
+
16
16
  require "gcloud/storage/bucket/acl"
17
17
  require "gcloud/storage/bucket/list"
18
18
  require "gcloud/storage/bucket/cors"
@@ -22,10 +22,11 @@ require "gcloud/upload"
22
22
  module Gcloud
23
23
  module Storage
24
24
  ##
25
- # = Bucket
25
+ # # Bucket
26
26
  #
27
27
  # Represents a Storage bucket. Belongs to a Project and has many Files.
28
28
  #
29
+ # @example
29
30
  # require "gcloud"
30
31
  #
31
32
  # gcloud = Gcloud.new
@@ -36,23 +37,23 @@ module Gcloud
36
37
  #
37
38
  class Bucket
38
39
  ##
39
- # The Connection object.
40
- attr_accessor :connection #:nodoc:
40
+ # @private The Connection object.
41
+ attr_accessor :connection
41
42
 
42
43
  ##
43
- # The Google API Client object.
44
- attr_accessor :gapi #:nodoc:
44
+ # @private The Google API Client object.
45
+ attr_accessor :gapi
45
46
 
46
47
  ##
47
- # Create an empty Bucket object.
48
- def initialize #:nodoc:
48
+ # @private Create an empty Bucket object.
49
+ def initialize
49
50
  @connection = nil
50
51
  @gapi = {}
51
52
  end
52
53
 
53
54
  ##
54
55
  # The kind of item this is.
55
- # For buckets, this is always +storage#bucket+.
56
+ # For buckets, this is always `storage#bucket`.
56
57
  def kind
57
58
  @gapi["kind"]
58
59
  end
@@ -83,19 +84,22 @@ module Gcloud
83
84
 
84
85
  ##
85
86
  # Returns the current CORS configuration for a static website served from
86
- # the bucket. For more information, see {Cross-Origin Resource
87
- # Sharing (CORS)}[https://cloud.google.com/storage/docs/cross-origin].
87
+ # the bucket.
88
+ #
88
89
  # The return value is a frozen (unmodifiable) array of hashes containing
89
90
  # the attributes specified for the Bucket resource field
90
- # {cors}[https://cloud.google.com/storage/docs/json_api/v1/buckets#cors].
91
+ # [cors](https://cloud.google.com/storage/docs/json_api/v1/buckets#cors).
91
92
  #
92
93
  # This method also accepts a block for updating the bucket's CORS rules.
93
- # See Bucket::Cors for details.
94
+ # See {Bucket::Cors} for details.
94
95
  #
95
- # === Examples
96
+ # @see https://cloud.google.com/storage/docs/cross-origin Cross-Origin
97
+ # Resource Sharing (CORS)
96
98
  #
97
- # Retrieving the bucket's CORS rules.
99
+ # @yield [cors] a block for setting CORS rules
100
+ # @yieldparam [Bucket::Cors] cors the object accepting CORS rules
98
101
  #
102
+ # @example Retrieving the bucket's CORS rules.
99
103
  # require "gcloud"
100
104
  #
101
105
  # gcloud = Gcloud.new
@@ -107,8 +111,7 @@ module Gcloud
107
111
  # # "responseHeader"=>["X-My-Custom-Header"],
108
112
  # # "maxAgeSeconds"=>3600}]
109
113
  #
110
- # Updating the bucket's CORS rules inside a block.
111
- #
114
+ # @example Updating the bucket's CORS rules inside a block.
112
115
  # require "gcloud"
113
116
  #
114
117
  # gcloud = Gcloud.new
@@ -135,11 +138,14 @@ module Gcloud
135
138
 
136
139
  ##
137
140
  # Updates the CORS configuration for a static website served from the
138
- # bucket. For more information, see {Cross-Origin Resource
139
- # Sharing (CORS)}[https://cloud.google.com/storage/docs/cross-origin].
141
+ # bucket.
142
+ #
140
143
  # Accepts an array of hashes containing the attributes specified for the
141
- # {resource description of
142
- # cors}[https://cloud.google.com/storage/docs/json_api/v1/buckets#cors].
144
+ # [resource description of
145
+ # cors](https://cloud.google.com/storage/docs/json_api/v1/buckets#cors).
146
+ #
147
+ # @see https://cloud.google.com/storage/docs/cross-origin Cross-Origin
148
+ # Resource Sharing (CORS)
143
149
  def cors= new_cors
144
150
  patch_gapi! cors: new_cors
145
151
  end
@@ -150,29 +156,36 @@ module Gcloud
150
156
  # storage within this region. Defaults to US.
151
157
  # See the developer's guide for the authoritative list.
152
158
  #
153
- # https://cloud.google.com/storage/docs/concepts-techniques
159
+ # @see https://cloud.google.com/storage/docs/concepts-techniques
154
160
  def location
155
161
  @gapi["location"]
156
162
  end
157
163
 
158
164
  ##
159
- # The destination bucket name for the bucket's logs. For more information,
160
- # see {Access Logs}[https://cloud.google.com/storage/docs/access-logs].
165
+ # The destination bucket name for the bucket's logs.
166
+ #
167
+ # @see https://cloud.google.com/storage/docs/access-logs Access Logs
168
+ #
161
169
  def logging_bucket
162
170
  @gapi["logging"]["logBucket"] if @gapi["logging"]
163
171
  end
164
172
 
165
173
  ##
166
- # Updates the destination bucket for the bucket's logs. For more
167
- # information, see {Access
168
- # Logs}[https://cloud.google.com/storage/docs/access-logs]. (+String+)
174
+ # Updates the destination bucket for the bucket's logs.
175
+ #
176
+ # @see https://cloud.google.com/storage/docs/access-logs Access Logs
177
+ #
178
+ # @param [String] logging_bucket The bucket to hold the logging output
179
+ #
169
180
  def logging_bucket= logging_bucket
170
181
  patch_gapi! logging_bucket: logging_bucket
171
182
  end
172
183
 
173
184
  ##
174
185
  # The logging object prefix for the bucket's logs. For more information,
175
- # see {Access Logs}[https://cloud.google.com/storage/docs/access-logs].
186
+ #
187
+ # @see https://cloud.google.com/storage/docs/access-logs Access Logs
188
+ #
176
189
  def logging_prefix
177
190
  @gapi["logging"]["logObjectPrefix"] if @gapi["logging"]
178
191
  end
@@ -180,12 +193,13 @@ module Gcloud
180
193
  ##
181
194
  # Updates the logging object prefix. This prefix will be used to create
182
195
  # log object names for the bucket. It can be at most 900 characters and
183
- # must be a {valid object
184
- # name}[https://cloud.google.com/storage/docs/bucket-naming#objectnames].
196
+ # must be a [valid object
197
+ # name](https://cloud.google.com/storage/docs/bucket-naming#objectnames).
185
198
  # By default, the object prefix is the name
186
- # of the bucket for which the logs are enabled. For more information, see
187
- # {Access Logs}[https://cloud.google.com/storage/docs/access-logs].
188
- # (+String+)
199
+ # of the bucket for which the logs are enabled.
200
+ #
201
+ # @see https://cloud.google.com/storage/docs/access-logs Access Logs
202
+ #
189
203
  def logging_prefix= logging_prefix
190
204
  patch_gapi! logging_prefix: logging_prefix
191
205
  end
@@ -193,74 +207,85 @@ module Gcloud
193
207
  ##
194
208
  # The bucket's storage class. This defines how objects in the bucket are
195
209
  # stored and determines the SLA and the cost of storage. Values include
196
- # +STANDARD+, +NEARLINE+, and +DURABLE_REDUCED_AVAILABILITY+.
210
+ # `STANDARD`, `NEARLINE`, and `DURABLE_REDUCED_AVAILABILITY`.
197
211
  def storage_class
198
212
  @gapi["storageClass"]
199
213
  end
200
214
 
201
215
  ##
202
- # Whether {Object
203
- # Versioning}[https://cloud.google.com/storage/docs/object-versioning] is
216
+ # Whether [Object
217
+ # Versioning](https://cloud.google.com/storage/docs/object-versioning) is
204
218
  # enabled for the bucket.
205
219
  def versioning?
206
220
  !@gapi["versioning"].nil? && @gapi["versioning"]["enabled"]
207
221
  end
208
222
 
209
223
  ##
210
- # Updates whether {Object
211
- # Versioning}[https://cloud.google.com/storage/docs/object-versioning] is
212
- # enabled for the bucket. (+Boolean+)
224
+ # Updates whether [Object
225
+ # Versioning](https://cloud.google.com/storage/docs/object-versioning) is
226
+ # enabled for the bucket.
227
+ #
228
+ # @return [Boolean]
229
+ #
213
230
  def versioning= new_versioning
214
231
  patch_gapi! versioning: new_versioning
215
232
  end
216
233
 
217
234
  ##
218
235
  # The index page returned from a static website served from the bucket
219
- # when a site visitor requests the top level directory. For more
220
- # information, see {How to Host a Static Website
221
- # }[https://cloud.google.com/storage/docs/website-configuration#step4].
236
+ # when a site visitor requests the top level directory.
237
+ #
238
+ # @see https://cloud.google.com/storage/docs/website-configuration#step4
239
+ # How to Host a Static Website
240
+ #
222
241
  def website_main
223
242
  @gapi["website"]["mainPageSuffix"] if @gapi["website"]
224
243
  end
225
244
 
226
245
  ##
227
246
  # Updates the index page returned from a static website served from the
228
- # bucket when a site visitor requests the top level directory. For more
229
- # information, see {How to Host a Static Website
230
- # }[https://cloud.google.com/storage/docs/website-configuration#step4].
231
- # (+String+)
247
+ # bucket when a site visitor requests the top level directory.
248
+ #
249
+ # @see https://cloud.google.com/storage/docs/website-configuration#step4
250
+ # How to Host a Static Website
251
+ #
232
252
  def website_main= website_main
233
253
  patch_gapi! website_main: website_main
234
254
  end
235
255
 
236
256
  ##
237
257
  # The page returned from a static website served from the bucket when a
238
- # site visitor requests a resource that does not exist. For more
239
- # information, see {How to Host a Static Website
240
- # }[https://cloud.google.com/storage/docs/website-configuration#step4].
258
+ # site visitor requests a resource that does not exist.
259
+ #
260
+ # @see https://cloud.google.com/storage/docs/website-configuration#step4
261
+ # How to Host a Static Website
262
+ #
241
263
  def website_404
242
264
  @gapi["website"]["notFoundPage"] if @gapi["website"]
243
265
  end
244
266
 
245
267
  ##
246
268
  # Updates the page returned from a static website served from the bucket
247
- # when a site visitor requests a resource that does not exist. For more
248
- # information, see {How to Host a Static Website
249
- # }[https://cloud.google.com/storage/docs/website-configuration#step4].
250
- # (+String+)
269
+ # when a site visitor requests a resource that does not exist.
270
+ #
271
+ # @see https://cloud.google.com/storage/docs/website-configuration#step4
272
+ # How to Host a Static Website
273
+ #
251
274
  def website_404= website_404
252
275
  patch_gapi! website_404: website_404
253
276
  end
254
277
 
255
278
  ##
256
279
  # Updates the bucket with changes made in the given block in a single
257
- # PATCH request. The following attributes may be set: #cors=,
258
- # #logging_bucket=, #logging_prefix=, #versioning=, #website_main=, and
259
- # #website_404=. In addition, the #cors configuration accessible in the
260
- # block is completely mutable and will be included in the request.
280
+ # PATCH request. The following attributes may be set: {#cors=},
281
+ # {#logging_bucket=}, {#logging_prefix=}, {#versioning=},
282
+ # {#website_main=}, and {#website_404=}. In addition, the #cors
283
+ # configuration accessible in the block is completely mutable and will be
284
+ # included in the request. (See {Bucket::Cors})
261
285
  #
262
- # === Examples
286
+ # @yield [bucket] a block yielding a delegate object for updating the file
263
287
  #
288
+ # @example
264
289
  # require "gcloud"
265
290
  #
266
291
  # gcloud = Gcloud.new
@@ -274,9 +299,7 @@ module Gcloud
274
299
  # b.cors[1]["responseHeader"] << "X-Another-Custom-Header"
275
300
  # end
276
301
  #
277
- # New CORS rules can also be added in a nested block. See Bucket::Cors for
278
- # details.
279
- #
302
+ # @example New CORS rules can also be added in a nested block:
280
303
  # require "gcloud"
281
304
  #
282
305
  # gcloud = Gcloud.new
@@ -302,18 +325,16 @@ module Gcloud
302
325
  # Permanently deletes the bucket.
303
326
  # The bucket must be empty before it can be deleted.
304
327
  #
305
- # === Parameters
306
- #
307
- # +retries+::
308
- # The number of times the API call should be retried.
309
- # Default is Gcloud::Backoff.retries. (+Integer+)
310
- #
311
- # === Returns
328
+ # The API call to delete the bucket may be retried under certain
329
+ # conditions. See {Gcloud::Backoff} to control this behavior, or
330
+ # specify the wanted behavior using the `retries` option.
312
331
  #
313
- # +true+ if the bucket was deleted.
332
+ # @param [Integer] retries The number of times the API call should be
333
+ # retried. Default is Gcloud::Backoff.retries.
314
334
  #
315
- # === Examples
335
+ # @return [Boolean] Returns `true` if the bucket was deleted.
316
336
  #
337
+ # @example
317
338
  # require "gcloud"
318
339
  #
319
340
  # gcloud = Gcloud.new
@@ -322,10 +343,7 @@ module Gcloud
322
343
  # bucket = storage.bucket "my-bucket"
323
344
  # bucket.delete
324
345
  #
325
- # The API call to delete the bucket may be retried under certain
326
- # conditions. See Gcloud::Backoff to control this behavior, or
327
- # specify the wanted behavior in the call:
328
- #
346
+ # @example Specify the number of retries to attempt:
329
347
  # require "gcloud"
330
348
  #
331
349
  # gcloud = Gcloud.new
@@ -348,37 +366,28 @@ module Gcloud
348
366
  ##
349
367
  # Retrieves a list of files matching the criteria.
350
368
  #
351
- # === Parameters
352
- #
353
- # +prefix+::
354
- # Filter results to files whose names begin with this prefix.
355
- # (+String+)
356
- # +delimiter+::
357
- # Returns results in a directory-like mode. +items+ will contain only
358
- # objects whose names, aside from the +prefix+, do not contain
359
- # +delimiter+. Objects whose names, aside from the +prefix+, contain
360
- # +delimiter+ will have their name, truncated after the +delimiter+,
361
- # returned in +prefixes+. Duplicate +prefixes+ are omitted.
362
- # +token+::
363
- # A previously-returned page token representing part of the larger set
364
- # of results to view. (+String+)
365
- # +max+::
366
- # Maximum number of items plus prefixes to return. As duplicate prefixes
367
- # are omitted, fewer total results may be returned than requested.
368
- # The default value of this parameter is 1,000 items. (+Integer+)
369
- # +versions+::
370
- # If +true+, lists all versions of an object as distinct results.
371
- # The default is +false+. For more information, see
372
- # {Object Versioning
373
- # }[https://cloud.google.com/storage/docs/object-versioning].
374
- # (+Boolean+)
375
- #
376
- # === Returns
377
- #
378
- # Array of Gcloud::Storage::File (See Gcloud::Storage::File::List)
379
- #
380
- # === Examples
381
- #
369
+ # @param [String] prefix Filter results to files whose names begin with
370
+ # this prefix.
371
+ # @param [String] delimiter Returns results in a directory-like mode.
372
+ # `items` will contain only objects whose names, aside from the
373
+ # `prefix`, do not contain `delimiter`. Objects whose names, aside from
374
+ # the `prefix`, contain `delimiter` will have their name, truncated
375
+ # after the `delimiter`, returned in `prefixes`. Duplicate `prefixes`
376
+ # are omitted.
377
+ # @param [String] token A previously-returned page token representing part
378
+ # of the larger set of results to view.
379
+ # @param [Integer] max Maximum number of items plus prefixes to return. As
380
+ # duplicate prefixes are omitted, fewer total results may be returned
381
+ # than requested. The default value of this parameter is 1,000 items.
382
+ # @param [Boolean] versions If `true`, lists all versions of an object as
383
+ # distinct results. The default is `false`. For more information, see
384
+ # [Object Versioning
385
+ # ](https://cloud.google.com/storage/docs/object-versioning).
386
+ #
387
+ # @return [Array<Gcloud::Storage::File>] (See
388
+ # {Gcloud::Storage::File::List})
389
+ #
390
+ # @example
382
391
  # require "gcloud"
383
392
  #
384
393
  # gcloud = Gcloud.new
@@ -390,9 +399,7 @@ module Gcloud
390
399
  # puts file.name
391
400
  # end
392
401
  #
393
- # If you have a significant number of files, you may need to paginate
394
- # through them: (See File::List#token)
395
- #
402
+ # @example With pagination: (See {File::List#token})
396
403
  # require "gcloud"
397
404
  #
398
405
  # gcloud = Gcloud.new
@@ -433,20 +440,13 @@ module Gcloud
433
440
  ##
434
441
  # Retrieves a file matching the path.
435
442
  #
436
- # === Parameters
437
- #
438
- # +path+::
439
- # Name (path) of the file. (+String+)
440
- # +generation+::
441
- # When present, selects a specific revision of this object.
442
- # Default is the latest version. (+Integer+)
443
- #
444
- # === Returns
443
+ # @param [String] path Name (path) of the file.
444
+ # @param [Integer] generation When present, selects a specific revision of
445
+ # this object. Default is the latest version.
445
446
  #
446
- # Gcloud::Storage::File or nil if file does not exist
447
- #
448
- # === Example
447
+ # @return [Gcloud::Storage::File, nil] Returns nil if file does not exist
449
448
  #
449
+ # @example
450
450
  # require "gcloud"
451
451
  #
452
452
  # gcloud = Gcloud.new
@@ -473,73 +473,68 @@ module Gcloud
473
473
  # Create a new File object by providing a path to a local file to upload
474
474
  # and the path to store it with in the bucket.
475
475
  #
476
- # === Parameters
476
+ # A `chunk_size` value can be provided in the options to be used
477
+ # in resumable uploads. This value is the number of bytes per
478
+ # chunk and must be divisible by 256KB. If it is not divisible
479
+ # by 256KB then it will be lowered to the nearest acceptable
480
+ # value.
477
481
  #
478
- # +file+::
479
- # Path of the file on the filesystem to upload. (+String+)
480
- # +path+::
481
- # Path to store the file in Google Cloud Storage. (+String+)
482
- # +acl+::
483
- # A predefined set of access controls to apply to this file.
484
- # (+String+)
482
+ # @param [String] file Path of the file on the filesystem to upload.
483
+ # @param [String] path Path to store the file in Google Cloud Storage.
484
+ # @param [String] acl A predefined set of access controls to apply to this
485
+ # file.
485
486
  #
486
487
  # Acceptable values are:
487
- # * +auth+, +auth_read+, +authenticated+, +authenticated_read+,
488
- # +authenticatedRead+ - File owner gets OWNER access, and
488
+ #
489
+ # * `auth`, `auth_read`, `authenticated`, `authenticated_read`,
490
+ # `authenticatedRead` - File owner gets OWNER access, and
489
491
  # allAuthenticatedUsers get READER access.
490
- # * +owner_full+, +bucketOwnerFullControl+ - File owner gets OWNER
492
+ # * `owner_full`, `bucketOwnerFullControl` - File owner gets OWNER
491
493
  # access, and project team owners get OWNER access.
492
- # * +owner_read+, +bucketOwnerRead+ - File owner gets OWNER access, and
494
+ # * `owner_read`, `bucketOwnerRead` - File owner gets OWNER access, and
493
495
  # project team owners get READER access.
494
- # * +private+ - File owner gets OWNER access.
495
- # * +project_private+, +projectPrivate+ - File owner gets OWNER access,
496
+ # * `private` - File owner gets OWNER access.
497
+ # * `project_private`, `projectPrivate` - File owner gets OWNER access,
496
498
  # and project team members get access according to their roles.
497
- # * +public+, +public_read+, +publicRead+ - File owner gets OWNER
499
+ # * `public`, `public_read`, `publicRead` - File owner gets OWNER
498
500
  # access, and allUsers get READER access.
499
- # +cache_control+::
500
- # The {Cache-Control}[https://tools.ietf.org/html/rfc7234#section-5.2]
501
- # response header to be returned when the file is downloaded. (+String+)
502
- # +content_disposition+::
503
- # The {Content-Disposition}[https://tools.ietf.org/html/rfc6266]
504
- # response header to be returned when the file is downloaded. (+String+)
505
- # +content_encoding+::
506
- # The {Content-Encoding
507
- # }[https://tools.ietf.org/html/rfc7231#section-3.1.2.2] response header
508
- # to be returned when the file is downloaded. (+String+)
509
- # +content_language+::
510
- # The {Content-Language}[http://tools.ietf.org/html/bcp47] response
511
- # header to be returned when the file is downloaded. (+String+)
512
- # +content_type+::
513
- # The {Content-Type}[https://tools.ietf.org/html/rfc2616#section-14.17]
514
- # response header to be returned when the file is downloaded. (+String+)
515
- # +chunk_size+::
516
- # The number of bytes per chunk in a resumable upload. Must be divisible
517
- # by 256KB. If it is not divisible by 265KB then it will be lowered to
518
- # the nearest acceptable value. (+Integer+)
519
- # +crc32c+::
520
- # The CRC32c checksum of the file data, as described in
521
- # {RFC 4960, Appendix B}[http://tools.ietf.org/html/rfc4960#appendix-B].
501
+ # @param [String] cache_control The
502
+ # [Cache-Control](https://tools.ietf.org/html/rfc7234#section-5.2)
503
+ # response header to be returned when the file is downloaded.
504
+ # @param [String] content_disposition The
505
+ # [Content-Disposition](https://tools.ietf.org/html/rfc6266)
506
+ # response header to be returned when the file is downloaded.
507
+ # @param [String] content_encoding The [Content-Encoding
508
+ # ](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) response header
509
+ # to be returned when the file is downloaded.
510
+ # @param [String] content_language The
511
+ # [Content-Language](http://tools.ietf.org/html/bcp47) response
512
+ # header to be returned when the file is downloaded.
513
+ # @param [String] content_type The
514
+ # [Content-Type](https://tools.ietf.org/html/rfc2616#section-14.17)
515
+ # response header to be returned when the file is downloaded.
516
+ # @param [Integer] chunk_size The number of bytes per chunk in a resumable
517
+ # upload. Must be divisible by 256KB. If it is not divisible by 265KB
518
+ # then it will be lowered to the nearest acceptable value.
519
+ # @param [String] crc32c The CRC32c checksum of the file data, as
520
+ # described in [RFC 4960, Appendix
521
+ # B](http://tools.ietf.org/html/rfc4960#appendix-B).
522
522
  # If provided, Cloud Storage will only create the file if the value
523
523
  # matches the value calculated by the service. See
524
- # {Validation}[https://cloud.google.com/storage/docs/hashes-etags]
525
- # for more information. (+String+)
526
- # +md5+::
527
- # The MD5 hash of the file data. If provided, Cloud Storage will only
528
- # create the file if the value matches the value calculated by the
529
- # service. See
530
- # {Validation}[https://cloud.google.com/storage/docs/hashes-etags]
531
- # for more information. (+String+)
532
- # +metadata+::
533
- # A hash of custom, user-provided web-safe keys and arbitrary string
534
- # values that will returned with requests for the file as "x-goog-meta-"
535
- # response headers. (+Hash+)
536
- #
537
- # === Returns
538
- #
539
- # Gcloud::Storage::File
540
- #
541
- # === Examples
542
- #
524
+ # [Validation](https://cloud.google.com/storage/docs/hashes-etags)
525
+ # for more information.
526
+ # @param [String] md5 The MD5 hash of the file data. If provided, Cloud
527
+ # Storage will only create the file if the value matches the value
528
+ # calculated by the service. See
529
+ # [Validation](https://cloud.google.com/storage/docs/hashes-etags) for
530
+ # more information.
531
+ # @param [Hash] metadata A hash of custom, user-provided web-safe keys and
532
+ # arbitrary string values that will returned with requests for the file
533
+ # as "x-goog-meta-" response headers.
534
+ #
535
+ # @return [Gcloud::Storage::File]
536
+ #
537
+ # @example
543
538
  # require "gcloud"
544
539
  #
545
540
  # gcloud = Gcloud.new
@@ -549,8 +544,7 @@ module Gcloud
549
544
  #
550
545
  # bucket.create_file "path/to/local.file.ext"
551
546
  #
552
- # Additionally, a destination path can be specified.
553
- #
547
+ # @example Additionally, a destination path can be specified.
554
548
  # require "gcloud"
555
549
  #
556
550
  # gcloud = Gcloud.new
@@ -561,12 +555,7 @@ module Gcloud
561
555
  # bucket.create_file "path/to/local.file.ext",
562
556
  # "destination/path/file.ext"
563
557
  #
564
- # A +chunk_size+ value can be provided in the options to be used
565
- # in resumable uploads. This value is the number of bytes per
566
- # chunk and must be divisible by 256KB. If it is not divisible
567
- # by 265KB then it will be lowered to the nearest acceptable
568
- # value.
569
- #
558
+ # @example Specify the chunk size as a number of bytes:
570
559
  # require "gcloud"
571
560
  #
572
561
  # gcloud = Gcloud.new
@@ -578,29 +567,30 @@ module Gcloud
578
567
  # "destination/path/file.ext",
579
568
  # chunk_size: 1024*1024 # 1 MB chunk
580
569
  #
581
- # ==== Troubleshooting large uploads
570
+ # #### Troubleshooting large uploads
582
571
  #
583
572
  # You may encounter errors while attempting to upload large files. Below
584
573
  # are a couple of common cases and their solutions.
585
574
  #
586
- # ===== Handling memory errors
575
+ # ##### Handling memory errors
587
576
  #
588
- # If you encounter a memory error such as +NoMemoryError+, try performing
589
- # a resumable upload and setting the +chunk_size+ option to a value that
577
+ # If you encounter a memory error such as `NoMemoryError`, try performing
578
+ # a resumable upload and setting the `chunk_size` option to a value that
590
579
  # works for your environment, as explained in the final example above.
591
580
  #
592
- # ===== Handling broken pipe errors
581
+ # ##### Handling broken pipe errors
593
582
  #
594
- # To avoid broken pipe (+Errno::EPIPE+) errors when uploading, add the
595
- # {httpclient}[https://rubygems.org/gems/httpclient] gem to your project,
583
+ # To avoid broken pipe (`Errno::EPIPE`) errors when uploading, add the
584
+ # [httpclient](https://rubygems.org/gems/httpclient) gem to your project,
596
585
  # and the configuration shown below. These lines must execute after you
597
586
  # require gcloud but before you make your first gcloud connection. The
598
- # first statement configures {Faraday}[https://rubygems.org/gems/faraday]
587
+ # first statement configures [Faraday](https://rubygems.org/gems/faraday)
599
588
  # to use httpclient. The second statement, which should only be added if
600
589
  # you are using a version of Faraday at or above 0.9.2, is a workaround
601
- # for {this gzip
602
- # issue}[https://github.com/GoogleCloudPlatform/gcloud-ruby/issues/367].
590
+ # for [this gzip
591
+ # issue](https://github.com/GoogleCloudPlatform/gcloud-ruby/issues/367).
603
592
  #
593
+ # @example
604
594
  # require "gcloud"
605
595
  #
606
596
  # # Use httpclient to avoid broken pipe errors with large uploads
@@ -639,16 +629,12 @@ module Gcloud
639
629
  #
640
630
  # A bucket has owners, writers, and readers. Permissions can be granted to
641
631
  # an individual user's email address, a group's email address, as well as
642
- # many predefined lists. See the
643
- # {Access Control guide
644
- # }[https://cloud.google.com/storage/docs/access-control]
645
- # for more.
632
+ # many predefined lists.
646
633
  #
647
- # === Examples
648
- #
649
- # Access to a bucket can be granted to a user by appending +"user-"+ to
650
- # the email address:
634
+ # @see https://cloud.google.com/storage/docs/access-control Access Control
635
+ # guide
651
636
  #
637
+ # @example Grant access to a user by pre-pending `"user-"` to an email:
652
638
  # require "gcloud"
653
639
  #
654
640
  # gcloud = Gcloud.new
@@ -659,9 +645,7 @@ module Gcloud
659
645
  # email = "heidi@example.net"
660
646
  # bucket.acl.add_reader "user-#{email}"
661
647
  #
662
- # Access to a bucket can be granted to a group by appending +"group-"+ to
663
- # the email address:
664
- #
648
+ # @example Grant access to a group by pre-pending `"group-"` to an email:
665
649
  # require "gcloud"
666
650
  #
667
651
  # gcloud = Gcloud.new
@@ -672,9 +656,7 @@ module Gcloud
672
656
  # email = "authors@example.net"
673
657
  # bucket.acl.add_reader "group-#{email}"
674
658
  #
675
- # Access to a bucket can also be granted to a predefined list of
676
- # permissions:
677
- #
659
+ # @example Or, grant access via a predefined permissions list:
678
660
  # require "gcloud"
679
661
  #
680
662
  # gcloud = Gcloud.new
@@ -694,16 +676,12 @@ module Gcloud
694
676
  #
695
677
  # A bucket's files have owners, writers, and readers. Permissions can be
696
678
  # granted to an individual user's email address, a group's email address,
697
- # as well as many predefined lists. See the
698
- # {Access Control guide
699
- # }[https://cloud.google.com/storage/docs/access-control]
700
- # for more.
701
- #
702
- # === Examples
679
+ # as well as many predefined lists.
703
680
  #
704
- # Access to a bucket's files can be granted to a user by appending
705
- # +"user-"+ to the email address:
681
+ # @see https://cloud.google.com/storage/docs/access-control Access Control
682
+ # guide
706
683
  #
684
+ # @example Grant access to a user by pre-pending `"user-"` to an email:
707
685
  # require "gcloud"
708
686
  #
709
687
  # gcloud = Gcloud.new
@@ -714,9 +692,7 @@ module Gcloud
714
692
  # email = "heidi@example.net"
715
693
  # bucket.default_acl.add_reader "user-#{email}"
716
694
  #
717
- # Access to a bucket's files can be granted to a group by appending
718
- # +"group-"+ to the email address:
719
- #
695
+ # @example Grant access to a group by pre-pending `"group-"` to an email
720
696
  # require "gcloud"
721
697
  #
722
698
  # gcloud = Gcloud.new
@@ -727,9 +703,7 @@ module Gcloud
727
703
  # email = "authors@example.net"
728
704
  # bucket.default_acl.add_reader "group-#{email}"
729
705
  #
730
- # Access to a bucket's files can also be granted to a predefined list of
731
- # permissions:
732
- #
706
+ # @example Or, grant access via a predefined permissions list:
733
707
  # require "gcloud"
734
708
  #
735
709
  # gcloud = Gcloud.new
@@ -738,6 +712,7 @@ module Gcloud
738
712
  # bucket = storage.bucket "my-todo-app"
739
713
  #
740
714
  # bucket.default_acl.public!
715
+ #
741
716
  def default_acl
742
717
  @default_acl ||= Bucket::DefaultAcl.new self
743
718
  end
@@ -756,8 +731,8 @@ module Gcloud
756
731
  alias_method :refresh!, :reload!
757
732
 
758
733
  ##
759
- # New Bucket from a Google API Client object.
760
- def self.from_gapi gapi, conn #:nodoc:
734
+ # @private New Bucket from a Google API Client object.
735
+ def self.from_gapi gapi, conn
761
736
  new.tap do |f|
762
737
  f.gapi = gapi
763
738
  f.connection = conn
@@ -790,8 +765,8 @@ module Gcloud
790
765
  end
791
766
 
792
767
  ##
793
- # Determines if a resumable upload should be used.
794
- def resumable_upload? file #:nodoc:
768
+ # @private Determines if a resumable upload should be used.
769
+ def resumable_upload? file
795
770
  ::File.size?(file).to_i > Upload.resumable_threshold
796
771
  end
797
772