droplet_kit 2.9.0 → 3.0.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
  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