droplet_kit 3.8.0 → 3.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d6e481a1878309fc130d5fa904ce8ec992bc9cc10c99c6c52b8647bc23fce4f
4
- data.tar.gz: 45e46c149acff5b329ee56ad2d4febd0ee07d5d7832b0745e160aeb2c62047a5
3
+ metadata.gz: '08950216b1d1fbb079b469c39cab19fd1549d0a5b1d56e326ba6d38810d90d89'
4
+ data.tar.gz: 1e46cfcfb57d05b5b6cab99b28f1291a9be12609a23deee843d7dd79dec82e44
5
5
  SHA512:
6
- metadata.gz: 217a89c5af353e8a91e3fcaaf6a0f42e9e60dc939c9d94a8841ee34faef5f5051c3a506dfab974de2258cd6d6a8d41b8c3f4c02373c81a2a746c71926cd6d1f4
7
- data.tar.gz: 9bbc06f0bea6cfd49d3a580cee07daa1e430eaaa7a33b6a161e2761e39ecf6298835032e64b8fc38669619325723faddfe2bfcd2557721b16bcfb4cdfb5adbfe
6
+ metadata.gz: 1ff1291e1a07ed0bcc4fa4c15d60ecc67201452a827711ab8991c29f026f03993a916a5e45602af63d24be523f7f6b9676d770d07004354d727815f63af43718
7
+ data.tar.gz: 39c170a95862c1831ecedf86cba0104361263f54a80ed983e9f7f6efcc34f359d0721703c6631d1374b180501448266034f965920f401f81703c398e527a23ae
data/README.md CHANGED
@@ -354,6 +354,17 @@ Image Actions Supported:
354
354
  * `client.image_actions.find(image_id: 123, id: 123455)`
355
355
  * `client.image_actions.transfer(image_id: 123, region: 'nyc3')`
356
356
 
357
+ ## Invoice resource
358
+
359
+ ```ruby
360
+ client = DropletKit::Client.new(access_token: 'TOKEN')
361
+ client.invoices #=> DropletKit::InvoiceResource
362
+ ```
363
+
364
+ Actions supported:
365
+
366
+ * `client.invoices.list()`
367
+ * `client.invoices.find(id:123)`
357
368
 
358
369
  ## Kubernetes Resource
359
370
 
@@ -502,6 +513,16 @@ Actions supported:
502
513
 
503
514
  * `client.account.info()`
504
515
 
516
+ ## Balance resource
517
+
518
+ ```ruby
519
+ client = DropletKit::Client.new(access_token: 'TOKEN')
520
+ client.balance #=> DropletKit::BalanceResource
521
+ ```
522
+
523
+ Actions supported:
524
+
525
+ * `client.balance.info()`
505
526
 
506
527
  ## Floating IP resource
507
528
 
@@ -13,6 +13,7 @@ module DropletKit
13
13
  autoload :Droplet, 'droplet_kit/models/droplet'
14
14
  autoload :Region, 'droplet_kit/models/region'
15
15
  autoload :Image, 'droplet_kit/models/image'
16
+ autoload :Invoice, 'droplet_kit/models/invoice'
16
17
  autoload :Size, 'droplet_kit/models/size'
17
18
  autoload :NetworkHash, 'droplet_kit/models/network_hash'
18
19
  autoload :Network, 'droplet_kit/models/network'
@@ -24,6 +25,7 @@ module DropletKit
24
25
  autoload :SSHKey, 'droplet_kit/models/ssh_key'
25
26
  autoload :MetaInformation, 'droplet_kit/models/meta_information'
26
27
  autoload :Account, 'droplet_kit/models/account'
28
+ autoload :Balance, 'droplet_kit/models/balance'
27
29
  autoload :DropletUpgrade, 'droplet_kit/models/droplet_upgrade'
28
30
  autoload :FloatingIp, 'droplet_kit/models/floating_ip'
29
31
  autoload :Project, 'droplet_kit/models/project'
@@ -74,11 +76,13 @@ module DropletKit
74
76
  autoload :DomainRecordResource, 'droplet_kit/resources/domain_record_resource'
75
77
  autoload :DropletActionResource, 'droplet_kit/resources/droplet_action_resource'
76
78
  autoload :ImageResource, 'droplet_kit/resources/image_resource'
79
+ autoload :InvoiceResource, 'droplet_kit/resources/invoice_resource'
77
80
  autoload :ImageActionResource, 'droplet_kit/resources/image_action_resource'
78
81
  autoload :SSHKeyResource, 'droplet_kit/resources/ssh_key_resource'
79
82
  autoload :RegionResource, 'droplet_kit/resources/region_resource'
80
83
  autoload :SizeResource, 'droplet_kit/resources/size_resource'
81
84
  autoload :AccountResource, 'droplet_kit/resources/account_resource'
85
+ autoload :BalanceResource, 'droplet_kit/resources/balance_resource'
82
86
  autoload :DropletUpgradeResource, 'droplet_kit/resources/droplet_upgrade_resource'
83
87
  autoload :FloatingIpResource, 'droplet_kit/resources/floating_ip_resource'
84
88
  autoload :FloatingIpActionResource, 'droplet_kit/resources/floating_ip_action_resource'
@@ -113,8 +117,10 @@ module DropletKit
113
117
  autoload :DomainRecordMapping, 'droplet_kit/mappings/domain_record_mapping'
114
118
  autoload :DropletActionMapping, 'droplet_kit/mappings/droplet_action_mapping'
115
119
  autoload :ImageActionMapping, 'droplet_kit/mappings/image_action_mapping'
120
+ autoload :InvoiceMapping, 'droplet_kit/mappings/invoice_mapping'
116
121
  autoload :SSHKeyMapping, 'droplet_kit/mappings/ssh_key_mapping'
117
122
  autoload :AccountMapping, 'droplet_kit/mappings/account_mapping'
123
+ autoload :BalanceMapping, 'droplet_kit/mappings/balance_mapping'
118
124
  autoload :DropletUpgradeMapping, 'droplet_kit/mappings/droplet_upgrade_mapping'
119
125
  autoload :FloatingIpMapping, 'droplet_kit/mappings/floating_ip_mapping'
120
126
  autoload :ProjectMapping, 'droplet_kit/mappings/project_mapping'
@@ -43,12 +43,14 @@ module DropletKit
43
43
  firewalls: FirewallResource,
44
44
  images: ImageResource,
45
45
  image_actions: ImageActionResource,
46
+ invoices: InvoiceResource,
46
47
  load_balancers: LoadBalancerResource,
47
48
  regions: RegionResource,
48
49
  sizes: SizeResource,
49
50
  ssh_keys: SSHKeyResource,
50
51
  snapshots: SnapshotResource,
51
52
  account: AccountResource,
53
+ balance: BalanceResource,
52
54
  floating_ips: FloatingIpResource,
53
55
  floating_ip_actions: FloatingIpActionResource,
54
56
  tags: TagResource,
@@ -0,0 +1,14 @@
1
+ module DropletKit
2
+ class BalanceMapping
3
+ include Kartograph::DSL
4
+
5
+ kartograph do
6
+ mapping Balance
7
+ property :month_to_date_balance, scopes: [:read]
8
+ property :account_balance, scopes: [:read]
9
+ property :month_to_date_usage, scopes: [:read]
10
+ property :generated_at, scopes: [:read]
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,32 @@
1
+ module DropletKit
2
+ class InvoiceMapping
3
+ include Kartograph::DSL
4
+
5
+ kartograph do
6
+ mapping Invoice
7
+ root_key plural: 'invoices', scopes: [:read]
8
+ root_key plural: 'invoice_items', scopes: [:find]
9
+
10
+ scoped :read do
11
+ property :invoice_uuid
12
+ property :amount
13
+ property :invoice_period
14
+ end
15
+
16
+ scoped :find do
17
+ property :product
18
+ property :amount
19
+ property :resource_uuid
20
+ property :group_description
21
+ property :description
22
+ property :duration
23
+ property :duration_unit
24
+ property :start_time
25
+ property :end_time
26
+ property :project_name
27
+ property :category
28
+ end
29
+ end
30
+ end
31
+ end
32
+
@@ -20,6 +20,7 @@ module DropletKit
20
20
  scoped :update, :patch do
21
21
  property :name
22
22
  property :description
23
+ property :default
23
24
  end
24
25
 
25
26
  scoped :create do
@@ -30,4 +31,4 @@ module DropletKit
30
31
  end
31
32
  end
32
33
  end
33
- end
34
+ end
@@ -0,0 +1,8 @@
1
+ module DropletKit
2
+ class Balance < BaseModel
3
+ attribute :month_to_date_balance
4
+ attribute :account_balance
5
+ attribute :month_to_date_usage
6
+ attribute :generated_at
7
+ end
8
+ end
@@ -0,0 +1,18 @@
1
+ module DropletKit
2
+ class Invoice < BaseModel
3
+ attribute :invoice_uuid
4
+ attribute :amount
5
+ attribute :invoice_period
6
+ attribute :product
7
+ attribute :resource_uuid
8
+ attribute :group_description
9
+ attribute :description
10
+ attribute :duration
11
+ attribute :duration_unit
12
+ attribute :start_time
13
+ attribute :end_time
14
+ attribute :project_name
15
+ attribute :category
16
+ end
17
+ end
18
+
@@ -0,0 +1,10 @@
1
+ module DropletKit
2
+ class BalanceResource < ResourceKit::Resource
3
+ include ErrorHandlingResourcable
4
+
5
+ resources do
6
+ default_handler(:ok) {|r| BalanceMapping.extract_single(r.body, :read) }
7
+ get '/v2/customers/my/balance' => :info
8
+ end
9
+ end
10
+ end
@@ -4,7 +4,7 @@ module DropletKit
4
4
 
5
5
  resources do
6
6
  action :all, 'GET /v2/domains/:for_domain/records' do
7
- query_keys :per_page, :page
7
+ query_keys :per_page, :page, :name, :type
8
8
  handler(200) { |response| DomainRecordMapping.extract_collection(response.body, :read) }
9
9
  end
10
10
 
@@ -0,0 +1,15 @@
1
+ module DropletKit
2
+ class InvoiceResource < ResourceKit::Resource
3
+ include ErrorHandlingResourcable
4
+
5
+ resources do
6
+ action :list, 'GET /v2/customers/my/invoices' do
7
+ handler(200) { |response| InvoiceMapping.extract_collection(response.body, :read) }
8
+ end
9
+
10
+ action :find, 'GET v2/customers/my/invoices/:id' do
11
+ handler(200) { |response| InvoiceMapping.extract_collection(response.body, :find) }
12
+ end
13
+ end
14
+ end
15
+ end
@@ -34,6 +34,7 @@ module DropletKit
34
34
  end
35
35
 
36
36
  action :list_resources, 'GET /v2/projects/:id/resources' do
37
+ query_keys :per_page, :page
37
38
  handler(200) { |response| ProjectAssignmentMapping.extract_collection(response.body, :read) }
38
39
  end
39
40
 
@@ -61,5 +62,9 @@ module DropletKit
61
62
  def all(*args)
62
63
  PaginatedResource.new(action(:all), self, *args)
63
64
  end
65
+
66
+ def list_resources(*args)
67
+ PaginatedResource.new(action(:list_resources), self, *args)
68
+ end
64
69
  end
65
70
  end
@@ -19,7 +19,7 @@ module DropletKit
19
19
 
20
20
  action :create, 'POST /v2/vpcs' do
21
21
  body { |vpc| VPCMapping.representation_for(:create, vpc) }
22
- handler(202) { |response| VPCMapping.extract_single(response.body, :read) }
22
+ handler(201) { |response| VPCMapping.extract_single(response.body, :read) }
23
23
  handler(422) { |response| ErrorMapping.fail_with(FailedCreate, response.body) }
24
24
  end
25
25
 
@@ -1,3 +1,3 @@
1
1
  module DropletKit
2
- VERSION = "3.8.0"
2
+ VERSION = "3.12.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droplet_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 3.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DigitalOcean API Engineering team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-19 00:00:00.000000000 Z
11
+ date: 2020-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -138,7 +138,7 @@ dependencies:
138
138
  version: 3.8.0
139
139
  description: Droplet Kit is the official Ruby library for DigitalOcean's API
140
140
  email:
141
- - devex-api-engineering@digitalocean.com
141
+ - api-engineering@digitalocean.com
142
142
  executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
@@ -150,6 +150,7 @@ files:
150
150
  - lib/droplet_kit/error_handling_resourcable.rb
151
151
  - lib/droplet_kit/mappings/account_mapping.rb
152
152
  - lib/droplet_kit/mappings/action_mapping.rb
153
+ - lib/droplet_kit/mappings/balance_mapping.rb
153
154
  - lib/droplet_kit/mappings/cdn_mapping.rb
154
155
  - lib/droplet_kit/mappings/certificate_mapping.rb
155
156
  - lib/droplet_kit/mappings/container_registry_mapping.rb
@@ -182,6 +183,7 @@ files:
182
183
  - lib/droplet_kit/mappings/forwarding_rule_mapping.rb
183
184
  - lib/droplet_kit/mappings/health_check_mapping.rb
184
185
  - lib/droplet_kit/mappings/image_mapping.rb
186
+ - lib/droplet_kit/mappings/invoice_mapping.rb
185
187
  - lib/droplet_kit/mappings/kernel_mapping.rb
186
188
  - lib/droplet_kit/mappings/kubernetes_cluster_mapping.rb
187
189
  - lib/droplet_kit/mappings/kubernetes_maintenance_policy_mapping.rb
@@ -208,6 +210,7 @@ files:
208
210
  - lib/droplet_kit/mappings/vpc_member_mapping.rb
209
211
  - lib/droplet_kit/models/account.rb
210
212
  - lib/droplet_kit/models/action.rb
213
+ - lib/droplet_kit/models/balance.rb
211
214
  - lib/droplet_kit/models/base_model.rb
212
215
  - lib/droplet_kit/models/cdn.rb
213
216
  - lib/droplet_kit/models/certificate.rb
@@ -240,6 +243,7 @@ files:
240
243
  - lib/droplet_kit/models/forwarding_rule.rb
241
244
  - lib/droplet_kit/models/health_check.rb
242
245
  - lib/droplet_kit/models/image.rb
246
+ - lib/droplet_kit/models/invoice.rb
243
247
  - lib/droplet_kit/models/kernel.rb
244
248
  - lib/droplet_kit/models/kubernetes_cluster.rb
245
249
  - lib/droplet_kit/models/kubernetes_maintenance_policy.rb
@@ -269,6 +273,7 @@ files:
269
273
  - lib/droplet_kit/paginated_resource.rb
270
274
  - lib/droplet_kit/resources/account_resource.rb
271
275
  - lib/droplet_kit/resources/action_resource.rb
276
+ - lib/droplet_kit/resources/balance_resource.rb
272
277
  - lib/droplet_kit/resources/cdn_resource.rb
273
278
  - lib/droplet_kit/resources/certificate_resource.rb
274
279
  - lib/droplet_kit/resources/container_registry_repository_resource.rb
@@ -284,6 +289,7 @@ files:
284
289
  - lib/droplet_kit/resources/floating_ip_resource.rb
285
290
  - lib/droplet_kit/resources/image_action_resource.rb
286
291
  - lib/droplet_kit/resources/image_resource.rb
292
+ - lib/droplet_kit/resources/invoice_resource.rb
287
293
  - lib/droplet_kit/resources/kubernetes_cluster_resource.rb
288
294
  - lib/droplet_kit/resources/kubernetes_options_resource.rb
289
295
  - lib/droplet_kit/resources/load_balancer_resource.rb
@@ -318,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
318
324
  - !ruby/object:Gem::Version
319
325
  version: '0'
320
326
  requirements: []
321
- rubygems_version: 3.1.2
327
+ rubygems_version: 3.1.4
322
328
  signing_key:
323
329
  specification_version: 4
324
330
  summary: Droplet Kit is the official Ruby library for DigitalOcean's API