gcloud 0.11.0 → 0.12.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 (121) hide show
  1. checksums.yaml +8 -8
  2. data/AUTHENTICATION.md +3 -3
  3. data/CHANGELOG.md +92 -0
  4. data/OVERVIEW.md +3 -3
  5. data/lib/gcloud.rb +75 -25
  6. data/lib/gcloud/backoff.rb +5 -1
  7. data/lib/gcloud/bigquery.rb +25 -43
  8. data/lib/gcloud/bigquery/copy_job.rb +13 -13
  9. data/lib/gcloud/bigquery/data.rb +20 -16
  10. data/lib/gcloud/bigquery/dataset.rb +202 -177
  11. data/lib/gcloud/bigquery/dataset/access.rb +118 -104
  12. data/lib/gcloud/bigquery/dataset/list.rb +14 -18
  13. data/lib/gcloud/bigquery/extract_job.rb +12 -12
  14. data/lib/gcloud/bigquery/insert_response.rb +12 -14
  15. data/lib/gcloud/bigquery/job.rb +45 -57
  16. data/lib/gcloud/bigquery/job/list.rb +18 -24
  17. data/lib/gcloud/bigquery/load_job.rb +35 -27
  18. data/lib/gcloud/bigquery/project.rb +53 -73
  19. data/lib/gcloud/bigquery/query_data.rb +28 -35
  20. data/lib/gcloud/bigquery/query_job.rb +18 -18
  21. data/lib/gcloud/bigquery/schema.rb +359 -0
  22. data/lib/gcloud/bigquery/service.rb +506 -0
  23. data/lib/gcloud/bigquery/table.rb +185 -266
  24. data/lib/gcloud/bigquery/table/list.rb +15 -19
  25. data/lib/gcloud/bigquery/view.rb +126 -81
  26. data/lib/gcloud/datastore.rb +39 -27
  27. data/lib/gcloud/datastore/commit.rb +2 -2
  28. data/lib/gcloud/datastore/dataset.rb +8 -19
  29. data/lib/gcloud/datastore/dataset/lookup_results.rb +2 -4
  30. data/lib/gcloud/datastore/dataset/query_results.rb +0 -2
  31. data/lib/gcloud/datastore/entity.rb +7 -1
  32. data/lib/gcloud/datastore/errors.rb +5 -27
  33. data/lib/gcloud/datastore/grpc_utils.rb +4 -3
  34. data/lib/gcloud/datastore/key.rb +6 -0
  35. data/lib/gcloud/datastore/service.rb +18 -12
  36. data/lib/gcloud/datastore/transaction.rb +0 -10
  37. data/lib/gcloud/dns.rb +29 -19
  38. data/lib/gcloud/dns/change.rb +10 -15
  39. data/lib/gcloud/dns/change/list.rb +4 -4
  40. data/lib/gcloud/dns/importer.rb +1 -1
  41. data/lib/gcloud/dns/project.rb +32 -49
  42. data/lib/gcloud/dns/record.rb +8 -2
  43. data/lib/gcloud/dns/record/list.rb +4 -4
  44. data/lib/gcloud/dns/service.rb +167 -0
  45. data/lib/gcloud/dns/zone.rb +33 -52
  46. data/lib/gcloud/dns/zone/list.rb +12 -16
  47. data/lib/gcloud/errors.rb +31 -19
  48. data/lib/gcloud/logging.rb +50 -39
  49. data/lib/gcloud/logging/entry.rb +197 -24
  50. data/lib/gcloud/logging/entry/list.rb +0 -2
  51. data/lib/gcloud/logging/logger.rb +1 -1
  52. data/lib/gcloud/logging/metric.rb +3 -9
  53. data/lib/gcloud/logging/metric/list.rb +0 -2
  54. data/lib/gcloud/logging/project.rb +58 -54
  55. data/lib/gcloud/logging/resource_descriptor.rb +2 -2
  56. data/lib/gcloud/logging/resource_descriptor/list.rb +0 -2
  57. data/lib/gcloud/logging/service.rb +32 -23
  58. data/lib/gcloud/logging/sink.rb +8 -14
  59. data/lib/gcloud/logging/sink/list.rb +0 -2
  60. data/lib/gcloud/pubsub.rb +21 -16
  61. data/lib/gcloud/pubsub/policy.rb +204 -0
  62. data/lib/gcloud/pubsub/project.rb +26 -38
  63. data/lib/gcloud/pubsub/service.rb +39 -31
  64. data/lib/gcloud/pubsub/subscription.rb +56 -59
  65. data/lib/gcloud/pubsub/subscription/list.rb +4 -4
  66. data/lib/gcloud/pubsub/topic.rb +69 -66
  67. data/lib/gcloud/pubsub/topic/list.rb +0 -2
  68. data/lib/gcloud/pubsub/topic/{batch.rb → publisher.rb} +15 -2
  69. data/lib/gcloud/resource_manager.rb +27 -26
  70. data/lib/gcloud/resource_manager/manager.rb +19 -39
  71. data/lib/gcloud/resource_manager/policy.rb +211 -0
  72. data/lib/gcloud/resource_manager/project.rb +97 -121
  73. data/lib/gcloud/resource_manager/project/list.rb +7 -7
  74. data/lib/gcloud/resource_manager/project/updater.rb +4 -9
  75. data/lib/gcloud/resource_manager/service.rb +127 -0
  76. data/lib/gcloud/storage.rb +24 -42
  77. data/lib/gcloud/storage/bucket.rb +104 -192
  78. data/lib/gcloud/storage/bucket/acl.rb +47 -143
  79. data/lib/gcloud/storage/bucket/cors.rb +55 -11
  80. data/lib/gcloud/storage/bucket/list.rb +14 -14
  81. data/lib/gcloud/storage/errors.rb +3 -43
  82. data/lib/gcloud/storage/file.rb +114 -111
  83. data/lib/gcloud/storage/file/acl.rb +27 -113
  84. data/lib/gcloud/storage/file/list.rb +21 -21
  85. data/lib/gcloud/storage/project.rb +49 -59
  86. data/lib/gcloud/storage/service.rb +347 -0
  87. data/lib/gcloud/translate.rb +24 -14
  88. data/lib/gcloud/translate/api.rb +12 -21
  89. data/lib/gcloud/translate/detection.rb +5 -5
  90. data/lib/gcloud/translate/language.rb +1 -1
  91. data/lib/gcloud/translate/service.rb +80 -0
  92. data/lib/gcloud/translate/translation.rb +6 -6
  93. data/lib/gcloud/version.rb +1 -1
  94. data/lib/gcloud/vision.rb +24 -15
  95. data/lib/gcloud/vision/annotate.rb +24 -21
  96. data/lib/gcloud/vision/annotation.rb +9 -9
  97. data/lib/gcloud/vision/annotation/entity.rb +11 -11
  98. data/lib/gcloud/vision/annotation/face.rb +25 -25
  99. data/lib/gcloud/vision/annotation/properties.rb +8 -8
  100. data/lib/gcloud/vision/annotation/safe_search.rb +4 -4
  101. data/lib/gcloud/vision/annotation/text.rb +7 -7
  102. data/lib/gcloud/vision/annotation/vertex.rb +1 -1
  103. data/lib/gcloud/vision/image.rb +11 -11
  104. data/lib/gcloud/vision/location.rb +5 -2
  105. data/lib/gcloud/vision/project.rb +14 -16
  106. data/lib/gcloud/vision/service.rb +66 -0
  107. data/lib/google/api_client.rb +0 -0
  108. metadata +27 -24
  109. data/lib/gcloud/bigquery/connection.rb +0 -624
  110. data/lib/gcloud/bigquery/errors.rb +0 -68
  111. data/lib/gcloud/bigquery/table/schema.rb +0 -234
  112. data/lib/gcloud/dns/connection.rb +0 -173
  113. data/lib/gcloud/dns/errors.rb +0 -68
  114. data/lib/gcloud/resource_manager/connection.rb +0 -134
  115. data/lib/gcloud/resource_manager/errors.rb +0 -68
  116. data/lib/gcloud/storage/connection.rb +0 -444
  117. data/lib/gcloud/translate/connection.rb +0 -85
  118. data/lib/gcloud/translate/errors.rb +0 -68
  119. data/lib/gcloud/upload.rb +0 -95
  120. data/lib/gcloud/vision/connection.rb +0 -63
  121. data/lib/gcloud/vision/errors.rb +0 -69
@@ -53,7 +53,7 @@ module Gcloud
53
53
  # Must provide a valid Bucket object.
54
54
  def initialize bucket
55
55
  @bucket = bucket.name
56
- @connection = bucket.connection
56
+ @service = bucket.service
57
57
  @owners = nil
58
58
  @writers = nil
59
59
  @readers = nil
@@ -73,8 +73,8 @@ module Gcloud
73
73
  # bucket.acl.reload!
74
74
  #
75
75
  def reload!
76
- resp = @connection.list_bucket_acls @bucket
77
- acls = resp.data["items"]
76
+ gapi = @service.list_bucket_acls @bucket
77
+ acls = Array(gapi.items)
78
78
  @owners = entities_from_acls acls, "OWNER"
79
79
  @writers = entities_from_acls acls, "WRITER"
80
80
  @readers = entities_from_acls acls, "READER"
@@ -179,13 +179,10 @@ module Gcloud
179
179
  # bucket.acl.add_owner "group-#{email}"
180
180
  #
181
181
  def add_owner entity
182
- resp = @connection.insert_bucket_acl @bucket, entity, "OWNER"
183
- if resp.success?
184
- entity = resp.data["entity"]
185
- @owners.push entity unless @owners.nil?
186
- return entity
187
- end
188
- nil
182
+ gapi = @service.insert_bucket_acl @bucket, entity, "OWNER"
183
+ entity = gapi.entity
184
+ @owners.push entity unless @owners.nil?
185
+ entity
189
186
  end
190
187
 
191
188
  ##
@@ -226,13 +223,10 @@ module Gcloud
226
223
  # bucket.acl.add_writer "group-#{email}"
227
224
  #
228
225
  def add_writer entity
229
- resp = @connection.insert_bucket_acl @bucket, entity, "WRITER"
230
- if resp.success?
231
- entity = resp.data["entity"]
232
- @writers.push entity unless @writers.nil?
233
- return entity
234
- end
235
- nil
226
+ gapi = @service.insert_bucket_acl @bucket, entity, "WRITER"
227
+ entity = gapi.entity
228
+ @writers.push entity unless @writers.nil?
229
+ entity
236
230
  end
237
231
 
238
232
  ##
@@ -273,13 +267,10 @@ module Gcloud
273
267
  # bucket.acl.add_reader "group-#{email}"
274
268
  #
275
269
  def add_reader entity
276
- resp = @connection.insert_bucket_acl @bucket, entity, "READER"
277
- if resp.success?
278
- entity = resp.data["entity"]
279
- @readers.push entity unless @readers.nil?
280
- return entity
281
- end
282
- nil
270
+ gapi = @service.insert_bucket_acl @bucket, entity, "READER"
271
+ entity = gapi.entity
272
+ @readers.push entity unless @readers.nil?
273
+ entity
283
274
  end
284
275
 
285
276
  ##
@@ -309,14 +300,11 @@ module Gcloud
309
300
  # bucket.acl.delete "user-#{email}"
310
301
  #
311
302
  def delete entity
312
- resp = @connection.delete_bucket_acl @bucket, entity
313
- if resp.success?
314
- @owners.delete entity unless @owners.nil?
315
- @writers.delete entity unless @writers.nil?
316
- @readers.delete entity unless @readers.nil?
317
- return true
318
- end
319
- false
303
+ @service.delete_bucket_acl @bucket, entity
304
+ @owners.delete entity unless @owners.nil?
305
+ @writers.delete entity unless @writers.nil?
306
+ @readers.delete entity unless @readers.nil?
307
+ true
320
308
  end
321
309
 
322
310
  # @private
@@ -433,17 +421,13 @@ module Gcloud
433
421
  end
434
422
 
435
423
  def update_predefined_acl! acl_role
436
- resp = @connection.patch_bucket @bucket,
437
- predefined_acl: acl_role,
438
- acl: []
439
-
440
- return clear! if resp.success?
441
- fail Gcloud::Storage::ApiError.from_response(resp)
424
+ @service.patch_bucket @bucket, predefined_acl: acl_role
425
+ clear!
442
426
  end
443
427
 
444
428
  def entities_from_acls acls, role
445
- selected = acls.select { |acl| acl["role"] == role }
446
- entities = selected.map { |acl| acl["entity"] }
429
+ selected = acls.select { |acl| acl.role == role }
430
+ entities = selected.map(&:entity)
447
431
  entities
448
432
  end
449
433
  end
@@ -486,9 +470,8 @@ module Gcloud
486
470
  # Must provide a valid Bucket object.
487
471
  def initialize bucket
488
472
  @bucket = bucket.name
489
- @connection = bucket.connection
473
+ @service = bucket.service
490
474
  @owners = nil
491
- @writers = nil
492
475
  @readers = nil
493
476
  end
494
477
 
@@ -506,10 +489,13 @@ module Gcloud
506
489
  # bucket.default_acl.reload!
507
490
  #
508
491
  def reload!
509
- resp = @connection.list_default_acls @bucket
510
- acls = resp.data["items"]
492
+ gapi = @service.list_default_acls @bucket
493
+ acls = Array(gapi.items).map do |acl|
494
+ return acl if acl.is_a? Google::Apis::StorageV1::ObjectAccessControl
495
+ fail "Unknown ACL format: #{acl.class}" unless acl.is_a? Hash
496
+ Google::Apis::StorageV1::ObjectAccessControl.from_json acl.to_json
497
+ end
511
498
  @owners = entities_from_acls acls, "OWNER"
512
- @writers = entities_from_acls acls, "WRITER"
513
499
  @readers = entities_from_acls acls, "READER"
514
500
  end
515
501
  alias_method :refresh!, :reload!
@@ -534,26 +520,6 @@ module Gcloud
534
520
  @owners
535
521
  end
536
522
 
537
- ##
538
- # Lists the default writers for files in the bucket.
539
- #
540
- # @return [Array<String>]
541
- #
542
- # @example
543
- # require "gcloud"
544
- #
545
- # gcloud = Gcloud.new
546
- # storage = gcloud.storage
547
- #
548
- # bucket = storage.bucket "my-bucket"
549
- #
550
- # bucket.default_acl.writers.each { |writer| puts writer }
551
- #
552
- def writers
553
- reload! if @writers.nil?
554
- @writers
555
- end
556
-
557
523
  ##
558
524
  # Lists the default readers for files in the bucket.
559
525
  #
@@ -612,60 +578,10 @@ module Gcloud
612
578
  # bucket.default_acl.add_owner "group-#{email}"
613
579
  #
614
580
  def add_owner entity
615
- resp = @connection.insert_default_acl @bucket, entity, "OWNER"
616
- if resp.success?
617
- entity = resp.data["entity"]
618
- @owners.push entity unless @owners.nil?
619
- return entity
620
- end
621
- nil
622
- end
623
-
624
- ##
625
- # Grants default writer permission to files in the bucket.
626
- #
627
- # @param [String] entity The entity holding the permission, in one of
628
- # the following forms:
629
- #
630
- # * user-userId
631
- # * user-email
632
- # * group-groupId
633
- # * group-email
634
- # * domain-domain
635
- # * project-team-projectId
636
- # * allUsers
637
- # * allAuthenticatedUsers
638
- #
639
- # @example Grant access to a user by pre-pending `"user-"` to an email:
640
- # require "gcloud"
641
- #
642
- # gcloud = Gcloud.new
643
- # storage = gcloud.storage
644
- #
645
- # bucket = storage.bucket "my-bucket"
646
- #
647
- # email = "heidi@example.net"
648
- # bucket.default_acl.add_writer "user-#{email}"
649
- #
650
- # @example Grant access to a group by pre-pending `"group-"` to an email
651
- # require "gcloud"
652
- #
653
- # gcloud = Gcloud.new
654
- # storage = gcloud.storage
655
- #
656
- # bucket = storage.bucket "my-bucket"
657
- #
658
- # email = "authors@example.net"
659
- # bucket.default_acl.add_writer "group-#{email}"
660
- #
661
- def add_writer entity
662
- resp = @connection.insert_default_acl @bucket, entity, "WRITER"
663
- if resp.success?
664
- entity = resp.data["entity"]
665
- @writers.push entity unless @writers.nil?
666
- return entity
667
- end
668
- nil
581
+ gapi = @service.insert_default_acl @bucket, entity, "OWNER"
582
+ entity = gapi.entity
583
+ @owners.push entity unless @owners.nil?
584
+ entity
669
585
  end
670
586
 
671
587
  ##
@@ -706,13 +622,10 @@ module Gcloud
706
622
  # bucket.default_acl.add_reader "group-#{email}"
707
623
  #
708
624
  def add_reader entity
709
- resp = @connection.insert_default_acl @bucket, entity, "READER"
710
- if resp.success?
711
- entity = resp.data["entity"]
712
- @readers.push entity unless @readers.nil?
713
- return entity
714
- end
715
- nil
625
+ gapi = @service.insert_default_acl @bucket, entity, "READER"
626
+ entity = gapi.entity
627
+ @readers.push entity unless @readers.nil?
628
+ entity
716
629
  end
717
630
 
718
631
  ##
@@ -743,14 +656,10 @@ module Gcloud
743
656
  # bucket.default_acl.delete "user-#{email}"
744
657
  #
745
658
  def delete entity
746
- resp = @connection.delete_default_acl @bucket, entity
747
- if resp.success?
748
- @owners.delete entity unless @owners.nil?
749
- @writers.delete entity unless @writers.nil?
750
- @readers.delete entity unless @readers.nil?
751
- return true
752
- end
753
- false
659
+ @service.delete_default_acl @bucket, entity
660
+ @owners.delete entity unless @owners.nil?
661
+ @readers.delete entity unless @readers.nil?
662
+ true
754
663
  end
755
664
 
756
665
  # @private
@@ -881,23 +790,18 @@ module Gcloud
881
790
 
882
791
  def clear!
883
792
  @owners = nil
884
- @writers = nil
885
793
  @readers = nil
886
794
  self
887
795
  end
888
796
 
889
797
  def update_predefined_default_acl! acl_role
890
- resp = @connection.patch_bucket @bucket,
891
- predefined_default_acl: acl_role,
892
- default_acl: []
893
-
894
- return clear! if resp.success?
895
- fail Gcloud::Storage::ApiError.from_response(resp)
798
+ @service.patch_bucket @bucket, predefined_default_acl: acl_role
799
+ clear!
896
800
  end
897
801
 
898
802
  def entities_from_acls acls, role
899
- selected = acls.select { |acl| acl["role"] == role }
900
- entities = selected.map { |acl| acl["entity"] }
803
+ selected = acls.select { |acl| acl.role == role }
804
+ entities = selected.map(&:entity)
901
805
  entities
902
806
  end
903
807
  end
@@ -22,8 +22,7 @@ module Gcloud
22
22
  # # Bucket Cors
23
23
  #
24
24
  # A special-case Array for managing the website CORS rules for a bucket.
25
- # Accessed via a block argument to {Project#create_bucket}, {Bucket#cors},
26
- # or {Bucket#update}.
25
+ # Accessed via {Bucket#cors}.
27
26
  #
28
27
  # @see https://cloud.google.com/storage/docs/cross-origin Cross-Origin
29
28
  # Resource Sharing (CORS)
@@ -35,11 +34,12 @@ module Gcloud
35
34
  # storage = gcloud.storage
36
35
  # bucket = storage.bucket "my-todo-app"
37
36
  #
37
+ # bucket = storage.bucket "my-bucket"
38
38
  # bucket.cors do |c|
39
39
  # # Remove the last CORS rule from the array
40
40
  # c.pop
41
41
  # # Remove all existing rules with the https protocol
42
- # c.delete_if { |r| r["origin"].include? "http://example.com" }
42
+ # c.delete_if { |r| r.origin.include? "http://example.com" }
43
43
  # c.add_rule ["http://example.org", "https://example.org"],
44
44
  # ["GET", "POST", "DELETE"],
45
45
  # response_headers: ["X-My-Custom-Header"],
@@ -50,14 +50,14 @@ module Gcloud
50
50
  ##
51
51
  # @private
52
52
  # Initialize a new CORS rules builder with existing CORS rules, if any.
53
- def initialize cors = []
54
- super cors.dup
55
- @original = cors.dup
53
+ def initialize rules = []
54
+ super rules
55
+ @original = to_gapi.map(&:to_json)
56
56
  end
57
57
 
58
58
  # @private
59
59
  def changed?
60
- @original != self
60
+ @original != to_gapi.map(&:to_json)
61
61
  end
62
62
 
63
63
  ##
@@ -98,10 +98,54 @@ module Gcloud
98
98
  # end
99
99
  #
100
100
  def add_rule origin, methods, headers: nil, max_age: nil
101
- rule = { "origin" => Array(origin), "method" => Array(methods) }
102
- rule["responseHeader"] = Array(headers) || []
103
- rule["maxAgeSeconds"] = max_age || 1800
104
- push rule
101
+ push Rule.new(origin, methods, headers: headers, max_age: max_age)
102
+ end
103
+
104
+ # @private
105
+ def to_gapi
106
+ map(&:to_gapi)
107
+ end
108
+
109
+ # @private
110
+ def self.from_gapi gapi_list
111
+ rules = Array(gapi_list).map { |gapi| Rule.from_gapi gapi }
112
+ new rules
113
+ end
114
+
115
+ # @private
116
+ def freeze
117
+ each(&:freeze)
118
+ super
119
+ end
120
+
121
+ class Rule
122
+ attr_accessor :origin, :methods, :headers, :max_age
123
+
124
+ def initialize origin, methods, headers: nil, max_age: nil
125
+ @origin = Array(origin)
126
+ @methods = Array(methods)
127
+ @headers = Array(headers)
128
+ @max_age = (max_age||1800)
129
+ end
130
+
131
+ def to_gapi
132
+ Google::Apis::StorageV1::Bucket::CorsConfiguration.new(
133
+ origin: Array(origin).dup, http_method: Array(methods).dup,
134
+ response_header: Array(headers).dup, max_age_seconds: max_age
135
+ )
136
+ end
137
+
138
+ def self.from_gapi gapi
139
+ new gapi.origin.dup, gapi.http_method.dup, \
140
+ headers: gapi.response_header.dup, max_age: gapi.max_age_seconds
141
+ end
142
+
143
+ def freeze
144
+ @origin.freeze
145
+ @methods.freeze
146
+ @headers.freeze
147
+ super
148
+ end
105
149
  end
106
150
  end
107
151
  end
@@ -71,11 +71,10 @@ module Gcloud
71
71
  #
72
72
  def next
73
73
  return nil unless next?
74
- ensure_connection!
74
+ ensure_service!
75
75
  options = { prefix: @prefix, token: @token, max: @max }
76
- resp = @connection.list_buckets options
77
- fail ApiError.from_response(resp) unless resp.success?
78
- Bucket::List.from_response resp, @connection, @prefix, @max
76
+ gapi = @service.list_buckets options
77
+ Bucket::List.from_gapi gapi, @service, @prefix, @max
79
78
  end
80
79
 
81
80
  ##
@@ -147,15 +146,16 @@ module Gcloud
147
146
  end
148
147
 
149
148
  ##
150
- # @private New Bucket::List from a response object.
151
- def self.from_response resp, conn, prefix = nil, max = nil
152
- buckets = new(Array(resp.data["items"]).map do |gapi_object|
153
- Bucket.from_gapi gapi_object, conn
149
+ # @private New Bucket::List from a Google API Client
150
+ # Google::Apis::StorageV1::Buckets object.
151
+ def self.from_gapi gapi_list, service, prefix = nil, max = nil
152
+ buckets = new(Array(gapi_list.items).map do |gapi_object|
153
+ Bucket.from_gapi gapi_object, service
154
154
  end)
155
- buckets.instance_variable_set "@token", resp.data["nextPageToken"]
156
- buckets.instance_variable_set "@connection", conn
157
- buckets.instance_variable_set "@prefix", prefix
158
- buckets.instance_variable_set "@max", max
155
+ buckets.instance_variable_set :@token, gapi_list.next_page_token
156
+ buckets.instance_variable_set :@service, service
157
+ buckets.instance_variable_set :@prefix, prefix
158
+ buckets.instance_variable_set :@max, max
159
159
  buckets
160
160
  end
161
161
 
@@ -163,8 +163,8 @@ module Gcloud
163
163
 
164
164
  ##
165
165
  # Raise an error unless an active connection is available.
166
- def ensure_connection!
167
- fail "Must have active connection" unless @connection
166
+ def ensure_service!
167
+ fail "Must have active connection" unless @service
168
168
  end
169
169
  end
170
170
  end
@@ -17,58 +17,18 @@ require "gcloud/errors"
17
17
 
18
18
  module Gcloud
19
19
  module Storage
20
- ##
21
- # # Storage Error
22
- #
23
- # Base Storage exception class.
24
- class Error < Gcloud::Error
25
- end
26
-
27
- ##
28
- # # ApiError
29
- #
30
- # Raised when an API call is not successful.
31
- class ApiError < Error
32
- ##
33
- # The code of the error.
34
- attr_reader :code
35
-
36
- ##
37
- # The errors encountered.
38
- attr_reader :errors
39
-
40
- def initialize message, code, errors
41
- super message
42
- @code = code
43
- @errors = errors
44
- end
45
-
46
- # @private
47
- def self.from_response resp
48
- if resp.data && resp.data["error"]
49
- new resp.data["error"]["message"],
50
- resp.data["error"]["code"],
51
- resp.data["error"]["errors"]
52
- else
53
- new resp.error_message,
54
- resp.status,
55
- nil
56
- end
57
- end
58
- end
59
-
60
20
  ##
61
21
  # # FileVerificationError
62
22
  #
63
23
  # Raised when a File download fails the verification.
64
- class FileVerificationError < Error
24
+ class FileVerificationError < Gcloud::Error
65
25
  ##
66
26
  # The type of digest that failed verification,
67
27
  # :md5 or :crc32c.
68
28
  attr_accessor :type
69
29
 
70
30
  ##
71
- # The value of the digest on the Gcloud file.
31
+ # The value of the digest on the gcloud-ruby file.
72
32
  attr_accessor :gcloud_digest
73
33
 
74
34
  ##
@@ -99,7 +59,7 @@ module Gcloud
99
59
  #
100
60
  # This is raised when File#signed_url is unable to generate a URL due to
101
61
  # missing credentials needed to create the URL.
102
- class SignedUrlUnavailable < Error
62
+ class SignedUrlUnavailable < Gcloud::Error
103
63
  end
104
64
  end
105
65
  end