droplet_kit 2.9.0 → 3.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4bfa73dd6ddba0fb42c9fd89ddabce2b63a20d7e
4
- data.tar.gz: e97cc7bb89fe01f388cfbf9b552183e463928587
3
+ metadata.gz: d75d76e50314c589a55b8184cd90c815f5afb0ce
4
+ data.tar.gz: b3292e5817bb966fcfd0c04c30642514ab4facaa
5
5
  SHA512:
6
- metadata.gz: 530a5cbc085611dac82e4a6d3a9ed7137711f0e2a8efb22a9f53f09eac0b67b40ccd28f0eb404405b082f7b3a69839cb0b32705099250b8eb158c0c47edf4025
7
- data.tar.gz: 86729ee95ca5a9ed6a1363ee889628432bbd1ae15b4b3c7b2c82b03d263f4d6ab5ec49dff2e8f3e81657d757bb5b9a3e97bc6e8568647366f2bb7b6d78aa80e3
6
+ metadata.gz: e97b4b7af8d4144b0535a23f8d53ce36e111b3558999192967839ffe722796a91a4f4f86bd27a1b3e5144afc0ce7366974f868ea3ff9326b8ba511293ae0d7f0
7
+ data.tar.gz: 46a7b5cd26dab725bb936e2bac8e75db053904f02a37922fc4716380efffec928ce09e596fd9de753637fd9e49b06ee84b63469e236e16299a7e94cf43b20fae
data/README.md CHANGED
@@ -511,6 +511,21 @@ Actions supported:
511
511
  * `client.snapshots.find(id: 'id')`
512
512
  * `client.snapshots.delete(id: 'id')`
513
513
 
514
+ ## VPC resource
515
+
516
+ client = DropletKit::Client.new(access_token: 'TOKEN')
517
+ client.vpcs #=> DropletKit::VPCResource
518
+
519
+ Actions supported:
520
+
521
+ * `client.vpcs.find(id: 'id')`
522
+ * `client.vpcs.all()`
523
+ * `client.vpcs.create(vpc)`
524
+ * `client.vpcs.update(vpc, id: 'id')`
525
+ * `client.vpcs.patch(vpc, id: 'id')`
526
+ * `client.vpcs.delete(id: 'id')`
527
+ * `client.vpcs.all_members(id: 'id')`
528
+
514
529
  ## Contributing
515
530
 
516
531
  1. Fork it ( https://github.com/digitalocean/droplet_kit/fork )
@@ -47,6 +47,8 @@ module DropletKit
47
47
  autoload :KubernetesNodePool, 'droplet_kit/models/kubernetes_node_pool'
48
48
  autoload :KubernetesNode, 'droplet_kit/models/kubernetes_node'
49
49
  autoload :KubernetesOptions, 'droplet_kit/models/kubernetes_options'
50
+ autoload :VPC, 'droplet_kit/models/vpc'
51
+ autoload :VPCMember, 'droplet_kit/models/vpc_member'
50
52
 
51
53
  # Resources
52
54
  autoload :DropletResource, 'droplet_kit/resources/droplet_resource'
@@ -74,6 +76,7 @@ module DropletKit
74
76
  autoload :CDNResource, 'droplet_kit/resources/cdn_resource'
75
77
  autoload :KubernetesClusterResource, 'droplet_kit/resources/kubernetes_cluster_resource'
76
78
  autoload :KubernetesOptionsResource, 'droplet_kit/resources/kubernetes_options_resource'
79
+ autoload :VPCResource, 'droplet_kit/resources/vpc_resource'
77
80
 
78
81
  # JSON Maps
79
82
  autoload :DropletMapping, 'droplet_kit/mappings/droplet_mapping'
@@ -116,6 +119,8 @@ module DropletKit
116
119
  autoload :KubernetesNodePoolMapping, 'droplet_kit/mappings/kubernetes_node_pool_mapping'
117
120
  autoload :KubernetesNodeMapping, 'droplet_kit/mappings/kubernetes_node_mapping'
118
121
  autoload :KubernetesOptionsMapping, 'droplet_kit/mappings/kubernetes_options_mapping'
122
+ autoload :VPCMapping, 'droplet_kit/mappings/vpc_mapping'
123
+ autoload :VPCMemberMapping, 'droplet_kit/mappings/vpc_member_mapping'
119
124
 
120
125
  # Utils
121
126
  autoload :PaginatedResource, 'droplet_kit/paginated_resource'
@@ -48,7 +48,8 @@ module DropletKit
48
48
  tags: TagResource,
49
49
  projects: ProjectResource,
50
50
  volumes: VolumeResource,
51
- volume_actions: VolumeActionResource
51
+ volume_actions: VolumeActionResource,
52
+ vpcs: VPCResource
52
53
  }
53
54
  end
54
55
 
@@ -20,6 +20,7 @@ module DropletKit
20
20
  property :features, scopes: [:read]
21
21
  property :size_slug, scopes: [:read]
22
22
  property :tags, scopes: [:read]
23
+ property :vpc_uuid, scopes: [:read]
23
24
 
24
25
  property :region, scopes: [:read], include: RegionMapping
25
26
  property :image, scopes: [:read], include: ImageMapping
@@ -39,6 +40,7 @@ module DropletKit
39
40
  property :ipv6, scopes: [:create]
40
41
  property :user_data, scopes: [:create]
41
42
  property :private_networking, scopes: [:create]
43
+ property :vpc_uuid, scopes: [:create]
42
44
  property :tags, scopes: [:create]
43
45
  end
44
46
  end
@@ -15,6 +15,7 @@ module DropletKit
15
15
  property :endpoint, scopes: [:read]
16
16
  property :tags, scopes: [:read, :update, :create]
17
17
  property :node_pools, scopes: [:read, :create]
18
+ property :vpc_uuid, scopes: [:read, :create]
18
19
  end
19
20
  end
20
21
  end
@@ -12,6 +12,7 @@ module DropletKit
12
12
  property :status
13
13
  property :created_at
14
14
  property :region, include: RegionMapping
15
+ property :vpc_uuid
15
16
  end
16
17
 
17
18
  scoped :read, :update, :create do
@@ -29,6 +30,10 @@ module DropletKit
29
30
  scoped :update, :create do
30
31
  property :region
31
32
  end
33
+
34
+ scoped :create do
35
+ property :vpc_uuid
36
+ end
32
37
  end
33
38
  end
34
39
  end
@@ -0,0 +1,27 @@
1
+ module DropletKit
2
+ class VPCMapping
3
+ include Kartograph::DSL
4
+
5
+ kartograph do
6
+ mapping VPC
7
+ root_key plural: 'vpcs', singular: 'vpc', scopes: [:read]
8
+
9
+ scoped :read do
10
+ property :id
11
+ property :name
12
+ property :region
13
+ property :created_at
14
+ property :default
15
+ end
16
+
17
+ scoped :update, :patch do
18
+ property :name
19
+ end
20
+
21
+ scoped :create do
22
+ property :name
23
+ property :region
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ module DropletKit
2
+ class VPCMemberMapping
3
+ include Kartograph::DSL
4
+
5
+ kartograph do
6
+ mapping VPCMember
7
+ root_key plural: 'members', scopes: [:read]
8
+
9
+ scoped :read do
10
+ property :urn
11
+ property :name
12
+ property :created_at
13
+ end
14
+ end
15
+ end
16
+ end
@@ -16,6 +16,7 @@ module DropletKit
16
16
  attribute :ipv6
17
17
  attribute :user_data
18
18
  attribute :private_networking
19
+ attribute :vpc_uuid
19
20
 
20
21
  def public_ip
21
22
  network = network_for(:v4, 'public')
@@ -1,6 +1,6 @@
1
1
  module DropletKit
2
2
  class KubernetesCluster < BaseModel
3
- [:id, :name, :region, :version, :cluster_subnet, :service_subnet, :ipv4, :endpoint, :tags, :node_pools].each do |key|
3
+ [:id, :name, :region, :version, :cluster_subnet, :service_subnet, :ipv4, :endpoint, :tags, :node_pools, :vpc_uuid].each do |key|
4
4
  attribute(key)
5
5
  end
6
6
  end
@@ -14,5 +14,6 @@ module DropletKit
14
14
  attribute :sticky_sessions
15
15
  attribute :health_check
16
16
  attribute :forwarding_rules
17
+ attribute :vpc_uuid
17
18
  end
18
19
  end
@@ -0,0 +1,9 @@
1
+ module DropletKit
2
+ class VPC < BaseModel
3
+ attribute :id
4
+ attribute :name
5
+ attribute :region
6
+ attribute :created_at
7
+ attribute :default
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module DropletKit
2
+ class VPCMember < BaseModel
3
+ attribute :urn
4
+ attribute :name
5
+ attribute :created_at
6
+ end
7
+ end
@@ -0,0 +1,56 @@
1
+ module DropletKit
2
+ class VPCResource < ResourceKit::Resource
3
+ include ErrorHandlingResourcable
4
+
5
+ resources do
6
+ action :find, 'GET /v2/vpcs/:id' do
7
+ handler(200) do |response|
8
+ VPCMapping.extract_single(response.body, :read)
9
+ end
10
+ end
11
+
12
+ action :all, 'GET /v2/vpcs' do
13
+ query_keys :per_page, :page
14
+
15
+ handler(200) do |response|
16
+ VPCMapping.extract_collection(response.body, :read)
17
+ end
18
+ end
19
+
20
+ action :create, 'POST /v2/vpcs' do
21
+ body { |vpc| VPCMapping.representation_for(:create, vpc) }
22
+ handler(202) { |response| VPCMapping.extract_single(response.body, :read) }
23
+ handler(422) { |response| ErrorMapping.fail_with(FailedCreate, response.body) }
24
+ end
25
+
26
+ action :update, 'PUT /v2/vpcs/:id' do
27
+ body {|vpc| VPCMapping.representation_for(:update, vpc) }
28
+ handler(200) { |response| VPCMapping.extract_single(response.body, :read) }
29
+ handler(422) { |response| ErrorMapping.fail_with(FailedUpdate, response.body) }
30
+ end
31
+
32
+ action :patch, 'PATCH /v2/vpcs/:id' do
33
+ body {|vpc| VPCMapping.representation_for(:patch, vpc) }
34
+ handler(200) { |response| VPCMapping.extract_single(response.body, :read) }
35
+ handler(422) { |response| ErrorMapping.fail_with(FailedUpdate, response.body) }
36
+ end
37
+
38
+ action :delete, 'DELETE /v2/vpcs/:id' do
39
+ handler(204) { |_| true }
40
+ end
41
+
42
+ action :all_members, 'GET /v2/vpcs/:id/members' do
43
+ query_keys :per_page, :page
44
+ handler(200) { |response| VPCMemberMapping.extract_collection(response.body, :read) }
45
+ end
46
+ end
47
+
48
+ def all(*args)
49
+ PaginatedResource.new(action(:all), self, *args)
50
+ end
51
+
52
+ def all_members(*args)
53
+ PaginatedResource.new(action(:all_members), self, *args)
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,3 @@
1
1
  module DropletKit
2
- VERSION = "2.9.0"
2
+ VERSION = "3.0.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: 2.9.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Ross
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-29 00:00:00.000000000 Z
11
+ date: 2019-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -221,6 +221,8 @@ files:
221
221
  - lib/droplet_kit/mappings/tagged_images_resources_mapping.rb
222
222
  - lib/droplet_kit/mappings/tagged_resources_mapping.rb
223
223
  - lib/droplet_kit/mappings/volume_mapping.rb
224
+ - lib/droplet_kit/mappings/vpc_mapping.rb
225
+ - lib/droplet_kit/mappings/vpc_member_mapping.rb
224
226
  - lib/droplet_kit/models/account.rb
225
227
  - lib/droplet_kit/models/action.rb
226
228
  - lib/droplet_kit/models/base_model.rb
@@ -262,6 +264,8 @@ files:
262
264
  - lib/droplet_kit/models/tagged_images_resources.rb
263
265
  - lib/droplet_kit/models/tagged_resources.rb
264
266
  - lib/droplet_kit/models/volume.rb
267
+ - lib/droplet_kit/models/vpc.rb
268
+ - lib/droplet_kit/models/vpc_member.rb
265
269
  - lib/droplet_kit/paginated_resource.rb
266
270
  - lib/droplet_kit/resources/account_resource.rb
267
271
  - lib/droplet_kit/resources/action_resource.rb
@@ -288,6 +292,7 @@ files:
288
292
  - lib/droplet_kit/resources/tag_resource.rb
289
293
  - lib/droplet_kit/resources/volume_action_resource.rb
290
294
  - lib/droplet_kit/resources/volume_resource.rb
295
+ - lib/droplet_kit/resources/vpc_resource.rb
291
296
  - lib/droplet_kit/version.rb
292
297
  - lib/tasks/resource_doc.rake
293
298
  homepage: https://github.com/digitalocean/droplet_kit
@@ -310,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
315
  version: '0'
311
316
  requirements: []
312
317
  rubyforge_project:
313
- rubygems_version: 2.6.8
318
+ rubygems_version: 2.6.14
314
319
  signing_key:
315
320
  specification_version: 4
316
321
  summary: Droplet Kit is the official Ruby library for DigitalOcean's API